def __init__(self, token, tenant, attributes): super(SOE, self).__init__(token, tenant) self.uuid = uuid.uuid4() self.site_A_stack_id = None self.site_B_stack_id = None self.site_A_CIDR = attributes['acen.interdc.site_A.cidr'] self.site_B_CIDR = attributes['acen.interdc.site_B.cidr'] self.site_A_platform = attributes['acen.interdc.site_A.platform'] self.site_B_platform = attributes['acen.interdc.site_B.platform'] self.site_A_region = attributes['acen.interdc.site_A.region'] self.site_B_region = attributes['acen.interdc.site_B.region'] self.site_A = netaddr.IPNetwork(self.site_A_CIDR) self.site_B = netaddr.IPNetwork(self.site_B_CIDR) self.site_A_net = str(self.site_A.ip) self.site_B_net = str(self.site_B.ip) self.site_A_gw = str(self.site_A.ip + 1) self.site_B_gw = str(self.site_B.ip + 1) self.site_A_mask = str(self.site_A.netmask) self.site_B_mask = str(self.site_B.netmask) self.site_A_deployer = util.get_deployer(token, url_type='public', tenant_name=tenant, region=self.site_A_region) self.site_B_deployer = util.get_deployer(token, url_type='public', tenant_name=tenant, region=self.site_B_region) self.keypair = Crypto.PublicKey.RSA.generate(2048, os.urandom) self.pem_path = '/tmp/%s.PEM' % str(self.uuid)
def __init__(self, token, tenant, attributes): super(SOE, self).__init__(token, tenant) self.uuid = uuid.uuid4() self.site_A_stack_id = None self.site_B_stack_id = None self.site_A_CIDR = attributes['acen.interdc.site_A.cidr'] self.site_B_CIDR = attributes['acen.interdc.site_B.cidr'] self.site_A_platform = attributes['acen.interdc.site_A.platform'] self.site_B_platform = attributes['acen.interdc.site_B.platform'] self.site_A_region = attributes['acen.interdc.site_A.region'] self.site_B_region = attributes['acen.interdc.site_B.region'] self.site_A = netaddr.IPNetwork(self.site_A_CIDR) self.site_B = netaddr.IPNetwork(self.site_B_CIDR) self.site_A_net = str(self.site_A.ip) self.site_B_net = str(self.site_B.ip) self.site_A_gw = str(self.site_A.ip + 1) self.site_B_gw = str(self.site_B.ip + 1) self.site_A_mask = str(self.site_A.netmask) self.site_B_mask = str(self.site_B.netmask) self.site_A_deployer = util.get_deployer( token, url_type='public', tenant_name=tenant, region=self.site_A_region) self.site_B_deployer = util.get_deployer( token, url_type='public', tenant_name=tenant, region=self.site_B_region) self.keypair = Crypto.PublicKey.RSA.generate(2048, os.urandom) self.pem_path = '/tmp/%s.PEM' % str(self.uuid)
def test_get_deployer_for_sanity(self): """ Test retrieval of Deployer for sanity with regions in place. Requires: keystone service-create --name=cs_heat --type=orchestration --description="A CS heat service" keystone endpoint-create --region CloudSigma --service-id=<id> --publicurl=http://192.168.206.130:5000/v2.0 --internalurl=http://192.168.206.130:5000/v2.0 --adminurl=http://192.168.206.130:35357/v2.0 """ tmp0 = util.get_deployer(self.token) self.assertTrue(tmp0.endpoint.find('http://192.168.0.181:8004') != -1) tmp1 = util.get_deployer(self.token, region='CloudSigma') if tmp1 is not None: LOG.warn('Could not find CloudSigma region.') self.assertTrue( tmp1.endpoint.find('http://192.168.206.130:5000') != -1) tmp2 = util.get_deployer(self.token, region='Antartica') self.assertIsNone(tmp2)
def test_get_deployer_for_sanity(self): """ Test retrieval of Deployer for sanity with regions in place. Requires: keystone service-create --name=cs_heat --type=orchestration --description="A CS heat service" keystone endpoint-create --region CloudSigma --service-id=<id> --publicurl=http://192.168.206.130:5000/v2.0 --internalurl=http://192.168.206.130:5000/v2.0 --adminurl=http://192.168.206.130:35357/v2.0 """ tmp0 = util.get_deployer(self.token) self.assertTrue(tmp0.endpoint.find('http://192.168.0.181:8004') != -1) tmp1 = util.get_deployer(self.token, region='CloudSigma') if tmp1 is not None: LOG.warn('Could not find CloudSigma region.') self.assertTrue(tmp1.endpoint.find('http://192.168.206.130:5000') != -1) tmp2 = util.get_deployer(self.token, region='Antartica') self.assertIsNone(tmp2)
def setUp(self): # setup if 'OS_USER' not in os.environ or 'OS_PWD' not in os.environ: raise AttributeError('Please provide OS_USER, OS_PWD as env vars.') if 'DESIGN_URI' in os.environ: kep = os.environ['DESIGN_URI'] else: kep = 'http://localhost:35357/v2.0' user = os.environ['OS_USER'] pwd = os.environ['OS_PWD'] if 'OS_TENANT' in os.environ: t_name = os.environ['OS_TENANT'] else: t_name = 'demo' # keystone stuff. keystone = client.Client(username=user, password=pwd, tenant_name=t_name, auth_url=kep) self.token = keystone.auth_token # class under test self.cut = util.get_deployer(self.token)
def test_get_deployer_for_success(self): """ Test retrieval of Deployer for success. """ tmp = util.get_deployer(self.token) self.assertTrue(isinstance(tmp, deployment.Deployer))
def __init__(self, token, tenant, ready_event, **kwargs): super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.event = ready_event self.app_url = kwargs.get( 'app_url', 'http://localhost:8080/orchestrator/default') f = open(os.path.join(HERE, 'data', 'one-vm.yaml')) self.template = f.read() f.close() self.stack_id = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant) self.template_obj = yaml.load(self.template) self.mon_user = self.mon_pass = self.mon_id = None self.mon_not = dict() self.mon_not_ids = [] self.hostname = 'host1' # the name of the host we'll monitor self.service = 'IAMSERVICE4' # as resource are renamed when template is updated to recreate a resource, # one needs to keep track of mappings between original name # and updated name if the renamed resource fails again self.mappings = dict()
def __init__(self, token, tenant, ready_event, stop_event): super(SOE, self).__init__(token, tenant) self.stack_id = None self.dss_endpoint = None region_name = 'UBern' #start DNSaaS support self.ready_event = ready_event self.stop_event = stop_event self.aaaDomainName = 'mcn.com' self.recOpenam = 'aaa-openam-instance' self.recInfoOpenam = None self.recProfile = 'aaa-profile-instance' self.recInfoProfile = None self.dns_api = None self.dns_forwarder = None self.dns_info_configured = False self.dnsaas = None self.time_wait=20 self.time_wait_after_dns=60 #end DNSaaS support self.deployer = util.get_deployer(token, url_type='public', tenant_name=tenant, region=region_name)
def __init__(self, token, tenant): super(SOE, self).__init__(token, tenant) self.stack_id = None region_name = 'EURE' self.deployer = util.get_deployer(token, url_type='public', tenant_name=tenant, region=region_name) LOG.info('Bundle dir: ' + BUNDLE_DIR)
def __init__(self, token, tenant_name): # read template... self.token = token self.tenant_name = tenant_name f = open(os.path.join(HERE, 'data', 'epc-test.yaml')) self.template = f.read() f.close() self.stack_id = None # make sure we can talk to deployer... self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant_name)
def __init__(self, token, tenant): # read template... self.token = token self.tenant_name = tenant f = open(os.path.join(HERE, 'data', 'crm.yaml')) self.template = f.read() f.close() self.stack_id = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant_name)
def __init__(self, token, tenant, ready_event): super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.event = ready_event f = open(os.path.join(HERE, 'data', 'test.yaml')) self.template = f.read() f.close() self.stack_id = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant)
def __init__(self, token, tenant, ready_event): self.token = token self.tenant_name = tenant self.event = ready_event f = open(os.path.join(HERE, 'data', 'mobaas.yaml')) self.template = f.read() f.close() self.endpoint = None self.stack_id = None self.region_name = 'UBern' #self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant_name) self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant_name, region=self.region_name)
def __init__(self, token, tenant, ready_event, stop_event): super(SOE, self).__init__(token, tenant) self.stack_id = None self.rcb_mq_endpoint = None self.maas_endpoint = None self.ready_event = ready_event self.stop_event = stop_event self.time_wait = 20 region_name = 'RegionOne' self.deployer = util.get_deployer(token, url_type='public', tenant_name=tenant, region=region_name)
def __init__(self, token, tenant, ready_event, destroy_event): super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.event = ready_event self.destroy_event = destroy_event f = open(os.path.join(BUNDLE_DIR, 'data', 'rcb_cs.json')) self.template = f.read() f.close() self.stack_id = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant, region='ZurichCloudSigma')
def __init__(self, token, tenant_name, ready_event, stop_event, region_name=DEFAULT_REGION): """ docstring stub """ # super(EPCSOExecution, self).__init__(token, tenant_name) service_orchestrator.Execution.__init__(self, token, tenant_name) self.token = token self.tenant_name = tenant_name if region_name is not None and region_name != '': self.region_name = region_name self.event = ready_event # update finished self.stop_event = stop_event # disposal method called self.stack_id = None self.stg = STG() self.epc_config = epc_config.EPCConfig() self.mme_monitor = epc_monitor.MMEMonitor() self.gw_monitor = epc_monitor.GWMonitor() self.maas = None self.dnsaas = None if self.region_name == 'UBern': # heat_parameters contains the parameters passed to heat self.heat_parameters = ubern_heat_parameters self.conf_param = { 'conf_proxy': ubern_parameters['conf_proxy'], 'cidr_float': ubern_parameters['cidr_float'], 'gw_mgmt': ubern_parameters['gw_mgmt'] } elif self.region_name == 'RegionOne': self.heat_parameters = bart_heat_parameters # os.environ['http_proxy'] = bart_parameters['conf_proxy'] self.conf_param = { 'conf_proxy': bart_parameters['conf_proxy'], 'cidr_float': bart_parameters['cidr_float'], 'gw_mgmt': bart_parameters['gw_mgmt'] } self.sm_parameters = {} # Contains parameters passed by SM LOG.debug('EPC SO Execution init') self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant_name, region=self.region_name)
def __init__(self, token, tenant, ready_event): super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.event = ready_event self.influxdb_ip = None self.updated = False self.maas_endpoint = None self.stack_id = None self.stack_id_old = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant, region=myparameters.DEFAULT_REGION)
def __init__(self, token, tenant): LOG.info( "initializing stack") super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.hadoop_master = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant) LOG.info("token = "+self.token) LOG.info("tenant = "+self.tenant) # the instance variables have to be initialised - for more details, see # defaultSettings.cfg self.clusterName = None self.masterImage = None self.slaveImage = None self.masterFlavor = None self.slaveFlavor = None self.slaveOnMaster = None self.SSHPublicKeyName = None self.SSHMasterPublicKey = None self.withFloatingIP = None self.master_name = None self.slave_name = None self.subnet_cidr = None self.subnet_gw_ip = None self.subnet_allocation_pool_start = None self.subnet_allocation_pool_end = None self.subnet_dns_servers = None self.image_id = None self.floatingIpId = None self.slaveCount = None self.masterBash = None self.transferMethod = None self.diskId = None self.username = None self.usergroup = None self.homedir = None self.saveToLocalPath = None self.noDeployment = None self.createVolumeForAttachment = None
def __init__(self, token, tenant, ready_event): super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.event = ready_event self.updated = False self.endpoint = None self.maas_endpoint = None self.mobaas_endpoint = None # Default topology self.layers = {} self.routers = {} self.stack_id = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant, region=DEFAULT_REGION)
def __init__(self, token, tenant_name, ready_event, stop_event, region_name=DEFAULT_REGION): """ docstring stub """ # super(EPCSOExecution, self).__init__(token, tenant_name) service_orchestrator.Execution.__init__(self, token, tenant_name) self.token = token self.tenant_name = tenant_name if region_name is not None and region_name != "": self.region_name = region_name self.event = ready_event # update finished self.stop_event = stop_event # disposal method called self.stack_id = None self.stg = STG() self.epc_config = epc_config.EPCConfig() self.mme_monitor = epc_monitor.MMEMonitor() self.gw_monitor = epc_monitor.GWMonitor() self.maas = None self.dnsaas = None if self.region_name == "UBern": # heat_parameters contains the parameters passed to heat self.heat_parameters = ubern_heat_parameters self.conf_param = { "conf_proxy": ubern_parameters["conf_proxy"], "cidr_float": ubern_parameters["cidr_float"], "gw_mgmt": ubern_parameters["gw_mgmt"], } elif self.region_name == "RegionOne": self.heat_parameters = bart_heat_parameters # os.environ['http_proxy'] = bart_parameters['conf_proxy'] self.conf_param = { "conf_proxy": bart_parameters["conf_proxy"], "cidr_float": bart_parameters["cidr_float"], "gw_mgmt": bart_parameters["gw_mgmt"], } self.sm_parameters = {} # Contains parameters passed by SM LOG.debug("EPC SO Execution init") self.deployer = util.get_deployer( self.token, url_type="public", tenant_name=self.tenant_name, region=self.region_name )
def __deployer(self, s_mani): """ this modifies the in-memory copy of the service manifest """ deployer = {} # deployer['hash'] = hashlib.md5(str(s_mani['resources'])).hexdigest() for region in s_mani['resources'].keys(): # create a hash per deployment and provisioning template to use later in detecting updates dep = urllib2.urlopen(s_mani['resources'][region]['deployment']).read() # dep['hash'] = hashlib.md5(str(dep)).hexdigest() prov = urllib2.urlopen(s_mani['resources'][region]['provision']).read() # prov['hash'] = hashlib.md5(str(prov)).hexdigest() deployer[region] = { 'client': util.get_deployer(self.token, url_type='public', tenant_name=self.tenant, region=region), 'deployment': dep, 'provision': prov, 'stack_id': '' } s_mani['resources'] = deployer return s_mani
def __init__(self, token, tenant, attributes): super(SOE, self).__init__(token, tenant) self.uuid = uuid.uuid4() self.stack_id = None cp = os.path.dirname(os.path.abspath(__file__)) self.script_dir = os.path.abspath(os.path.join(cp, '../data/scripts/')) self.HOT_dir = os.path.abspath(os.path.join(cp, '../data/')) self.host_ips = None self.platform = attributes['acen.ims.platform'] self.region = attributes['acen.ims.region'] self.dns_zone = attributes['acen.ims.dns_zone'] self.dns_key = attributes['acen.ims.dns_key'] self.signup_key = attributes['acen.ims.signup_key'] self.deployer = util.get_deployer( token, url_type='public', tenant_name=tenant, region=self.region) # Generate management SSH key pair self.keypair = Crypto.PublicKey.RSA.generate(2048, os.urandom) self.pem_path = '/tmp/%s.PEM' % str(self.uuid)
def __init__(self, token, tenant, ready_event, **kwargs): super(SOE, self).__init__(token, tenant) self.token = token self.tenant = tenant self.event = ready_event self.app_url = kwargs.get('app_url', 'http://localhost:8080/orchestrator/default') f = open(os.path.join(HERE, 'data', 'one-vm.yaml')) self.template = f.read() f.close() self.stack_id = None self.deployer = util.get_deployer(self.token, url_type='public', tenant_name=self.tenant) self.template_obj = yaml.load(self.template) self.mon_user = self.mon_pass = self.mon_id = None self.mon_not = dict() self.mon_not_ids = [] self.hostname = 'host1' # the name of the host we'll monitor self.service = 'IAMSERVICE4' # as resource are renamed when template is updated to recreate a resource, # one needs to keep track of mappings between original name # and updated name if the renamed resource fails again self.mappings = dict()
def test_retrieval_for_failure(self): """ Test retrieval. """ self.assertIsNone(util.get_deployer(self.token, 'aws')) self.assertIsNone(util.get_security_service(self.token, 'LDAP'))