OpenStack

OpenStack is a toolkit for building private and public clouds. This application adds support for managing OpenStack deployments - tenants, instances, security groups and networks.

/api/openstack/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • project – link to /api/projects/<uuid>/
  • customerlink to /api/customers/<uuid>/
  • settingslink to /api/service-settings/<uuid>/
  • backend_urlURL (Keystone auth URL (e.g. http://keystone.example.com:5000/v2.0))
  • usernamestring (Administrative user)
  • passwordstring
  • available_for_all – boolean (Service will be automatically added to all customers projects if it is available for all)
  • scope – link to any: /api/openstack-instances/<uuid>/, /api/openstack-tenants/<uuid>/, /api/openstack-volumes/<uuid>/, /api/openstack-snapshots/<uuid>/, /api/openstack-dr-backups/<uuid>/ (VM that contains service)
  • availability_zone – string (Default availability zone for provisioned instances)
  • tenant_namestring ( (default: “admin”))
  • longitude – string (Longitude of the datacenter (e.g. -74.005941))
  • is_admin – string (Configure service with admin privileges (default: true))
  • external_network_id – string (ID of OpenStack external network that will be connected to tenants)
  • latitude – string (Latitude of the datacenter (e.g. 40.712784))

Filter fields:

  • ?customer = UUIDFilter
  • ?name = string
  • ?settings = link
  • ?project_uuid = UUIDFilter
  • ?project = link
  • ?tag = ModelMultipleChoiceField
  • ?rtag = ModelMultipleChoiceField
  • ?shared = boolean
  • ?type = ServiceTypeFilter

To create a service, issue a POST to /api/openstack/ as a customer owner.

You can create service based on shared service settings. Example:

POST /api/openstack/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "Common OpenStack",
    "customer": "http://example.com/api/customers/1040561ca9e046d2b74268600c7e1105/",
    "settings": "http://example.com/api/service-settings/93ba615d6111466ebe3f792669059cb4/"
}

Or provide your own credentials. Example:

POST /api/openstack/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "My OpenStack",
    "customer": "http://example.com/api/customers/1040561ca9e046d2b74268600c7e1105/",
    "backend_url": "http://keystone.example.com:5000/v2.0",
    "username": "admin",
    "password": "secret"
}

/api/openstack/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • available_for_all – boolean (Service will be automatically added to all customers projects if it is available for all)

To update OpenStack service issue PUT or PATCH against /api/openstack/<service_uuid>/ as a customer owner. You can update service’s name and available_for_all fields.

Example of a request:

PUT /api/openstack/c6526bac12b343a9a65c4cd6710666ee/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "My OpenStack2"
}

To remove OpenStack service, issue DELETE against /api/openstack/<service_uuid>/ as staff user or customer owner.

/api/openstack/<uuid>/link/

Methods: GET, POST

To get a list of resources available for import, run GET against /<service_endpoint>/link/ as an authenticated user. Optionally project_uuid parameter can be supplied for services requiring it like OpenStack.

To import (link with NodeConductor) resource issue POST against the same endpoint with resource id.

POST /api/openstack/08039f01c9794efc912f1689f4530cf0/link/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "backend_id": "bd5ec24d-9164-440b-a9f2-1b3c807c5df3",
    "project": "http://example.com/api/projects/e5f973af2eb14d2d8c38d62bcbaccb33/"
}

/api/openstack/<uuid>/managed_resources/

Methods: GET

/api/openstack/<uuid>/unlink/

Methods: POST

Unlink all related resources, service project link and service itself.

/api/openstack-volumes/

SLA filter

Allows to filter or sort resources by actual_sla Default period is current year and month.

Example query parameters for filtering list of OpenStack instances:

/api/openstack-instances/?actual_sla=90&period=2016-02

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=actual_sla&period=2016-02

Monitoring filter

Filter and order resources by monitoring item. For example, given query dictionary

{
    'monitoring__installation_state': True
}

it produces following query

{
    'monitoring_item__name': 'installation_state',
    'monitoring_item__value': True
}

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=monitoring__installation_state

Tags ordering. Filtering for complex tags.

Example:
?tag__license-os=centos7 - will filter objects with tag “license-os:centos7”.
Allow to define next parameters in view:
  • tags_filter_db_field - name of tags field in database. Default: tags.
  • tags_filter_request_field - name of tags in request. Default: tag.

In PostgreSQL NULL values come last with ascending sort order. In MySQL NULL values come first with ascending sort order. This filter provides unified sorting for both databases. Supported actions and methods:

/api/openstack-volumes/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • description – string
  • tenantlink to /api/openstack-tenants/<uuid>/
  • size – integer (Size in MiB)
  • metadata – string
  • image – link to /api/openstack-images/<uuid>/
  • type – string

Filter fields:

  • ?customer_native_name = string
  • ?service_settings_name = string
  • ?service_name = string
  • ?customer_uuid = UUIDFilter
  • ?customer_abbreviation = string
  • ?tag = ModelMultipleChoiceField
  • ?customer_name = string
  • ?uuid = UUIDFilter
  • ?project_group = UUIDFilter
  • ?instance = link
  • ?state = choice('Creating', 'Creation Scheduled', 'Deleting', 'Deletion Scheduled', 'Erred', 'OK', 'Update Scheduled', 'Updating')
  • ?rtag = ModelMultipleChoiceField
  • ?instance_uuid = UUIDFilter
  • ?project_name = string
  • ?description = string
  • ?service_uuid = UUIDFilter
  • ?service_settings_uuid = UUIDFilter
  • ?customer = UUIDFilter
  • ?name = string
  • ?project_uuid = UUIDFilter
  • ?project = UUIDFilter
  • ?project_group_uuid = UUIDFilter
  • ?project_group_name = string

Order fields: created, customer_abbreviation, customer_name, customer_native_name, name, project_group_name, project_name, state

/api/openstack-volumes/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • description – string
  • metadata – string

/api/openstack-volumes/<uuid>/attach/

Methods: POST

Attach volume to instance

/api/openstack-volumes/<uuid>/detach/

Methods: POST

Detach instance from volume

/api/openstack-volumes/<uuid>/extend/

