def setUp(self):
        super(MetadataTestCase, self).setUp()
        reload(setting)
        setting.CONFIG_DIR = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'data'
        )
        database.init('sqlite://')
        database.create_db()
        adapter.load_adapters()
        metadata.load_metadatas()

        # Get a os_id and adapter_id
        self.user_object = (
            user_api.get_user_object(
                setting.COMPASS_ADMIN_EMAIL
            )
        )
        self.adapter_object = adapter.list_adapters(self.user_object)
        test_adapter = None
        for adapter_obj in self.adapter_object:
            if adapter_obj['name'] == 'openstack_icehouse':
                self.adapter_id = adapter_obj['id']
                test_adapter = adapter_obj
                break
        self.os_id = None
        if test_adapter['flavors']:
            for supported_os in test_adapter['supported_oses']:
                self.os_id = supported_os['os_id']
                break
            for flavor in test_adapter['flavors']:
                if flavor['name'] == 'HA-multinodes':
                    self.flavor_id = flavor['id']
                    break
Пример #2
0
    def setUp(self):
        super(AdapterTestCase, self).setUp()
        os.environ['COMPASS_IGNORE_SETTING'] = 'true'
        os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
            os.path.dirname(os.path.abspath(__file__)), 'data')
        reload(setting)
        database.init('sqlite://')
        database.create_db()
        self.user_object = (user_api.get_user_object(
            setting.COMPASS_ADMIN_EMAIL))

        mock_config = mock.Mock(side_effect=self._mock_load_configs)
        self.backup_adapter_configs = util.load_configs
        util.load_configs = mock_config
        adapter.load_adapters(force_reload=True)
        adapter.load_flavors(force_reload=True)
        self.adapter_object = adapter.list_adapters(user=self.user_object)
        self.adapter_obj = None
        self.adapter_id = None
        self.flavor_id = None
        for adapter_obj in self.adapter_object:
            if adapter_obj['name'] == 'openstack_icehouse':
                self.adapter_obj = adapter_obj
                self.adapter_id = adapter_obj['id']
                break

        for flavor in self.adapter_obj['flavors']:
            if flavor['name'] == 'HA-multinodes':
                self.flavor_id = flavor['id']
                break
Пример #3
0
    def setUp(self):
        super(AdapterTestCase, self).setUp()
        os.environ['COMPASS_IGNORE_SETTING'] = 'true'
        os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'data'
        )
        reload(setting)
        database.init('sqlite://')
        database.create_db()
        self.user_object = (
            user_api.get_user_object(
                setting.COMPASS_ADMIN_EMAIL
            )
        )

        mock_config = mock.Mock(side_effect=self._mock_load_configs)
        self.backup_adapter_configs = util.load_configs
        util.load_configs = mock_config
        adapter.load_adapters(force_reload=True)
        adapter.load_flavors(force_reload=True)
        self.adapter_object = adapter.list_adapters(user=self.user_object)
        self.adapter_obj = None
        self.adapter_id = None
        self.flavor_id = None
        for adapter_obj in self.adapter_object:
            if adapter_obj['name'] == 'openstack_icehouse':
                self.adapter_obj = adapter_obj
                self.adapter_id = adapter_obj['id']
                break

        for flavor in self.adapter_obj['flavors']:
            if flavor['name'] == 'HA-multinodes':
                self.flavor_id = flavor['id']
                break
Пример #4
0
    def setUp(self):
        super(AdapterTestCase, self).setUp()
        reload(setting)
        setting.CONFIG_DIR = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'data'
        )
        database.init('sqlite://')
        database.create_db()
        self.user_object = (
            user_api.get_user_object(
                setting.COMPASS_ADMIN_EMAIL
            )
        )

        mock_config = mock.Mock()
        self.backup_adapter_configs = util.load_configs
        util.load_configs = mock_config
        configs = [{
            'NAME': 'openstack_test',
            'DISLAY_NAME': 'Test OpenStack Icehouse',
            'PACKAGE_INSTALLER': 'chef_installer',
            'OS_INSTALLER': 'cobbler',
            'SUPPORTED_OS_PATTERNS': ['(?i)centos.*', '(?i)ubuntu.*'],
            'DEPLOYABLE': True
        }]
        util.load_configs.return_value = configs
        with database.session() as session:
            adapter_api.add_adapters_internal(session)
        adapter.load_adapters()
        self.adapter_object = adapter.list_adapters(user=self.user_object)
        for adapter_obj in self.adapter_object:
            if adapter_obj['name'] == 'openstack_icehouse':
                self.adapter_id = adapter_obj['id']
                break
