def do_profile_show(cs, args): """Show details about a profile by architecture.""" profile = _find_profile(cs, args.architecture, args.profile) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(profile, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_role_show(cs, args): """Show details about a role.""" role = _find_role(cs, args.zone, args.role) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(role, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_profile_show(cs, args): """Show details about a profile by architecture.""" profile = _find_profile(cs, args.architecture, args.profile) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(profile, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_role_show(cs, args): """Show details about a role.""" role = _find_role(cs, args.zone, args.role) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(role, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_node_task_state(cs, args): """Show details about a task from a node in a zone.""" zone = _find_zone(cs, args.zone) node = _find_node(cs, args.zone, args.node) task = _find_task(cs, args.zone, args.node, args.task) task = cs.tasks.state(zone, node, task) utils.print_dict(task._info)
def do_device_replace(cs, args): """Replaces a node in a zone by a specific device in the pool.""" kwargs = {'zone_id': args.zone_id} if args.lom_user_node_to_remove is not None: kwargs['lom_user_node_to_remove'] = args.lom_user_node_to_remove if args.lom_password_node_to_remove is not None: kwargs['lom_password_node_to_remove'] = args. \ lom_password_node_to_remove if args.lom_user_node_to_add is not None: kwargs['lom_user_node_to_add'] = args.lom_user_node_to_add if args.lom_password_node_to_add is not None: kwargs['lom_password_node_to_add'] = args.lom_password_node_to_add kwargs['role_id'] = args.role_id kwargs['node_id'] = args.node_id device = _find_device(cs, args.mac) node = cs.devices.replace(device, **kwargs) del node['_links'] del node['connection_data'] utils.print_dict(node)
def do_component_show(cs, args): """Show details about a component.""" component = _find_component(cs, args.component) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(component, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_device_replace(cs, args): """Replaces a node in a zone by a specific device in the pool.""" kwargs = {'zone_id': args.zone_id} if args.lom_user_node_to_remove is not None: kwargs['lom_user_node_to_remove'] = args.lom_user_node_to_remove if args.lom_password_node_to_remove is not None: kwargs['lom_password_node_to_remove'] = args. \ lom_password_node_to_remove if args.lom_user_node_to_add is not None: kwargs['lom_user_node_to_add'] = args.lom_user_node_to_add if args.lom_password_node_to_add is not None: kwargs['lom_password_node_to_add'] = args.lom_password_node_to_add kwargs['role_id'] = args.role_id kwargs['node_id'] = args.node_id device = _find_device(cs, args.mac) node = cs.devices.replace(device, **kwargs) del node['_links'] del node['connection_data'] utils.print_dict(node)
def do_component_show(cs, args): """Show details about a component.""" component = _find_component(cs, args.component) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(component, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_node_show(cs, args): """Show details about a node in a zone.""" node = _find_node(cs, args.zone, args.node) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(node, keys) final_dict = utils.check_json_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_node_task_state(cs, args): """Show details about a task from a node in a zone.""" zone = _find_zone(cs, args.zone) node = _find_node(cs, args.zone, args.node) task = _find_task(cs, args.zone, args.node, args.task) task = cs.tasks.state(zone, node, task) utils.print_dict(task._info)
def do_node_show(cs, args): """Show details about a node in a zone.""" node = _find_node(cs, args.zone, args.node) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(node, keys) final_dict = utils.check_json_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_device_show(cs, args): """Show details about a device.""" device = _find_device(cs, args.mac) keys = ['_links', 'hardware_profile'] final_dict = utils.remove_values_from_manager_dict(device, keys) final_dict = utils.check_json_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_device_show(cs, args): """Show details about a device.""" device = _find_device(cs, args.mac) keys = ['_links', 'hardware_profile'] final_dict = utils.remove_values_from_manager_dict(device, keys) final_dict = utils.check_json_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_node_task_cancel(cs, args): """Cancel a task from a node in a zone.""" zone = _find_zone(cs, args.zone) node = _find_node(cs, args.zone, args.node) task = _find_task(cs, args.zone, args.node, args.task) task = cs.tasks.cancel(zone, node, task) dict = task[1]['task'] utils.print_dict(dict)
def do_node_task_cancel(cs, args): """Cancel a task from a node in a zone.""" zone = _find_zone(cs, args.zone) node = _find_node(cs, args.zone, args.node) task = _find_task(cs, args.zone, args.node, args.task) task = cs.tasks.cancel(zone, node, task) dict = task[1]['task'] utils.print_dict(dict)
def do_global_property_delete(cs, args): """Delete a property. :param cs: :param args: """ property_key = args.property_key property = cs.properties.delete(property_key) property = property['properties'] utils.print_dict(property)
def do_zone_property_delete(cs, args): """Delete a zone property.""" zone = _find_zone(cs, args.zone) property_key = args.property_key zone = cs.zones.property_delete(zone, property_key) zone = zone['zone'] del zone['_links'], final_dict = utils.check_json_pretty_value_for_dict(zone) utils.print_dict(final_dict)
def do_global_property_delete(cs, args): """Delete a property. :param cs: :param args: """ property_key = args.property_key property = cs.properties.delete(property_key) property = property['properties'] utils.print_dict(property)
def do_zone_property_delete(cs, args): """Delete a zone property.""" zone = _find_zone(cs, args.zone) property_key = args.property_key zone = cs.zones.property_delete(zone, property_key) zone = zone['zone'] del zone['_links'], final_dict = utils.check_json_pretty_value_for_dict(zone) utils.print_dict(final_dict)
def do_global_property_update(cs, args): """Updates a property. :param cs: :param args: """ property_key = args.property_key property_value = args.property_value property = cs.properties.update(property_key, property_value) property = property['properties'] utils.print_dict(property)
def do_global_property_update(cs, args): """Updates a property. :param cs: :param args: """ property_key = args.property_key property_value = args.property_value property = cs.properties.update(property_key, property_value) property = property['properties'] utils.print_dict(property)
def do_global_property_create(cs, args): """Add a new property. :param cs: :param args: """ property_key = args.property_key property_value = args.property_value property = cs.properties.create(property_key, property_value) property = property['properties'] utils.print_dict(property)
def do_global_property_create(cs, args): """Add a new property. :param cs: :param args: """ property_key = args.property_key property_value = args.property_value property = cs.properties.create(property_key, property_value) property = property['properties'] utils.print_dict(property)
def do_profile_property_delete(cs, args): """Delete a profile property by architecture.""" architecture = _find_architecture(cs, args.architecture) profile = _find_profile(cs, args.architecture, args.profile) property_key = args.property_key profile = cs.profiles.property_delete(architecture, profile, property_key) profile = profile['profile'] del profile['_links'], final_dict = utils.check_json_pretty_value_for_dict(profile) utils.print_dict(final_dict)
def do_profile_property_delete(cs, args): """Delete a profile property by architecture.""" architecture = _find_architecture(cs, args.architecture) profile = _find_profile(cs, args.architecture, args.profile) property_key = args.property_key profile = cs.profiles.property_delete(architecture, profile, property_key) profile = profile['profile'] del profile['_links'], final_dict = utils.check_json_pretty_value_for_dict(profile) utils.print_dict(final_dict)
def do_role_component_show(cs, args): """Show details about a component by zone and role.""" zone = _find_zone(cs, args.zone) role = _find_role(cs, args.zone, args.role) component = args.component component_zone_role = cs.components.get_zone_role(zone, role, component) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(component_zone_role, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_profile_update(cs, args): """Update a profile by architecture.""" _validate_extension_file(args.profile_file, 'json') architecture = _find_architecture(cs, args.architecture) profile = _find_profile(cs, args.architecture, args.profile) final_profile_file = _validate_json_format_file(args.profile_file) profile = cs.profiles.update(architecture, profile, final_profile_file) profile = profile['profile'] del profile['_links'], final_dict = utils.check_json_pretty_value_for_dict(profile) utils.print_dict(final_dict)
def do_datastore_update(cs, args): """Update parameters of a specific datastore.""" parameters = ''.join(args.parameters) parameters = parameters.replace(',', ' ') datastore = _find_datastore(cs, args.datastore) options = {'parameters': parameters} datastore = cs.datastores.update(datastore, **options) datastore = datastore['datastore'] del datastore['actions'], utils.print_dict(datastore)
def do_role_component_show(cs, args): """Show details about a component by zone and role.""" zone = _find_zone(cs, args.zone) role = _find_role(cs, args.zone, args.role) component = args.component component_zone_role = cs.components.get_zone_role(zone, role, component) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(component_zone_role, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_profile_update(cs, args): """Update a profile by architecture.""" _validate_extension_file(args.profile_file, 'json') architecture = _find_architecture(cs, args.architecture) profile = _find_profile(cs, args.architecture, args.profile) final_profile_file = _validate_json_format_file(args.profile_file) profile = cs.profiles.update(architecture, profile, final_profile_file) profile = profile['profile'] del profile['_links'], final_dict = utils.check_json_pretty_value_for_dict(profile) utils.print_dict(final_dict)
def do_service_execute(cs, args): """Execute a service by zone, role and component.""" zone = _find_zone(cs, args.zone) role = _find_role(cs, args.zone, args.role) component = _find_component(cs, args.component) service = _find_service(cs, args.zone, args.role, args.component, args.service) node = _find_node(cs, args.zone, args.node) task = cs.tasks.execute_service(zone, role, component, service, node) final_dict = utils.remove_values_from_manager_dict(task, []) final_dict = utils.check_json_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_datastore_validate(cs, args): """Validate a discovered NFS endpoint or just a GLUSTER endpoint.""" options = { 'endpoint': args.endpoint, 'store': args.datastore, 'identifier': args.identifier, 'storage_type': args.storage_type } datastore = cs.datastores.validate(**options) dict = datastore[1]['datastore'] final_dict = utils.check_json_pretty_value_for_dict(dict) utils.print_dict(final_dict)
def do_role_component_update(cs, args): """Update a component by zone and role .""" _validate_extension_file(args.component_file, 'json') zone = _find_zone(cs, args.zone) role = _find_role(cs, args.zone, args.role) component = args.component file = _validate_json_format_file(args.component_file) component = cs.components.update_zone_role(zone, role, component, file) component = component['component'] del component['_links'], final_dict = utils.check_json_pretty_value_for_dict(component) utils.print_dict(final_dict)
def do_service_execute(cs, args): """Execute a service by zone, role and component.""" zone = _find_zone(cs, args.zone) role = _find_role(cs, args.zone, args.role) component = _find_component(cs, args.component) service = _find_service(cs, args.zone, args.role, args.component, args.service) node = _find_node(cs, args.zone, args.node) task = cs.tasks.execute_service(zone, role, component, service, node) final_dict = utils.remove_values_from_manager_dict(task, []) final_dict = utils.check_json_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_role_component_update(cs, args): """Update a component by zone and role .""" _validate_extension_file(args.component_file, 'json') zone = _find_zone(cs, args.zone) role = _find_role(cs, args.zone, args.role) component = args.component file = _validate_json_format_file(args.component_file) component = cs.components.update_zone_role(zone, role, component, file) component = component['component'] del component['_links'], final_dict = utils.check_json_pretty_value_for_dict(component) utils.print_dict(final_dict)
def do_datastore_validate(cs, args): """Validate a discovered NFS endpoint or just a GLUSTER endpoint.""" options = { 'endpoint': args.endpoint, 'store': args.datastore, 'identifier': args.identifier, 'storage_type': args.storage_type } datastore = cs.datastores.validate(**options) dict = datastore[1]['datastore'] final_dict = utils.check_json_pretty_value_for_dict(dict) utils.print_dict(final_dict)
def do_profile_create(cs, args): """Add a new profile by architecture.""" _validate_extension_file(args.profile, 'json') architecture = _find_architecture(cs, args.architecture) data = _validate_json_format_file(args.profile) data['profile']['name'] = args.name profile = cs.profiles.create(architecture, data) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(profile, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_datastore_update(cs, args): """Update parameters of a specific datastore.""" parameters = ''.join(args.parameters) parameters = parameters.replace(',', ' ') datastore = _find_datastore(cs, args.datastore) options = { 'parameters': parameters } datastore = cs.datastores.update(datastore, **options) datastore = datastore['datastore'] del datastore['actions'], utils.print_dict(datastore)
def do_profile_create(cs, args): """Add a new profile by architecture.""" _validate_extension_file(args.profile, 'json') architecture = _find_architecture(cs, args.architecture) data = _validate_json_format_file(args.profile) data['profile']['name'] = args.name profile = cs.profiles.create(architecture, data) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(profile, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_datastore_detach(cs, args): """Detach a specific datastore from a zone.""" datastore = _find_datastore(cs, args.datastore) if datastore.id_nova_zone is None: print('\nError: datastore/store/volume wihtout any zone attached. ' 'Please verify attached datastores and/or stores') raise SystemExit datastore = _find_datastore(cs, args.datastore) options = {'force': args.force} datastore = cs.datastores.detach(datastore, **options) datastore = datastore['datastore'] del datastore['actions'], utils.print_dict(datastore)
def do_datastore_attach(cs, args): """Attach a specific datastore to a zone.""" if args.secure: secure = 'secure' else: secure = '' zone = _find_zone(cs, args.zone) datastore = _find_datastore(cs, args.datastore) options = {'id_zone': zone.id, 'resource': args.resource, 'secure': secure} datastore = cs.datastores.attach(datastore, **options) datastore = datastore['datastore'] del datastore['actions'], utils.print_dict(datastore)
def do_architecture_create(cs, args): """Add a new architecture. :param cs: :param args: """ _validate_extension_file(args.architecture, 'arc') with open(args.architecture) as f: architecture = cs.architectures.create(json.load(f)) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(architecture, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_architecture_create(cs, args): """Add a new architecture. :param cs: :param args: """ _validate_extension_file(args.architecture, 'arc') with open(args.architecture) as f: architecture = cs.architectures.create(json.load(f)) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(architecture, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_datastore_detach(cs, args): """Detach a specific datastore from a zone.""" datastore = _find_datastore(cs, args.datastore) if datastore.id_nova_zone is None: print('\nError: datastore/store/volume wihtout any zone attached. ' 'Please verify attached datastores and/or stores') raise SystemExit datastore = _find_datastore(cs, args.datastore) options = { 'force': args.force } datastore = cs.datastores.detach(datastore, **options) datastore = datastore['datastore'] del datastore['actions'], utils.print_dict(datastore)
def do_zone_create(cs, args): """Add a new zone by architecture according to a JSON profile.""" _validate_extension_file(args.zone, 'json') architecture = _find_architecture(cs, args.architecture) file = _validate_json_format_file(args.zone) base_profile = file['profile'] for key, value in base_profile.items(): if key == 'name': base_profile.update({key: args.name}) zone = {'zone': ''} zone.update({'zone': base_profile}) zone = cs.zones.create(architecture, zone) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(zone, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_zone_create(cs, args): """Add a new zone by architecture according to a JSON profile.""" _validate_extension_file(args.zone, 'json') architecture = _find_architecture(cs, args.architecture) file = _validate_json_format_file(args.zone) base_profile = file['profile'] for key, value in base_profile.items(): if key == 'name': base_profile.update({key: args.name}) zone = {'zone': ''} zone.update({'zone': base_profile}) zone = cs.zones.create(architecture, zone) keys = ['_links'] final_dict = utils.remove_values_from_manager_dict(zone, keys) final_dict = utils.check_json_pretty_value_for_dict(final_dict) utils.print_dict(final_dict)
def do_datastore_attach(cs, args): """Attach a specific datastore to a zone.""" if args.secure: secure = 'secure' else: secure = '' zone = _find_zone(cs, args.zone) datastore = _find_datastore(cs, args.datastore) options = { 'id_zone': zone.id, 'resource': args.resource, 'secure': secure } datastore = cs.datastores.attach(datastore, **options) datastore = datastore['datastore'] del datastore['actions'], utils.print_dict(datastore)
def do_device_activate(cs, args): """Activate a specific device in the pool.""" kwargs = {'zone_id': args.zone_id} if args.lom_user is not None: kwargs['lom_user'] = args.lom_user if args.lom_password is not None: kwargs['lom_password'] = args.lom_password device = _find_device(cs, args.mac) node = cs.devices.activate(device, **kwargs) del node['_links'] del node['connection_data'] utils.print_dict(node)
def do_device_update(cs, args): """Update a device.""" options = { 'lom_ip': args.lom_ip, 'lom_mac': args.lom_mac, 'management_network_ip': args.management_network_ip, 'management_network_netmask': args.management_network_netmask, 'management_network_gateway': args.management_network_gateway, 'management_network_dns': args.management_network_dns } device = _find_device(cs, args.mac) device = cs.devices.update(device, **options) device = device['device'] del device['_links'], final_dict = utils.check_json_value_for_dict(device) utils.print_dict(final_dict)
def do_device_activate(cs, args): """Activate a specific device in the pool.""" kwargs = {'zone_id': args.zone_id} if args.lom_user is not None: kwargs['lom_user'] = args.lom_user if args.lom_password is not None: kwargs['lom_password'] = args.lom_password device = _find_device(cs, args.mac) node = cs.devices.activate(device, **kwargs) del node['_links'] del node['connection_data'] utils.print_dict(node)
def do_device_update(cs, args): """Update a device.""" options = { 'lom_ip': args.lom_ip, 'lom_mac': args.lom_mac, 'management_network_ip': args.management_network_ip, 'management_network_netmask': args.management_network_netmask, 'management_network_gateway': args.management_network_gateway, 'management_network_dns': args.management_network_dns } device = _find_device(cs, args.mac) device = cs.devices.update(device, **options) device = device['device'] del device['_links'], final_dict = utils.check_json_value_for_dict(device) utils.print_dict(final_dict)
def do_datastore_add(cs, args): """Validate and add to the pool a NFS endpoint or GLUSTER endpoint.""" if args.parameters is None: parameters = '' else: parameters = ''.join(args.parameters) parameters = parameters.replace(',', ' ') options = { 'endpoint': args.endpoint, 'store': args.datastore, 'identifier': args.identifier, 'storage_type': args.storage_type, 'persist': True, 'parameters': parameters } datastore = cs.datastores.prepare(**options) dict = datastore[1]['datastore'] final_dict = utils.check_json_pretty_value_for_dict(dict) utils.print_dict(final_dict)
def do_datastore_add(cs, args): """Validate and add to the pool a NFS endpoint or GLUSTER endpoint.""" if args.parameters is None: parameters = '' else: parameters = ''.join(args.parameters) parameters = parameters.replace(',', ' ') options = { 'endpoint': args.endpoint, 'store': args.datastore, 'identifier': args.identifier, 'storage_type': args.storage_type, 'persist': True, 'parameters': parameters } datastore = cs.datastores.prepare(**options) dict = datastore[1]['datastore'] final_dict = utils.check_json_pretty_value_for_dict(dict) utils.print_dict(final_dict)
def do_node_deactivate(cs, args): """Deactivates a zone node. Moves an activated node from the zone to the pool. """ options = {} options['action'] = 'nothing' if args.action is None else args.action if args.lom_user is not None: options['lom_user'] = args.lom_user if args.lom_password is not None: options['lom_password'] = args.lom_password zone = _find_zone(cs, args.zone) node = _find_node(cs, args.zone, args.node) device = cs.nodes.deactivate(zone, node, options) del device['_links'] del device['connection_data'] utils.print_dict(device)
def do_node_deactivate(cs, args): """Deactivates a zone node. Moves an activated node from the zone to the pool. """ options = {} options['action'] = 'nothing' if args.action is None else args.action if args.lom_user is not None: options['lom_user'] = args.lom_user if args.lom_password is not None: options['lom_password'] = args.lom_password zone = _find_zone(cs, args.zone) node = _find_node(cs, args.zone, args.node) device = cs.nodes.deactivate(zone, node, options) del device['_links'] del device['connection_data'] utils.print_dict(device)
def do_endpoints(cs, args): """Discover endpoints that get returned from the authenticate services.""" catalog = cs.client.service_catalog.catalog for e in catalog['access']['serviceCatalog']: utils.print_dict(e['endpoints'][0], e['name'])
def do_global_property_list(cs, args): """List all the properties that are available on automation.""" properties = cs.properties.list() utils.print_dict(properties)
def do_global_property_list(cs, args): """List all the properties that are available on automation.""" properties = cs.properties.list() utils.print_dict(properties)
def do_endpoints(cs, args): """Discover endpoints that get returned from the authenticate services.""" catalog = cs.client.service_catalog.catalog for e in catalog['access']['serviceCatalog']: utils.print_dict(e['endpoints'][0], e['name'])