Nova Server Create & Server Affinity Group Create & Map using python novaclient 1.1

449 Views Asked by At

I have gone through this LINK which explains how to setup Affinity controls so that nova takes care of placing the nodes on different hypervisors based on the Server Group.

The problem I am facing is - I intend to do the approach through python code to have a better control through automation.

While exploring the novaclient 1.1 python module doc, I only see availability_zones as a parameter to the create() method. Does this relate to Affinity Server Group? By reading a little more about that - it doesnt appear that way.

create(name, image, flavor, meta=None, files=None, reservation_id=None, min_count=None, max_count=None, security_groups=None, userdata=None, key_name=None, availability_zone=None, block_device_mapping=None, block_device_mapping_v2=None, nics=None, scheduler_hints=None, config_drive=None, disk_config=None, **kwargs)
Create (boot) a new server.

Parameters: 
name – Something to name the server.
image – The Image to boot with.
flavor – The Flavor to boot onto.
meta – A dict of arbitrary key/value metadata to store for this server. A maximum of five entries is allowed, and both keys and values must be 255 characters or less.
files – A dict of files to overrwrite on the server upon boot. Keys are file names (i.e. /etc/passwd) and values are the file contents (either as a string or as a file-like object). A maximum of five entries is allowed, and each file must be 10k or less.
userdata – user data to pass to be exposed by the metadata server this can be a file type object as well or a string.
reservation_id – a UUID for the set of servers being requested.
key_name – (optional extension) name of previously created keypair to inject into the instance.
availability_zone – Name of the availability zone for instance placement.
block_device_mapping – (optional extension) A dict of block device mappings for this server.
block_device_mapping_v2 – (optional extension) A dict of block device mappings for this server.
nics – (optional extension) an ordered list of nics to be added to this server, with information about connected networks, fixed ips, port etc.
scheduler_hints – (optional extension) arbitrary key-value pairs specified by the client to help boot an instance
config_drive – (optional extension) value for config drive either boolean, or volume-id
disk_config – (optional extension) control how the disk is partitioned when the server is created. possible values are ‘AUTO’ or ‘MANUAL’.

I am having a hard time with the documentation and setting up affinity on invoking create().

I would like to understand :

  • How to create Server Groups for affinity? There is no documentation for this anywhere.
  • How to tie that into the create() method for controlling affinity?
0

There are 0 best solutions below