Пример #1
0
 def setUp(self):
     super(ManagerTestCase, self).setUp()
     self.service = manager.ConductorManager('test-host', 'test-topic')
     self.service.dbapi = dbapi.get_instance()
     self.context = context.get_admin_context()
     self.dbapi = dbapi.get_instance()
     self.system = utils.create_test_isystem()
     self.load = utils.create_test_load()
Пример #2
0
    def setUp(self):
        super(AppOperatorTestCase, self).setUp()

        # Set up objects for testing
        self.app_operator = kube_app.AppOperator(dbapi.get_instance())
        self.context = context.get_admin_context()
        self.dbapi = dbapi.get_instance()
        self.temp_dir = self.useFixture(fixtures.TempDir())
Пример #3
0
 def setUp(self):
     super(StorageTierDependentTCs, self).setUp()
     self.mock_set_crushmap = self.set_crushmap_patcher.start()
     self.service = manager.ConductorManager('test-host', 'test-topic')
     self.service.dbapi = dbapi.get_instance()
     self.context = context.get_admin_context()
     self.dbapi = dbapi.get_instance()
     self.system = dbutils.create_test_isystem()
     self.load = dbutils.create_test_load()
     self.host_index = -1
     self.mon_index = -1
Пример #4
0
    def setUp(self):
        super(UpdateCephCluster, self).setUp()
        self.service = manager.ConductorManager('test-host', 'test-topic')
        self.service.dbapi = dbapi.get_instance()
        self.context = context.get_admin_context()
        self.dbapi = dbapi.get_instance()
        self.system = utils.create_test_isystem()
        self.load = utils.create_test_load()
        self.host_index = -1

        self.mock_upgrade_downgrade_kube_components = self.upgrade_downgrade_kube_components_patcher.start(
        )
Пример #5
0
    def setUp(self):
        super(AppOperatorTestCase, self).setUp()

        # Manager holds apps_metadata dict
        self.service = manager.ConductorManager('test-host', 'test-topic')

        # Set up objects for testing
        self.helm_operator = helm.HelmOperator(dbapi.get_instance())
        self.app_operator = kube_app.AppOperator(dbapi.get_instance(),
                                                 self.helm_operator,
                                                 self.service.apps_metadata)
        self.context = context.get_admin_context()
        self.dbapi = dbapi.get_instance()
        self.temp_dir = self.useFixture(fixtures.TempDir())
