Skip to content

Commit

Permalink
Merge "SM-Provision-Sequence: write all flags for a host in single sh…
Browse files Browse the repository at this point in the history
…ot." into R3.1
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Nov 7, 2016
2 parents 0c74d97 + 6b69951 commit 0193776
Showing 1 changed file with 35 additions and 7 deletions.
42 changes: 35 additions & 7 deletions src/server_mgr_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3456,10 +3456,24 @@ def update_cluster_provision(self, cluster_id, role_sequence):
sequence_steps = role_sequence.get('steps', [])
if sequence_steps:
role_steps_list = sequence_steps[0]
for step_tuple in role_steps_list:
server_id = step_tuple[0]
hiera_file = self.get_server_control_hiera_filename(server_id)
self._smgr_puppet.modify_server_hiera_data(server_id, hiera_file, [step_tuple])

# generate list of tuples based on hostnames
#input = [('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')]
#output = {'a': [('a', '1'), ('a', '2')], 'b': [('b', '1'), ('b', '2')]}
cluster_host_steps = {}
if role_steps_list:
cluster_host_steps = dict((key[0], []) for key in role_steps_list)
for key in role_steps_list:
cluster_host_steps[key[0]].append(key)

#iterate over following format
# {'a': [('a', '1'), ('a', '2')], 'b': [('b', '1'), ('b', '2')]}
for hostname in cluster_host_steps:
hiera_file = self.get_server_control_hiera_filename(hostname)
if not hiera_file:
return False
host_steps = cluster_host_steps[hostname]
self._smgr_puppet.modify_server_hiera_data(hostname, hiera_file, host_steps )

def get_server_control_hiera_filename(self, server_id, cluster=None):
hiera_filename = ''
Expand Down Expand Up @@ -3594,11 +3608,25 @@ def update_provision_role_sequence(self, server_id, status):
provision_role_sequence['steps'].pop(0)
if provision_role_sequence['steps']:
role_steps_list = provision_role_sequence['steps'][0]
for new_step_tuple in role_steps_list:
hiera_file = self.get_server_control_hiera_filename(new_step_tuple[0])

# generate list of tuples based on hostnames
#input = [('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')]
#output = {'a': [('a', '1'), ('a', '2')], 'b': [('b', '1'), ('b', '2')]}
cluster_host_steps = {}
if role_steps_list:
cluster_host_steps = dict((key[0], []) for key in role_steps_list)
for key in role_steps_list:
cluster_host_steps[key[0]].append(key)

#iterate over following format
# {'a': [('a', '1'), ('a', '2')], 'b': [('b', '1'), ('b', '2')]}
for hostname in cluster_host_steps:
hiera_file = self.get_server_control_hiera_filename(hostname)
if not hiera_file:
return False
self._smgr_puppet.modify_server_hiera_data(new_step_tuple[0], hiera_file, [new_step_tuple])
host_steps = cluster_host_steps[hostname]
self._smgr_puppet.modify_server_hiera_data(hostname, hiera_file, host_steps )

cluster_data = {'id': cluster_id, 'provision_role_sequence': provision_role_sequence}
self._serverDb.modify_cluster(cluster_data)
return True
Expand Down

0 comments on commit 0193776

Please sign in to comment.