def setUp(self): p = mock.patch(util.__name__ + '.IssueRetryableCommand') p.start() self.addCleanup(p.stop) self.disk = aws_disk.AwsDisk(aws_disk.AwsDiskSpec(disk_type='standard'), 'us-east-1', 'm4.2xlarge') self.disk.id = 'vol-foo'
def testPresentFlagsOverrideConfigs(self): flags = mock_flags.MockFlags() flags['aws_provisioned_iops'].Parse(2000) flags['data_disk_size'].Parse(100) spec = aws_disk.AwsDiskSpec(_COMPONENT, flags, disk_size=75, iops=1000) self.assertEqual(spec.disk_size, 100) self.assertEqual(spec.iops, 2000)
def CreateMockSpec(self, additional_spec_items={}): default_server_disk_spec = aws_disk.AwsDiskSpec(_COMPONENT, disk_size=5, disk_type=aws_disk.IO1, iops=1000) default_server_vm_spec = virtual_machine.BaseVmSpec( 'NAME', **{ 'machine_type': 'db.t1.micro', 'zone': 'us-west-2b' }) spec_dict = { 'engine': MYSQL, 'engine_version': '5.7.11', 'run_uri': '123', 'database_name': 'fakedbname', 'database_password': '******', 'database_username': '******', 'high_availability': False, 'vm_spec': default_server_vm_spec, 'disk_spec': default_server_disk_spec, } spec_dict.update(additional_spec_items) mock_db_spec = Mock(spec=benchmark_config_spec._RelationalDbSpec) mock_db_spec.configure_mock(**spec_dict) return mock_db_spec
def testNonPresentFlagsDoNotOverrideConfigs(self): flags = mock_flags.MockFlags() flags['aws_provisioned_iops'].value = 2000 flags['data_disk_size'].value = 100 spec = aws_disk.AwsDiskSpec(_COMPONENT, flags, disk_size=75, iops=1000) self.assertEqual(spec.disk_size, 75) self.assertEqual(spec.iops, 1000)
def setUp(self): super(AwsVolumeExistsTestCase, self).setUp() p = mock.patch(util.__name__ + '.IssueRetryableCommand') p.start() self.addCleanup(p.stop) self.disk = aws_disk.AwsDisk( aws_disk.AwsDiskSpec(_COMPONENT, disk_type='standard'), 'us-east-1', 'm4.2xlarge') self.disk.id = 'vol-foo'
def testPresentFlagsOverrideConfigs(self): FLAGS['aws_provisioned_iops'].parse(2000) FLAGS['aws_provisioned_throughput'].parse(200) FLAGS['data_disk_size'].parse(100) spec = aws_disk.AwsDiskSpec( _COMPONENT, FLAGS, disk_size=75, iops=1000, throughput=150) self.assertEqual(spec.disk_size, 100) self.assertEqual(spec.iops, 2000) self.assertEqual(spec.throughput, 200)
def testDefaults(self): spec = aws_disk.AwsDiskSpec(_COMPONENT) self.assertIsNone(spec.device_path) self.assertIsNone(spec.disk_number) self.assertIsNone(spec.disk_size) self.assertIsNone(spec.disk_type) self.assertIsNone(spec.iops) self.assertIsNone(spec.mount_point) self.assertEqual(spec.num_striped_disks, 1)
def testNonPresentFlagsDoNotOverrideConfigs(self): FLAGS.aws_provisioned_iops = 2000 FLAGS.aws_provisioned_throughput = 200 FLAGS.data_disk_size = 100 spec = aws_disk.AwsDiskSpec( _COMPONENT, FLAGS, disk_size=75, iops=1000, throughput=150) self.assertEqual(spec.disk_size, 75) self.assertEqual(spec.iops, 1000) self.assertEqual(spec.throughput, 150)
def testDiskWithoutIops(self): spec_dict = { 'disk_spec': aws_disk.AwsDiskSpec( _COMPONENT, disk_size=5, disk_type=aws_disk.GP2) } command_string = self.create(spec_dict) self.assertIn('--allocated-storage=5', command_string) self.assertIn('--storage-type=%s' % aws_disk.GP2, command_string) self.assertNotIn('--iops', command_string)
def testProvidedValid(self): spec = aws_disk.AwsDiskSpec( _COMPONENT, device_path='test_device_path', disk_number=1, disk_size=75, disk_type='test_disk_type', iops=1000, mount_point='/mountpoint', num_striped_disks=2) self.assertEqual(spec.device_path, 'test_device_path') self.assertEqual(spec.disk_number, 1) self.assertEqual(spec.disk_size, 75) self.assertEqual(spec.disk_type, 'test_disk_type') self.assertEqual(spec.iops, 1000) self.assertEqual(spec.mount_point, '/mountpoint') self.assertEqual(spec.num_striped_disks, 2)
def testDiskWithoutIops(self): with self._PatchCriticalObjects() as issue_command: spec = self.createSpecDict() spec['disk_spec'] = aws_disk.AwsDiskSpec(_COMPONENT, disk_size=5, disk_type=aws_disk.GP2) db = self.createManagedDbFromSpec(spec) db._Create() self.assertEquals(issue_command.call_count, 1) command_string = ' '.join(issue_command.call_args[0][0]) self.assertIn('--allocated-storage=5', command_string) self.assertIn('--storage-type=%s' % aws_disk.GP2, command_string) self.assertNotIn('--iops', command_string)
def DoAwsDiskTest(self, disk_type, machine_type, goal_media, goal_replication): disk_spec = aws_disk.AwsDiskSpec(_COMPONENT, disk_size=2, disk_type=disk_type) vm_spec = aws_virtual_machine.AwsVmSpec( 'test_vm_spec.AWS', zone='us-east-1a', machine_type=machine_type) vm = aws_virtual_machine.Ubuntu1804BasedAwsVirtualMachine(vm_spec) vm.CreateScratchDisk(disk_spec) self.assertDictContainsSubset( {disk.MEDIA: goal_media, disk.REPLICATION: goal_replication}, vm.scratch_disks[0].metadata )
def doAwsDiskTest(self, disk_type, machine_type, goal_media, goal_replication, goal_legacy_disk_type): disk_spec = aws_disk.AwsDiskSpec(_COMPONENT, disk_size=2, disk_type=disk_type) vm_spec = virtual_machine.BaseVmSpec('test_vm_spec.AWS', zone='us-east-1a', machine_type=machine_type) vm = aws_virtual_machine.DebianBasedAwsVirtualMachine(vm_spec) vm.CreateScratchDisk(disk_spec) self.assertEqual( vm.scratch_disks[0].metadata, { disk.MEDIA: goal_media, disk.REPLICATION: goal_replication, disk.LEGACY_DISK_TYPE: goal_legacy_disk_type })
def doAwsDiskTest(self, disk_type, machine_type, goal_media, goal_replication, goal_legacy_disk_type): disk_spec = aws_disk.AwsDiskSpec(disk_size=2, disk_type=disk_type, mount_point=None) context.SetThreadBenchmarkSpec( benchmark_spec.BenchmarkSpec({}, 'name', 'uid')) vm_spec = virtual_machine.BaseVmSpec('test_vm_spec.AWS', zone='us-east-1a', machine_type=machine_type) vm = aws_virtual_machine.DebianBasedAwsVirtualMachine(vm_spec) vm.CreateScratchDisk(disk_spec) self.assertEqual( vm.scratch_disks[0].metadata, { disk.MEDIA: goal_media, disk.REPLICATION: goal_replication, disk.LEGACY_DISK_TYPE: goal_legacy_disk_type })
def createSpecDict(self): disk_spec = aws_disk.AwsDiskSpec(_COMPONENT, disk_size=5, disk_type=aws_disk.IO1, iops=1000) vm_spec = virtual_machine.BaseVmSpec( 'NAME', **{ 'machine_type': 'db.t1.micro', 'zone': 'us-west-2b' }) return { 'database': MYSQL, 'database_version': '5.7.11', 'run_uri': '123', 'database_name': 'fakedbname', 'database_password': '******', 'database_username': '******', 'vm_spec': vm_spec, 'disk_spec': disk_spec, 'high_availability': False }
def _CreateDiskSpec(self, fs_type): return aws_disk.AwsDiskSpec( _COMPONENT, num_striped_disks=1, disk_type=fs_type if fs_type == disk.NFS else disk.LOCAL, mount_point='/scratch')
def testInvalidOptionTypes(self): with self.assertRaises(errors.Config.InvalidValue): aws_disk.AwsDiskSpec(_COMPONENT, iops='ten')
def testProvidedNone(self): spec = aws_disk.AwsDiskSpec(_COMPONENT, iops=None, throughput=None) self.assertIsNone(spec.iops) self.assertIsNone(spec.throughput)