def save(self, node_uuid, data, processed=True): suffix = None if processed else _UNPROCESSED_DATA_STORE_SUFFIX swift_object_name = swift.store_introspection_data( _filter_data_excluded_keys(data), node_uuid, suffix=suffix) LOG.info( 'Introspection data was stored for node %(node)s in Swift ' 'object %(obj_name)s', { 'node': node_uuid, 'obj_name': swift_object_name })
def _process_node(node, introspection_data, node_info): # NOTE(dtantsur): repeat the check in case something changed utils.check_provision_state(node) node_info.create_ports(introspection_data.get('macs') or ()) _run_post_hooks(node_info, introspection_data) if CONF.processing.store_data == 'swift': swift_object_name = swift.store_introspection_data( introspection_data, node_info.uuid) LOG.info( _LI('Introspection data for node %(node)s was stored in ' 'Swift in object %(obj)s'), { 'node': node_info.uuid, 'obj': swift_object_name }) if CONF.processing.store_data_location: node_info.patch([{ 'op': 'add', 'path': '/extra/%s' % CONF.processing.store_data_location, 'value': swift_object_name }]) else: LOG.debug( 'Swift support is disabled, introspection data for node %s ' 'won\'t be stored', node_info.uuid) ironic = utils.get_client() firewall.update_filters(ironic) node_info.invalidate_cache() rules.apply(node_info, introspection_data) resp = {'uuid': node.uuid} if node_info.options.get('new_ipmi_credentials'): new_username, new_password = ( node_info.options.get('new_ipmi_credentials')) utils.spawn_n(_finish_set_ipmi_credentials, ironic, node, node_info, introspection_data, new_username, new_password) resp['ipmi_setup_credentials'] = True resp['ipmi_username'] = new_username resp['ipmi_password'] = new_password else: utils.spawn_n(_finish, ironic, node_info) return resp
def _store_data(node_info, data, suffix=None): if CONF.processing.store_data != 'swift': LOG.debug("Swift support is disabled, introspection data " "won't be stored", node_info=node_info) return swift_object_name = swift.store_introspection_data( _filter_data_excluded_keys(data), node_info.uuid, suffix=suffix ) LOG.info(_LI('Introspection data was stored in Swift in object ' '%s'), swift_object_name, node_info=node_info) if CONF.processing.store_data_location: node_info.patch([{'op': 'add', 'path': '/extra/%s' % CONF.processing.store_data_location, 'value': swift_object_name}])
def _process_node(node, introspection_data, node_info): # NOTE(dtantsur): repeat the check in case something changed ir_utils.check_provision_state(node) node_info.create_ports(introspection_data.get('macs') or ()) _run_post_hooks(node_info, introspection_data) if CONF.processing.store_data == 'swift': stored_data = {k: v for k, v in introspection_data.items() if k not in _STORAGE_EXCLUDED_KEYS} swift_object_name = swift.store_introspection_data(stored_data, node_info.uuid) LOG.info(_LI('Introspection data was stored in Swift in object %s'), swift_object_name, node_info=node_info, data=introspection_data) if CONF.processing.store_data_location: node_info.patch([{'op': 'add', 'path': '/extra/%s' % CONF.processing.store_data_location, 'value': swift_object_name}]) else: LOG.debug('Swift support is disabled, introspection data ' 'won\'t be stored', node_info=node_info, data=introspection_data) ironic = ir_utils.get_client() firewall.update_filters(ironic) node_info.invalidate_cache() rules.apply(node_info, introspection_data) resp = {'uuid': node.uuid} if node_info.options.get('new_ipmi_credentials'): new_username, new_password = ( node_info.options.get('new_ipmi_credentials')) utils.executor().submit(_finish_set_ipmi_credentials, ironic, node, node_info, introspection_data, new_username, new_password) resp['ipmi_setup_credentials'] = True resp['ipmi_username'] = new_username resp['ipmi_password'] = new_password else: utils.executor().submit(_finish, ironic, node_info, introspection_data) return resp
def _process_node(node, introspection_data, node_info): # NOTE(dtantsur): repeat the check in case something changed utils.check_provision_state(node) node_info.create_ports(introspection_data.get('macs') or ()) _run_post_hooks(node_info, introspection_data) if CONF.processing.store_data == 'swift': swift_object_name = swift.store_introspection_data(introspection_data, node_info.uuid) LOG.info(_LI('Introspection data for node %(node)s was stored in ' 'Swift in object %(obj)s'), {'node': node_info.uuid, 'obj': swift_object_name}) if CONF.processing.store_data_location: node_info.patch([{'op': 'add', 'path': '/extra/%s' % CONF.processing.store_data_location, 'value': swift_object_name}]) else: LOG.debug('Swift support is disabled, introspection data for node %s ' 'won\'t be stored', node_info.uuid) ironic = utils.get_client() firewall.update_filters(ironic) node_info.invalidate_cache() rules.apply(node_info, introspection_data) resp = {'uuid': node.uuid} if node_info.options.get('new_ipmi_credentials'): new_username, new_password = ( node_info.options.get('new_ipmi_credentials')) utils.spawn_n(_finish_set_ipmi_credentials, ironic, node, node_info, introspection_data, new_username, new_password) resp['ipmi_setup_credentials'] = True resp['ipmi_username'] = new_username resp['ipmi_password'] = new_password else: utils.spawn_n(_finish, ironic, node_info) return resp
def save(self, node_uuid, data, processed=True): suffix = None if processed else _UNPROCESSED_DATA_STORE_SUFFIX swift_object_name = swift.store_introspection_data( _filter_data_excluded_keys(data), node_uuid, suffix=suffix ) LOG.info('Introspection data was stored for node %(node)s in Swift ' 'object %(obj_name)s', {'node': node_uuid, 'obj_name': swift_object_name}) # TODO(kaifeng) Remove the deprecated store_data_location at Train # cycle. if CONF.processing.store_data_location: node_info = node_cache.get_node(node_uuid) # NOTE(kaifeng) node_info is not synced back, while we are not # using extra in the processing logic, it looks fine at the moment, # but we should consider refactor in a later time. node_info.patch([{'op': 'add', 'path': '/extra/%s' % CONF.processing.store_data_location, 'value': swift_object_name}])
def save(self, node_uuid, data, processed=True): suffix = None if processed else _UNPROCESSED_DATA_STORE_SUFFIX swift_object_name = swift.store_introspection_data( _filter_data_excluded_keys(data), node_uuid, suffix=suffix) LOG.info( 'Introspection data was stored for node %(node)s in Swift ' 'object %(obj_name)s', { 'node': node_uuid, 'obj_name': swift_object_name }) if CONF.processing.store_data_location: node_info = node_cache.get_node(node_uuid) # TODO(kaifeng) node_info is not synced back, while we are not # using extra in the processing logic, it looks fine at the moment, # but we should consider refactor in a later time. node_info.patch([{ 'op': 'add', 'path': '/extra/%s' % CONF.processing.store_data_location, 'value': swift_object_name }])