Beispiel #1
0
    def test_normalize_disk_info(self):
        CachingTypes = self._get_compute_model('CachingTypes')
        cmd = mock.MagicMock()
        cmd.get_models.return_value = CachingTypes

        # verify caching configuring

        r = normalize_disk_info()
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['0=None'],
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[0]['diskSizeGB'], 1)
        self.assertEqual(r[1]['diskSizeGB'], 2)
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['None'],
                                os_disk_caching='ReadOnly',
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'None')
        self.assertEqual(r['os']['caching'], 'ReadOnly')

        r = normalize_disk_info(data_disk_cachings=['0=None', '1=ReadOnly'],
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'ReadOnly')
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        # CLI will not tweak any casing from the values
        r = normalize_disk_info(data_disk_cachings=['0=none', '1=readonly'],
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'none')
        self.assertEqual(r[1]['caching'], 'readonly')

        # error on configuring non-existing disks
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['0=None', '1=foo'])
        self.assertTrue(
            "data disk with lun of '0' doesn't exist" in str(err.exception))

        # default to "None" across for Lv/Lv2 machines
        r = normalize_disk_info(data_disk_sizes_gb=[1], size='standard_L8s')
        self.assertEqual(r['os']['caching'], CachingTypes.none.value)
        self.assertEqual(r[0].get('caching'), None)

        # error on lv/lv2 machines with caching mode other than "None"
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['ReadWrite'],
                                data_disk_sizes_gb=[1, 2],
                                size='standard_L16s_v2')
        self.assertTrue(
            'for Lv series of machines, "None" is the only supported caching mode'
            in str(err.exception))
Beispiel #2
0
    def test_normalize_disk_info(self):
        cmd = mock.MagicMock()
        cmd.get_models.return_value = CachingTypes

        # verify caching configuring

        r = normalize_disk_info()
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['0=None'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[0]['diskSizeGB'], 1)
        self.assertEqual(r[1]['diskSizeGB'], 2)
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['None'], os_disk_caching='ReadOnly', data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'None')
        self.assertEqual(r['os']['caching'], 'ReadOnly')

        r = normalize_disk_info(data_disk_cachings=['0=None', '1=ReadOnly'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'ReadOnly')
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        # CLI will not tweak any casing from the values
        r = normalize_disk_info(data_disk_cachings=['0=none', '1=readonly'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'none')
        self.assertEqual(r[1]['caching'], 'readonly')

        # error on configuring non-existing disks
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['0=None', '1=foo'])
        self.assertTrue("data disk with lun of '0' doesn't exist" in str(err.exception))
    def test_normalize_disk_info(self):
        cmd = mock.MagicMock()
        cmd.get_models.return_value = CachingTypes

        # verify caching configuring

        r = normalize_disk_info()
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['0=None'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[0]['diskSizeGB'], 1)
        self.assertEqual(r[1]['diskSizeGB'], 2)
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['None'], os_disk_caching='ReadOnly', data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'None')
        self.assertEqual(r['os']['caching'], 'ReadOnly')

        r = normalize_disk_info(data_disk_cachings=['0=None', '1=ReadOnly'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'ReadOnly')
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        # CLI will not tweak any casing from the values
        r = normalize_disk_info(data_disk_cachings=['0=none', '1=readonly'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'none')
        self.assertEqual(r[1]['caching'], 'readonly')

        # error on configuring non-existing disks
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['0=None', '1=foo'])
        self.assertTrue("Data disk with lun of '0' doesn't exist" in str(err.exception))
    def test_normalize_disk_info(self):
        cmd = mock.MagicMock()
        cmd.get_models.return_value = CachingTypes

        # verify caching configuring

        r = normalize_disk_info()
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['0=None'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[0]['diskSizeGB'], 1)
        self.assertEqual(r[1]['diskSizeGB'], 2)
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['None'], os_disk_caching='ReadOnly', data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'None')
        self.assertEqual(r['os']['caching'], 'ReadOnly')

        r = normalize_disk_info(data_disk_cachings=['0=None', '1=ReadOnly'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'ReadOnly')
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        # CLI will not tweak any casing from the values
        r = normalize_disk_info(data_disk_cachings=['0=none', '1=readonly'], data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'none')
        self.assertEqual(r[1]['caching'], 'readonly')

        # error on configuring non-existing disks
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['0=None', '1=foo'])
        self.assertTrue("data disk with lun of '0' doesn't exist" in str(err.exception))

        # default to "None" across for Lv/Lv2 machines
        r = normalize_disk_info(data_disk_sizes_gb=[1], size='standard_L8s')
        self.assertEqual(r['os']['caching'], CachingTypes.none.value)
        self.assertEqual(r[0].get('caching'), None)

        # error on lv/lv2 machines with caching mode other than "None"
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['ReadWrite'], data_disk_sizes_gb=[1, 2], size='standard_L16s_v2')
        self.assertTrue('for Lv series of machines, "None" is the only supported caching mode' in str(err.exception))
