Modification of slave adding procedure

We should not define new slave index by incrementing
of current slaves list lenght. We should check all list
and find missing(deleted) slave indexes or increment maximum.
Also notification message printing added in case of removing
non-existent slave node.

Change-Id: Ie7dcb9a96c2369eafc611b1c2131edc4666e5603
Closes-Bug: 1641945
This commit is contained in:
Dmitry Belyaninov 2017-01-23 12:15:36 +00:00
parent 125cdabc34
commit ac02b5719c
1 changed files with 19 additions and 4 deletions

View File

@ -208,11 +208,20 @@ class Shell(object):
def do_slave_add(self, force_define=True):
vcpu = self.params.vcpu_count
memory = self.params.ram_size
created_nodes = len(self.env.get_nodes())
node_count = self.params.node_count
for node in xrange(created_nodes, created_nodes + node_count):
node_name = "slave-{node:02d}".format(node=node)
created_node_names = [n.name for n in self.env.get_nodes()]
def get_available_slave_name():
for i in xrange(1, 1000):
name = "slave-{:02d}".format(i)
if name in created_node_names:
continue
created_node_names.append(name)
return name
for node_num in xrange(self.params.node_count):
node_name = get_available_slave_name()
node = self.env.add_node(name=node_name, vcpu=vcpu, memory=memory)
disknames_capacity = {
'system': 50 * 1024 ** 3
@ -232,6 +241,12 @@ class Shell(object):
print("Created node '{}'".format(node.name))
def do_slave_remove(self):
slaves = [node.name for node in
self.env.get_nodes(role='fuel_slave')]
if self.params.node_name not in slaves:
sys.exit("Node with name {} doesn't exist."
.format(self.params.node_name))
volumes = []
for drive in self.env.get_node(
name=self.params.node_name).disk_devices: