def load_template_input(template_name, saved_id, target_id): if target_id is None: cls.log_debug('Skip %s, saved template is not on target node', template_name) return None saved_values = DeviceTemplateValues.load(workdir, ext_name, template_name, saved_id) if saved_values is None: cls.log_error('DeviceTemplateValues file not found: %s, %s', template_name, saved_id) return None if saved_values.is_empty: cls.log_debug('Skip %s, saved template has no attachments', template_name) return None target_attached_uuid_set = {uuid for uuid, _ in DeviceTemplateAttached.get_raise(api, target_id)} if target_uuid_set is None: allowed_uuid_set = target_attached_uuid_set else: saved_attached = DeviceTemplateAttached.load(workdir, ext_name, template_name, saved_id) if saved_attached is None: cls.log_error('DeviceTemplateAttached file not found: %s, %s', template_name, saved_id) return None saved_attached_uuid_set = {uuid for uuid, _ in saved_attached} allowed_uuid_set = target_uuid_set & saved_attached_uuid_set - target_attached_uuid_set input_list = saved_values.input_list(allowed_uuid_set) if len(input_list) == 0: cls.log_debug('Skip %s, no devices to attach', template_name) return None return input_list
def get_template_input(template_id): uuid_list = [ uuid for uuid, _ in DeviceTemplateAttached.get_raise( api, template_id) ] values = DeviceTemplateValues( api.post( DeviceTemplateValues.api_params(template_id, uuid_list), DeviceTemplateValues.api_path.post)) return values.input_list()