Пример #6
0
class Route(base.SysinvObject):
    # VERSION 1.0: Initial version
    VERSION = '1.0'

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.uuid_or_none,
        'forihostid': utils.int_or_none,
        'interface_uuid': utils.uuid_or_none,
        'interface_id': int,
        'ifname': utils.str_or_none,
        'family': utils.str_or_none,
        'network': utils.ip_str_or_none(),
        'prefix': utils.int_or_none,
        'gateway': utils.ip_str_or_none(),
        'metric': utils.int_or_none,
    }

    _foreign_fields = {
        'interface_uuid': 'interface:uuid',
        'interface_id': 'interface:id',
        'ifname': 'interface:ifname',
        'forihostid': 'interface:forihostid'
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.route_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.route_update(
            self.uuid,  # pylint: disable=no-member
            updates)
Пример #7
0
class Address(base.SysinvObject):
    # VERSION 1.0: Initial version
    VERSION = '1.0'

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.uuid_or_none,
        'forihostid': utils.int_or_none,
        'interface_uuid': utils.uuid_or_none,
        'pool_uuid': utils.uuid_or_none,
        'networktype': utils.str_or_none,
        'ifname': utils.str_or_none,
        'family': utils.int_or_none,
        'address': utils.ip_str_or_none(),
        'prefix': utils.int_or_none,
        'enable_dad': utils.bool_or_none,
        'name': utils.str_or_none,
    }

    _foreign_fields = {
        'interface_uuid': 'interface:uuid',
        'pool_uuid': 'address_pool:uuid',
        'ifname': 'interface:ifname',
        'forihostid': 'interface:forihostid',
        'networktype': 'interface:networktype'
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.address_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.address_update(self.uuid, updates)
Пример #8
0
class StorageTier(base.SysinvObject):
    # VERSION 1.0: Initial version
    VERSION = '1.0'

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'name': utils.str_or_none,
        'type': utils.str_or_none,
        'status': utils.str_or_none,
        'capabilities': utils.dict_or_none,
        'forbackendid': utils.int_or_none,
        'backend_uuid': utils.str_or_none,
        'forclusterid': utils.int_or_none,
        'cluster_uuid': utils.str_or_none,
        'stors': list,
    }

    _foreign_fields = {
        'backend_uuid': get_backend_uuid,
        'cluster_uuid': get_cluster_uuid,
        'stors': get_stor_ids
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.storage_tier_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.storage_tier_update(
            self.uuid,  # pylint: disable=no-member
            updates)
Пример #9
0
class CPU(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'forihostid': int,
        'ihost_uuid': utils.str_or_none,
        'forinodeid': utils.int_or_none,
        'inode_uuid': utils.str_or_none,
        'numa_node': utils.int_or_none,
        'cpu': int,
        'core': utils.int_or_none,
        'thread': utils.int_or_none,
        'cpu_family': utils.str_or_none,
        'cpu_model': utils.str_or_none,
        'allocated_function': utils.str_or_none,
        # 'coprocessors': utils.dict_or_none,
        'capabilities': utils.dict_or_none,
    }

    _foreign_fields = {
        'ihost_uuid': 'host:uuid',
        'inode_uuid': 'node:uuid',
        'numa_node': 'node:numa_node'
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.icpu_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.icpu_update(self.uuid, updates)
Пример #10
0
class Partition(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'start_mib': utils.int_or_none,
        'end_mib': utils.int_or_none,
        'size_mib': utils.int_or_none,
        'device_path': utils.str_or_none,
        'device_node': utils.str_or_none,
        'type_guid': utils.str_or_none,
        'type_name': utils.str_or_none,
        'idisk_id': utils.int_or_none,
        'foripvid': utils.int_or_none,
        'forihostid': utils.int_or_none,
        'status': int,
        'capabilities': utils.dict_or_none,
        'idisk_uuid': utils.str_or_none,
        'ipv_uuid': utils.str_or_none,
        'ihost_uuid': utils.str_or_none,
    }

    _foreign_fields = {'ihost_uuid': 'host:uuid', 'ipv_uuid': 'pv:uuid'}

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.partition_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.partition_update(self.uuid, updates)
Пример #11
0
class CephMon(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
              'id': int,
              'uuid': utils.uuid_or_none,

              'device_path': utils.str_or_none,
              'ceph_mon_gib': utils.int_or_none,
              'state': utils.str_or_none,
              'task': utils.str_or_none,

              'forihostid': utils.int_or_none,
              'ihost_uuid': utils.str_or_none,
              'hostname': utils.str_or_none,
    }

    _foreign_fields = {
        'hostname': 'host:hostname',
        'ihost_uuid': 'host:uuid'
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.ceph_mon_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.ceph_mon_update(self.uuid, updates)
Пример #12
0
def create_test_helm_overrides(**kw):
    helm_overrides = get_test_helm_overrides(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del helm_overrides['id']
    dbapi = db_api.get_instance()
    return dbapi.helm_override_create(helm_overrides)
Пример #13
0
def create_test_user(**kw):
    user = get_test_user(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del user['id']
    dbapi = db_api.get_instance()
    return dbapi.iuser_create(user)
Пример #14
0
 def setUp(self):
     super(PTPTestCase, self).setUp()
     self.dbapi = dbapi.get_instance()
     self.system = dbutils.create_test_isystem()
     self.load = dbutils.create_test_load()
     self.controller = dbutils.create_test_ihost(
         id='1',
         uuid=None,
         forisystemid=self.system.id,
         hostname='controller-0',
         personality=constants.CONTROLLER,
         subfunctions=constants.CONTROLLER,
         invprovision=constants.PROVISIONED,
     )
     self.worker = dbutils.create_test_ihost(
         id='2',
         uuid=None,
         forisystemid=self.system.id,
         hostname='worker-0',
         personality=constants.WORKER,
         subfunctions=constants.WORKER,
         mgmt_mac='01:02.03.04.05.C0',
         mgmt_ip='192.168.24.12',
         invprovision=constants.PROVISIONED,
         administrative=constants.ADMIN_LOCKED)
     self.dbapi.ptp_create({})
     self.ptp = self.dbapi.ptp_get_one()
     self.ptp_uuid = self.ptp.uuid
Пример #15
0
class KubeApp(base.SysinvObject):
    # VERSION 1.0: Initial version
    VERSION = '1.0'

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'name': utils.str_or_none,
        'app_version': utils.str_or_none,
        'manifest_name': utils.str_or_none,
        'manifest_file': utils.str_or_none,
        'status': utils.str_or_none,
        'progress': utils.str_or_none,
        'active': utils.bool_or_none,
        'recovery_attempts': utils.int_or_zero,
    }

    @base.remotable_classmethod
    def get_by_name(cls, context, name):
        return cls.dbapi.kube_app_get(name)

    @base.remotable_classmethod
    def get_inactive_app_by_name_version(cls, context, name, version):
        return cls.dbapi.kube_app_get_inactive_by_name_version(name, version)

    def save_changes(self, context, updates):
        self.dbapi.kube_app_update(
            self.id,  # pylint: disable=no-member
            updates)
class InterfaceNetwork(base.SysinvObject):
    VERSION = '1.0'

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.uuid_or_none,
        'forihostid': utils.int_or_none,
        'interface_id': utils.int_or_none,
        'interface_uuid': utils.uuid_or_none,
        'ifname': utils.str_or_none,
        'network_id': utils.int_or_none,
        'network_uuid': utils.uuid_or_none,
        'network_name': utils.str_or_none,
        'network_type': utils.str_or_none
    }

    _foreign_fields = {
        'forihostid': 'interface:forihostid',
        'interface_id': 'interface:id',
        'interface_uuid': 'interface:uuid',
        'ifname': 'interface:ifname',
        'network_uuid': 'network:uuid',
        'network_id': 'network:id',
        'network_name': 'network:name',
        'network_type': 'network:type'
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.interface_network_get(uuid)
Пример #17
0
class StorageCeph(storage_backend.StorageBackend):

    dbapi = db_api.get_instance()

    fields = dict(
        {
            'cinder_pool_gib': utils.int_or_none,
            'glance_pool_gib': utils.int_or_none,
            'ephemeral_pool_gib': utils.int_or_none,
            'object_pool_gib': utils.int_or_none,
            'kube_pool_gib': utils.int_or_none,
            'object_gateway': utils.bool_or_none,
            'tier_id': utils.int_or_none,
            'tier_name': utils.str_or_none,
            'tier_uuid': utils.str_or_none,
        }, **storage_backend.StorageBackend.fields)

    _foreign_fields = dict(
        {
            'tier_name': 'tier:name',
            'tier_uuid': 'tier:uuid',
        }, **storage_backend.StorageBackend._foreign_fields)

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.storage_ceph_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.storage_ceph_update(self.uuid, updates)
Пример #18
0
def create_test_ptp(**kw):
    ptp = get_test_ptp(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del ptp['id']
    dbapi = db_api.get_instance()
    return dbapi.ptp_create(ptp)
Пример #19
0
class NTP(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
            'id': int,
            'uuid': utils.str_or_none,

            'enabled': utils.bool_or_none,
            'ntpservers': utils.str_or_none,

            'forisystemid': utils.int_or_none,
            'isystem_uuid': utils.str_or_none,
             }

    _foreign_fields = {
        'isystem_uuid': 'system:uuid'
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.intp_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.intp_update(self.uuid,  # pylint: disable=no-member
                               updates)
Пример #20
0
def create_test_drbd(**kw):
    drbd = get_test_drbd(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del drbd['id']
    dbapi = db_api.get_instance()
    return dbapi.drbdconfig_create(drbd)
Пример #21
0
    def setUp(self):
        super(TestACL, self).setUp()

        self.environ = {'fake.cache': utils.FakeMemcache()}
        self.fake_node = db_utils.get_test_ihost()
        self.dbapi = db_api.get_instance()
        self.node_path = '/ihosts/%s' % self.fake_node['uuid']
Пример #22
0
def create_test_remotelogging(**kw):
    dns = get_test_remotelogging(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del dns['id']
    dbapi = db_api.get_instance()
    return dbapi.remotelogging_create(dns)
Пример #23
0
class LLDPTLV(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'agent_id': utils.int_or_none,
        'agent_uuid': utils.str_or_none,
        'neighbour_id': utils.int_or_none,
        'neighbour_uuid': utils.str_or_none,
        'type': utils.str_or_none,
        'value': utils.str_or_none
    }

    _foreign_fields = {
        'agent_uuid': 'lldp_agent:uuid',
        'neighbour_uuid': 'lldp_neighbour:uuid',
    }

    @base.remotable_classmethod
    def get_by_id(cls, context, id):
        return cls.dbapi.lldp_tlv_get_by_id(id)

    def save_changes(self, context, updates):
        self.dbapi.lldp_tlv_update(self.id, updates)
Пример #24
0
class DataNetwork(base.SysinvObject):
    VERSION = '1.0'

    dbapi = db_api.get_instance()

    fields = {'id': int,
              'uuid': utils.uuid_or_none,
              'network_type': utils.str_or_none,
              'name': utils.str_or_none,
              'description': utils.str_or_none,
              'mtu': utils.int_or_none,
              'multicast_group': utils.str_or_none,
              'port_num': utils.int_or_none,
              'ttl': utils.int_or_none,
              'mode': utils.str_or_none,
              }

    _optional_fields = {'port_num',
                        'multicast_group',
                        'ttl',
                        'mode'}

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.datanetwork_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.datanetwork_update(self.uuid, updates)
Пример #25
0
class System(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'name': utils.str_or_none,
        'system_type': utils.str_or_none,
        'system_mode': utils.str_or_none,
        'description': utils.str_or_none,
        'capabilities': utils.dict_or_none,
        'contact': utils.str_or_none,
        'location': utils.str_or_none,
        'latitude': utils.str_or_none,
        'longitude': utils.str_or_none,
        'services': utils.int_or_none,
        'software_version': utils.str_or_none,
        'timezone': utils.str_or_none,
        'security_profile': utils.str_or_none,
        'region_name': utils.str_or_none,
        'service_project_name': utils.str_or_none,
        'distributed_cloud_role': utils.str_or_none,
        'security_feature': utils.str_or_none,
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.isystem_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.isystem_update(
            self.uuid,  # pylint: disable=no-member
            updates)
Пример #26
0
def create_test_interface(**kw):
    """Create test interface entry in DB and return Interface DB object.
    Function to be used to create test Interface objects in the database.
    :param kw: kwargs with overriding values for interface's attributes.
    :returns: Test Interface DB object.
    """

    interface = get_test_interface(**kw)
    datanetworks_list = interface.get('datanetworks') or []

    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del interface['id']

    if 'datanetworks' in interface:
        del interface['datanetworks']

    dbapi = db_api.get_instance()
    forihostid = kw.get('forihostid')
    interface_obj = dbapi.iinterface_create(forihostid, interface)

    # assign the interface to the datanetwork
    for datanetwork in datanetworks_list:
        if not datanetwork:
            continue
        dn = dbapi.datanetwork_get(datanetwork)
        values = {'interface_id': interface_obj.id, 'datanetwork_id': dn.id}
        dbapi.interface_datanetwork_create(values)

    return interface_obj
Пример #27
0
class FPGADevice(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'host_id': utils.int_or_none,
        'host_uuid': utils.str_or_none,
        'pci_id': utils.int_or_none,
        'pciaddr': utils.str_or_none,
        'bmc_build_version': utils.str_or_none,
        'bmc_fw_version': utils.str_or_none,
        'root_key': utils.str_or_none,
        'revoked_key_ids': utils.str_or_none,
        'boot_page': utils.str_or_none,
        'bitstream_id': utils.str_or_none,
    }

    _foreign_fields = {'host_uuid': 'host:uuid'}

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.fpga_device_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.fpga_device_update(
            self.uuid,  # pylint: disable=no-member
            updates)
Пример #28
0
class TrapDest(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'ip_address': utils.str_or_none,
        'community': utils.str_or_none,
        'port': utils.int_or_none,
        'type': utils.str_or_none,
        'transport': utils.str_or_none,
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.itrapdest_get(uuid)

    @base.remotable_classmethod
    def get_by_ip(cls, context, ip):
        return cls.dbapi.itrapdest_get_by_ip(ip)

    def save_changes(self, context, updates):
        self.dbapi.itrapdest_update(
            self.uuid,  # pylint: disable=no-member
            updates)
Пример #29
0
class InterfaceBase(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {
        'id': int,
        'uuid': utils.str_or_none,
        'forihostid': utils.int_or_none,
        'iftype': utils.str_or_none,
        'ifname': utils.str_or_none,
        'networktype': utils.str_or_none,
        'ifcapabilities': utils.dict_or_none,
        'farend': utils.dict_or_none,
        'uses': utils.list_of_strings_or_none,
        'used_by': utils.list_of_strings_or_none,
        'sriov_numvfs': utils.int_or_none
    }

    _foreign_fields = {
        'uses': _get_interface_name_list,
        'used_by': _get_interface_name_list,
    }

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.interface_get(uuid)
Пример #30
0
class LLDPNeighbour(base.SysinvObject):

    dbapi = db_api.get_instance()

    fields = {'id': int,
              'uuid': utils.str_or_none,
              'msap': utils.str_or_none,
              'host_id': utils.int_or_none,
              'host_uuid': utils.str_or_none,
              'port_id': utils.int_or_none,
              'port_uuid': utils.str_or_none,
              'port_name': utils.str_or_none,
              'port_namedisplay': utils.str_or_none}

    _foreign_fields = {
        'host_uuid': 'host:uuid',
        'port_uuid': 'port:uuid',
        'port_name': 'port:name',
        'port_namedisplay': 'port:namedisplay',
    }

    for tlv in constants.LLDP_TLV_VALID_LIST:
        fields.update({tlv: utils.str_or_none})
        _foreign_fields.update({tlv: get_lldp_tlvs})

    @base.remotable_classmethod
    def get_by_uuid(cls, context, uuid):
        return cls.dbapi.lldp_neighbour_get(uuid)

    def save_changes(self, context, updates):
        self.dbapi.lldp_neighbour_update(self.uuid,  # pylint: disable=no-member
                                         updates)