Пример #5
0
 def setUp(self):
     super(TestModelFilter, self).setUp()
     os.environ["COMPASS_IGNORE_SETTING"] = "true"
     os.environ["COMPASS_CONFIG_DIR"] = os.path.join(os.path.dirname(os.path.abspath(__file__)), "data")
     reload(setting)
     database.init("sqlite://")
     database.create_db()
Пример #6
0
    def setUp(self):
        super(MetadataTestCase, self).setUp()
        os.environ['COMPASS_IGNORE_SETTING'] = 'true'
        os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
            os.path.dirname(os.path.abspath(__file__)), 'data')
        reload(setting)
        database.init('sqlite://')
        database.create_db()
        adapter.load_adapters(force_reload=True)
        metadata.load_metadatas(force_reload=True)
        adapter.load_flavors(force_reload=True)

        # Get a os_id and adapter_id
        self.user_object = (user_api.get_user_object(
            setting.COMPASS_ADMIN_EMAIL))
        self.adapter_object = adapter.list_adapters(self.user_object)
        test_adapter = None
        for adapter_obj in self.adapter_object:
            if adapter_obj['name'] == 'openstack_icehouse':
                self.adapter_id = adapter_obj['id']
                test_adapter = adapter_obj
                break
        self.os_id = None
        if test_adapter['flavors']:
            for supported_os in test_adapter['supported_oses']:
                self.os_id = supported_os['os_id']
                break
            for flavor in test_adapter['flavors']:
                if flavor['name'] == 'HA-multinodes':
                    self.flavor_id = flavor['id']
                    break
Пример #7
0
 def setUp(self):
     super(TestModelFilter, self).setUp()
     os.environ['COMPASS_IGNORE_SETTING'] = 'true'
     os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
         os.path.dirname(os.path.abspath(__file__)), 'data')
     reload(setting)
     database.init('sqlite://')
     database.create_db()
Пример #8
0
 def setUp(self):
     super(TestGetUserObject, self).setUp()
     reload(setting)
     setting.CONFIG_DIR = os.path.join(
         os.path.dirname(os.path.abspath(__file__)),
         'data'
     )
     database.init('sqlite://')
     database.create_db()
Пример #9
0
 def setUp(self):
     super(TestGetUserObject, self).setUp()
     os.environ['COMPASS_IGNORE_SETTING'] = 'true'
     os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
         os.path.dirname(os.path.abspath(__file__)),
         'data'
     )
     reload(setting)
     database.init('sqlite://')
     database.create_db()
Пример #10
0
def createdb():
    """Create database from sqlalchemy models"""
    path = '/tmp/app.db'
    if os.path.exists(path):
        os.remove(path)
    try:
        database.create_db()
    except Exception as e:
        print e
    os.chmod(path, 0o777)
Пример #11
0
 def setUp(self):
     super(BaseTest, self).setUp()
     os.environ['COMPASS_IGNORE_SETTING'] = 'true'
     os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
         os.path.dirname(os.path.abspath(__file__)), 'data')
     reload(setting)
     database.init('sqlite://')
     database.create_db()
     adapter_api.load_adapters(force_reload=True)
     metadata_api.load_metadatas(force_reload=True)
     adapter_api.load_flavors(force_reload=True)
     self.user_object = (user_api.get_user_object(
         setting.COMPASS_ADMIN_EMAIL))
Пример #12
0
def createdb():
    """Creates database from sqlalchemy models."""
    try:
        dropdb()
    except Exception:
        pass

    if setting.DATABASE_TYPE == 'file':
        if os.path.exists(setting.DATABASE_FILE):
            os.remove(setting.DATABASE_FILE)
    database.create_db()
    if setting.DATABASE_TYPE == 'file':
        os.chmod(setting.DATABASE_FILE, 0o777)
Пример #13
0
def createdb():
    """Creates database from sqlalchemy models."""
    database.init()
    try:
        database.drop_db()
    except Exception:
        pass

    if setting.DATABASE_TYPE == 'file':
        if os.path.exists(setting.DATABASE_FILE):
            os.remove(setting.DATABASE_FILE)
    database.create_db()
    if setting.DATABASE_TYPE == 'file':
        os.chmod(setting.DATABASE_FILE, 0o777)
