本文整理匯總了Python中fuelweb_test.models.nailgun_client.NailgunClient.deploy_cluster_changes方法的典型用法代碼示例。如果您正苦於以下問題:Python NailgunClient.deploy_cluster_changes方法的具體用法?Python NailgunClient.deploy_cluster_changes怎麽用?Python NailgunClient.deploy_cluster_changes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類fuelweb_test.models.nailgun_client.NailgunClient
的用法示例。
在下文中一共展示了NailgunClient.deploy_cluster_changes方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: deploy_cluster
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
def deploy_cluster(admin_node_ip, env_name):
client = NailgunClient(admin_node_ip)
cluster_id = client.get_cluster_id(env_name)
env = load_env(env_name)
task = client.deploy_cluster_changes(cluster_id)
result = task_wait(client, task, env.deploy_timeout, 30)
if result['status'] == 'ready':
return "OK"
else:
return result['message']
示例2: deploy_cluster_separately
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
def deploy_cluster_separately(admin_node_ip, env_name):
client = NailgunClient(admin_node_ip)
cluster_id = client.get_cluster_id(env_name)
env = load_env(env_name)
# separate provisioning, useful on virtual envs since provisioning runs much faster this way
cluster_nodes = client.list_cluster_nodes(cluster_id)
for cur_node in cluster_nodes:
task = client.provision_node(cluster_id, cur_node['id'])
result = task_wait(client, task, 3600, 60)
if result['status'] != 'ready':
return result['message']
# provisioning done, now lets deploy it
task = client.deploy_cluster_changes(cluster_id)
result = task_wait(client, task, env.deploy_timeout, 30)
if result['status'] == 'ready':
return "OK"
else:
return result['message']
示例3: FuelWebClient
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
#.........這裏部分代碼省略.........
attributes["editable"][section][option]["value"] = settings[option]
attributes["editable"]["common"]["debug"]["value"] = help_data.DEBUG_MODE
hpv_data = attributes["editable"]["common"]["libvirt_type"]
if KVM_USE:
logger.debug("KVM is used to clusters")
hpv_data["value"] = "kvm"
self.client.update_cluster_attributes(cluster_id, attributes)
self.update_network_configuration(cluster_id)
if not cluster_id:
raise Exception("Could not get cluster '%s'" % name)
self.client.add_syslog_server(cluster_id, self.environment.get_host_node_ip(), port)
return cluster_id
def deploy_cluster_wait(self, cluster_id, is_feature=False, timeout=50 * 60, interval=30):
if not is_feature:
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=interval)
else:
task = self.client.provision_nodes(cluster_id)
self.assert_task_success(task, timeout=timeout, interval=interval)
task = self.client.deploy_nodes(cluster_id)
self.assert_task_success(task, timeout=timeout, interval=interval)
@logwrap
def deploy_cluster(self, cluster_id):
"""Return hash with task description."""
return self.client.deploy_cluster_changes(cluster_id)
@logwrap
def get_cluster_floating_list(self, node_name):
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call("/usr/bin/nova-manage floating list")
ret_str = "".join(ret["stdout"])
return re.findall("(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", ret_str)
@logwrap
def get_cluster_block_devices(self, node_name):
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call("/bin/lsblk")
return "".join(ret["stdout"])
@logwrap
def get_pacemaker_status(self, controller_node_name):
remote = self.get_ssh_for_node(controller_node_name)
return "".join(remote.check_call("crm_mon -1")["stdout"])
@logwrap
def get_pacemaker_config(self, controller_node_name):
remote = self.get_ssh_for_node(controller_node_name)
return "".join(remote.check_call("crm configure show")["stdout"])
@logwrap
def get_last_created_cluster(self):
# return id of last created cluster
clusters = self.client.list_clusters()
if len(clusters) > 0:
return clusters.pop()["id"]
return None
示例4: FuelWebClient
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
#.........這裏部分代碼省略.........
cluster_id = self.client.get_cluster_id(name)
attributes = self.client.get_cluster_attributes(cluster_id)
for option in settings:
section = False
if option in ('savanna', 'murano'):
section = 'additional_components'
if option in ('volumes_ceph', 'images_ceph'):
section = 'storage'
if section:
attributes['editable'][section][option]['value'] =\
settings[option]
attributes['editable']['common']['debug']['value'] = True
self.client.update_cluster_attributes(cluster_id, attributes)
self.update_network_configuration(cluster_id)
if not cluster_id:
raise Exception("Could not get cluster '%s'" % name)
self.client.add_syslog_server(
cluster_id, self.environment.get_host_node_ip(), port)
return cluster_id
def deploy_cluster_wait(self, cluster_id):
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=30)
@logwrap
def deploy_cluster(self, cluster_id):
"""Return hash with task description."""
return self.client.deploy_cluster_changes(cluster_id)
@logwrap
def get_cluster_floating_list(self, node_name):
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call('/usr/bin/nova-manage floating list')
ret_str = ''.join(ret['stdout'])
return re.findall('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', ret_str)
@logwrap
def get_cluster_block_devices(self, node_name):
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call('/bin/lsblk')
return ''.join(ret['stdout'])
@logwrap
def get_last_created_cluster(self):
# return id of last created cluster
clusters = self.client.list_clusters()
if len(clusters) > 0:
return clusters.pop()['id']
return None
@logwrap
def get_nailgun_node_roles(self, nodes_dict):
nailgun_node_roles = []
for node_name in nodes_dict:
slave = self.environment.get_virtual_environment().\
node_by_name(node_name)
node = self.get_nailgun_node_by_devops_node(slave)
nailgun_node_roles.append((node, nodes_dict[node_name]))
return nailgun_node_roles
示例5: strict_pin_nw_to_node
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
# FIXME add at least timeout
time.sleep(5)
else:
client.update_nodes(simple_pin_nodes_to_cluster(client.list_nodes(),
lab_config['roller']))
LOG.info("StageX: END Assign nodes to cluster")
# assign\create network role to nic per node
LOG.info("StageX: Assign network role to nic per node")
if assign_method == 'hw_pin':
for node in client.list_cluster_nodes(cluster_id):
upd_ifs = strict_pin_nw_to_node(node, client.get_node_interfaces(
node['id']), lab_config)
if upd_ifs:
client.put_node_interfaces(
[{'id': node['id'],
'interfaces': upd_ifs}])
else:
for node in client.list_cluster_nodes(cluster_id):
upd_ifs = simple_pin_nw_to_node(node, client.get_node_interfaces(
node['id']), lab_config.get('roller'))
if upd_ifs:
client.put_node_interfaces(
[{'id': node['id'],
'interfaces': upd_ifs}])
LOG.info("StageX: END Assign network role to nic per node")
if START_DEPLOYMENT.lower() == 'true':
client.deploy_cluster_changes(cluster_id)
LOG.info('Deployment started!')
示例6: FuelWebClient
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
#.........這裏部分代碼省略.........
self.client.update_cluster_attributes(cluster_id, attributes)
self.update_network_configuration(cluster_id)
if not cluster_id:
raise Exception("Could not get cluster '%s'" % name)
self.client.add_syslog_server(
cluster_id, self.environment.get_host_node_ip(), port)
return cluster_id
def deploy_cluster_wait(self, cluster_id, is_feature=False,
timeout=50 * 60, interval=30):
if not is_feature:
logger.info('Deploy cluster %s', cluster_id)
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=interval)
else:
logger.info('Provision nodes of a cluster %s', cluster_id)
task = self.client.provision_nodes(cluster_id)
self.assert_task_success(task, timeout=timeout, interval=interval)
logger.info('Deploy nodes of a cluster %s', cluster_id)
task = self.client.deploy_nodes(cluster_id)
self.assert_task_success(task, timeout=timeout, interval=interval)
def deploy_cluster_wait_progress(self, cluster_id, progress):
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=30, progress=progress)
@logwrap
def deploy_cluster(self, cluster_id):
"""Return hash with task description."""
logger.info('Launch deployment of a cluster #%s', cluster_id)
return self.client.deploy_cluster_changes(cluster_id)
@logwrap
def get_cluster_floating_list(self, node_name):
logger.info('Get floating IPs list at %s devops node', node_name)
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call('/usr/bin/nova-manage floating list')
ret_str = ''.join(ret['stdout'])
return re.findall('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', ret_str)
@logwrap
def get_cluster_block_devices(self, node_name):
logger.info('Get %s node block devices (lsblk)', node_name)
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call('/bin/lsblk')
return ''.join(ret['stdout'])
@logwrap
def get_pacemaker_status(self, controller_node_name):
logger.info('Get pacemaker status at %s node', controller_node_name)
remote = self.get_ssh_for_node(controller_node_name)
return ''.join(remote.check_call('crm_mon -1')['stdout'])
@logwrap
def get_pacemaker_config(self, controller_node_name):
logger.info('Get pacemaker config at %s node', controller_node_name)
remote = self.get_ssh_for_node(controller_node_name)
return ''.join(remote.check_call('crm configure show')['stdout'])
@logwrap
def get_last_created_cluster(self):
# return id of last created cluster
logger.info('Get ID of a last created cluster')
示例7: FuelWebClient
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
#.........這裏部分代碼省略.........
" going to update networks ...")
self.update_network_configuration(cluster_id)
if not cluster_id:
raise Exception("Could not get cluster '%s'" % name)
#TODO: rw105719
#self.client.add_syslog_server(
# cluster_id, self.environment.get_host_node_ip(), port)
return cluster_id
def deploy_cluster_wait(self, cluster_id, is_feature=False,
timeout=50 * 60, interval=30):
if not is_feature:
logger.info('Deploy cluster %s', cluster_id)
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=interval)
else:
logger.info('Provision nodes of a cluster %s', cluster_id)
task = self.client.provision_nodes(cluster_id)
self.assert_task_success(task, timeout=timeout, interval=interval)
logger.info('Deploy nodes of a cluster %s', cluster_id)
task = self.client.deploy_nodes(cluster_id)
self.assert_task_success(task, timeout=timeout, interval=interval)
def deploy_cluster_wait_progress(self, cluster_id, progress):
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=30, progress=progress)
@logwrap
def deploy_cluster(self, cluster_id):
"""Return hash with task description."""
logger.info('Launch deployment of a cluster #%s', cluster_id)
return self.client.deploy_cluster_changes(cluster_id)
@logwrap
def get_cluster_floating_list(self, node_name):
logger.info('Get floating IPs list at %s devops node', node_name)
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call('/usr/bin/nova-manage floating list')
ret_str = ''.join(ret['stdout'])
return re.findall('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', ret_str)
@logwrap
def get_cluster_block_devices(self, node_name):
logger.info('Get %s node block devices (lsblk)', node_name)
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call('/bin/lsblk')
return ''.join(ret['stdout'])
@logwrap
def get_pacemaker_status(self, controller_node_name):
logger.info('Get pacemaker status at %s node', controller_node_name)
remote = self.get_ssh_for_node(controller_node_name)
return ''.join(remote.check_call('crm_mon -1')['stdout'])
@logwrap
def get_pacemaker_config(self, controller_node_name):
logger.info('Get pacemaker config at %s node', controller_node_name)
remote = self.get_ssh_for_node(controller_node_name)
return ''.join(remote.check_call('crm configure show')['stdout'])
@logwrap
def get_last_created_cluster(self):
# return id of last created cluster
logger.info('Get ID of a last created cluster')
示例8: FuelWebClient
# 需要導入模塊: from fuelweb_test.models.nailgun_client import NailgunClient [as 別名]
# 或者: from fuelweb_test.models.nailgun_client.NailgunClient import deploy_cluster_changes [as 別名]
#.........這裏部分代碼省略.........
)
self.client.create_cluster(data=data)
cluster_id = self.client.get_cluster_id(name)
attributes = self.client.get_cluster_attributes(cluster_id)
for option in settings:
section = False
if option in ("savanna", "murano"):
section = "additional_components"
if option in ("volumes_ceph", "images_ceph"):
section = "storage"
if section:
attributes["editable"][section][option]["value"] = settings[option]
self.client.update_cluster_attributes(cluster_id, attributes)
self.update_network_configuration(cluster_id)
if not cluster_id:
raise Exception("Could not get cluster '%s'" % name)
self.client.add_syslog_server(cluster_id, self.environment.get_host_node_ip(), port)
return cluster_id
def deploy_cluster_wait(self, cluster_id):
task = self.deploy_cluster(cluster_id)
self.assert_task_success(task, interval=30)
@logwrap
def deploy_cluster(self, cluster_id):
"""Return hash with task description."""
return self.client.deploy_cluster_changes(cluster_id)
@logwrap
def get_cluster_floating_list(self, node_name):
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call("/usr/bin/nova-manage floating list")
ret_str = "".join(ret["stdout"])
return re.findall("(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", ret_str)
@logwrap
def get_cluster_block_devices(self, node_name):
remote = self.get_ssh_for_node(node_name)
ret = remote.check_call("/bin/lsblk")
return "".join(ret["stdout"])
@logwrap
def get_last_created_cluster(self):
# return id of last created cluster
clusters = self.client.list_clusters()
if len(clusters) > 0:
return clusters.pop()["id"]
return None
@logwrap
def get_nailgun_node_roles(self, nodes_dict):
nailgun_node_roles = []
for node_name in nodes_dict:
slave = self.environment.get_virtual_environment().node_by_name(node_name)
node = self.get_nailgun_node_by_devops_node(slave)
nailgun_node_roles.append((node, nodes_dict[node_name]))
return nailgun_node_roles
@logwrap