Methods: POST

Increase volume size

/api/openstack-volumes/<uuid>/meter-samples/<name>/

Methods: GET, POST, PUT, PATCH, DELETE

/api/openstack-volumes/<uuid>/meters/

Methods: GET

To list available meters for the resource, make GET request to /api/<resource_type>/<uuid>/meters/.

/api/openstack-volumes/<uuid>/pull/

Methods: POST

/api/openstack-volumes/<uuid>/snapshot/

Methods: POST

Create snapshot from volume

/api/openstack-tenants/

SLA filter

Allows to filter or sort resources by actual_sla Default period is current year and month.

Example query parameters for filtering list of OpenStack instances:

/api/openstack-instances/?actual_sla=90&period=2016-02

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=actual_sla&period=2016-02

Monitoring filter

Filter and order resources by monitoring item. For example, given query dictionary

{
    'monitoring__installation_state': True
}

it produces following query

{
    'monitoring_item__name': 'installation_state',
    'monitoring_item__value': True
}

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=monitoring__installation_state

Tags ordering. Filtering for complex tags.

Example:
?tag__license-os=centos7 - will filter objects with tag “license-os:centos7”.
Allow to define next parameters in view:
  • tags_filter_db_field - name of tags field in database. Default: tags.
  • tags_filter_request_field - name of tags in request. Default: tag.

In PostgreSQL NULL values come last with ascending sort order. In MySQL NULL values come first with ascending sort order. This filter provides unified sorting for both databases. Supported actions and methods:

/api/openstack-tenants/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • description – string
  • service_project_linklink to /api/openstack-service-project-link/<pk>/
  • extra_configuration – JSONField
  • availability_zone – string (Optional availability group. Will be used for all instances provisioned in this tenant)
  • user_username – string

Filter fields:

  • ?customer = UUIDFilter
  • ?customer_native_name = string
  • ?project_name = string
  • ?service_settings_name = string
  • ?project_group = UUIDFilter
  • ?project_uuid = UUIDFilter
  • ?service_uuid = UUIDFilter
  • ?service_settings_uuid = UUIDFilter
  • ?customer_uuid = UUIDFilter
  • ?uuid = UUIDFilter
  • ?customer_abbreviation = string
  • ?name = string
  • ?project = UUIDFilter
  • ?state = choice('Creating', 'Creation Scheduled', 'Deleting', 'Deletion Scheduled', 'Erred', 'OK', 'Update Scheduled', 'Updating')
  • ?tag = ModelMultipleChoiceField
  • ?project_group_uuid = UUIDFilter
  • ?rtag = ModelMultipleChoiceField
  • ?service_name = string
  • ?project_group_name = string
  • ?description = string
  • ?customer_name = string

Order fields: created, customer_abbreviation, customer_name, customer_native_name, name, project_group_name, project_name, state

/api/openstack-tenants/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • description – string
  • extra_configuration – JSONField
  • availability_zone – string (Optional availability group. Will be used for all instances provisioned in this tenant)

/api/openstack-tenants/<uuid>/allocate_floating_ip/

Methods: POST

/api/openstack-tenants/<uuid>/create_service/

Methods: POST

Create non-admin service with credentials from the tenant

/api/openstack-tenants/<uuid>/external_network/

Methods: POST, DELETE

In order to create external network a user with admin role or staff should issue a POST request to /api/openstack-tenants/<uuid>/external_network/. The body of the request should consist of following parameters:

  • vlan_id (required if vxlan_id is not provided) - VLAN ID of the external network.
  • vxlan_id (required if vlan_id is not provided) - VXLAN ID of the external network.
  • network_ip (required) - network IP address for floating IP range.
  • network_prefix (required) - prefix of the network address for the floating IP range.
  • ips_count (optional) - number of floating IPs to create automatically.

Example of a valid request (token is user specific):

POST /api/openstack-tenants/c84d653b9ec92c6cbac41c706593e66f567a7fa4/external_network/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: example.com

{
    "vlan_id": "a325e56a-4689-4d10-abdb-f35918125af7",
    "network_ip": "10.7.122.0",
    "network_prefix": "26",
    "ips_count": "6"
}

In order to delete external network, a user with admin role or staff should issue a DELETE request to /api/openstack-tenants/<uuid>/external_network/ without any parameters in the request body.

/api/openstack-tenants/<uuid>/pull/

Methods: POST

/api/openstack-tenants/<uuid>/set_quotas/

Methods: POST

A quota can be set for a particular tenant. Only staff users can do that. In order to set quota submit POST request to /api/openstack-tenants/<uuid>/set_quotas/. The quota values are propagated to the backend.

The following quotas are supported. All values are expected to be integers:

  • instances - maximal number of created instances.
  • ram - maximal size of ram for allocation. In MiB.
  • storage - maximal size of storage for allocation. In MiB.
  • vcpu - maximal number of virtual cores for allocation.
  • security_group_count - maximal number of created security groups.
  • security_group_rule_count - maximal number of created security groups rules.
  • volumes - maximal number of created volumes.
  • snapshots - maximal number of created snapshots.

It is possible to update quotas by one or by submitting all the fields in one request. NodeConductor will attempt to update the provided quotas. Please note, that if provided quotas are conflicting with the backend (e.g. requested number of instances is below of the already existing ones), some quotas might not be applied.

Example of a valid request (token is user specific):

POST /api/openstack-tenants/c84d653b9ec92c6cbac41c706593e66f567a7fa4/set_quotas/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: example.com

{
    "instances": 30,
    "ram": 100000,
    "storage": 1000000,
    "vcpu": 30,
    "security_group_count": 100,
    "security_group_rule_count": 100,
    "volumes": 10,
    "snapshots": 20
}

Response code of a successful request is 202 ACCEPTED. In case tenant is in a non-stable status, the response would be 409 CONFLICT. In this case REST client is advised to repeat the request after some time. On successful completion the task will synchronize quotas with the backend.

/api/openstack-snapshots/

SLA filter

Allows to filter or sort resources by actual_sla Default period is current year and month.

Example query parameters for filtering list of OpenStack instances:

/api/openstack-instances/?actual_sla=90&period=2016-02

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=actual_sla&period=2016-02

