def dump_to_dict(self): resource = {} software_config_config = {} software_config_config['type'] = self.type properties = {} if self.config: _config = '' for command in self.config: _config += "%s\n" % command.command properties['config'] = SysUtil.literal_unicode((_config)) if self.group: properties['group'] = self.group if self.inputs: _inputs = [] for input in self.inputs: _inputs.append({'name': input}) properties['inputs'] = _inputs if self.outputs: properties['outputs'] = self.outputs else: properties['outputs'] = [{'name': 'result'}] software_config_config['properties'] = properties resource[self.name] = software_config_config return resource
def dump_to_dict(self): resource = {} software_config_config = {} software_config_config['type'] = self.type properties = {} if self.config: _config = '' for command in self.config: _config += "%s\n" % command.command properties['config'] = SysUtil.literal_unicode((_config)) if self.group: properties['group'] = self.group if self.inputs: _inputs = [] for input in self.inputs: _inputs.append({'name':input}) properties['inputs'] = _inputs if self.outputs: properties['outputs'] = self.outputs else: properties['outputs'] = [{'name':'result'}] software_config_config['properties']= properties resource[self.name] = software_config_config return resource
def dump_to_dict(self): db = DatabaseManager() resource = {} server_config = {} server_config['type'] = self.type properties = {} properties['name'] = self.name properties['image'] = self.image properties['flavor'] = self.flavor if self.key_name is not None: properties['key_name'] = self.key_name if self.availability_zone is not None: properties['availability_zone'] = self.availability_zone if self.network_ports is not None: networks = [] LOG.debug(self.network_ports) for network_port in self.network_ports: networks.append({'port': { 'get_resource' : network_port.name}}) properties['networks'] = networks if self.user_data: properties['user_data_format'] = 'RAW' properties['user_data'] = {} properties['user_data']['str_replace'] = {} properties['user_data']['str_replace']['template'] = '' _user_data = '' _user_data_list = [] for command in self.user_data: _user_data += "%s\n" % command.command properties['user_data']['str_replace']['template'] = SysUtil.literal_unicode((_user_data)) properties['user_data']['str_replace']['params'] = {'':''} if self.requirements: params = {} for requirement in self.requirements: try: source_service_instances = db.get_by_name(ServiceInstance,requirement.source) except: LOG.debug('ERROR: Entry %s was not found in Table ServiceInstance' % requirement.source) raise source_units = [] if source_service_instances: source_service_instance = source_service_instances[0] source_units = source_service_instance.units LOG.debug(source_units) if source_units: if requirement.parameter == 'private_ip' or requirement.parameter == 'public_ip': #Get requested network specified in the requirement _networks = [network for network in source_service_instance.networks if network.name == requirement.obj_name ] _network = None if _networks: _network_id = _networks[0].private_net else: LOG.debug('ERROR: obj_name %s was not found in networks of ServiceInstance %s' % (requirement.obj_name,source_service_instance)) raise #Get network name of the specified network id _network_names = [network.name for network in db.get_all(Network) if network.ext_id == _network_id] _network_name = None if _network_names: _network_name = _network_names[0] else: LOG.debug('ERROR: Cannot find network with id %s in Table Network' % _network_id) if requirement.parameter == "private_ip": ip_number = 0 elif requirement.parameter == "public_ip": ip_number = 1 #Create the variable _params = {} _first_unit = source_units[0] _template = '$%s' % _first_unit.hostname _params['$%s' % _first_unit.hostname] = {'get_attr': [_first_unit.hostname, 'networks', _network_name, ip_number]} for source_unit in source_units[1:]: _template += ';$%s' % source_unit.hostname _params['$%s' % source_unit.hostname] = {'get_attr': [source_unit.hostname, 'networks', _network_name, ip_number]} param = {} param[requirement.name] = {} param[requirement.name]['str_replace'] = {} param[requirement.name]['str_replace']['template'] = _template param[requirement.name]['str_replace']['params'] = _params params.update(param) else: LOG.debug('ERROR: Units for ServiceInstance %s were not found.' % requirement.source) raise Exception else: LOG.debug('ERROR: ServiceInstance %s was not found' % requirement.source) raise Exception properties['user_data']['str_replace']['params'] = params server_config['properties'] = properties resource[self.name] = server_config return resource
def dump_to_dict(self): db = DatabaseManager() resource = {} server_config = {} server_config["type"] = self.type properties = {} properties["name"] = self.name properties["image"] = self.image properties["flavor"] = self.flavor if self.key_name is not None: properties["key_name"] = self.key_name if self.availability_zone is not None: properties["availability_zone"] = self.availability_zone if self.network_ports is not None: networks = [] logger.debug(self.network_ports) for network_port in self.network_ports: networks.append({"port": {"get_resource": network_port.name}}) properties["networks"] = networks if self.user_data: properties["user_data_format"] = "RAW" properties["user_data"] = {} properties["user_data"]["str_replace"] = {} properties["user_data"]["str_replace"]["template"] = "" _user_data = "" _user_data_list = [] for command in self.user_data: _user_data += "%s\n" % command.command properties["user_data"]["str_replace"]["template"] = SysUtil.literal_unicode((_user_data)) properties["user_data"]["str_replace"]["params"] = {"": ""} if self.requirements: params = {} for requirement in self.requirements: try: source_service_instances = db.get_by_name(ServiceInstance, requirement.source) except: logger.debug("ERROR: Entry %s was not found in Table ServiceInstance" % requirement.source) raise source_units = [] if source_service_instances: source_service_instance = source_service_instances[0] source_units = source_service_instance.units logger.debug(source_units) if source_units: if requirement.parameter == "private_ip" or requirement.parameter == "public_ip": # Get requested network specified in the requirement _networks = [ network for network in source_service_instance.networks if network.name == requirement.obj_name ] _network = None if _networks: _network_id = _networks[0].private_net else: logger.debug( "ERROR: obj_name %s was not found in networks of ServiceInstance %s" % (requirement.obj_name, source_service_instance) ) raise # Get network name of the specified network id _network_names = [ network.name for network in db.get_all(Network) if network.ext_id == _network_id ] _network_name = None if _network_names: _network_name = _network_names[0] else: logger.debug("ERROR: Cannot find network with id %s in Table Network" % _network_id) if requirement.parameter == "private_ip": ip_number = 0 elif requirement.parameter == "public_ip": ip_number = 1 # Create the variable _params = {} _first_unit = source_units[0] _template = "$%s" % _first_unit.hostname _params["$%s" % _first_unit.hostname] = { "get_attr": [_first_unit.hostname, "networks", _network_name, ip_number] } for source_unit in source_units[1:]: _template += ";$%s" % source_unit.hostname _params["$%s" % source_unit.hostname] = { "get_attr": [source_unit.hostname, "networks", _network_name, ip_number] } param = {} param[requirement.name] = {} param[requirement.name]["str_replace"] = {} param[requirement.name]["str_replace"]["template"] = _template param[requirement.name]["str_replace"]["params"] = _params params.update(param) else: logger.debug("ERROR: Units for ServiceInstance %s were not found." % requirement.source) raise Exception else: logger.debug("ERROR: ServiceInstance %s was not found" % requirement.source) raise Exception properties["user_data"]["str_replace"]["params"] = params server_config["properties"] = properties resource[self.name] = server_config return resource
def dump_to_dict(self): db = DatabaseManager() resource = {} server_config = {} server_config['type'] = self.type properties = {} properties['name'] = self.name properties['image'] = self.image properties['flavor'] = self.flavor if self.key_name is not None: properties['key_name'] = self.key_name if self.availability_zone is not None: properties['availability_zone'] = self.availability_zone if self.network_ports is not None: networks = [] LOG.debug(self.network_ports) for network_port in self.network_ports: networks.append({'port': {'get_resource': network_port.name}}) properties['networks'] = networks if self.user_data: properties['user_data_format'] = 'RAW' properties['user_data'] = {} properties['user_data']['str_replace'] = {} properties['user_data']['str_replace']['template'] = '' _user_data = '' _user_data_list = [] for command in self.user_data: _user_data += "%s\n" % command.command properties['user_data']['str_replace'][ 'template'] = SysUtil.literal_unicode((_user_data)) properties['user_data']['str_replace']['params'] = {'': ''} if self.requirements: params = {} for requirement in self.requirements: try: source_service_instances = db.get_by_name( ServiceInstance, requirement.source) except: LOG.debug( 'ERROR: Entry %s was not found in Table ServiceInstance' % requirement.source) raise source_units = [] if source_service_instances: source_service_instance = source_service_instances[0] source_units = source_service_instance.units LOG.debug(source_units) if source_units: if requirement.parameter == 'private_ip' or requirement.parameter == 'public_ip': #Get requested network specified in the requirement _networks = [ network for network in source_service_instance.networks if network.name == requirement.obj_name ] _network = None if _networks: _network_id = _networks[0].private_net else: LOG.debug( 'ERROR: obj_name %s was not found in networks of ServiceInstance %s' % (requirement.obj_name, source_service_instance)) raise #Get network name of the specified network id _network_names = [ network.name for network in db.get_all(Network) if network.ext_id == _network_id ] _network_name = None if _network_names: _network_name = _network_names[0] else: LOG.debug( 'ERROR: Cannot find network with id %s in Table Network' % _network_id) if requirement.parameter == "private_ip": ip_number = 0 elif requirement.parameter == "public_ip": ip_number = 1 #Create the variable _params = {} _first_unit = source_units[0] _template = '$%s' % _first_unit.hostname _params['$%s' % _first_unit.hostname] = { 'get_attr': [ _first_unit.hostname, 'networks', _network_name, ip_number ] } for source_unit in source_units[1:]: _template += ';$%s' % source_unit.hostname _params['$%s' % source_unit.hostname] = { 'get_attr': [ source_unit.hostname, 'networks', _network_name, ip_number ] } param = {} param[requirement.name] = {} param[requirement.name]['str_replace'] = {} param[requirement. name]['str_replace']['template'] = _template param[requirement. name]['str_replace']['params'] = _params params.update(param) else: LOG.debug( 'ERROR: Units for ServiceInstance %s were not found.' % requirement.source) raise Exception else: LOG.debug('ERROR: ServiceInstance %s was not found' % requirement.source) raise Exception properties['user_data']['str_replace']['params'] = params server_config['properties'] = properties resource[self.name] = server_config return resource