Пример #1
0
def test_docs():
    cp_aws = CloudProvider(
        IRPMS(context_wrap(RPMS_AWS)),
        DMIDecode(context_wrap(DMIDECODE_AWS)),
        YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE)),
        None
    )
    cp_azure = CloudProvider(
        IRPMS(context_wrap(RPMS_AZURE)),
        DMIDecode(context_wrap(DMIDECODE_AZURE_ASSET_TAG)),
        YumRepoList(context_wrap(YUM_REPOLIST_AZURE)),
        None
    )
    cp_alibaba = CloudProvider(
        IRPMS(context_wrap(RPMS)),
        DMIDecode(context_wrap(DMIDECODE_ALIBABA)),
        YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE)),
        None
    )
    cp_ibm = CloudProvider(
        None, None, None, RHSMConf(context_wrap(IBM_RHSM_CONF))
    )
    env = {
        'cp_aws': cp_aws,
        'cp_azure': cp_azure,
        'cp_alibaba': cp_alibaba,
        'cp_ibm': cp_ibm
    }
    failed, total = doctest.testmod(cloud_provider, globs=env)
    assert failed == 0
Пример #2
0
def test__bios_vendor_google():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE_GOOGLE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'google'
    assert ret.cp_bios_vendor['google'] == 'Google'
Пример #3
0
def test__asset_tag_azure():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE_AZURE_ASSET_TAG))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'azure'
    assert ret.cp_asset_tag['azure'] == '7783-7084-3265-9085-8269-3286-77'
Пример #4
0
def test_vw_virt_what_1():
    vw = VWP(context_wrap(T1))
    dmi = DMIDecode(context_wrap(DMIDECODE_AWS))
    ret = VirtWhat(dmi, vw)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "kvm"
Пример #5
0
def test_no_data():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl, None)
    assert ret.cloud_provider is None
    assert ret.long_name is None
Пример #6
0
def test_rpm_azure():
    irpms = IRPMS(context_wrap(RPMS_AZURE))
    dmi = DMIDecode(context_wrap(DMIDECODE_BARE_METAL))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'azure'
    assert ret.cp_rpms.get('azure')[0] == 'WALinuxAgent-2.2.18-1.el7'
Пример #7
0
def test__uuid():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE_AWS_UUID))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'aws'
    assert ret.cp_uuid['aws'] == 'EC2F58AF-2DAD-C57E-88C0-A81CB6084290'
Пример #8
0
def test__yum_azure():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'azure'
    assert 'rhui-microsoft-azure-rhel7-2.2-74' in ret.cp_yum.get('azure')
def test_rpm_google():
    irpms = IRPMS(context_wrap(RPMS_GOOGLE))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'google'
    assert ret.cp_rpms.get('google')[0] == 'google-rhui-client-5.1.100-1.el7'
Пример #10
0
def test__bios_version_aws():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE_AWS))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'aws'
    assert ret.cp_bios_version['aws'] == '4.2.amazon'
Пример #11
0
def test_dmidecode_alibaba():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE_ALIBABA))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == CloudProvider.ALIBABA
    assert ret.cp_manufacturer[CloudProvider.ALIBABA] == 'Alibaba Cloud'
Пример #12
0
def test_rpm_aws():
    irpms = IRPMS(context_wrap(RPMS_AWS))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl)
    assert ret.cloud_provider == 'aws'
    assert ret.cp_rpms.get('aws')[0] == 'rh-amazon-rhui-client-2.2.124-1.el7'
Пример #13
0
def test_dmidecode_is_rhev():
    dmi = DMIDecode(context_wrap(DMIDECODE_BOGUS_OVIRT))
    ret = VirtWhat(dmi, None)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "kvm"
    assert ret.amended_generic == "rhev"
Пример #14
0
def test_vw_dmidecode_2():
    vw = VWP(context_wrap(T4))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    ret = VirtWhat(dmi, vw)
    assert ret.is_virtual is False
    assert ret.is_physical is True
    assert ret.generic == "baremetal"