Пример #14
0
 def setUp(self):
     super(BaseTest, self).setUp()
     reload(setting)
     setting.CONFIG_DIR = os.path.join(
         os.path.dirname(os.path.abspath(__file__)),
         'data'
     )
     database.init('sqlite://')
     database.create_db()
     adapter_api.load_adapters()
     metadata_api.load_metadatas()
     self.user_object = (
         user_api.get_user_object(
             setting.COMPASS_ADMIN_EMAIL
         )
     )
Пример #15
0
 def setUp(self):
     super(BaseTest, self).setUp()
     os.environ['COMPASS_IGNORE_SETTING'] = 'true'
     os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
         os.path.dirname(os.path.abspath(__file__)),
         'data'
     )
     reload(setting)
     database.init('sqlite://')
     database.create_db()
     adapter_api.load_adapters(force_reload=True)
     metadata_api.load_metadatas(force_reload=True)
     adapter_api.load_flavors(force_reload=True)
     self.user_object = (
         user_api.get_user_object(
             setting.COMPASS_ADMIN_EMAIL
         )
     )
Пример #16
0
 def setUp(self):
     super(TestProgressCalculator, self).setUp()
     parent_path = os.path.abspath(os.path.join(
         os.path.dirname(__file__), "../../../.."
     ))
     setting.CONFIG_DIR = os.path.join(parent_path, 'conf')
     logsetting.init()
     self._mock_lock()
     database.init('sqlite://')
     database.create_db()
     self.backup_cobbler_installation_dir = (
         setting.COBBLER_INSTALLATION_LOGDIR
     )
     self.backup_chef_installation_dir = setting.CHEF_INSTALLATION_LOGDIR
     self.backup_installation_dir = setting.INSTALLATION_LOGDIR
     self.tmp_logpath = os.path.join('/tmp/mocklogs', str(uuid.uuid4()))
     setting.COBBLER_INSTALLATION_LOGDIR = self.tmp_logpath
     setting.CHEF_INSTALLATION_LOGDIR = self.tmp_logpath
     setting.INSTALLATION_LOGDIR = {
         'CobblerInstaller': setting.COBBLER_INSTALLATION_LOGDIR,
         'ChefInstaller': setting.CHEF_INSTALLATION_LOGDIR
     }
     reload(progress_calculator)
Пример #17
0
    def setUp(self):
        super(ApiTestCase, self).setUp()
        database.init(self.DATABASE_URL)
        database.create_db()

        self.test_client = app.test_client()
Пример #18
0
    def setUp(self):
        super(ApiTestCase, self).setUp()
        reload(setting)
        setting.CONFIG_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "data")
        database.init("sqlite://")
        database.create_db()
        adapter_api.load_adapters()
        metadata_api.load_metadatas()

        from compass.api import api as compass_api

        application = compass_api.app
        self.test_client = application.test_client()

        celery.current_app.send_task = mock.Mock()
        from compass.tasks import client as celery_client

        celery_client.celery.send_task = mock.Mock()
        url = "/users/token"
        data = self.USER_CREDENTIALS
        request_data = json.dumps(data)
        return_value = self.test_client.post(url, data=request_data)
        resp = return_value.get_data()
        resp = json.loads(resp)
        self.token = resp["token"]

        # create a cluster
        adapter_name, adapter_id, os_id, flavor_id = self._get_adapter_info()
        url = "/clusters"
        data = {}
        data["name"] = "test_cluster1"
        data["adapter_id"] = adapter_id
        data["os_id"] = os_id
        self.os_id = os_id
        data["flavor_id"] = flavor_id
        self.post(url, data)
        data = {}
        data["name"] = "test_cluster2"
        data["adapter_id"] = adapter_id
        data["os_id"] = os_id
        self.flavor_id = flavor_id
        data["flavor_id"] = flavor_id
        self.post(url, data)

        # create a switch
        url = "/switches"
        datas = [
            {
                "ip": self.SWITCH_IP_ADDRESS,
                "credentials": {"version": "2c", "community": "public"},
                "vendor": "huawei",
                "state": "under_monitoring",
            },
            {
                "ip": "172.29.8.40",
                "credentials": {"version": "2c", "community": "public"},
                "vendor": "huawei",
                "state": "under_monitoring",
            },
        ]
        for data in datas:
            self.post(url, data)