Monitoring filter

Filter and order resources by monitoring item. For example, given query dictionary

{
    'monitoring__installation_state': True
}

it produces following query

{
    'monitoring_item__name': 'installation_state',
    'monitoring_item__value': True
}

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=monitoring__installation_state

Tags ordering. Filtering for complex tags.

Example:
?tag__license-os=centos7 - will filter objects with tag “license-os:centos7”.
Allow to define next parameters in view:
  • tags_filter_db_field - name of tags field in database. Default: tags.
  • tags_filter_request_field - name of tags in request. Default: tag.

In PostgreSQL NULL values come last with ascending sort order. In MySQL NULL values come first with ascending sort order. This filter provides unified sorting for both databases. Supported actions and methods:

/api/openstack-snapshots/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • description – string
  • metadata – string

Filter fields:

  • ?customer_native_name = string
  • ?service_settings_name = string
  • ?service_name = string
  • ?customer_uuid = UUIDFilter
  • ?customer_abbreviation = string
  • ?tag = ModelMultipleChoiceField
  • ?customer_name = string
  • ?uuid = UUIDFilter
  • ?project_group = UUIDFilter
  • ?state = choice('Deleting', 'Deletion Scheduled', 'Erred', 'Offline', 'Online', 'Provisioning', 'Provisioning Scheduled', 'Resizing', 'Resizing Scheduled', 'Restarting', 'Restarting Scheduled', 'Starting', 'Starting Scheduled', 'Stopping', 'Stopping Scheduled')
  • ?rtag = ModelMultipleChoiceField
  • ?project_name = string
  • ?description = string
  • ?service_uuid = UUIDFilter
  • ?service_settings_uuid = UUIDFilter
  • ?backup_uuid = UUIDFilter
  • ?customer = UUIDFilter
  • ?name = string
  • ?project_uuid = UUIDFilter
  • ?backup = link
  • ?source_volume = link
  • ?project = UUIDFilter
  • ?project_group_uuid = UUIDFilter
  • ?project_group_name = string
  • ?source_volume_uuid = UUIDFilter

Order fields: created, customer_abbreviation, customer_name, customer_native_name, name, project_group_name, project_name, state

/api/openstack-snapshots/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • description – string
  • metadata – string

/api/openstack-snapshots/<uuid>/meter-samples/<name>/

Methods: GET, POST, PUT, PATCH, DELETE

/api/openstack-snapshots/<uuid>/meters/

Methods: GET

To list available meters for the resource, make GET request to /api/<resource_type>/<uuid>/meters/.

/api/openstack-snapshots/<uuid>/pull/

Methods: POST

/api/openstack-security-groups/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-security-groups/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • description – string
  • ruleslist of [{to_port: integer, cidr: string, from_port: integer, protocol: choice('icmp', 'tcp', 'udp')}]
  • tenantlink to /api/openstack-tenants/<uuid>/

Filter fields:

  • ?name = string
  • ?service = UUIDFilter
  • ?project = UUIDFilter
  • ?state = choice('Creating', 'Creation Scheduled', 'Deleting', 'Deletion Scheduled', 'Erred', 'OK', 'Update Scheduled', 'Updating')
  • ?service_project_link = link
  • ?tenant_uuid = UUIDFilter
  • ?settings_uuid = UUIDFilter
  • ?description = string

To get a list of security groups and security group rules, run GET against /api/openstack-security-groups/ as authenticated user. To create a new security group, issue a POST with security group details to /api/openstack-security-groups/. This will create new security group and start its synchronization with OpenStack.

Example of a request:

POST /api/openstack-security-groups/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "Security group name",
    "description": "description",
    "rules": [
        {
            "protocol": "tcp",
            "from_port": 1,
            "to_port": 10,
            "cidr": "10.1.1.0/24"
        },
        {
            "protocol": "udp",
            "from_port": 10,
            "to_port": 8000,
            "cidr": "10.1.1.0/24"
        }
    ],
    "service_project_link": {
        "url": "http://example.com/api/openstack-service-project-link/6c9b01c251c24174a6691a1f894fae31/",
    },
    "tenant": "http://example.com/api/openstack-tenants/33bf0f83d4b948119038d6e16f05c129/"
}

Security group name, description and rules can be updated. To execute update request make PATCH request with details to /api/openstack-security-groups/<security-group-uuid>/. This will update security group in database and start its synchronization with OpenStack. To leave old security groups add old rule id to list of new rules (note that existing rule cannot be updated, if endpoint receives id and some other attributes, it uses only id for rule identification).

PATCH /api/openstack-security-groups/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "Security group new name",
    "rules": [
        {
            "id": 13,
        },
        {
            "protocol": "udp",
            "from_port": 10,
            "to_port": 8000,
            "cidr": "10.1.1.0/24"
        }
    ],
}

To schedule security group deletion - issue DELETE request against /api/openstack-security-groups/<security-group-uuid>/. Endpoint will return 202 if deletion was scheduled successfully.

/api/openstack-security-groups/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • description – string
  • ruleslist of [{to_port: integer, cidr: string, from_port: integer, protocol: choice('icmp', 'tcp', 'udp')}]

To create a new security group, issue a POST with security group details to /api/openstack-security-groups/. This will create new security group and start its synchronization with OpenStack.

Example of a request:

POST /api/openstack-security-groups/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "Security group name",
    "description": "description",
    "rules": [
        {
            "protocol": "tcp",
            "from_port": 1,
            "to_port": 10,
            "cidr": "10.1.1.0/24"
        },
        {
            "protocol": "udp",
            "from_port": 10,
            "to_port": 8000,
            "cidr": "10.1.1.0/24"
        }
    ],
    "service_project_link": {
        "url": "http://example.com/api/openstack-service-project-link/6c9b01c251c24174a6691a1f894fae31/",
    },
    "tenant": "http://example.com/api/openstack-tenants/33bf0f83d4b948119038d6e16f05c129/"
}

Security group name, description and rules can be updated. To execute update request make PATCH request with details to /api/openstack-security-groups/<security-group-uuid>/. This will update security group in database and start its synchronization with OpenStack. To leave old security groups add old rule id to list of new rules (note that existing rule cannot be updated, if endpoint receives id and some other attributes, it uses only id for rule identification).