Beispiel #5
0
    def test_normalize_disk_info_from_images(self):
        # test create from data disk image

        image_data_disks = [{'lun': 2}, {'lun': 3}, {'lun': 6}]
        attach_data_disks = ['https://azure.blob.net/vhds/foo', '/subscriptions/00000/resourceGroups/OVA-TEST/providers/Microsoft.Compute/disks/disk']
        data_disk_sizes = [5, 10]

        r = normalize_disk_info(image_data_disks=image_data_disks, data_disk_sizes_gb=data_disk_sizes, attach_data_disks=attach_data_disks, storage_sku=['premium_lrs'])

        # empty managed data disks
        self.assertEqual(r[0], {
            'lun': 0,
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'empty',
            'deleteOption': None,
            'diskSizeGB': data_disk_sizes[0]
        })

        self.assertEqual(r[1], {
            'lun': 1,
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'empty',
            'deleteOption': None,
            'diskSizeGB': data_disk_sizes[1]
        })

        # data disks from image
        self.assertEqual(r[2], {
            'lun': image_data_disks[0]['lun'],  # ensure that list was not modified
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(r[3], {
            'lun': image_data_disks[1]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        # attached data disks
        self.assertEqual(r[4], {
            'lun': 4,
            'vhd': {'uri': attach_data_disks[0]},
            'name': 'foo',
            'createOption': 'attach'
        })

        self.assertEqual(r[5], {
            'lun': 5,
            'managedDisk': {'id': attach_data_disks[1]},
            'createOption': 'attach'
        })

        # last image data disk
        self.assertEqual(r[6], {
            'lun': image_data_disks[2]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(len(r), 8)  # length of data and os disks

        image_data_disks.extend([{'lun': 10}, {'lun': 0}, {'lun': 15}])

        r = normalize_disk_info(image_data_disks=image_data_disks, data_disk_sizes_gb=data_disk_sizes, attach_data_disks=attach_data_disks, storage_sku=['premium_lrs'])

        self.assertEqual(r['os'], {
            'storageAccountType': 'premium_lrs',
            'caching': 'ReadWrite'
        })

        self.assertEqual(r[0], {
            'lun': image_data_disks[4]['lun'],  # ensure that list was not modified
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(r[1], {
            'lun': 1,
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'empty',
            'deleteOption': None,
            'diskSizeGB': data_disk_sizes[0]
        })

        self.assertEqual(r[2], {
            'lun': image_data_disks[0]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(r[3], {
            'lun': image_data_disks[1]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(r[4], {
            'lun': 4,
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'empty',
            'deleteOption': None,
            'diskSizeGB': data_disk_sizes[1]
        })

        self.assertEqual(r[5], {
            'lun': 5,
            'vhd': {'uri': attach_data_disks[0]},
            'name': 'foo',
            'createOption': 'attach'
        })

        self.assertEqual(r[6], {
            'lun': image_data_disks[2]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(r[7], {
            'lun': 7,
            'managedDisk': {'id': attach_data_disks[1]},
            'createOption': 'attach'
        })

        self.assertEqual(r[10], {
            'lun': image_data_disks[3]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(r[15], {
            'lun': image_data_disks[5]['lun'],
            'managedDisk': {'storageAccountType': 'premium_lrs'},
            'createOption': 'fromImage'
        })

        self.assertEqual(len(r), 11)  # length of data and os disks
Beispiel #6
0
    def test_normalize_disk_info(self):
        from azure.cli.core.profiles._shared import AZURE_API_PROFILES, ResourceType
        from importlib import import_module

        api_version = AZURE_API_PROFILES['2019-03-01-hybrid'][
            ResourceType.MGMT_COMPUTE].default_api_version
        api_version = "v" + api_version.replace("-", "_")
        CachingTypes = import_module(
            'azure.mgmt.compute.{}.models'.format(api_version)).CachingTypes

        cmd = mock.MagicMock()
        cmd.get_models.return_value = CachingTypes

        # verify caching configuring

        r = normalize_disk_info()
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['0=None'],
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[0]['diskSizeGB'], 1)
        self.assertEqual(r[1]['diskSizeGB'], 2)
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        r = normalize_disk_info(data_disk_cachings=['None'],
                                os_disk_caching='ReadOnly',
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'None')
        self.assertEqual(r['os']['caching'], 'ReadOnly')

        r = normalize_disk_info(data_disk_cachings=['0=None', '1=ReadOnly'],
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'None')
        self.assertEqual(r[1]['caching'], 'ReadOnly')
        self.assertEqual(r['os']['caching'], CachingTypes.read_write.value)

        # CLI will not tweak any casing from the values
        r = normalize_disk_info(data_disk_cachings=['0=none', '1=readonly'],
                                data_disk_sizes_gb=[1, 2])
        self.assertEqual(r[0]['caching'], 'none')
        self.assertEqual(r[1]['caching'], 'readonly')

        # error on configuring non-existing disks
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['0=None', '1=foo'])
        self.assertTrue(
            "Data disk with lun of '0' doesn't exist" in str(err.exception))

        # default to "None" across for Lv/Lv2 machines
        r = normalize_disk_info(data_disk_sizes_gb=[1], size='standard_L8s')
        self.assertEqual(r['os']['caching'], CachingTypes.none.value)
        self.assertEqual(r[0].get('caching'), None)

        # error on lv/lv2 machines with caching mode other than "None"
        with self.assertRaises(CLIError) as err:
            normalize_disk_info(data_disk_cachings=['ReadWrite'],
                                data_disk_sizes_gb=[1, 2],
                                size='standard_L16s_v2')
        self.assertTrue(
            'for Lv series of machines, "None" is the only supported caching mode'
            in str(err.exception))