Пример #19
0
    def setUp(self):
        super(HostTestCase, self).setUp()
        os.environ['COMPASS_IGNORE_SETTING'] = 'true'
        os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'data'
        )
        reload(setting)
        database.init('sqlite://')
        database.create_db()
        adapter.load_adapters(force_reload=True)
        metadata.load_metadatas(force_reload=True)
        adapter.load_flavors(force_reload=True)

        self.user_object = (
            user_api.get_user_object(
                setting.COMPASS_ADMIN_EMAIL
            )
        )
        # get adapter information
        list_adapters = adapter.list_adapters(user=self.user_object)
        for list_adapter in list_adapters:
            for supported_os in list_adapter['supported_oses']:
                self.os_id = supported_os['os_id']
                break
            if list_adapter['flavors']:
                details = list_adapter['flavors']
                for detail in details:
                    if detail['display_name'] == 'allinone':
                        roles = detail['roles']
                        for role in roles:
                            self.adapter_id = role['adapter_id']
                            self.flavor_id = role['flavor_id']
                            break

        # add cluster
        cluster_names = ['test_cluster1', 'test_cluster2']
        for cluster_name in cluster_names:
            cluster.add_cluster(
                user=self.user_object,
                adapter_id=self.adapter_id,
                os_id=self.os_id,
                flavor_id=self.flavor_id,
                name=cluster_name
            )
        clusters = cluster.list_clusters(user=self.user_object)
        self.roles = None
        for list_cluster in clusters:
            for item in list_cluster['flavor']['roles']:
                self.roles = item
            if list_cluster['name'] == 'test_cluster1':
                self.cluster_id = list_cluster['id']
                break
        # add switch
        switch.add_switch(
            user=self.user_object,
            ip='172.29.8.40'
        )
        switches = switch.list_switches(user=self.user_object)
        self.switch_id = None
        for item in switches:
            self.switch_id = item['id']
        macs = ['28:6e:d4:46:c4:25', '00:0c:29:bf:eb:1d']
        for mac in macs:
            switch.add_switch_machine(
                self.switch_id,
                user=self.user_object,
                mac=mac,
                port='1'
            )
        # get machine information
        machines = machine.list_machines(user=self.user_object)
        self.machine_ids = []
        for item in machines:
            self.machine_ids.append(item['id'])
        # add cluster host
        name = ['newname1', 'newname2']
        for i in range(0, 2):
            cluster.add_cluster_host(
                self.cluster_id,
                user=self.user_object,
                machine_id=self.machine_ids[i],
                name=name[i]
            )
        self.host_ids = []
        clusterhosts = cluster.list_clusterhosts(user=self.user_object)
        for clusterhost in clusterhosts:
            self.host_ids.append(clusterhost['host_id'])
        # add subnet
        subnets = ['10.145.88.0/23', '192.168.100.0/23']
        for subnet in subnets:
            network.add_subnet(
                user=self.user_object,
                subnet=subnet
            )
        list_subnet = network.list_subnets(
            user=self.user_object
        )
        self.subnet_ids = []
        for item in list_subnet:
            self.subnet_ids.append(item['id'])
        # add host network
        host.add_host_network(
            self.host_ids[0],
            user=self.user_object,
            interface='eth0',
            ip='10.145.88.0',
            subnet_id=self.subnet_ids[0],
            is_mgmt=True
        )
        host.add_host_network(
            self.host_ids[1],
            user=self.user_object,
            interface='eth1',
            ip='192.168.100.0',
            subnet_id=self.subnet_ids[1],
            is_promiscuous=True
        )
        # add log history
        filenames = ['log1', 'log2']
        for filename in filenames:
            host.add_host_log_history(
                self.host_ids[0],
                user=self.user_object,
                filename=filename
            )

        self.os_configs = {
            'general': {
                'language': 'EN',
                'timezone': 'UTC',
                'http_proxy': 'http://127.0.0.1:3128',
                'https_proxy': 'http://127.0.0.1:3128',
                'no_proxy': [
                    '127.0.0.1',
                    'compass'
                ],
                'ntp_server': '127.0.0.1',
                'dns_servers': [
                    '127.0.0.1'
                ],
                'domain': 'ods.com',
                'search_path': [
                    'ods.com'
                ],
                'default_gateway': '127.0.0.1',
            },
            'server_credentials': {
                'username': '******',
                'password': '******',
            },
            'partition': {
                '/var': {
                    'max_size': '100G',
                    'percentage': 10,
                    'size': '1G'
                }
            }
        }
        self.package_configs = {
            'security': {
                'service_credentials': {
                    '$service': {
                        'username': '******',
                        'password': '******'
                    }
                },
                'console_credentials': {
                    '$console': {
                        'username': '******',
                        'password': '******'
                    }
                }
            },
            'network_mapping': {
                '$interface_type': 'eth0'
            }
        }
