murano/doc/source/specification/murano-env-temp.rst

19 KiB

Environment template API

Manage environment template definitions in Murano. It is possible to create, update, delete and deploy into OpenStack by translating it into an environment. In addition, applications can be added or delete to the environment template.

Environment Template Properties

Attribute Type Description
id string Unique ID
name string User-friendly name
created datetime Creation date and time in ISO format
updated datetime Modification date and time in ISO format
tenant_id string OpenStack tenant ID
version int Current version
networking string Network settings
description string The environment template specification

Common response codes

Code Description
200 Operation completed successfully
401 User is not authorized to perform the operation

Methods for Environment Template API

List Environments Templates

Request

Method URI Description
GET /templates Get a list of existing environment templates

Parameters:

  • is_public - boolean, indicates whether public environment templates are listed or not. True public environments templates from all tenants are listed. False private environments templates from current tenant are listed empty all tenant templates plus public templates from all tenants are listed

Response

This call returns a list of environment templates. Only the basic properties are returned.

{
    "templates": [
        {
            "updated": "2014-05-14T13:02:54",
            "networking": {},
            "name": "test1",
            "created": "2014-05-14T13:02:46",
            "tenant_id": "726ed856965f43cc8e565bc991fa76c3",
            "version": 0,
            "is_public": false,
            "id": "2fa5ab704749444bbeafe7991b412c33"
        },
        {
            "updated": "2014-05-14T13:02:55",
            "networking": {},
            "name": "test2",
            "created": "2014-05-14T13:02:51",
            "tenant_id": "123452452345346345634563456345346",
            "version": 0,
            "is_public": true,
            "id": "744e44812da84e858946f5d817de4f72"
        }
    ]
}

Create environment template

Attribute Type Description
name string and '-' Environment template name; only alphanumeric characters

Request

Method URI Description
POST /templates Create a new environment template
Content-Type

application/json

Example

{"name": "env_temp_name"}

Response

{
    "id": "ce373a477f211e187a55404a662f968",
    "name": "env_temp_name",
    "created": "2013-11-30T03:23:42Z",
    "updated": "2013-11-30T03:23:44Z",
    "tenant_id": "0849006f7ce94961b3aab4e46d6f229a",
}
Code Description
200 Operation completed successfully
401 User is not authorized to perform the operation
409 The environment template already exists

Get environment templates details

Request

Return information about environment template itself and about applications, including to this environment template.

Method URI Description
GET /templates/{env-temp-id} Obtains the environment template information
  • env-temp-id - environment template ID, required

Response

Content-Type

application/json

{
  "updated": "2015-01-26T09:12:51",
  "networking":
  {
  },
  "name": "template_name",
  "created": "2015-01-26T09:12:51",
  "tenant_id": "00000000000000000000000000000001",
  "version": 0,
  "id": "aa9033ca7ce245fca10e38e1c8c4bbf7",
}
Code Description
200 OK. Environment Template created successfully
401 User is not authorized to access this session
404 The environment template does not exist

Delete environment template

Request

Method URI Description
DELETE /templates/<env-temp-id> Delete the template id

Parameters:

  • env-temp_id - environment template ID, required
Code Description
200 OK. Environment Template created successfully
401 User is not authorized to access this session
404 The environment template does not exist

Adding application to environment template

Request

Method URI Description
POST /templates/{env-temp-id}/services Create a new application

Parameters:

  • env-temp-id - The environment-template id, required
  • payload - the service description
Content-Type

application/json

Example

{
    "instance": {
        "assignFloatingIp": "true",
        "keyname": "mykeyname",
        "image": "cloud-fedora-v3",
        "flavor": "m1.medium",
        "?": {
            "type": "io.murano.resources.LinuxMuranoInstance",
            "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
        }
    },
    "name": "orion",
    "port": "8080",
    "?": {
        "type": "io.murano.apps.apache.Tomcat",
        "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
    }
}

Response

:

{
   "instance":
   {
       "assignFloatingIp": "true",
       "keyname": "mykeyname",
       "image": "cloud-fedora-v3",
       "flavor": "m1.medium",
       "?":
       {
           "type": "io.murano.resources.LinuxMuranoInstance",
           "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
       }
   },
   "name": "orion",
   "?":
   {
       "type": "io.murano.apps.apache.Tomcat",
       "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
   },
   "port": "8080"
}
Code Description
200 OK. Environment Template created successfully
401 User is not authorized to access this session
404 The environment template does not exist

Get applications information from an environment template

Request

Method URI | Description
GET /templates/{env-temp-id}/services
It obtains the service description

Parameters:

  • env-temp-id - The environment template ID, required
Content-Type

application/json

Response

[
   {
       "instance":
       {
           "assignFloatingIp": "true",
           "keyname": "mykeyname",
           "image": "cloud-fedora-v3",
           "flavor": "m1.medium",
           "?":
           {
               "type": "io.murano.resources.LinuxMuranoInstance",
               "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
           }
       },
       "name": "tomcat",
       "?":
       {
           "type": "io.murano.apps.apache.Tomcat",
           "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
       },
       "port": "8080"
   },
   {
       "instance": "ef984a74-29a4-45c0-b1dc-2ab9f075732e",
       "password": "XXX",
       "name": "mysql",
       "?":
       {
           "type": "io.murano.apps.database.MySQL",
           "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
       }
   }
]
Code Description
200 OK. Environment Template created successfully
401 User is not authorized to access this session
404 The environment template does not exist

Create an environment from an environment template

Request

Method URI | Description
POST /templates/{env-temp-id}/create- environment| Create an environment

Parameters:

  • env-temp-id - The environment template ID, required

Payload:

  • 'environment name': The environment name to be created.
Content-Type

application/json

Example

{
    "name": "environment_name"
}

Response

{
    "environment_id": "aa90fadfafca10e38e1c8c4bbf7",
    "name": "environment_name",
    "created": "2015-01-26T09:12:51",
    "tenant_id": "00000000000000000000000000000001",
    "version": 0,
    "session_id": "adf4dadfaa9033ca7ce245fca10e38e1c8c4bbf7",
}
Code Description
200 OK. Environment template created successfully
401 User is not authorized to access this session
404 The environment template does not exist
409 The environment already exists

POST /templates/{env-temp-id}/clone

Request

Method URI Description
POST /templates/{env-temp-id}/clone It clones a public template from one tenant to another

Parameters:

  • env-temp-id - environment template ID, required

Example Payload :

{
    'name': 'cloned_env_template_name'
}
Content-Type

application/json

Response

{
   "updated": "2015-01-26T09:12:51",
   "name": "cloned_env_template_name",
   "created": "2015-01-26T09:12:51",
   "tenant_id": "00000000000000000000000000000001",
   "version": 0,
   "is_public": False,
   "id": "aa9033ca7ce245fca10e38e1c8c4bbf7",
}
Code Description
200 OK. Environment Template cloned successfully
401 User is not authorized to access this session
403 User has no access to these resources
404 The environment template does not exist
409 Conflict. The environment template name already exists