Пример #15
0
def test__uuid_not_aws():
    irpms = IRPMS(context_wrap(RPMS))
    dmi = DMIDecode(context_wrap(DMIDECODE_BARE_METAL))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl, None)
    assert ret.cloud_provider is None
    assert ret.cp_uuid[
        CloudProvider.AWS] == 'EC245678-1234-1234-1234-123456681234'
Пример #16
0
def test_rpm_aws():
    irpms = IRPMS(context_wrap(RPMS_AWS))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl, None)
    assert ret.cloud_provider == CloudProvider.AWS
    assert ret.cp_rpms.get(CloudProvider.AWS)[0] == 'rh-amazon-rhui-client-2.2.124-1.el7'
    assert ret.long_name == 'Amazon Web Services'
Пример #17
0
def test_vw_dmidecode_is_rhev():
    vw = VWP(context_wrap(T5))
    dmi = DMIDecode(context_wrap(DMIDECODE_BOGUS_OVIRT))
    ret = VirtWhat(dmi, vw)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "ovirt"
    assert ret.amended_generic == "rhev"
Пример #18
0
def test_vw_dmidecode_4():
    vw = VWP(context_wrap(T4))
    dmi = DMIDecode(context_wrap(DMIDECODE_KVM))
    ret = VirtWhat(dmi, vw)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "kvm"
    assert ret.amended_generic == "rhev"
Пример #19
0
def test_vw_dmidecode_1():
    vw = VWP(context_wrap(T4))
    dmi = DMIDecode(context_wrap(DMIDECODE_AWS))
    ret = VirtWhat(dmi, vw)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "xen"
    assert 'aws' in ret
Пример #20
0
def test_get_dmidecode_fail():
    '''
    Test for faied raw data
    '''
    context = context_wrap(DMIDECODE_FAIL)
    ret = DMIDecode(context)

    assert ret.is_present is False
Пример #21
0
def test_vw_virt_what_specific():
    vw = VWP(context_wrap(T3))
    dmi = DMIDecode(context_wrap(DMIDECODE_AWS))
    ret = VirtWhat(dmi, vw)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "xen"
    assert 'xen-dom0' in ret
    assert 'aws' in ret
Пример #22
0
def test_rpm_google():
    irpms = IRPMS(context_wrap(RPMS_GOOGLE))
    dmi = DMIDecode(context_wrap(DMIDECODE))
    yrl = YumRepoList(context_wrap(YUM_REPOLIST_NOT_AZURE))
    ret = CloudProvider(irpms, dmi, yrl, None)
    assert ret.cloud_provider == CloudProvider.GOOGLE
    assert 'google-rhui-client-5.1.100-1.el7' in ret.cp_rpms.get(CloudProvider.GOOGLE)
    assert 'google-rhui-client-5.1.100-1.el6' in ret.cp_rpms.get(CloudProvider.GOOGLE)
    assert ret.long_name == 'Google Cloud'
Пример #23
0
def test_dmidecode_oddities():
    dmi = DMIDecode(context_wrap(DMIDECODE_ODDITIES))

    assert len(dmi['oem-specific_type']) == 3
    assert dmi['oem-specific_type'][0] == {
        'header_and_data': '81 08 09 00 01 01 02 01',
        'strings': ['Intel_ASF', 'Intel_ASF_001'],
    }
    assert dmi['oem-specific_type'][1] == {
        'header_and_data': '86 0D 0A 00 28 06 14 20 00 00 00 00 00',
    }
    assert dmi['oem-specific_type'][2] == {
        'header_and_data': '01 02 03 04 05 06 07 08',
    }

    assert len(dmi['port_connector_information']) == 2
    assert dmi['port_connector_information'][0] == {
        'internal_reference_designator': 'Not Available',
        'internal_connector_type': 'None',
        'external_reference_designator': 'USB 1',
        'external_connector_type': 'Access Bus (USB)',
        'port_type': 'USB',
    }
    assert dmi['port_connector_information'][0] == {
        'internal_reference_designator': 'Not Available',
        'internal_connector_type': 'None',
        'external_reference_designator': 'USB 1',
        'external_connector_type': 'Access Bus (USB)',
        'port_type': 'USB',
    }

    assert len(dmi['bios_language_information']) == 1
    assert dmi['bios_language_information'][0] == {
        'language_description_format': 'Abbreviated',
        'installable_languages': ['1', 'en-US'],
        'currently_installed_language': 'en-US'
    }