PATCH /api/openstack-security-groups/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "Security group new name",
    "rules": [
        {
            "id": 13,
        },
        {
            "protocol": "udp",
            "from_port": 10,
            "to_port": 8000,
            "cidr": "10.1.1.0/24"
        }
    ],
}

To schedule security group deletion - issue DELETE request against /api/openstack-security-groups/<security-group-uuid>/. Endpoint will return 202 if deletion was scheduled successfully.

/api/openstack-licenses/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-licenses/

Methods: GET

Licenses can be listed by sending GET to /api/openstack-licenses/. Filtering by customers is supported through ?customer=CUSTOMER_UUID filter.

/api/openstack-licenses/stats/

Methods: GET

It is possible to issue queries to NodeConductor to get aggregate statistics about instance licenses. Query is done against /api/openstack-licenses/stats/ endpoint. Queries can be run by all users with answers scoped by their visibility permissions of instances. By default queries are aggregated by license name.

Supported aggregate queries are:

  • ?aggregate=name - by license name
  • ?aggregate=type - by license type
  • ?aggregate=project_group - by project groups
  • ?aggregate=project - by projects
  • ?aggregate=customer - by customer

Note: aggregate parameters can be combined to aggregate by several fields. For example, ?aggregate=name&aggregate=type&aggregate=project will aggregate result by license name, license_type and project group.

/api/openstack-ip-mappings/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-ip-mappings/

Methods: GET, POST

Supported fields for creation:

  • public_ipIP address
  • private_ipIP address
  • projectlink to /api/projects/<uuid>/

Filter fields:

  • ?project = UUIDFilter
  • ?public_ip = string
  • ?private_ip = string

/api/openstack-ip-mappings/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • public_ipIP address
  • private_ipIP address
  • projectlink to /api/projects/<uuid>/

/api/openstack-instances/

OpenStack instance permissions

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

OpenStack instance states

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE.

SLA filter

Allows to filter or sort resources by actual_sla Default period is current year and month.

Example query parameters for filtering list of OpenStack instances:

/api/openstack-instances/?actual_sla=90&period=2016-02

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=actual_sla&period=2016-02

Monitoring filter

Filter and order resources by monitoring item. For example, given query dictionary

{
    'monitoring__installation_state': True
}

it produces following query

{
    'monitoring_item__name': 'installation_state',
    'monitoring_item__value': True
}

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=monitoring__installation_state

Tags ordering. Filtering for complex tags.

Example:
?tag__license-os=centos7 - will filter objects with tag “license-os:centos7”.
Allow to define next parameters in view:
  • tags_filter_db_field - name of tags field in database. Default: tags.
  • tags_filter_request_field - name of tags in request. Default: tag.

In PostgreSQL NULL values come last with ascending sort order. In MySQL NULL values come first with ascending sort order. This filter provides unified sorting for both databases. Supported actions and methods:

/api/openstack-instances/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • description – string
  • service_project_linklink to /api/openstack-service-project-link/<pk>/
  • ssh_public_key – link to /api/keys/<uuid>/
  • user_data – string (Additional data that will be added to instance on provisioning)
  • flavorlink to /api/openstack-flavors/<uuid>/
  • imagelink to /api/openstack-images/<uuid>/
  • system_volume_sizeinteger
  • data_volume_size – integer
  • skip_external_ip_assignment – boolean
  • security_groups – list of [{}]
  • tenantlink to /api/openstack-tenants/<uuid>/
  • floating_ip – link to /api/openstack-floating-ips/<uuid>/

Filter fields:

  • ?customer_native_name = string
  • ?service_settings_name = string
  • ?service_name = string
  • ?customer_uuid = UUIDFilter
  • ?customer_abbreviation = string
  • ?tag = ModelMultipleChoiceField
  • ?customer_name = string
  • ?uuid = UUIDFilter
  • ?project_group = UUIDFilter
  • ?state = choice('Deleting', 'Deletion Scheduled', 'Erred', 'Offline', 'Online', 'Provisioning', 'Provisioning Scheduled', 'Resizing', 'Resizing Scheduled', 'Restarting', 'Restarting Scheduled', 'Starting', 'Starting Scheduled', 'Stopping', 'Stopping Scheduled')
  • ?rtag = ModelMultipleChoiceField
  • ?project_name = string
  • ?description = string
  • ?service_uuid = UUIDFilter
  • ?service_settings_uuid = UUIDFilter
  • ?customer = UUIDFilter
  • ?name = string
  • ?project_uuid = UUIDFilter
  • ?project = UUIDFilter
  • ?project_group_uuid = UUIDFilter
  • ?project_group_name = string
  • ?tenant_uuid = UUIDFilter

Order fields: cores, created, customer_abbreviation, customer_name, customer_native_name, data_volume_size, name, project__name, project_group_name, ram, state, system_volume_size

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. To get a list of instances, run GET against /api/openstack-instances/ as authenticated user. Note that a user can only see connected instances:

  • instances that belong to a project where a user has a role.
  • instances that belong to a customer that a user owns.

A new instance can be created by users with project administrator role or with staff privilege (is_staff=True).

Example of a valid request:

POST /api/openstack-instances/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "test VM",
    "description": "sample description",
    "image": "http://example.com/api/openstack-images/1ee380602b6283c446ad9420b3230bf0/",
    "flavor": "http://example.com/api/openstack-flavors/1ee385bc043249498cfeb8c7e3e079f0/",
    "ssh_public_key": "http://example.com/api/keys/6fbd6b24246f4fb38715c29bafa2e5e7/",
    "service_project_link": "http://example.com/api/openstack-service-project-link/674/",
    "tenant": "http://example.com/api/openstack-tenants/33bf0f83d4b948119038d6e16f05c129/",
    "data_volume_size": 1024,
    "system_volume_size": 20480,
    "security_groups": [
        { "url": "http://example.com/api/security-groups/16c55dad9b3048db8dd60e89bd4d85bc/"},
        { "url": "http://example.com/api/security-groups/232da2ad9b3048db8dd60eeaa23d8123/"}
    ]
}

