예제 #1
0
def test_get_project_limits(aggregator):
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_project_limits_response):
        api = SimpleApi(None, None)
        assert api.get_project_limits(None) == {
            "maxImageMeta": 128,
            "maxPersonality": 5,
            "maxPersonalitySize": 10240,
            "maxSecurityGroupRules": 20,
            "maxSecurityGroups": 10,
            "maxServerMeta": 128,
            "maxTotalCores": 20,
            "maxTotalFloatingIps": 10,
            "maxTotalInstances": 10,
            "maxTotalKeypairs": 100,
            "maxTotalRAMSize": 51200,
            "maxServerGroups": 10,
            "maxServerGroupMembers": 10,
            "totalCoresUsed": 0,
            "totalInstancesUsed": 0,
            "totalRAMUsed": 0,
            "totalSecurityGroupsUsed": 0,
            "totalFloatingIpsUsed": 0,
            "totalServerGroupsUsed": 0
        }
예제 #2
0
def test_get_project_limits(aggregator):
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_project_limits_response):
        api = SimpleApi(None, None)
        assert api.get_project_limits(
            None) == common.EXAMPLE_GET_PROJECT_LIMITS_RETURN_VALUE
예제 #3
0
def test_get_os_aggregates(aggregator):
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_os_aggregates_response):
        api = SimpleApi(None, None)
        assert api.get_os_aggregates() == [{
            "availability_zone":
            "london",
            "created_at":
            "2016-12-27T23:47:32.911515",
            "deleted":
            False,
            "deleted_at":
            None,
            "hosts": ["compute"],
            "id":
            1,
            "metadata": {
                "availability_zone": "london"
            },
            "name":
            "name",
            "updated_at":
            None,
            "uuid":
            "6ba28ba7-f29b-45cc-a30b-6e3a40c2fb14"
        }]
예제 #4
0
def test_get_os_aggregates(aggregator):
    with mock.patch('datadog_checks.openstack_controller.api.SimpleApi._make_request',
                    side_effect=get_os_aggregates_response):
        api = SimpleApi(None, None)

        aggregates = api.get_os_aggregates()

        for i in range(len(aggregates)):
            for key, value in common.EXAMPLE_GET_OS_AGGREGATES_RETURN_VALUE[i].items():
                assert value == aggregates[i][key]
예제 #5
0
def test_api_error_log_no_password(check, instance, caplog):

    with caplog.at_level(logging.DEBUG):
        with pytest.raises(KeystoneUnreachable):
            with mock.patch(
                    'datadog_checks.base.utils.http.requests.post') as req:
                req.side_effect = HTTPError(mock.Mock(status=404), 'not found')
                check._api = SimpleApi(check.log,
                                       instance.get("keystone_server_url"),
                                       check.http)
                identity = Authenticator._get_user_identity(
                    instance.get("user"))
                Authenticator._post_auth_token(
                    check._api.logger, instance.get("keystone_server_url"),
                    identity, check.http)

    expected_pass = "******"

    for _, level, message in caplog.record_tuples:
        # make sure password is hidden and actual password is not in the log
        if level == logging.DEBUG and expected_pass in message and instance.get(
                "user").get("password") not in message:
            break
    else:
        raise AssertionError(
            'Expected DEBUG log with message `{}`'.format(expected_pass))
예제 #6
0
def test_get_os_hypervisor_uptime(aggregator):
    with mock.patch('datadog_checks.openstack_controller.api.SimpleApi._make_request',
                    side_effect=get_os_hypervisor_uptime_pre_v2_52_response):
        api = SimpleApi(None, None)
        assert api.get_os_hypervisor_uptime(1) == \
            " 08:32:11 up 93 days, 18:25, 12 users,  load average: 0.20, 0.12, 0.14"

    with mock.patch('datadog_checks.openstack_controller.api.SimpleApi._make_request',
                    side_effect=get_os_hypervisor_uptime_post_v2_53_response):
        api = SimpleApi(None, None)
        assert api.get_os_hypervisor_uptime(1) == \
            " 08:32:11 up 93 days, 18:25, 12 users,  load average: 0.20, 0.12, 0.14"
