Great work Shiro..!!! The paths are very consistent now..

Thanks,
Reka

On Thu, Dec 11, 2014 at 11:37 AM, Mariangela Hills <mariang...@wso2.com>
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 <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
>>>> 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 created
>>>> GET/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
>>
>
>


-- 
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Reply via email to