Deletion of an instance is done through sending a DELETE request to the instance URI. Valid request example (token is user specific):

DELETE /api/openstack-instances/abceed63b8e844afacd63daeac855474/ HTTP/1.1
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

Only stopped instances or instances in ERRED state can be deleted.

By default when instance is destroyed, all data volumes attached to it are destroyed too. In order to preserve data volumes use query parameter ?delete_volumes=false In this case data volumes are detached from the instance and then instance is destroyed. Note that system volume is deleted anyway. For example:

DELETE /api/openstack-instances/abceed63b8e844afacd63daeac855474/?delete_volumes=false HTTP/1.1
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

/api/openstack-instances/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • description – string
  • security_groups – list of [{}]
  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. To stop/start/restart an instance, run an authorized POST request against the instance UUID, appending the requested command. Examples of URLs:

  • POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/start/
  • POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/stop/
  • POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/restart/

If instance is in the state that does not allow this transition, error code will be returned. A new instance can be created by users with project administrator role or with staff privilege (is_staff=True).

Example of a valid request:

POST /api/openstack-instances/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "test VM",
    "description": "sample description",
    "image": "http://example.com/api/openstack-images/1ee380602b6283c446ad9420b3230bf0/",
    "flavor": "http://example.com/api/openstack-flavors/1ee385bc043249498cfeb8c7e3e079f0/",
    "ssh_public_key": "http://example.com/api/keys/6fbd6b24246f4fb38715c29bafa2e5e7/",
    "service_project_link": "http://example.com/api/openstack-service-project-link/674/",
    "tenant": "http://example.com/api/openstack-tenants/33bf0f83d4b948119038d6e16f05c129/",
    "data_volume_size": 1024,
    "system_volume_size": 20480,
    "security_groups": [
        { "url": "http://example.com/api/security-groups/16c55dad9b3048db8dd60e89bd4d85bc/"},
        { "url": "http://example.com/api/security-groups/232da2ad9b3048db8dd60eeaa23d8123/"}
    ]
}

Deletion of an instance is done through sending a DELETE request to the instance URI. Valid request example (token is user specific):

DELETE /api/openstack-instances/abceed63b8e844afacd63daeac855474/ HTTP/1.1
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

Only stopped instances or instances in ERRED state can be deleted.

By default when instance is destroyed, all data volumes attached to it are destroyed too. In order to preserve data volumes use query parameter ?delete_volumes=false In this case data volumes are detached from the instance and then instance is destroyed. Note that system volume is deleted anyway. For example:

DELETE /api/openstack-instances/abceed63b8e844afacd63daeac855474/?delete_volumes=false HTTP/1.1
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

/api/openstack-instances/<uuid>/allocate_floating_ip/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. In order to allocate floating IP, make POST request to /api/openstack-tenants/<pk>/allocate_floating_ip/. Note that service project link should be in stable state and have external network.

/api/openstack-instances/<uuid>/assign_floating_ip/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. To assign floating IP to the instance, make POST request to /api/openstack-instances/<uuid>/assign_floating_ip/ with link to the floating IP. Note that instance should be in stable state, service project link of the instance should be in stable state and have external network.

Example of a valid request:

POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/assign_floating_ip/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "floating_ip": "http://example.com/api/floating-ips/5e7d93955f114d88981dea4f32ab673d/"
}

/api/openstack-instances/<uuid>/change_flavor/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE.

/api/openstack-instances/<uuid>/meter-samples/<name>/

Methods: GET, POST, PUT, PATCH, DELETE

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. To stop/start/restart an instance, run an authorized POST request against the instance UUID, appending the requested command. Examples of URLs:

  • POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/start/
  • POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/stop/
  • POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/restart/

If instance is in the state that does not allow this transition, error code will be returned. A new instance can be created by users with project administrator role or with staff privilege (is_staff=True).

Example of a valid request:

POST /api/openstack-instances/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "name": "test VM",
    "description": "sample description",
    "image": "http://example.com/api/openstack-images/1ee380602b6283c446ad9420b3230bf0/",
    "flavor": "http://example.com/api/openstack-flavors/1ee385bc043249498cfeb8c7e3e079f0/",
    "ssh_public_key": "http://example.com/api/keys/6fbd6b24246f4fb38715c29bafa2e5e7/",
    "service_project_link": "http://example.com/api/openstack-service-project-link/674/",
    "tenant": "http://example.com/api/openstack-tenants/33bf0f83d4b948119038d6e16f05c129/",
    "data_volume_size": 1024,
    "system_volume_size": 20480,
    "security_groups": [
        { "url": "http://example.com/api/security-groups/16c55dad9b3048db8dd60e89bd4d85bc/"},
        { "url": "http://example.com/api/security-groups/232da2ad9b3048db8dd60eeaa23d8123/"}
    ]
}

Deletion of an instance is done through sending a DELETE request to the instance URI. Valid request example (token is user specific):

DELETE /api/openstack-instances/abceed63b8e844afacd63daeac855474/ HTTP/1.1
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

Only stopped instances or instances in ERRED state can be deleted.

By default when instance is destroyed, all data volumes attached to it are destroyed too. In order to preserve data volumes use query parameter ?delete_volumes=false In this case data volumes are detached from the instance and then instance is destroyed. Note that system volume is deleted anyway. For example:

DELETE /api/openstack-instances/abceed63b8e844afacd63daeac855474/?delete_volumes=false HTTP/1.1
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

/api/openstack-instances/<uuid>/meters/

Methods: GET

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. To list available meters for the resource, make GET request to /api/<resource_type>/<uuid>/meters/.

/api/openstack-instances/<uuid>/pull/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE.

/api/openstack-instances/<uuid>/resize/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. To resize an instance, submit a POST request to the instance’s RPC URL, specifying URI of a target flavor. Note, that instance must be OFFLINE. Example of a valid request:

POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/resize/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "flavor": "http://example.com/api/openstack-flavors/1ee385bc043249498cfeb8c7e3e079f0/"
}

To resize data disk of the instance, submit a POST request to the instance’s RPC URL, specifying size of the disk. Additional size of instance cannot be over the storage quota.