Пример #20
0
    def setUp(self):
        super(ApiTestCase, self).setUp()
        os.environ['COMPASS_IGNORE_SETTING'] = 'true'
        os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'data'
        )
        reload(setting)
        database.init('sqlite://')
        database.create_db()
        adapter_api.load_adapters(force_reload=True)
        metadata_api.load_metadatas(force_reload=True)
        adapter_api.load_flavors(force_reload=True)

        from compass.api import api as compass_api
        application = compass_api.app
        self.test_client = application.test_client()

        celery.current_app.send_task = mock.Mock()
        from compass.tasks import client as celery_client
        celery_client.celery.send_task = mock.Mock()
        url = '/users/token'
        data = self.USER_CREDENTIALS
        request_data = json.dumps(data)
        return_value = self.test_client.post(
            url,
            data=request_data,
        )
        resp = return_value.get_data()
        resp = json.loads(resp)
        self.token = resp['token']

        # create a cluster
        adapter_name, adapter_id, os_id, flavor_id = (
            self._get_adapter_info()
        )
        url = '/clusters'
        data = {}
        data['name'] = 'test_cluster1'
        data['adapter_id'] = adapter_id
        data['os_id'] = os_id
        self.os_id = os_id
        data['flavor_id'] = flavor_id
        self.post(url, data)
        data = {}
        data['name'] = 'test_cluster2'
        data['adapter_id'] = adapter_id
        data['os_id'] = os_id
        self.flavor_id = flavor_id
        data['flavor_id'] = flavor_id
        self.post(url, data)

        # create a switch
        url = '/switches'
        datas = [
            {
                'ip': self.SWITCH_IP_ADDRESS,
                'credentials': {
                    "version": "2c",
                    "community": "public"
                },
                'vendor': 'huawei',
                'state': 'under_monitoring'
            },
            {
                'ip': '172.29.8.40',
                'credentials': {
                    "version": "2c",
                    "community": "public"
                },
                'vendor': 'huawei',
                'state': 'under_monitoring'
            }
        ]
        for data in datas:
            self.post(url, data)
Пример #21
0
    def setUp(self):
        super(ApiTestCase, self).setUp()
        os.environ['COMPASS_IGNORE_SETTING'] = 'true'
        os.environ['COMPASS_CONFIG_DIR'] = os.path.join(
            os.path.dirname(os.path.abspath(__file__)), 'data')
        reload(setting)
        database.init('sqlite://')
        database.create_db()
        adapter_api.load_adapters(force_reload=True)
        metadata_api.load_metadatas(force_reload=True)
        adapter_api.load_flavors(force_reload=True)

        from compass.api import api as compass_api
        application = compass_api.app
        self.test_client = application.test_client()

        celery.current_app.send_task = mock.Mock()
        from compass.tasks import client as celery_client
        celery_client.celery.send_task = mock.Mock()
        url = '/users/token'
        data = self.USER_CREDENTIALS
        request_data = json.dumps(data)
        return_value = self.test_client.post(
            url,
            data=request_data,
        )
        resp = return_value.get_data()
        resp = json.loads(resp)
        self.token = resp['token']

        # create a cluster
        adapter_name, adapter_id, os_id, flavor_id = (self._get_adapter_info())
        url = '/clusters'
        data = {}
        data['name'] = 'test_cluster1'
        data['adapter_id'] = adapter_id
        data['os_id'] = os_id
        self.os_id = os_id
        data['flavor_id'] = flavor_id
        self.post(url, data)
        data = {}
        data['name'] = 'test_cluster2'
        data['adapter_id'] = adapter_id
        data['os_id'] = os_id
        self.flavor_id = flavor_id
        data['flavor_id'] = flavor_id
        self.post(url, data)

        # create a switch
        url = '/switches'
        datas = [{
            'ip': self.SWITCH_IP_ADDRESS,
            'credentials': {
                "version": "2c",
                "community": "public"
            },
            'vendor': 'huawei',
            'state': 'under_monitoring'
        }, {
            'ip': '172.29.8.40',
            'credentials': {
                "version": "2c",
                "community": "public"
            },
            'vendor': 'huawei',
            'state': 'under_monitoring'
        }]
        for data in datas:
            self.post(url, data)