Updating aggregate metadata

POST /os-aggregates/{aggregate_id}/action

Creates or replaces metadata for an aggregate.

Specify the set_metadata action and metadata info in the request body.

Source: https://docs.openstack.org/api-ref/compute/?expanded=create-or-update-aggregate-metadata-detail#create-or-update-aggregate-metadata

Request

Parameters

Name In Type Description
aggregate_id path integer The aggregate ID.
set_metadata body object The set_metadata object used to set metadata for host aggregate.
metadata body object

Metadata key and value pairs associated with the aggregate. The maximum size for each metadata key and value pair is 255 bytes.

New keys will be added to existing aggregate metadata. For existing keys, if the value is null the entry is removed, otherwise the value is updated. Note that the special availability_zone metadata entry cannot be unset to null.

You should not change the availability zone of an aggregate when that aggregate has hosts which contain servers in it since that may impact the ability for those servers to move to another host.

Example

Associate a trait with a host aggregate:

curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' -d '
{
  "set_metadata": {
    "metadata": {
      "trait:CUSTOM_HCI_0A7F6A35E650420CB30200A8359861D9": "required"
    }
  }
}' https://<node_IP_addr>:8774/v2.1/6ef5371261ea42008e3d1d41ba051977/os-aggregates/4/action

Response

Parameters

Name In Type Description
aggregate body object The host aggregate object.
name body string The name of the host aggregate.
availability_zone body string The availability zone of the host aggregate.
created_at body string

The date and time when the resource was created.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In this example, the offset value is -05:00.

deleted_at body string

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In this example, the offset value is -05:00.

deleted body boolean A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.
hosts body array An array of host information.
id body integer The ID of the host aggregate.
metadata body object Metadata key and value pairs associated with the aggregate.
updated_at body string

The date and time when the resource was updated. If the resource has not been updated, this field will be null.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In this example, the offset value is -05:00.

uuid body string

The UUID of the host aggregate.

New in version 2.41

Status codes

Success

Code Reason
200 - OK Request was successful.

Error

Code Reason
400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

403 - Forbidden

Policy does not allow current user to do this operation.

404 - Not Found

The requested resource could not be found.

Example

{
  "aggregate": {
    "name": "CUSTOM_HCI_0A7F6A35E650420CB30200A8359861D9",
    "availability_zone": null,
    "deleted": false,
    "created_at": "2020-04-19T12:56:10.191466",
    "updated_at": null,
    "deleted_at": null,
    "id": 4,
    "metadata": {
      "trait:CUSTOM_HCI_0A7F6A35E650420CB30200A8359861D9": "required"
    }
  }
}