Example of a valid request:

POST /api/openstack-instances/6c9b01c251c24174a6691a1f894fae31/resize/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "disk_size": 1024
}

/api/openstack-instances/<uuid>/restart/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. Schedule resource restart. Resource must be in ONLINE state.

/api/openstack-instances/<uuid>/start/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. Schedule resource start. Resource must be in OFFLINE state.

/api/openstack-instances/<uuid>/stop/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE. Schedule resource stop. Resource must be in ONLINE state.

/api/openstack-instances/<uuid>/unlink/

Methods: POST

  • Staff members can list all available VM instances in any service.
  • Customer owners can list all VM instances in all the services that belong to any of the customers they own.
  • Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in.
  • Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Each instance has a state field that defines its current operational state. Instance has a FSM that defines possible state transitions. If a request is made to perform an operation on instance in incorrect state, a validation error will be returned.

The UI can poll for updates to provide feedback after submitting one of the longer running operations.

Any modification of an instance in unstable or PROVISIONING_SCHEDULED state is prohibited and will fail with 409 response code. Assuming stable states are ONLINE and OFFLINE.

/api/openstack-images/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-images/

Methods: GET

Filter fields:

  • ?name = string
  • ?settings_uuid = UUIDFilter
  • ?settings = link

/api/openstack-images/<uuid>/

Methods: GET

/api/openstack-floating-ips/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-floating-ips/

Methods: GET

Filter fields:

  • ?project = UUIDFilter
  • ?service_project_link = link
  • ?tenant_uuid = UUIDFilter
  • ?service = UUIDFilter

To get a list of all available floating IPs, issue GET against /api/floating-ips/. Floating IPs are read only. Each floating IP has fields: ‘address’, ‘status’.

Status DOWN means that floating IP is not linked to a VM, status ACTIVE means that it is in use.

/api/openstack-floating-ips/<uuid>/

Methods: GET

/api/openstack-flavors/

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-flavors/

Methods: GET

Filter fields:

  • ?name = string
  • ?settings_uuid = UUIDFilter
  • ?settings = link

Order fields: cores, disk, ram

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

/api/openstack-flavors/<uuid>/

Methods: GET

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

/api/openstack-dr-backups/

SLA filter

Allows to filter or sort resources by actual_sla Default period is current year and month.

Example query parameters for filtering list of OpenStack instances:

/api/openstack-instances/?actual_sla=90&period=2016-02

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=actual_sla&period=2016-02

Monitoring filter

Filter and order resources by monitoring item. For example, given query dictionary

{
    'monitoring__installation_state': True
}

it produces following query

{
    'monitoring_item__name': 'installation_state',
    'monitoring_item__value': True
}

Example query parameters for sorting list of OpenStack instances:

/api/openstack-instances/?o=monitoring__installation_state

Tags ordering. Filtering for complex tags.

Example:
?tag__license-os=centos7 - will filter objects with tag “license-os:centos7”.
Allow to define next parameters in view:
  • tags_filter_db_field - name of tags field in database. Default: tags.
  • tags_filter_request_field - name of tags in request. Default: tag.

In PostgreSQL NULL values come last with ascending sort order. In MySQL NULL values come first with ascending sort order. This filter provides unified sorting for both databases. Supported actions and methods:

/api/openstack-dr-backups/

Methods: GET, POST

Supported fields for creation:

  • namestring
  • description – string
  • source_instancelink to /api/openstack-instances/<uuid>/

Filter fields:

  • ?customer_native_name = string
  • ?service_settings_name = string
  • ?service_name = string
  • ?customer_uuid = UUIDFilter
  • ?customer_abbreviation = string
  • ?tag = ModelMultipleChoiceField
  • ?source_instance_uuid = UUIDFilter
  • ?customer_name = string
  • ?uuid = UUIDFilter
  • ?project_group = UUIDFilter
  • ?source_instance = link
  • ?state = choice('Deleting', 'Deletion Scheduled', 'Erred', 'Offline', 'Online', 'Provisioning', 'Provisioning Scheduled', 'Resizing', 'Resizing Scheduled', 'Restarting', 'Restarting Scheduled', 'Starting', 'Starting Scheduled', 'Stopping', 'Stopping Scheduled')
  • ?rtag = ModelMultipleChoiceField
  • ?project_name = string
  • ?description = string
  • ?service_uuid = UUIDFilter
  • ?service_settings_uuid = UUIDFilter
  • ?customer = UUIDFilter
  • ?name = string
  • ?project_uuid = UUIDFilter
  • ?project = UUIDFilter
  • ?project_group_uuid = UUIDFilter
  • ?project_group_name = string

Order fields: created, customer_abbreviation, customer_name, customer_native_name, name, project_group_name, project_name, state

/api/openstack-dr-backups/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • namestring
  • description – string

/api/openstack-dr-backup-restorations/

Restoration endpoint support only create/retrieve/list operations

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-dr-backup-restorations/

Methods: GET, POST

Supported fields for creation:

  • tenantlink to /api/openstack-tenants/<uuid>/ (Tenant for instance restoration)
  • backuplink to /api/openstack-dr-backups/<uuid>/
  • flavorlink to /api/openstack-flavors/<uuid>/
  • name – string (New instance name. Leave blank to use source instance name.)

Restoration endpoint support only create/retrieve/list operations

/api/openstack-dr-backup-restorations/<uuid>/

Methods: GET

Restoration endpoint support only create/retrieve/list operations

/api/openstack-backups/

Please note, that backups can be both manual and automatic, triggered by the schedule. In the first case, backup_schedule field will be null, in the latter - contain a link to the schedule.

You can filter backup by description or instance field, which should match object URL. It is useful when one resource has several backups and you want to get all backups related to this resource.

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-backups/

Methods: GET, POST

Supported fields for creation:

  • description – string
  • instancelink to /api/openstack-instances/<uuid>/

Filter fields:

  • ?project = UUIDFilter
  • ?instance = UUIDFilter
  • ?description = string

Please note, that backups can be both manual and automatic, triggered by the schedule. In the first case, backup_schedule field will be null, in the latter - contain a link to the schedule.

