From 313d4f272cbeabfdcb39de4bcb441749f56fb4d4 Mon Sep 17 00:00:00 2001 From: Travis Tripp Date: Wed, 10 Sep 2014 23:24:36 -0600 Subject: [PATCH] Add missing metadefs for Aggregate Filters The below spec implemented in Juno added numerous properties that can be added to Host Aggregates. The Metadata Definitions catalog should include them. https://github.com/openstack/nova-specs/blob/master/specs/juno/per-aggregate-filters.rst Change-Id: Id37028b4b24ab5f6b0c4547a3c1af47bd76e61f6 Closes-bug: 1368032 --- etc/metadefs/compute-aggr-disk-filter.json | 21 ++++++++++++++++++ etc/metadefs/compute-aggr-iops-filter.json | 23 ++++++++++++++++++++ etc/metadefs/compute-aggr-num-instances.json | 21 ++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 etc/metadefs/compute-aggr-disk-filter.json create mode 100644 etc/metadefs/compute-aggr-iops-filter.json create mode 100644 etc/metadefs/compute-aggr-num-instances.json diff --git a/etc/metadefs/compute-aggr-disk-filter.json b/etc/metadefs/compute-aggr-disk-filter.json new file mode 100644 index 0000000000..3a1037c924 --- /dev/null +++ b/etc/metadefs/compute-aggr-disk-filter.json @@ -0,0 +1,21 @@ +{ + "namespace": "OS::Compute::AggregateDiskFilter", + "display_name": "Disk Allocation per Host", + "description": "Properties related to the Nova scheduler filter AggregateDiskFilter. Filters aggregate hosts based on the available disk space compared to the requested disk space. Hosts in the aggregate with not enough usable disk will be filtered out. The filter must be enabled in the Nova scheduler to use these properties.", + "visibility": "public", + "protected": true, + "resource_type_associations": [ + { + "name": "OS::Nova::Aggregate" + } + ], + "properties": { + "disk_allocation_ratio": { + "title": "Disk Subscription Ratio", + "description": "Allows the host to be under and over subscribed for the amount of disk space requested for an instance. A ratio greater than 1.0 allows for over subscription (hosts may have less usable disk space than requested). A ratio less than 1.0 allows for under subscription.", + "type": "number", + "readonly": false + } + }, + "objects": [] +} diff --git a/etc/metadefs/compute-aggr-iops-filter.json b/etc/metadefs/compute-aggr-iops-filter.json new file mode 100644 index 0000000000..31047835c2 --- /dev/null +++ b/etc/metadefs/compute-aggr-iops-filter.json @@ -0,0 +1,23 @@ +{ + "namespace": "OS::Compute::AggregateIoOpsFilter", + "display_name": "IO Ops per Host", + "description": "Properties related to the Nova scheduler filter AggregateIoOpsFilter. Filters aggregate hosts based on the number of instances currently changing state. Hosts in the aggregate with too many instances changing state will be filtered out. The filter must be enabled in the Nova scheduler to use these properties.", + "visibility": "public", + "protected": true, + "resource_type_associations": [ + { + "name": "OS::Nova::Aggregate" + } + ], + "properties": { + "max_io_ops_per_host": { + "title": "Maximum IO Operations per Host", + "description": "Prevents hosts in the aggregate that have this many or more instances currently in build, resize, snapshot, migrate, rescue or unshelve to be scheduled for new instances.", + "type": "integer", + "readonly": false, + "default": 8, + "minimum": 1 + } + }, + "objects": [] +} diff --git a/etc/metadefs/compute-aggr-num-instances.json b/etc/metadefs/compute-aggr-num-instances.json new file mode 100644 index 0000000000..3c9f678d1a --- /dev/null +++ b/etc/metadefs/compute-aggr-num-instances.json @@ -0,0 +1,21 @@ +{ + "namespace": "OS::Compute::AggregateNumInstancesFilter", + "display_name": "Instances per Host", + "description": "Properties related to the Nova scheduler filter AggregateNumInstancesFilter. Filters aggregate hosts by the number of running instances on it. Hosts in the aggregate with too many instances will be filtered out. The filter must be enabled in the Nova scheduler to use these properties.", "visibility": "public", + "protected": false, + "resource_type_associations": [ + { + "name": "OS::Nova::Aggregate" + } + ], + "properties": { + "max_instances_per_host": { + "title": "Max Instances Per Host", + "description": "Maximum number of instances allowed to run on a host in the aggregate.", + "type": "integer", + "readonly": false, + "minimum": 0 + } + }, + "objects": [] +}