Пример #24
0
def test_get_dmidecode():
    '''
    Test for three kinds of output format of dmidecode parser
    '''
    context = context_wrap(DMIDECODE)
    ret = DMIDecode(context)

    assert len(ret.get("bios_information")) == 1
    assert ret.get("bios_information")[0].get("vendor") == "HP"
    assert ret.get("bios_information")[0].get("version") == "P70"
    assert ret.get("bios_information")[0].get("release_date") == "03/01/2013"
    assert ret.get("bios_information")[0].get("address") == "0xF0000"
    assert ret.get("bios_information")[0].get("runtime_size") == "64 kB"
    assert ret.get("bios_information")[0].get("rom_size") == "8192 kB"

    tmp = [
        "PCI is supported", "PNP is supported", "BIOS is upgradeable",
        "BIOS shadowing is allowed", "ESCD support is available",
        "Boot from CD is supported", "Selectable boot is supported",
        "EDD is supported",
        '5.25"/360 kB floppy services are supported (int 13h)',
        '5.25"/1.2 MB floppy services are supported (int 13h)',
        '3.5"/720 kB floppy services are supported (int 13h)',
        "Print screen service is supported (int 5h)",
        "j042 keyboard services are supported (int 9h)",
        "Serial services are supported (int 14h)",
        "Printer services are supported (int 17h)",
        "CGA/mono video services are supported (int 10h)", "ACPI is supported",
        "USB legacy is supported", "BIOS boot specification is supported",
        "Function key-initiated network boot is supported",
        "Targeted content distribution is supported"
    ]
    assert ret.get("bios_information")[0].get("characteristics") == tmp
    assert ret.get("bios_information")[0].get("firmware_revision") == "1.22"

    assert len(ret.get("system_information")) == 1
    assert ret.get("system_information")[0].get("manufacturer") == "HP"
    assert ret.get("system_information")[0].get(
        "product_name") == "ProLiant DL380p Gen8"
    assert ret.get("system_information")[0].get("version") == "Not Specified"
    assert ret.get("system_information")[0].get(
        "serial_number") == "2M23360006"
    assert ret.get("system_information")[0].get(
        "uuid") == "34373936-3439-4D32-3233-333630303036"
    assert ret.get("system_information")[0].get(
        "wake-up_type") == "Power Switch"
    assert ret.get("system_information")[0].get("sku_number") == "697494-S01"
    assert ret.get("system_information")[0].get("family") == "ProLiant"

    assert len(ret.get("chassis_information")) == 1
    assert ret.get("chassis_information")[0].get("manufacturer") == "hp"
    assert ret.get("chassis_information")[0].get(
        "type") == "rack mount chassis"
    assert ret.get("chassis_information")[0].get("lock") == "not present"
    assert ret.get("chassis_information")[0].get("version") == "not specified"
    assert ret.get("chassis_information")[0].get(
        "serial_number") == "2m23360006"
    assert ret.get("chassis_information")[0].get("asset_tag") == ""
    assert ret.get("chassis_information")[0].get("boot-up_state") == "Safe"
    assert ret.get("chassis_information")[0].get(
        "power_supply_state") == "Safe"
    assert ret.get("chassis_information")[0].get("thermal_state") == "Safe"
    assert ret.get("chassis_information")[0].get(
        "security_status") == "Unknown"
    assert ret.get("chassis_information")[0].get(
        "oem_information") == "0x00000000"
    assert ret.get("chassis_information")[0].get("height") == "2 U"
    assert ret.get("chassis_information")[0].get(
        "number_of_power_cords") == "2"
    assert ret.get("chassis_information")[0].get("manufacturer") == "hp"
    assert ret.get("chassis_information")[0].get("contained_elements") == "0"

    assert len(ret.get('processor_information')) == 2
    assert ret.get("processor_information")[0].get(
        "socket_designation") == "CPU 1"
    assert ret.get("processor_information")[0].get(
        "type") == "Central Processor"

    assert ret.get("processor_information")[1].get(
        "socket_designation") == "CPU 2"
    assert ret.get("processor_information")[1].get(
        "type") == "Central Processor"

    # Check for 'nonsense' keys
    assert 'table_at_0xbffcb000.' not in ret

    # Test property accessors
    assert ret.system_info == ret['system_information'][0]
    assert ret.bios == ret['bios_information'][0]
    assert ret.bios_vendor == 'HP'
    assert ret.bios_date == date(2013, 3, 1)
    assert ret.processor_manufacturer == 'Bochs'