def test_get_os_hypervisors_detail(aggregator, requests_wrapper):
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_os_hypervisors_detail_post_v2_33_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert api.get_os_hypervisors_detail(
        ) == common.EXAMPLE_GET_OS_HYPERVISORS_RETURN_VALUE

    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_os_hypervisors_detail_post_v2_53_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert api.get_os_hypervisors_detail() == [{
            "cpu_info": {
                "arch": "x86_64",
                "model": "Nehalem",
                "vendor": "Intel",
                "features": ["pge", "clflush"],
                "topology": {
                    "cores": 1,
                    "threads": 1,
                    "sockets": 4
                },
            },
            "current_workload": 0,
            "status": "enabled",
            "state": "up",
            "disk_available_least": 0,
            "host_ip": "1.1.1.1",
            "free_disk_gb": 1028,
            "free_ram_mb": 7680,
            "hypervisor_hostname": "host2",
            "hypervisor_type": "fake",
            "hypervisor_version": 1000,
            "id": "1bb62a04-c576-402c-8147-9e89757a09e3",
            "local_gb": 1028,
            "local_gb_used": 0,
            "memory_mb": 8192,
            "memory_mb_used": 512,
            "running_vms": 0,
            "service": {
                "host": "host1",
                "id": "62f62f6e-a713-4cbe-87d3-3ecf8a1e0f8d",
                "disabled_reason": None
            },
            "vcpus": 2,
            "vcpus_used": 0,
        }]
예제 #8
0
def test_get_os_hypervisor_uptime(aggregator, requests_wrapper):
    hypervisor_mock = mock.MagicMock(id=1)
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_os_hypervisor_uptime_pre_v2_52_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert (
            api.get_os_hypervisor_uptime(hypervisor_mock) ==
            " 08:32:11 up 93 days, 18:25, 12 users,  load average: 0.20, 0.12, 0.14"
        )

    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_os_hypervisor_uptime_post_v2_53_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert (
            api.get_os_hypervisor_uptime(hypervisor_mock) ==
            " 08:32:11 up 93 days, 18:25, 12 users,  load average: 0.20, 0.12, 0.14"
        )
