コード例 #1
0
 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'
コード例 #2
0
 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)
コード例 #3
0
    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
コード例 #4
0
 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)
コード例 #5
0
 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'
コード例 #6
0
 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)
コード例 #7
0
 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)
コード例 #8
0
 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)
コード例 #10
0
 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)
コード例 #11
0
    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)
コード例 #12
0
  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
    )
コード例 #13
0
    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
            })
コード例 #14
0
    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
            })
コード例 #15
0
    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
        }
コード例 #16
0
 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')
コード例 #17
0
 def testInvalidOptionTypes(self):
   with self.assertRaises(errors.Config.InvalidValue):
     aws_disk.AwsDiskSpec(_COMPONENT, iops='ten')
コード例 #18
0
 def testProvidedNone(self):
   spec = aws_disk.AwsDiskSpec(_COMPONENT, iops=None, throughput=None)
   self.assertIsNone(spec.iops)
   self.assertIsNone(spec.throughput)