- 
                Notifications
    
You must be signed in to change notification settings  - Fork 10
 
REST: Environments related API
Path: /rest/projects/(projectId)/envs
Type: GET
Path parameters
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id of the project envs belong to | 
Request parameters
| Parameter | Type | Mandatory | Description | 
|---|---|---|---|
| filter | String | N | 
Sets filter's values. Currently possible filtering on the status of the environment.
 Example: filter=statuses[Destroyed,Broken]  | 
| sorting | String | N | Sorting by entity field value. By default ordering direction is ascending. Use prefix '~' to produce result in descending order. Example: sorting=~name | 
Example results
{
    "items": [
        {
         "id" : 1,
         "name" : "test",
         "status" : "Ready",
         "projectId" : 1,
         "configuration" : "Default",
         "creator" : "genesis",
         "creationTime" : 1360066307030,
         "modifiedBy" : "genesis",
         "modificationTime" : 1360066307158,
         "templateName" : "Simple",
         "templateVersion" : "0.1",
         "attributes" : {},
         "links" : [
            {
               "rel" : "self",
               "href" : "http://localhost:8081/rest/projects/1/envs/1",
               "methods" : [
                  "get"
               ],
               "type" : "application/vnd.griddynamics.genesis.Environment+json"
            }
         ],
        }
    ],
    "links" : [
      {
         "rel" : "self",
         "href" : "http://localhost:8081/rest/projects/1/envs",
         "methods" : [
            "post"
         ],
         "type" : "application/vnd.griddynamics.genesis.Environment+json"
      }
   ]
}
Path: /rest/projects/(projectId)/envs
Type: POST
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the created env should belong to | 
Request body structure
 Request body consists form a single JSON map contains the following entries:
