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 to or deleted from 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 project

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 projects are listed. False private environments templates from current project are listed empty all project templates plus public templates from all projects 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. Get environment template details 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

Response

Code

Description

200

OK. Environment Template deleted 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. Application added successfully

401

User is not authorized to access this session

404

The environment template does not exist

Delete application from an environment template

Request

Method

URI

Description

DELETE

/templates/{env-temp-id}/services/{app-id}

Delete application with Specified id

Parameters:

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

  • app-id - The application ID, required

Content-Type

application/json

Response

{
   "updated": "2015-01-26T09:12:51",
   "services": [],
   "name": "template_name",
   "created": "2015-01-26T09:12:51",
   "tenant_id": "00000000000000000000000000000001",
   "version": 0,
   "id": "aa9033ca7ce245fca10e38e1c8c4bbf7",
}

Code

Description

200

OK. Application deleted successfully

401

User is not authorized to access this session

404

The application 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. Application information received successfully

401

User is not authorized to access this session

404

The environment template does not exist

Update applications information from an environment template

Request

Method

URI

Description

PUT

/templates/{env-temp-id}/services/{service-id}

It updates the service description

Parameters:

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

  • service-id - The service ID to be updated

  • 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 updated 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 created from template 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 project 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