def test_is_gcp():
    dmi = DMIDecode(context_wrap(DMIDECODE_GOOGLE))
    cp = CloudProvider(None, dmi, None, None)
    result = IsGCP(cp)
    assert isinstance(result, IsGCP)
def test_is_azure():
    dmi = DMIDecode(context_wrap(DMIDECODE_AZURE_ASSET_TAG))
    cp = CloudProvider(None, dmi, None, None)
    result = IsAzure(cp)
    assert isinstance(result, IsAzure)
Пример #27
0
def test_get_dmidecode_dmi():
    '''
    Test for three kinds of output format of dmidecode parser
    with special input format:
    "\n\tDMI" in the input
    '''
    context = context_wrap(DMIDECODE_DMI)
    ret = DMIDecode(context)

    assert ret.get("bios_information")[0].get("vendor") == "HP"
    assert ret.get("bios_information")[0].get("version") == "A08"
    assert ret.get("bios_information")[0].get("release_date") == "09/27/2008"
    assert ret.get("bios_information")[0].get("address") == "0xF0000"
    assert ret.get("bios_information")[0].get("runtime_size") == "64 kB"
    assert ret.get("bios_information")[0].get("rom_size") == "4096 kB"

    tmp = [
        "PCI is supported", "PNP is supported", "BIOS is upgradeable",
        "BIOS shadowing is allowed", "ESCD support is available",
        "Boot from CD is supported", "Selectable boot is supported",
        "EDD is supported",
        '5.25"/360 KB floppy services are supported (int 13h)',
        '5.25"/1.2 MB floppy services are supported (int 13h)',
        '3.5"/720 KB floppy services are supported (int 13h)',
        "Print screen service is supported (int 5h)",
        "8042 keyboard services are supported (int 9h)",
        "Serial services are supported (int 14h)",
        "Printer services are supported (int 17h)",
        "CGA/mono video services are supported (int 10h)", "ACPI is supported",
        "USB legacy is supported", "BIOS boot specification is supported",
        "Function key-initiated network boot is supported``"
    ]
    assert ret.get("bios_information")[0].get("characteristics") == tmp

    assert ret.get("system_information")[0].get("manufacturer") == "HP"
    assert ret.get("system_information")[0].get(
        "product_name") == "ProLiant BL685c G1"
    assert ret.get("system_information")[0].get("version") == "Not Specified"
    assert ret.get("system_information")[0].get(
        "serial_number") == "3H6CMK2537"
    assert ret.get("system_information")[0].get(
        "uuid") == "58585858-5858-3348-3643-4D4B32353337"
    assert ret.get("system_information")[0].get(
        "wake-up_type") == "Power Switch"
def test_is_aws():
    dmi = DMIDecode(context_wrap(DMIDECODE_AWS))
    cp = CloudProvider(None, dmi, None, None)
    result = IsAWS(cp)
    assert isinstance(result, IsAWS)
Пример #29
0
def test_vw_dmidecode_5():
    dmi = DMIDecode(context_wrap(DMIDECODE_KVM))
    ret = VirtWhat(dmi, None)
    assert ret.is_virtual is True
    assert ret.is_physical is False
    assert ret.generic == "kvm"