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 <im...@apache.org> 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 <nirmal070...@gmail.com>
> wrote:
>
>> Great work Shiro on seeing this through !!
>>
>> On Wed, Dec 10, 2014 at 3:14 PM, Shiroshica Kulatilake <sh...@wso2.com>
>> 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 definition
>>> GET/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 applicationPOST
>>> /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 typeGET
>>> /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 users
>>> PUT/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 <sh...@wso2.com>
>>> 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 <im...@apache.org>
>>>> 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 <lak...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Dec 8, 2014 at 4:55 PM, Shiroshica Kulatilake <sh...@wso2.com
>>>>>> > 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
>

Reply via email to