
This allows users to query for resource properties of hosts, allowing them to be used in creating leases more effectively. Two new API endpoints are added for hosts, ``/properties`` and ``/properties/<property_name>``, which allow for listing available properties, and updating a property respectively. Properties can be listed with detail, showing possible values and visibility. Admins can list public and private properties. A new database table is added ``resource_properties``, which stores property names and resource types. Resource specific property tables (e.g. ``computehost_extra_capabilities``) entries store a foreign key to ``resource_properties``, rather than the capability name. Implements blueprint resource-properties-discovery-api Change-Id: Ib9f1140c44c5e4fbef6e019c48a842869368cb21
725 lines
15 KiB
YAML
725 lines
15 KiB
YAML
# variables in headers
|
|
x-openstack-request-id_req:
|
|
description: |
|
|
The global request ID, which is a unique common ID
|
|
for tracking each request in OpenStack services.
|
|
The format of the global request ID must be ``req-`` + UUID (UUID4).
|
|
If not in accordance with the format, it is ignored.
|
|
It is associated with the request and appears in the log lines
|
|
for that request.
|
|
The global request ID appears in the Blazar logs and all cross
|
|
services it interacts with.
|
|
in: header
|
|
required: false
|
|
type: string
|
|
x-openstack-request-id_resp:
|
|
description: |
|
|
The local request ID, which is a unique ID generated automatically
|
|
for tracking each request to blazar.
|
|
It is associated with the request and appears in the log lines
|
|
for that request.
|
|
in: header
|
|
required: true
|
|
type: string
|
|
|
|
|
|
# variables in path
|
|
floatingip_id_path:
|
|
description: |
|
|
The ID of the floating IP.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
host_id_path:
|
|
description: |
|
|
The ID of the host.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
lease_id_path:
|
|
description: |
|
|
The UUID of the lease.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
property_name:
|
|
description: |
|
|
The name of the property.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
|
|
|
|
# variables in query
|
|
allocation_lease_id_query:
|
|
description: |
|
|
Filter allocations results by lease id
|
|
in: query
|
|
required: false
|
|
type: string
|
|
allocation_reservation_id_query:
|
|
description: |
|
|
Filter allocations results by reservation id
|
|
in: query
|
|
required: false
|
|
type: string
|
|
resource_property_all:
|
|
description: |
|
|
Whether to include all resource properties, public and private.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
resource_property_detail:
|
|
description: |
|
|
Whether to include values along for each property and if the property
|
|
is private.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
|
|
|
|
# variables in body
|
|
allocation:
|
|
description: |
|
|
An ``allocation`` object. This object describes a mapping
|
|
between resource_id and reservations.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
allocation_end_date:
|
|
description: |
|
|
The end date of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
allocation_start_date:
|
|
description: |
|
|
The start date of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
allocations:
|
|
description: |
|
|
A list of ``allocation`` objects.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
created_at:
|
|
description: |
|
|
The date and time when the object was created.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
event:
|
|
description: |
|
|
An ``event`` object.
|
|
in: body
|
|
required: true
|
|
type: object
|
|
event_id:
|
|
description: |
|
|
The UUID of the event.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
event_lease_id:
|
|
description: |
|
|
The UUID of the lease to which the event belongs.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
event_status:
|
|
description: |
|
|
The status of the event.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
event_time:
|
|
description: |
|
|
The date and time of the event.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
event_type:
|
|
description: |
|
|
The type of the event.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
events:
|
|
description: |
|
|
A list of ``event`` objects.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
events_optional:
|
|
description: |
|
|
A list of ``event`` objects.
|
|
in: body
|
|
required: false
|
|
type: array
|
|
|
|
## parameters for floating IP
|
|
|
|
floating_ip_address:
|
|
description:
|
|
The floating IP address.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
floating_ip_address_create:
|
|
description:
|
|
The floating IP address. The IP must be the out side of allocation_pools
|
|
and within its subnet's CIDR network.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
floating_network_id:
|
|
description:
|
|
An external network ID the floating IP belongs to.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
floating_subnet_id:
|
|
description: |
|
|
An external subnet ID the floating IP belongs to.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
floatingip:
|
|
description: |
|
|
A ``floatingip`` object.
|
|
in: body
|
|
required: true
|
|
type: object
|
|
floatingip_id:
|
|
description:
|
|
The ID of the floating ip resources.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
floatingip_reservable:
|
|
description: |
|
|
The flag which represents whether the floating IP is reservable or not.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
floatingips:
|
|
description: |
|
|
A list of ``floatingip`` objects.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
|
|
## parameters for host
|
|
|
|
host:
|
|
description: |
|
|
A ``host`` object.
|
|
in: body
|
|
required: true
|
|
type: object
|
|
host_cpu_info:
|
|
description: |
|
|
Information of the CPU of the host.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_extra_capability:
|
|
description: |
|
|
The extra capability of the host.
|
|
|
|
.. note:: Any key-value pair can be stored as one of extra capabilities of
|
|
the host.
|
|
in: body
|
|
required: false
|
|
type: any
|
|
host_hypervisor_hostname:
|
|
description: |
|
|
The hypervisor name of the host.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_hypervisor_type:
|
|
description: |
|
|
The hypervisor type the host.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_hypervisor_version:
|
|
description: |
|
|
The hypervisor version of the host.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
host_id:
|
|
description: |
|
|
The ID of the host.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_local_gb:
|
|
description: |
|
|
Gigabytes of the disk of the host.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
host_memory_mb:
|
|
description: |
|
|
Megabytes of the memory of the host.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
host_name:
|
|
description: |
|
|
The name of the host.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_reservable:
|
|
description: |
|
|
The flag which represents whether the host is reservable or not.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
host_service_name:
|
|
description: |
|
|
The compute service name of the host.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_status:
|
|
description: |
|
|
The status of the host.
|
|
|
|
.. note:: This is null currently.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_trust_id:
|
|
description: |
|
|
The UUID of the trust of the host operator.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
host_vcpus:
|
|
description: |
|
|
The number of the VCPUs of the host.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
hosts:
|
|
description: |
|
|
A list of ``host`` objects.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
|
|
## parameters for leases
|
|
|
|
lease:
|
|
description: |
|
|
A ``lease`` object.
|
|
in: body
|
|
required: true
|
|
type: object
|
|
lease_before_end_date:
|
|
description: |
|
|
The date and time for the before-end-action of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_before_end_date_optional:
|
|
description: |
|
|
The date and time for the before-end-action of the lease.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
lease_degraded:
|
|
description: |
|
|
The flag for reserved resources of the lease.
|
|
This is set True while *missing_resources* or *resources_changed* of
|
|
reservations is set True.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
lease_end_date:
|
|
description: |
|
|
The end date and time of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_end_date_optional:
|
|
description: |
|
|
The end date and time of the lease.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
lease_id:
|
|
description: |
|
|
The UUID of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_name:
|
|
description: |
|
|
The name of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_name_optional:
|
|
description: |
|
|
The name of the lease.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
lease_project_id:
|
|
description: |
|
|
The UUID the project which owns the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_start_date:
|
|
description: |
|
|
The start date and time of the lease.
|
|
|
|
.. note:: If ``now`` is specified, the lease starts immediately.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_start_date_optional:
|
|
description: |
|
|
The start date and time of the lease.
|
|
|
|
.. note:: If ``now`` is specified, the lease starts immediately.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
lease_start_date_resp:
|
|
description: |
|
|
The start date and time of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_status:
|
|
description: |
|
|
The status of the lease.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_trust_id:
|
|
description: |
|
|
The UUID of the trust of the lease owner.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
lease_user_id:
|
|
description: |
|
|
The UUID of the lease owner.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
leases:
|
|
description: |
|
|
A list of ``lease`` objects.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
property_private:
|
|
description: |
|
|
Whether the property is private.
|
|
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
reservation:
|
|
description: |
|
|
A ``reservation`` object.
|
|
in: body
|
|
required: true
|
|
type: object
|
|
reservation_affinity:
|
|
description: |
|
|
The affinity of instances to reserve. The value should be ``True``, ``False`` or ``None``.
|
|
in: body
|
|
required: true
|
|
type: trilean
|
|
reservation_affinity_optional:
|
|
description: |
|
|
The affinity of instances to reserve. The value should be ``True``, ``False`` or ``None``.
|
|
in: body
|
|
required: false
|
|
type: trilean
|
|
reservation_aggregate_id:
|
|
description: |
|
|
The aggregate ID of the reservation.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
reservation_allocation:
|
|
description: |
|
|
A list of ``reservation allocation`` objects. The object consists of
|
|
reservation id and its lease_id.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
reservation_amount:
|
|
description: |
|
|
The amount of instances to reserve. The value should be greater than 0.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
reservation_amount_optional:
|
|
description: |
|
|
The amount of instances to reserve. The value should be greater than 0.
|
|
in: body
|
|
required: false
|
|
type: integer
|
|
reservation_before_end:
|
|
description: |
|
|
The before-end-action of the reservation.
|
|
|
|
.. note:: ``default`` and ``snapshot`` actions are supported.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_before_end_optional:
|
|
description: |
|
|
The before-end-action of the reservation.
|
|
|
|
.. note:: ``default`` and ``snapshot`` actions are supported.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
reservation_disk_gb:
|
|
description: |
|
|
Gigabytes of the local disk per the instance.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_disk_gb_optional:
|
|
description: |
|
|
Gigabytes of the local disk per the instance.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
reservation_flavor_id:
|
|
description: |
|
|
The flavor ID used for launching instances on reserved resources.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_hypervisor_properties:
|
|
description: |
|
|
Properties of the hypervisor to reserve.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_hypervisor_properties_optional:
|
|
description: |
|
|
Properties of the hypervisor to reserve.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_id:
|
|
description: |
|
|
The UUID of the reservation.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_lease_id:
|
|
description: |
|
|
The UUID of the lease to which the reservation belongs.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_max:
|
|
description: |
|
|
The maximum number of hosts to reserve. The value should be greater than or equal to ``min`` value.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
reservation_max_optional:
|
|
description: |
|
|
The maximum number of hosts to reserve. The value should be greater than or equal to ``min``.
|
|
in: body
|
|
required: false
|
|
type: integer
|
|
reservation_memory_mb:
|
|
description: |
|
|
Megabytes of memory per the instance.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
reservation_memory_mb_optional:
|
|
description: |
|
|
Megabytes of memory per the instance.
|
|
in: body
|
|
required: false
|
|
type: integer
|
|
reservation_min:
|
|
description: |
|
|
The minimum number of hosts to reserve. The value should be greater than 0.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
reservation_min_optional:
|
|
description: |
|
|
The minimum number of hosts to reserve. The value should be greater than 0.
|
|
in: body
|
|
required: false
|
|
type: integer
|
|
reservation_missing_resources:
|
|
description: |
|
|
The flag for the capacity of reserved resources.
|
|
It is set True while the amount of reserved resources is less than the
|
|
request.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
reservation_resource_id:
|
|
description: |
|
|
The ID of the resource object of the reservation.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_resource_properties:
|
|
description: |
|
|
Properties of the resource to reserve.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_resource_properties_optional:
|
|
description: |
|
|
Properties of the resource to reserve.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
reservation_resource_type:
|
|
description: |
|
|
The type of the resource to reserve.
|
|
|
|
.. note:: ``physical:host`` and ``virtual:instance`` types are supported.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_resource_type_resp:
|
|
description: |
|
|
The type of the resource to reserve.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_resources_changed:
|
|
description: |
|
|
The flag for changes of reserved resources.
|
|
If it is set True if reserved resources were changed after the lease
|
|
started.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
reservation_server_group_id:
|
|
description: |
|
|
The server group ID specified when launch instances on reserved resources.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_status:
|
|
description: |
|
|
The status of the reservation.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
reservation_vcpus:
|
|
description: |
|
|
The number of VCPUs per the instance.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
reservation_vcpus_optional:
|
|
description: |
|
|
The number of VCPUs per the instance.
|
|
in: body
|
|
required: false
|
|
type: integer
|
|
reservations:
|
|
description: |
|
|
A list of ``reservation`` objects.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
reservations_optional:
|
|
description: |
|
|
A list of ``reservation`` objects.
|
|
in: body
|
|
required: false
|
|
type: array
|
|
resource_properties:
|
|
description: |
|
|
A list of ``resource_property`` objects.
|
|
|
|
in: body
|
|
required: true
|
|
type: array
|
|
resource_properties_private:
|
|
description: |
|
|
Whether the property is private.
|
|
|
|
in: body
|
|
required: false
|
|
type: boolean
|
|
resource_properties_property:
|
|
description: |
|
|
The name of the property.
|
|
|
|
in: body
|
|
required: true
|
|
type: any
|
|
resource_properties_values:
|
|
description: |
|
|
A list of values for the property.
|
|
|
|
in: body
|
|
required: false
|
|
type: array
|
|
resource_property:
|
|
description: |
|
|
The updated ``resource_property`` object.
|
|
|
|
in: body
|
|
required: true
|
|
type: any
|
|
resource_property_id:
|
|
description: |
|
|
The updated ``resource_property`` UUID.
|
|
|
|
in: body
|
|
required: true
|
|
type: string
|
|
resource_property_private:
|
|
description: |
|
|
Whether the updated ``resource_property`` is private.
|
|
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
resource_property_property_name:
|
|
description: |
|
|
The updated ``resource_property`` property_name.
|
|
|
|
in: body
|
|
required: true
|
|
type: string
|
|
resource_property_resource_type:
|
|
description: |
|
|
The updated ``resource_property`` resource type.
|
|
|
|
in: body
|
|
required: true
|
|
type: string
|
|
updated_at:
|
|
description: |
|
|
The date and time when the object was updated.
|
|
in: body
|
|
required: true
|
|
type: string
|