| Entry name | Type | Description | 
|---|---|---|
| envName | String | Environment name | 
| creator | String | Environment creator name. Parameter is optional. Service uses current user identity to set creator. | 
| templateName | String | Name of the Environment template to use | 
| templateVersion | String | Version of the Environment template to use | 
| configId | Integer | Configuration (environment) id. Optional parameter. If omitted, default environment is used. | 
| variables | Map of String pairs | Creation workflow variable values customized by user | 
| timeToLive | Integer | time to live of the environment (in minutes). optional | 
Example request :
{
  "envName" : "erlt",
  "templateName" : "Erlang",
  "templateVersion" : "2.0",
  "variables":{"nodesCount": 4}
}Example results
Sucessful environment creation
{
    "serviceErrors":{},
    "variablesErrors":{},
    "compoundServiceErrors":[],
    "compoundVariablesErrors":[],
    "isSuccess":true
}Environment creation failed, environment with the same name already exists
{
    "serviceErrors":{
        "envName":"Environment with the same name already exists"
    },
    "variablesErrors":{},
    "compoundServiceErrors":[],
    "compoundVariablesErrors":[],
    "isSuccess":false
}Environment creation failed, required variable is not set
{
    "serviceErrors":{},
    "variablesErrors":{
        "nodesCount":"Variable 'nodesCount' is not set"
    },
    "compoundServiceErrors":[],
    "compoundVariablesErrors":[],
    "isSuccess":false
}Path: /rest/projects/(projectId)/envs/(environment id)
Type: DELETE
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the created env should belong to | 
| environment id | Number | Identifier of the environment to be deleted | 
Example results: see example results for environment creation
Path: /rest/projects/(projectId)/envs/(environment id)
Type: GET
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment | 
**Example results**
{
   "envId" : 1,
   "name" : "test",
   "status" : "Ready",
   "projectId" : 1,
   "creator" : "genesis",
   "templateName" : "Simple",
   "configuration" : "Default",
   "workflows" : [
      {
         "name" : "create",
         "variables" : []
      },
      {
         "name" : "destroy",
         "variables" : []
      }
   ],
   "modifiedBy" : "genesis",
   "destroyWorkflowName" : "destroy",
   "creationTime" : 1360066307030,
   "vms" : [],
   "historyCount" : 1,
   "createWorkflowName" : "create",
   "modificationTime" : 1360066307158,
   "currentWorkflowFinishedActionsCount" : 0,
   "servers" : [],
   "attributes" : {},
   "templateVersion" : "0.1",
   "links" : [
       {
         "rel" : "self",
         "href" : "http://localhost:8081/rest/projects/1/envs/1",
         "methods" : [
            "get",
            "put",
            "delete"
         ],
         "type" : "application/vnd.griddynamics.genesis.EnvironmentDetails+json"
      },
      {
         "rel" : "collection",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/history",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.WorkflowHistory+json"
      },
      {
         "rel" : "collection",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/actions",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.Action+json"
      },
      {
         "rel" : "collection",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/workflows",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.Workflow+json"
      }
   ]
}
Path: /rest/projects/(projectId)/envs/(environment id)/actions
Type: GET
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment | 
Example for broken environment
{
   "items" : [
      {
         "name" : "reset",
         "links" : [
            {
               "rel" : "self",
               "href" : "http://localhost:8081/rest/projects/1/envs/1/actions/reset",
               "methods" : [
                  "post"
               ],
               "type" : "application/vnd.griddynamics.genesis.Action+json"
            }
         ]
      }
   ],
   "links" : [
      {
         "rel" : "self",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/actions",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.Action+json"
      }
   ]
}Example for environment that runs workflow (status 'Busy')
{
   "items" : [
      {
         "name" : "cancel",
         "links" : [
            {
               "rel" : "self",
               "href" : "http://localhost:8081/rest/projects/1/envs/1/actions/cancel",
               "methods" : [
                  "post"
               ],
               "type" : "application/vnd.griddynamics.genesis.Action+json"
            }
         ]
      }
   ],
   "links" : [
      {
         "rel" : "self",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/actions",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.Action+json"
      }
   ]
}Path: /rest/projects/(projectId)/envs/(environment id)/actions/(action name)
Type: POST
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment | 
| action name | String | Action name (see previous section) | 
Request body
None
Example results: see examples of common result object
Path: /rest/projects/(projectId)/envs/(environment id)/history?page_offset=(number)&page_length=(number)
Type: GET
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment | 
Request parameters:
| Parameter | Type | Description | 
|---|---|---|
| page_offset | Number | number of the first record in a selection | 
| page_length | Number | count of the records in a selection | 
Example results
{
    "history":[
        {
            "name":"destroy",
            "status":"Failed",
            "stepsCompleted":0.0,
            "steps":[
                {
                    "stepId":"52",
                    "phase":"destroy",
                    "status":"Failed",
                    "details":"Chef environment destruction"
                },
                {
                    "stepId":"53",
                    "phase":"destroy",
                    "status":"Succeed",
                    "details":"Environment destruction"
                }
            ],
            "executionStartedTimestamp":1341311242607
        },
        {
            "name":"create",
            "status":"Failed",
            "stepsCompleted":0.43,
            "steps":[
                {
                   "stepId":"41",
                   "phase":"provision",
                   "status":"Succeed",
                   "details":"Virtual machine(s) provisioning { quantity = 1, role = dbnode, image id = 45, hardware id = 3, ip address = unspecified, security group = unspecified, instance id = unspecified }"
                },
                {
                   "stepId":"42",
                   "phase":"provision",
                   "status":"Succeed",
                   "details":"Virtual machine(s) provisioning { quantity = 1, role = xwikinode, image id = 45, hardware id = 3, ip address = unspecified, security group = unspecified, instance id = unspecified }"
                },
                {
                   "stepId":"43",
                   "phase":"provision",
                   "status":"Succeed",
                   "details":"Virtual machine(s) provisioning { quantity = 1, role = lbnode, image id = 45, hardware id = 3, ip address = unspecified, security group = unspecified, instance id = unspecified }"
                },
                {
                   "stepId":"44",
                   "phase":"createdatabag",
                   "status":"Failed",
                   "details":"Chef databag creation { databag = xwiki }"
                },
                {
                   "stepId":"45",
                   "phase":"deploydb",
                   "status":"Requested",
                   "details":"Chef recipe execution { receipes = [ recipe[xwiki::db] ] }"
                },
                {
                   "stepId":"46",
                   "phase":"deployxwiki",
                   "status":"Requested",
                   "details":"Chef recipe execution { receipes = [ recipe[xwiki::app] ] }"
                },
                {
                   "stepId":"47",
                   "phase":"deploylb",
                   "status":"Requested",
                   "details":"Chef recipe execution { receipes = [ recipe[xwiki::lb] ] }"
                }
            ],
            "executionStartedTimestamp":1341310956532
        }
    ],
    "totalCount":2,
    "links" : [
      {
         "rel" : "self",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/history",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.WorkflowHistory+json"
      }
   ]
}Path: /rest/projects/(projectId)/envs/(environment id)/workflows
Type: GET
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment | 
Example result
{
   "items" : [
      {
         "name" : "destroy",
         "variables" : [],
         "links" : [
            {
               "rel" : "self",
               "href" : "http://localhost:8081/rest/projects/1/envs/1/workflows/destroy",
               "methods" : [
                  "post"
               ],
               "type" : "application/vnd.griddynamics.genesis.Workflow+json"
            }
         ]
      }
   ],
   "links" : [
      {
         "rel" : "self",
         "href" : "http://localhost:8081/rest/projects/1/envs/1/workflows",
         "methods" : [
            "get"
         ],
         "type" : "application/vnd.griddynamics.genesis.Workflow+json"
      }
   ]
}Path: /rest/projects/(projectId)/envs/(environment id)/timeToLive
Type: PUT
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment | 
Request body structure
Request body consists form a single JSON object that contains single key with predefined value:
| Entry name | Type | Description | 
|---|---|---|
| value | Number | New time to live value in minutes | 
Example request
{
  "value": 5
}Path: /rest/projects/(projectId)/envs/(environment id)/timeToLive
Method Type: DELETE
Path parameters:
| Parameter | Type | Description | 
|---|---|---|
| projectId | Number | project id the env belong to | 
| environment id | Number | Identifier of the environment |