Пример #1
0
    def test_get(self, mock_http_get):
        mock_http_get.return_value = ResponseMock(response='''{
        "location": "westcentralus",
        "name": "unit_test",
        "offer": "UnitOffer",
        "osType": "Linux",
        "placementGroupId": "",
        "platformFaultDomain": "0",
        "platformUpdateDomain": "0",
        "publisher": "UnitPublisher",
        "resourceGroupName": "UnitResourceGroupName",
        "sku": "UnitSku",
        "subscriptionId": "e4402c6c-2804-4a0a-9dee-d61918fc4d28",
        "tags": "Key1:Value1;Key2:Value2",
        "vmId": "f62f23fb-69e2-4df0-a20b-cb5c201a3e7a",
        "version": "UnitVersion",
        "vmSize": "Standard_D1_v2"
        }'''.encode('utf-8'))

        test_subject = ImdsClient()
        test_subject.get_compute()

        self.assertEqual(1, mock_http_get.call_count)
        positional_args, kw_args = mock_http_get.call_args

        self.assertEqual(
            'http://169.254.169.254/metadata/instance/compute?api-version=2017-12-01',
            positional_args[0])
        self.assertTrue('User-Agent' in kw_args['headers'])
        self.assertTrue('Metadata' in kw_args['headers'])
        self.assertEqual(True, kw_args['headers']['Metadata'])
Пример #2
0
    def _assert_validation(self, http_status_code, http_response,
                           expected_valid, expected_response):
        test_subject = imds.ImdsClient(restutil.KNOWN_WIRESERVER_IP)
        with patch("azurelinuxagent.common.utils.restutil.http_get"
                   ) as mock_http_get:
            mock_http_get.return_value = ResponseMock(status=http_status_code,
                                                      reason='reason',
                                                      response=http_response)
            validate_response = test_subject.validate()

        self.assertEqual(1, mock_http_get.call_count)
        positional_args, kw_args = mock_http_get.call_args

        self.assertTrue('User-Agent' in kw_args['headers'])
        self.assertEqual(restutil.HTTP_USER_AGENT_HEALTH,
                         kw_args['headers']['User-Agent'])
        self.assertTrue('Metadata' in kw_args['headers'])
        self.assertEqual(True, kw_args['headers']['Metadata'])
        self.assertEqual(
            'http://169.254.169.254/metadata/instance?api-version=2018-02-01',
            positional_args[0])
        self.assertEqual(expected_valid, validate_response[0])
        self.assertTrue(
            expected_response in validate_response[1],
            "Expected: '{0}', Actual: '{1}'".format(expected_response,
                                                    validate_response[1]))
Пример #3
0
def get_mock_compute_response():
    return ResponseMock(response='''{
    "location": "westcentralus",
    "name": "unit_test",
    "offer": "UnitOffer",
    "osType": "Linux",
    "placementGroupId": "",
    "platformFaultDomain": "0",
    "platformUpdateDomain": "0",
    "publisher": "UnitPublisher",
    "resourceGroupName": "UnitResourceGroupName",
    "sku": "UnitSku",
    "subscriptionId": "e4402c6c-2804-4a0a-9dee-d61918fc4d28",
    "tags": "Key1:Value1;Key2:Value2",
    "vmId": "f62f23fb-69e2-4df0-a20b-cb5c201a3e7a",
    "version": "UnitVersion",
    "vmSize": "Standard_D1_v2"
    }'''.encode('utf-8'))
Пример #4
0
    def test_get_empty_response(self, mock_http_get):
        mock_http_get.return_value = ResponseMock(response=''.encode('utf-8'))

        test_subject = imds.ImdsClient(restutil.KNOWN_WIRESERVER_IP)
        self.assertRaises(ValueError, test_subject.get_compute)
Пример #5
0
    def test_get_internal_service_error(self, mock_http_get):
        mock_http_get.return_value = ResponseMock(status=restutil.httpclient.INTERNAL_SERVER_ERROR)

        test_subject = imds.ImdsClient(restutil.KNOWN_WIRESERVER_IP)
        self.assertRaises(HttpError, test_subject.get_compute)
Пример #6
0
    def test_get_bad_request(self, mock_http_get):
        mock_http_get.return_value = ResponseMock(status=restutil.httpclient.BAD_REQUEST)

        test_subject = imds.ImdsClient(restutil.KNOWN_WIRESERVER_IP)
        self.assertRaises(HttpError, test_subject.get_compute)
Пример #7
0
    def test_get_empty_response(self, mock_http_get):
        mock_http_get.return_value = ResponseMock(response=''.encode('utf-8'))

        test_subject = ImdsClient()
        self.assertRaises(ValueError, test_subject.get_compute)