def test_get_servers_detail(aggregator, requests_wrapper):
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_servers_detail_post_v2_63_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert api.get_servers_detail(None) == [{
            "OS-DCF:diskConfig":
            "AUTO",
            "OS-EXT-AZ:availability_zone":
            "nova",
            "OS-EXT-SRV-ATTR:host":
            "compute",
            "OS-EXT-SRV-ATTR:hostname":
            "new-server-test",
            "OS-EXT-SRV-ATTR:hypervisor_hostname":
            "fake-mini",
            "OS-EXT-SRV-ATTR:instance_name":
            "instance-00000001",
            "OS-EXT-SRV-ATTR:kernel_id":
            "",
            "OS-EXT-SRV-ATTR:launch_index":
            0,
            "OS-EXT-SRV-ATTR:ramdisk_id":
            "",
            "OS-EXT-SRV-ATTR:reservation_id":
            "r-y0w4v32k",
            "OS-EXT-SRV-ATTR:root_device_name":
            "/dev/sda",
            "OS-EXT-SRV-ATTR:user_data":
            "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
            "OS-EXT-STS:power_state":
            1,
            "OS-EXT-STS:task_state":
            None,
            "OS-EXT-STS:vm_state":
            "active",
            "OS-SRV-USG:launched_at":
            "2017-10-10T15:49:09.516729",
            "OS-SRV-USG:terminated_at":
            None,
            "accessIPv4":
            "1.2.3.4",
            "accessIPv6":
            "80fe::",
            "addresses": {
                "private": [{
                    "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff",
                    "OS-EXT-IPS:type": "fixed",
                    "addr": "192.168.0.3",
                    "version": 4,
                }]
            },
            "config_drive":
            "",
            "created":
            "2017-10-10T15:49:08Z",
            "description":
            None,
            "flavor": {
                "disk": 1,
                "ephemeral": 0,
                "extra_specs": {
                    "hw:cpu_policy": "dedicated",
                    "hw:mem_page_size": "2048"
                },
                "original_name": "m1.tiny.specs",
                "ram": 512,
                "swap": 0,
                "vcpus": 1,
            },
            "hostId":
            "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6",
            "host_status":
            "UP",
            "id":
            "569f39f9-7c76-42a1-9c2d-8394e2638a6d",
            "image": {
                "id":
                "70a599e0-31e7-49b7-b260-868f441e862b",
                "links": [{
                    "href":
                    "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b",  # noqa: E501
                    "rel": "bookmark",
                }],
            },
            "key_name":
            None,
            "links": [
                {
                    "href":
                    "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/569f39f9-7c76-42a1-9c2d-8394e2638a6d",  # noqa: E501
                    "rel": "self",
                },
                {
                    "href":
                    "http://openstack.example.com/6f70656e737461636b20342065766572/servers/569f39f9-7c76-42a1-9c2d-8394e2638a6d",  # noqa: E501
                    "rel": "bookmark",
                },
            ],
            "locked":
            False,
            "metadata": {
                "My Server Name": "Apache1"
            },
            "name":
            "new-server-test",
            "os-extended-volumes:volumes_attached": [],
            "progress":
            0,
            "security_groups": [{
                "name": "default"
            }],
            "status":
            "ACTIVE",
            "tags": [],
            "tenant_id":
            "6f70656e737461636b20342065766572",
            "trusted_image_certificates": [
                "0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8",
                "674736e3-f25c-405c-8362-bbf991e0ce0a",
            ],
            "updated":
            "2017-10-10T15:49:09Z",
            "user_id":
            "fake",
        }]
예제 #10
0
def test_get_server_diagnostics(aggregator, requests_wrapper):
    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_server_diagnostics_post_v2_48_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert api.get_server_diagnostics(None) == {
            "config_drive":
            True,
            "cpu_details": [{
                "id": 0,
                "time": 17300000000,
                "utilisation": 15
            }],
            "disk_details": [{
                "errors_count": 1,
                "read_bytes": 262144,
                "read_requests": 112,
                "write_bytes": 5778432,
                "write_requests": 488,
            }],
            "driver":
            "libvirt",
            "hypervisor":
            "kvm",
            "hypervisor_os":
            "ubuntu",
            "memory_details": {
                "maximum": 524288,
                "used": 0
            },
            "nic_details": [{
                "mac_address": "01:23:45:67:89:ab",
                "rx_drop": 200,
                "rx_errors": 100,
                "rx_octets": 2070139,
                "rx_packets": 26701,
                "rx_rate": 300,
                "tx_drop": 500,
                "tx_errors": 400,
                "tx_octets": 140208,
                "tx_packets": 662,
                "tx_rate": 600,
            }],
            "num_cpus":
            1,
            "num_disks":
            1,
            "num_nics":
            1,
            "state":
            "running",
            "uptime":
            46664,
        }

    with mock.patch(
            'datadog_checks.openstack_controller.api.SimpleApi._make_request',
            side_effect=get_server_diagnostics_post_v2_1_response,
    ):
        api = SimpleApi(None, None, requests_wrapper)
        assert api.get_server_diagnostics(None) == {
            "cpu0_time": 17300000000,
            "memory": 524288,
            "vda_errors": -1,
            "vda_read": 262144,
            "vda_read_req": 112,
            "vda_write": 5778432,
            "vda_write_req": 488,
            "vnet1_rx": 2070139,
            "vnet1_rx_drop": 0,
            "vnet1_rx_errors": 0,
            "vnet1_rx_packets": 26701,
            "vnet1_tx": 140208,
            "vnet1_tx_drop": 0,
            "vnet1_tx_errors": 0,
            "vnet1_tx_packets": 662,
        }