Skip to content

Commit

Permalink
Rename aws disk spec's iops to provisioned_iops to align with gcp disk
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 606317271
  • Loading branch information
p3rf Team authored and copybara-github committed Feb 12, 2024
1 parent a290f38 commit ea4a54c
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 30 deletions.
1 change: 1 addition & 0 deletions perfkitbenchmarker/flag_alias.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
'managed_db_memory': 'db_memory',
'managed_db_disk_size': 'db_disk_size',
'managed_db_disk_type': 'db_disk_type',
'managed_db_disk_iops': 'db_disk_iops',
}

LIST_TO_MULTISTRING_TRANSLATIONS = {'zones': 'zone', 'extra_zones': 'zone'}
Expand Down
9 changes: 5 additions & 4 deletions perfkitbenchmarker/providers/aws/aws_disk.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,8 @@ class AwsDiskSpec(disk.BaseDiskSpec):
"""Object holding the information needed to create an AwsDisk.
Attributes:
iops: None or int. IOPS for Provisioned IOPS (SSD) volumes in AWS.
provisioned_iops: None or int. IOPS for Provisioned IOPS (SSD) volumes in
AWS.
throughput: None or int. Throughput for (SSD) volumes in AWS.
"""

Expand All @@ -368,7 +369,7 @@ def _ApplyFlags(cls, config_values, flag_values):
"""
super(AwsDiskSpec, cls)._ApplyFlags(config_values, flag_values)
if flag_values['aws_provisioned_iops'].present:
config_values['iops'] = flag_values.aws_provisioned_iops
config_values['provisioned_iops'] = flag_values.aws_provisioned_iops
if flag_values['aws_provisioned_throughput'].present:
config_values['throughput'] = flag_values.aws_provisioned_throughput

Expand All @@ -383,7 +384,7 @@ def _GetOptionDecoderConstructions(cls):
"""
result = super(AwsDiskSpec, cls)._GetOptionDecoderConstructions()
result.update({
'iops': (
'provisioned_iops': (
option_decoders.IntDecoder,
{'default': None, 'none_ok': True},
)
Expand Down Expand Up @@ -414,7 +415,7 @@ class AwsDisk(disk.BaseDisk):

def __init__(self, disk_spec, zone, machine_type, disk_spec_id=None):
super(AwsDisk, self).__init__(disk_spec)
self.iops = disk_spec.iops
self.iops = disk_spec.provisioned_iops
self.throughput = disk_spec.throughput
self.id = None
self.zone = zone
Expand Down
2 changes: 1 addition & 1 deletion perfkitbenchmarker/providers/aws/aws_dpb_emr.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def _Create(self):
# Make sure nothing we are ignoring is included in the disk spec
assert self.spec.worker_group.disk_spec.device_path is None
assert self.spec.worker_group.disk_spec.disk_number is None
assert self.spec.worker_group.disk_spec.iops is None
assert self.spec.worker_group.disk_spec.provisioned_iops is None
if self.spec.worker_group.disk_spec.disk_type != disk.LOCAL:
ebs_configuration = {
'EbsBlockDeviceConfigs': [{
Expand Down
2 changes: 1 addition & 1 deletion perfkitbenchmarker/providers/aws/aws_emr.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def _Create(self):
assert group_spec.disk_spec.device_path is None
assert group_spec.disk_spec.disk_number is None
assert group_spec.disk_spec.mount_point is None
assert group_spec.disk_spec.iops is None
assert group_spec.disk_spec.provisioned_iops is None
ebs_configuration = {
'EbsBlockDeviceConfigs': [{
'VolumeSpecification': {
Expand Down
8 changes: 4 additions & 4 deletions perfkitbenchmarker/providers/aws/aws_rds_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ def _Create(self):
self.spec.db_disk_spec.disk_type == aws_disk.IO1
or self.spec.db_disk_spec.disk_type == aws_disk.GP3
):
if self.spec.db_disk_spec.iops:
cmd.append('--iops=%s' % self.spec.db_disk_spec.iops)
if self.spec.db_disk_spec.provisioned_iops:
cmd.append('--iops=%s' % self.spec.db_disk_spec.provisioned_iops)

vm_util.IssueCommand(cmd)

Expand All @@ -131,9 +131,9 @@ def GetResourceMetadata(self):
"""
metadata = super(AwsRDSRelationalDb, self).GetResourceMetadata()

if hasattr(self.spec.db_disk_spec, 'iops'):
if hasattr(self.spec.db_disk_spec, 'provisioned_iops'):
metadata.update({
'disk_iops': self.spec.db_disk_spec.iops,
'disk_iops': self.spec.db_disk_spec.provisioned_iops,
})

return metadata
Expand Down
4 changes: 2 additions & 2 deletions perfkitbenchmarker/providers/aws/aws_virtual_machine.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,12 +280,12 @@ def GetBlockDeviceMap(vm):
ebs_block['VolumeType'] = disk_spec.disk_type
ebs_block['VolumeSize'] = disk_spec.disk_size
ebs_block['DeleteOnTermination'] = True
if disk_spec.iops and disk_spec.disk_type in [
if disk_spec.provisioned_iops and disk_spec.disk_type in [
aws_disk.IO1,
aws_disk.IO2,
aws_disk.GP3,
]:
ebs_block['Iops'] = disk_spec.iops
ebs_block['Iops'] = disk_spec.provisioned_iops
if disk_spec.throughput and disk_spec.disk_type in [aws_disk.GP3]:
ebs_block['Throughput'] = disk_spec.throughput
mapping['Ebs'] = ebs_block
Expand Down
5 changes: 4 additions & 1 deletion perfkitbenchmarker/relational_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@
)
flags.DEFINE_string('db_disk_type', None, 'Disk type of the database.')
flags.DEFINE_integer(
'managed_db_disk_iops', None, 'Disk iops of the database on AWS io1 disks.'
'db_disk_iops',
None,
'Disk IOPs to provision for database disks, if provisioning is applicable'
' or required. IOPs applies to each disk.',
)

flags.DEFINE_integer(
Expand Down
12 changes: 6 additions & 6 deletions perfkitbenchmarker/relational_db_spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -340,15 +340,15 @@ def _ApplyFlags(cls, config_values, flag_values):
config_values['vm_groups']['servers']['disk_spec'][cloud][
'disk_type'
] = flag_values.db_disk_type
if flag_values['managed_db_disk_iops'].present:
if flag_values['db_disk_iops'].present:
# This value will be used in aws_relation_db.py druing db creation
config_values['db_disk_spec'][cloud][
'iops'
] = flag_values.managed_db_disk_iops
'provisioned_iops'
] = flag_values.db_disk_iops
if has_unmanaged_dbs:
config_values['vm_groups']['servers']['disk_spec'][cloud][
'iops'
] = flag_values.managed_db_disk_iops
'provisioned_iops'
] = flag_values.db_disk_iops

if flag_values['client_vm_os_type'].present:
config_values['vm_groups']['clients'][
Expand Down Expand Up @@ -388,6 +388,6 @@ def _ApplyFlags(cls, config_values, flag_values):
] = flag_values.client_vm_disk_type
if flag_values['client_vm_disk_iops'].present:
config_values['vm_groups']['clients']['disk_spec'][cloud][
'disk_iops'
'provisioned_iops'
] = flag_values.client_vm_disk_iops
logging.warning('Relational db config values: %s', config_values)
22 changes: 12 additions & 10 deletions tests/providers/aws/aws_disk_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def testDefaults(self):
self.assertIsNone(spec.disk_number)
self.assertIsNone(spec.disk_size)
self.assertIsNone(spec.disk_type)
self.assertIsNone(spec.iops)
self.assertIsNone(spec.provisioned_iops)
self.assertIsNone(spec.throughput)
self.assertIsNone(spec.mount_point)
self.assertEqual(spec.num_striped_disks, 1)
Expand All @@ -43,7 +43,7 @@ def testProvidedValid(self):
disk_number=1,
disk_size=75,
disk_type='test_disk_type',
iops=1000,
provisioned_iops=1000,
throughput=100,
mount_point='/mountpoint',
num_striped_disks=2,
Expand All @@ -52,40 +52,42 @@ def testProvidedValid(self):
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.provisioned_iops, 1000)
self.assertEqual(spec.throughput, 100)
self.assertEqual(spec.mount_point, '/mountpoint')
self.assertEqual(spec.num_striped_disks, 2)

def testProvidedNone(self):
spec = aws_disk.AwsDiskSpec(_COMPONENT, iops=None, throughput=None)
self.assertIsNone(spec.iops)
spec = aws_disk.AwsDiskSpec(
_COMPONENT, provisioned_iops=None, throughput=None
)
self.assertIsNone(spec.provisioned_iops)
self.assertIsNone(spec.throughput)

def testInvalidOptionTypes(self):
with self.assertRaises(errors.Config.InvalidValue):
aws_disk.AwsDiskSpec(_COMPONENT, iops='ten')
aws_disk.AwsDiskSpec(_COMPONENT, provisioned_iops='ten')

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
_COMPONENT, FLAGS, disk_size=75, provisioned_iops=1000, throughput=150
)
self.assertEqual(spec.disk_size, 75)
self.assertEqual(spec.iops, 1000)
self.assertEqual(spec.provisioned_iops, 1000)
self.assertEqual(spec.throughput, 150)

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
_COMPONENT, FLAGS, disk_size=75, provisioned_iops=1000, throughput=150
)
self.assertEqual(spec.disk_size, 100)
self.assertEqual(spec.iops, 2000)
self.assertEqual(spec.provisioned_iops, 2000)
self.assertEqual(spec.throughput, 200)


Expand Down
2 changes: 1 addition & 1 deletion tests/providers/aws/aws_relational_db_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def VmGroupSpec(self):

def CreateMockSpec(self, additional_spec_items=None):
default_server_db_disk_spec = aws_disk.AwsDiskSpec(
_COMPONENT, disk_size=5, disk_type=aws_disk.IO1, iops=1000
_COMPONENT, disk_size=5, disk_type=aws_disk.IO1, provisioned_iops=1000
)

default_server_db_spec = virtual_machine.BaseVmSpec(
Expand Down

0 comments on commit ea4a54c

Please sign in to comment.