Esempio n. 1
0
    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)
Esempio n. 2
0
    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))
Esempio n. 7
0
    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()
Esempio n. 8
0
    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)
Esempio n. 9
0
    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))
Esempio n. 11
0
 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)
Esempio n. 12
0
 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)
Esempio n. 13
0
 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)
Esempio n. 14
0
 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)
Esempio n. 15
0
 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)
Esempio n. 16
0
 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)
Esempio n. 17
0
 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)
Esempio n. 18
0
 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')
Esempio n. 19
0
File: so.py Progetto: Alez87/rcbaas
 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')
Esempio n. 20
0
    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)
Esempio n. 21
0
 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)
Esempio n. 22
0
    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
Esempio n. 23
0
 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)
Esempio n. 24
0
 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)
Esempio n. 25
0
File: so.py Progetto: sufuf3/icnaas
 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)
Esempio n. 26
0
    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
        )
Esempio n. 27
0
    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
Esempio n. 28
0
    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)
Esempio n. 29
0
    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'))
 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'))