The resource url supported now is
GET /cartridges/{category}/{cartridgeType}
On Sun, Dec 14, 2014 at 12:25 PM, Imesh Gunaratne <[email protected]> wrote:
>
> Hi Shiro,
>
> I found a problem with GET cartridges method:
> Now it is not possible to get cartridges for a given cartridge type:
>
> GET /cartridges/{cartridgeType}
>
> Thanks
>
> On Thu, Dec 11, 2014 at 12:19 PM, Shiroshica Kulatilake <[email protected]>
> wrote:
>>
>> This was actually an effort from many contributers - so should thank
>> everyone ! :)
>>
>> We still have to do some more work to make this perfect
>> 1. Make the responses also consistent -
>> https://issues.apache.org/jira/browse/STRATOS-1028
>> 2. We also should consider what to do with the v4.0 REST api - most of
>> the operations are not valid anymore
>> 3. CLI needs to be updated
>>
>> On Thu, Dec 11, 2014 at 12:14 PM, Lakmal Warusawithana <[email protected]>
>> wrote:
>>
>>> Yes, this is great, very clear now. Thanks Shiro.
>>>
>>> On Thu, Dec 11, 2014 at 11:54 AM, Reka Thirunavukkarasu <[email protected]>
>>> wrote:
>>>
>>>> Great work Shiro..!!! The paths are very consistent now..
>>>>
>>>> Thanks,
>>>> Reka
>>>>
>>>> On Thu, Dec 11, 2014 at 11:37 AM, Mariangela Hills <[email protected]
>>>> > wrote:
>>>>
>>>>> I will update the wiki!
>>>>>
>>>>> Regards,
>>>>> Mariangela
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *--*
>>>>> Mariangela Hills
>>>>> Senior Technical Writer
>>>>>
>>>>> *WSO2, Inc.*lean.enterprise.middleware.
>>>>> m: +94 773 500185
>>>>> w: http://wso2.com
>>>>> <http://wso2.com/events/>
>>>>>
>>>>> On Thu, Dec 11, 2014 at 10:59 AM, Imesh Gunaratne <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Great work Shiro! We might need to update the Wiki with this.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> On Wed, Dec 10, 2014 at 4:29 PM, Nirmal Fernando <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Great work Shiro on seeing this through !!
>>>>>>>
>>>>>>> On Wed, Dec 10, 2014 at 3:14 PM, Shiroshica Kulatilake <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> The Stratos REST api has been modified as follows.
>>>>>>>>
>>>>>>>> *1. Autoscaling Policies*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/autoscalingPoliciesCreates a new
>>>>>>>> autoscaling policyGET/autoscalingPoliciesGets all created
>>>>>>>> autoscaling policiesGET/autoscalingPolicies/{autoscalePolicyId}Gets
>>>>>>>> a specific autoscaling policyPUT/autoscalingPoliciesUpdates an
>>>>>>>> existing autoscaling policy
>>>>>>>>
>>>>>>>> *2. Cartridges*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/cartridgesCreate a new cartridge
>>>>>>>> definitionGET/cartridgesGet all available cartridgesGET
>>>>>>>> /cartridges/{filter}?criteria=criteriaGet all available cartridges
>>>>>>>> for a particular filter valueGET
>>>>>>>> /cartridges/{filter}/{cartrdigeType}Get a specific cartridge
>>>>>>>> within a filter valueDELETE/cartridges/{cartridgeType}Delete a
>>>>>>>> specific cartridge definition
>>>>>>>> - The filter methods in cartridge are to filter cartridges by
>>>>>>>> specifc values.
>>>>>>>> e.g. /cartridges/multiTenant would give a list of all
>>>>>>>> multitenant cartridges
>>>>>>>> Similar values which can be used are - "singleTenant",
>>>>>>>> "loadBalancer" and "provider"
>>>>>>>> - In the case of filtering cartridges by provider it is also needed
>>>>>>>> to specify the provider name - so in this case you would need to
>>>>>>>> specify
>>>>>>>> that using the query parameter criteria
>>>>>>>> e.g. /cartridges/provider?criteria=<value>
>>>>>>>>
>>>>>>>> *3. Groups*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/groupsCreate a new group definitionGET
>>>>>>>> /groupsGet all created group definitionsGET
>>>>>>>> /groups/{groupDefinitionName}Gets a specific group definitionDELETE
>>>>>>>> /groups/{groupDefinitionName}Delete a group definition
>>>>>>>>
>>>>>>>> *4. Applications*
>>>>>>>>
>>>>>>>> Resource pathDescriptionGET/applicationsGets all applications
>>>>>>>> createdGET/applications/{applicationId}Gets a specific application
>>>>>>>> POST/applicationsCreate an application definitionDELETE
>>>>>>>> /applications/{applicationId}Delete an application definition
>>>>>>>>
>>>>>>>> *5. Application Deployments*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/applicationDeploymentsDeploys an
>>>>>>>> application for a deployment policyDELETE
>>>>>>>> /applicationDeployments/{applicationId}Undeploys a specific
>>>>>>>> application based on application id
>>>>>>>> - The resource ApplicationDeployments were introduced to identify
>>>>>>>> the deployment of a particular application according to a deployment
>>>>>>>> policy
>>>>>>>> - The deplolyment policy json is sent with the POST command
>>>>>>>>
>>>>>>>> *6. Deployment Policies*
>>>>>>>>
>>>>>>>> Resource pathDescriptionGET/deploymentPoliciesGet all deployment
>>>>>>>> policiesGET/deploymentPolicies/{deploymentPolicyId}Gets a specific
>>>>>>>> deployment policyGET
>>>>>>>> /deploymentPolicies/{deploymentPolicyId}/partitionGroupGets
>>>>>>>> partition groups for a specific deployment policy
>>>>>>>> - Deployment policies are not created separately - instead when a
>>>>>>>> POST /applicationDepoyment with the deployment policy json is sent that
>>>>>>>> deployment policy is created.
>>>>>>>>
>>>>>>>> *7. Subscriptions*
>>>>>>>>
>>>>>>>> Resource pathDescriptionGET/subscriptions/{applicationId}Gets
>>>>>>>> subscriptions for an applicationGET
>>>>>>>> /subscriptions/cartridges/groups/{serviceGroupId}Gets subscribed
>>>>>>>> cartridges for a service group
>>>>>>>>
>>>>>>>> *8. Clusters *
>>>>>>>>
>>>>>>>> Resource pathDescriptionGET/clustersGet Clusters for a tenantGET
>>>>>>>> /clusters/{cartridgeType}Get clusters for a specific cartridge type
>>>>>>>> GET/clusters/{clusterId}Get a specifc cluster
>>>>>>>>
>>>>>>>> *9. Kubernetes clusters*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/kubernetesClustersDeploy a Kubernetes
>>>>>>>> cluster groupPUT/kubernetesClusters/{kubernetesClusterId}/minionDeploy
>>>>>>>> a Kubernetes Host within a cluster groupPUT
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}/masterDeploy a
>>>>>>>> Kubernetes Master within a cluster groupPATCH
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}/minion/{minionId}
>>>>>>>> GET/kubernetesClustersGets all Kubernetes cluster groups createdGET
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}Gets a specific
>>>>>>>> Kubernetes clusterGET
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}/hostsGets hosts of a
>>>>>>>> specific Kubernetes clusterGET
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}/masterGet master of a
>>>>>>>> specific Kubernetes clusterDELETE
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}Undeploy a kubernetes
>>>>>>>> cluster groupDELETE
>>>>>>>> /kubernetesClusters/{kubernetesClusterId}/hosts/{hostId}Undeploy a
>>>>>>>> specific host within a Kubernetes cluster group
>>>>>>>> - the PATCH command is still in discussion hence it has not been
>>>>>>>> changed yet. It is still the old path "/kubernetes/update/host" - a
>>>>>>>> TODO.
>>>>>>>>
>>>>>>>> *10. Tenants*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/tenantsAdd a new tenantGET/tenantsGet
>>>>>>>> all tenantsGET/tenants/{tenantDomain}Get a specific tenantGET
>>>>>>>> /tenants/search/{tenantDomain}Search for a tenantsPUT/tenantsUpdate
>>>>>>>> a tenantPUT/tenants/activate/{tenantDomain}Activate a tenantPUT
>>>>>>>> /tenants/deactivate/{tenantDomain}Deactivate a tenantDELETE
>>>>>>>> /tenants/{tenantDomain}Delete a tenant
>>>>>>>>
>>>>>>>> *11. Users*
>>>>>>>>
>>>>>>>> Resource pathDescriptionPOST/usersAdd a new userGET/usersGet all
>>>>>>>> usersPUT/usersUpdate a userDELETE/users/{userName}Delete a user
>>>>>>>>
>>>>>>>>
>>>>>>>> *Example* : To create a single group application where the
>>>>>>>> cartridges are vms (I'm reusing the script used to test grouping)
>>>>>>>> using the
>>>>>>>> rest api is as follows.
>>>>>>>>
>>>>>>>> 1. Create an autoscaling policy
>>>>>>>> - curl -X POST -H "Content-Type: application/json" -d @<AS
>>>>>>>> policy json file> -k -v -u admin:admin
>>>>>>>> https://localhost:9443/api/autoscalingPolicies
>>>>>>>> 2. Create cartridges
>>>>>>>> - curl -X POST -H "Content-Type: application/json" -d
>>>>>>>> @<cartridge json file> -k -v -u admin:admin
>>>>>>>> https://localhost:9443/api/cartridges
>>>>>>>> 3. Create group
>>>>>>>> - curl -X POST -H "Content-Type: application/json" -d @<group
>>>>>>>> json file> -k -v -u admin:admin https://localhost:9443/api/groups
>>>>>>>> 4. Create application
>>>>>>>> - curl -X POST -H "Content-Type: application/json" -d
>>>>>>>> @<application json file> -k -v -u admin:admin
>>>>>>>> https://localhost:9443/api/applications
>>>>>>>> 5. Deploy the application
>>>>>>>> - curl -X POST -H "Content-Type: application/json" -d@<deployment
>>>>>>>> policy json file> -k -v -u admin:admin
>>>>>>>> https://localhost:9443/api/applicationDeployments
>>>>>>>>
>>>>>>>> *Please note :-* Referring to the above email The separation
>>>>>>>> between creation of a deployment policy and deployment of an
>>>>>>>> application is
>>>>>>>> not available in the alpha version of Stratos 4.1.0.
>>>>>>>>
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>> Shiro
>>>>>>>>
>>>>>>>> On Tue, Dec 9, 2014 at 1:29 AM, Shiroshica Kulatilake <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> In order to create a flow and to figure out the required minimal
>>>>>>>>> set of REST apis for application handling thought of breaking down the
>>>>>>>>> actions up to deploying and undeploying an application in Stratos as
>>>>>>>>> follows.
>>>>>>>>>
>>>>>>>>> 1. Create cartridges needed
>>>>>>>>> - POST /cartridges with cartridgeDefinition.json
>>>>>>>>> 2. View created cartridges or a specific cartridge
>>>>>>>>> - GET /cartridges, /cartridges/{category}/{criteria},
>>>>>>>>> /cartridges/{category}/{cartrdigeType}
>>>>>>>>> 3. Create an autoscaling policy
>>>>>>>>> - POST /autoscalingPolicies with
>>>>>>>>> autoscalingPolicyDefinition.json
>>>>>>>>> 4. Viewing created Autoscaling policies
>>>>>>>>> - GET /autoscalingPolicies,
>>>>>>>>> /autoscalingPolicies/{autoscalePolicyId}
>>>>>>>>> 5. Create a service group definition
>>>>>>>>> - POST /groups with groupDefinition.json
>>>>>>>>> 6. View created groups
>>>>>>>>> - GET /groups, /groups/{groupDefinitionName}
>>>>>>>>> 7. Create an application
>>>>>>>>> - POST /applications
>>>>>>>>> 8. Viewing created application
>>>>>>>>> - GET /applications/, /applications/{applicationId}
>>>>>>>>> 9. Create a deployment policy for an application
>>>>>>>>> 10. View deployment policy
>>>>>>>>> - GET /deploymentPolicies/{deploymentPolicyId}
>>>>>>>>> 11. Deploy an application with the deployment policy
>>>>>>>>> 12. Undeploy an application
>>>>>>>>> 13. Delete deploymentPolicyDefinition
>>>>>>>>> 14. Delete an applicationDefinition
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Currently what's missing from the above is another entity which
>>>>>>>>> depicts an applicationDeployment.
>>>>>>>>>
>>>>>>>>> Then /applications will simply handle the definitions and
>>>>>>>>> /applicationDeployments should handle the actual deploy and
>>>>>>>>> undeployment of
>>>>>>>>> an application based on a deployment policy.
>>>>>>>>>
>>>>>>>>> Since a deployment policy is directly linked to an application it
>>>>>>>>> should be possible to get all deployment policies defined for a
>>>>>>>>> specific
>>>>>>>>> application and then pick one of these for the actual application
>>>>>>>>> deployment.
>>>>>>>>>
>>>>>>>>> Most of this is already there in the current rest api with
>>>>>>>>> different naming. I am working on getting the terminology correct and
>>>>>>>>> also
>>>>>>>>> add the few missing bits.
>>>>>>>>>
>>>>>>>>> Thank you,
>>>>>>>>> Shiro
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Dec 8, 2014 at 7:08 PM, Imesh Gunaratne <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> +1 We might need to clarify how we connect a deployment policy to
>>>>>>>>>> an application according to this model.
>>>>>>>>>>
>>>>>>>>>> On Mon, Dec 8, 2014 at 5:40 PM, Lakmal Warusawithana <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Dec 8, 2014 at 4:55 PM, Shiroshica Kulatilake <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>
>>>>>>>>>>>> While cleaning up the REST API I noticed that we have used the
>>>>>>>>>>>> word "deploy" instead of 'create' in some places.
>>>>>>>>>>>>
>>>>>>>>>>>> We need to use these terms consistently IMO
>>>>>>>>>>>>
>>>>>>>>>>>> As a first start thought of renaming the api methods in the
>>>>>>>>>>>> rest api to reflect this.
>>>>>>>>>>>>
>>>>>>>>>>>> e.g.
>>>>>>>>>>>> Policies = create/delete instead of deploy/undelpoy
>>>>>>>>>>>> Cartridges = create/delete instead of deploy /undeploy
>>>>>>>>>>>> Groups = create/delete instead of deploy/undelpoy
>>>>>>>>>>>> Applications = create, deploy, undeploy and delete
>>>>>>>>>>>>
>>>>>>>>>>>> WDYT ?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> +1
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you,
>>>>>>>>>>>> Shiro
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Lakmal Warusawithana
>>>>>>>>>>> Vice President, Apache Stratos
>>>>>>>>>>> Director - Cloud Architecture; WSO2 Inc.
>>>>>>>>>>> Mobile : +94714289692
>>>>>>>>>>> Blog : http://lakmalsview.blogspot.com/
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Imesh Gunaratne
>>>>>>>>>>
>>>>>>>>>> Technical Lead, WSO2
>>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Shiroshica Kulatilake
>>>>>>>>>
>>>>>>>>> Architect,
>>>>>>>>> WSO2, Inc. http://wso2.com/
>>>>>>>>> Phone: +94 776523867
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Shiroshica Kulatilake
>>>>>>>>
>>>>>>>> Architect,
>>>>>>>> WSO2, Inc. http://wso2.com/
>>>>>>>> Phone: +94 776523867
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Best Regards,
>>>>>>> Nirmal
>>>>>>>
>>>>>>> Nirmal Fernando.
>>>>>>> PPMC Member & Committer of Apache Stratos,
>>>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>>>
>>>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Imesh Gunaratne
>>>>>>
>>>>>> Technical Lead, WSO2
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Reka Thirunavukkarasu
>>>> Senior Software Engineer,
>>>> WSO2, Inc.:http://wso2.com,
>>>> Mobile: +94776442007
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Lakmal Warusawithana
>>> Vice President, Apache Stratos
>>> Director - Cloud Architecture; WSO2 Inc.
>>> Mobile : +94714289692
>>> Blog : http://lakmalsview.blogspot.com/
>>>
>>>
>>
>>
>> --
>> Shiroshica Kulatilake
>>
>> Architect,
>> WSO2, Inc. http://wso2.com/
>> Phone: +94 776523867
>>
>
>
> --
> Imesh Gunaratne
>
> Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>
--
Shiroshica Kulatilake
Architect,
WSO2, Inc. http://wso2.com/
Phone: +94 776523867