You can filter backup by description or instance field, which should match object URL. It is useful when one resource has several backups and you want to get all backups related to this resource. To create a backup, issue the following POST request:

POST /api/openstack-backups/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "instance": "http://example.com/api/openstack-instances/a04a26e46def4724a0841abcb81926ac/",
    "description": "a new manual backup"
}

On creation of backup it’s projected size is validated against a remaining storage quota.

/api/openstack-backups/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • description – string

Please note, that backups can be both manual and automatic, triggered by the schedule. In the first case, backup_schedule field will be null, in the latter - contain a link to the schedule.

You can filter backup by description or instance field, which should match object URL. It is useful when one resource has several backups and you want to get all backups related to this resource. Created backups support several operations. Only users with write access to backup source are allowed to perform these operations:

  • /api/openstack-backup/<backup_uuid>/restore/ - restore a specified backup.
  • /api/openstack-backup/<backup_uuid>/delete/ - delete a specified backup.

If a backup is in a state that prohibits this operation, it will be returned in error message of the response.

/api/openstack-backup-schedules/

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-backup-schedules/

Methods: GET, POST

Supported fields for creation:

  • description – string
  • retention_timeinteger (Retention time in days, if 0 - backup will be kept forever)
  • timezone – choice('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Asmera', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Timbuktu', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/ComodRivadavia', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Atka', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Buenos_Aires', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Catamarca', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Coral_Harbour', 'America/Cordoba', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Ensenada', 'America/Fort_Nelson', 'America/Fort_Wayne', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Indianapolis', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Jujuy', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Knox_IN', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Louisville', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Mendoza', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montreal', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Acre', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Rosario', 'America/Santa_Isabel', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Shiprock', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Virgin', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/South_Pole', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Ashkhabad', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Calcutta', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Chongqing', 'Asia/Chungking', 'Asia/Colombo', 'Asia/Dacca', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Harbin', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kashgar', 'Asia/Kathmandu', 'Asia/Katmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macao', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qyzylorda', 'Asia/Rangoon', 'Asia/Riyadh', 'Asia/Saigon', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Tel_Aviv', 'Asia/Thimbu', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ujung_Pandang', 'Asia/Ulaanbaatar', 'Asia/Ulan_Bator', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faeroe', 'Atlantic/Faroe', 'Atlantic/Jan_Mayen', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/ACT', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Canberra', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/LHI', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/NSW', 'Australia/North', 'Australia/Perth', 'Australia/Queensland', 'Australia/South', 'Australia/Sydney', 'Australia/Tasmania', 'Australia/Victoria', 'Australia/West', 'Australia/Yancowinna', 'Brazil/Acre', 'Brazil/DeNoronha', 'Brazil/East', 'Brazil/West', 'CET', 'CST6CDT', 'Canada/Atlantic', 'Canada/Central', 'Canada/East-Saskatchewan', 'Canada/Eastern', 'Canada/Mountain', 'Canada/Newfoundland', 'Canada/Pacific', 'Canada/Saskatchewan', 'Canada/Yukon', 'Chile/Continental', 'Chile/EasterIsland', 'Cuba', 'EET', 'EST', 'EST5EDT', 'Egypt', 'Eire', 'Etc/GMT', 'Etc/GMT+0', 'Etc/GMT+1', 'Etc/GMT+10', 'Etc/GMT+11', 'Etc/GMT+12', 'Etc/GMT+2', 'Etc/GMT+3', 'Etc/GMT+4', 'Etc/GMT+5', 'Etc/GMT+6', 'Etc/GMT+7', 'Etc/GMT+8', 'Etc/GMT+9', 'Etc/GMT-0', 'Etc/GMT-1', 'Etc/GMT-10', 'Etc/GMT-11', 'Etc/GMT-12', 'Etc/GMT-13', 'Etc/GMT-14', 'Etc/GMT-2', 'Etc/GMT-3', 'Etc/GMT-4', 'Etc/GMT-5', 'Etc/GMT-6', 'Etc/GMT-7', 'Etc/GMT-8', 'Etc/GMT-9', 'Etc/GMT0', 'Etc/Greenwich', 'Etc/UCT', 'Etc/UTC', 'Etc/Universal', 'Etc/Zulu', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belfast', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Nicosia', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Tiraspol', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'GB', 'GB-Eire', 'GMT', 'GMT+0', 'GMT-0', 'GMT0', 'Greenwich', 'HST', 'Hongkong', 'Iceland', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Iran', 'Israel', 'Jamaica', 'Japan', 'Kwajalein', 'Libya', 'MET', 'MST', 'MST7MDT', 'Mexico/BajaNorte', 'Mexico/BajaSur', 'Mexico/General', 'NZ', 'NZ-CHAT', 'Navajo', 'PRC', 'PST8PDT', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Johnston', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Ponape', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Samoa', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Truk', 'Pacific/Wake', 'Pacific/Wallis', 'Pacific/Yap', 'Poland', 'Portugal', 'ROC', 'ROK', 'Singapore', 'Turkey', 'UCT', 'US/Alaska', 'US/Aleutian', 'US/Arizona', 'US/Central', 'US/East-Indiana', 'US/Eastern', 'US/Hawaii', 'US/Indiana-Starke', 'US/Michigan', 'US/Mountain', 'US/Pacific', 'US/Pacific-New', 'US/Samoa', 'UTC', 'Universal', 'W-SU', 'WET', 'Zulu')
  • instancelink to /api/openstack-instances/<uuid>/
  • maximal_number_of_backupsinteger
  • schedulestring
  • backup_type – choice('DR', 'Regular')

Filter fields:

  • ?instance_uuid = UUIDFilter
  • ?instance = link
  • ?backup_type = ChoiceFilter
  • ?description = string

To perform backups on a regular basis, it is possible to define a backup schedule. Example of a request:

POST /api/openstack-backup-schedules/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4
Host: example.com

{
    "instance": "http://example.com/api/openstack-instances/430abd492a384f9bbce5f6b999ac766c/",
    "description": "schedule description",
    "retention_time": 0,
    "timezone": "Europe/London",
    "maximal_number_of_backups": 10,
    "schedule": "1 1 1 1 1",
    "is_active": true
}

For schedule to work, it should be activated - it’s flag is_active set to true. If it’s not, it won’t be used for triggering the next backups. Schedule will be deactivated if backup fails.

  • retention time is a duration in days during which backup is preserved.
  • maximal_number_of_backups is a maximal number of active backups connected to this schedule.
  • schedule is a backup schedule defined in a cron format.
  • timezone is used for calculating next run of the backup (optional).

A schedule can be it two states: active or not. Non-active states are not used for scheduling the new tasks. Only users with write access to backup schedule source can activate or deactivate schedule.

/api/openstack-backup-schedules/<uuid>/

Methods: GET, PUT, PATCH, DELETE

Supported fields for update:

  • description – string
  • retention_timeinteger (Retention time in days, if 0 - backup will be kept forever)
  • timezone – choice('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Asmera', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Timbuktu', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/ComodRivadavia', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Atka', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Buenos_Aires', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Catamarca', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Coral_Harbour', 'America/Cordoba', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Ensenada', 'America/Fort_Nelson', 'America/Fort_Wayne', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Indianapolis', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Jujuy', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Knox_IN', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Louisville', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Mendoza', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montreal', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Acre', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Rosario', 'America/Santa_Isabel', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Shiprock', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Virgin', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/South_Pole', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Ashkhabad', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Calcutta', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Chongqing', 'Asia/Chungking', 'Asia/Colombo', 'Asia/Dacca', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Harbin', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kashgar', 'Asia/Kathmandu', 'Asia/Katmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macao', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qyzylorda', 'Asia/Rangoon', 'Asia/Riyadh', 'Asia/Saigon', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Tel_Aviv', 'Asia/Thimbu', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ujung_Pandang', 'Asia/Ulaanbaatar', 'Asia/Ulan_Bator', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faeroe', 'Atlantic/Faroe', 'Atlantic/Jan_Mayen', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/ACT', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Canberra', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/LHI', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/NSW', 'Australia/North', 'Australia/Perth', 'Australia/Queensland', 'Australia/South', 'Australia/Sydney', 'Australia/Tasmania', 'Australia/Victoria', 'Australia/West', 'Australia/Yancowinna', 'Brazil/Acre', 'Brazil/DeNoronha', 'Brazil/East', 'Brazil/West', 'CET', 'CST6CDT', 'Canada/Atlantic', 'Canada/Central', 'Canada/East-Saskatchewan', 'Canada/Eastern', 'Canada/Mountain', 'Canada/Newfoundland', 'Canada/Pacific', 'Canada/Saskatchewan', 'Canada/Yukon', 'Chile/Continental', 'Chile/EasterIsland', 'Cuba', 'EET', 'EST', 'EST5EDT', 'Egypt', 'Eire', 'Etc/GMT', 'Etc/GMT+0', 'Etc/GMT+1', 'Etc/GMT+10', 'Etc/GMT+11', 'Etc/GMT+12', 'Etc/GMT+2', 'Etc/GMT+3', 'Etc/GMT+4', 'Etc/GMT+5', 'Etc/GMT+6', 'Etc/GMT+7', 'Etc/GMT+8', 'Etc/GMT+9', 'Etc/GMT-0', 'Etc/GMT-1', 'Etc/GMT-10', 'Etc/GMT-11', 'Etc/GMT-12', 'Etc/GMT-13', 'Etc/GMT-14', 'Etc/GMT-2', 'Etc/GMT-3', 'Etc/GMT-4', 'Etc/GMT-5', 'Etc/GMT-6', 'Etc/GMT-7', 'Etc/GMT-8', 'Etc/GMT-9', 'Etc/GMT0', 'Etc/Greenwich', 'Etc/UCT', 'Etc/UTC', 'Etc/Universal', 'Etc/Zulu', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belfast', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Nicosia', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Tiraspol', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'GB', 'GB-Eire', 'GMT', 'GMT+0', 'GMT-0', 'GMT0', 'Greenwich', 'HST', 'Hongkong', 'Iceland', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Iran', 'Israel', 'Jamaica', 'Japan', 'Kwajalein', 'Libya', 'MET', 'MST', 'MST7MDT', 'Mexico/BajaNorte', 'Mexico/BajaSur', 'Mexico/General', 'NZ', 'NZ-CHAT', 'Navajo', 'PRC', 'PST8PDT', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Johnston', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Ponape', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Samoa', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Truk', 'Pacific/Wake', 'Pacific/Wallis', 'Pacific/Yap', 'Poland', 'Portugal', 'ROC', 'ROK', 'Singapore', 'Turkey', 'UCT', 'US/Alaska', 'US/Aleutian', 'US/Arizona', 'US/Central', 'US/East-Indiana', 'US/Eastern', 'US/Hawaii', 'US/Indiana-Starke', 'US/Michigan', 'US/Mountain', 'US/Pacific', 'US/Pacific-New', 'US/Samoa', 'UTC', 'Universal', 'W-SU', 'WET', 'Zulu')
  • instancelink to /api/openstack-instances/<uuid>/
  • maximal_number_of_backupsinteger
  • schedulestring
  • backup_type – choice('DR', 'Regular')

/api/openstack-backup-schedules/<uuid>/activate/

Methods: POST

Activate a backup schedule. Note that if a schedule is already active, this will result in 409 CONFLICT code.

/api/openstack-backup-schedules/<uuid>/deactivate/

Methods: POST

Deactivate a backup schedule. Note that if a schedule was already deactivated, this will result in 409 CONFLICT code.

/api/openstack-backup-restorations/

Restoration endpoint support only create/retrieve/list operations

A filter backend that uses django-filter. Supported actions and methods:

/api/openstack-backup-restorations/

Methods: GET, POST

Supported fields for creation:

  • backuplink to /api/openstack-backups/<uuid>/
  • flavorlink to /api/openstack-flavors/<uuid>/
  • name – string (New instance name. Leave blank to use source instance name.)

Restoration endpoint support only create/retrieve/list operations

/api/openstack-backup-restorations/<uuid>/

Methods: GET

Restoration endpoint support only create/retrieve/list operations