Skip to content

Commit

Permalink
Add sql server to aws relational db provider.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 306274519
  • Loading branch information
NathanTeeuwen authored and copybara-github committed Apr 13, 2020
1 parent 7ddeed2 commit bbe8238
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 7 deletions.
24 changes: 20 additions & 4 deletions perfkitbenchmarker/providers/aws/aws_relational_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
DEFAULT_MYSQL_AURORA_VERSION = '5.7.12'
DEFAULT_MYSQL56_AURORA_VERSION = '5.6.10a'
DEFAULT_POSTGRES_AURORA_VERSION = '9.6.9'
DEFAULT_SQLSERVER_VERSION = '14.00.3223.3.v1'

DEFAULT_MYSQL_PORT = 3306
DEFAULT_POSTGRES_PORT = 5432
Expand All @@ -46,14 +47,26 @@
relational_db.AURORA_MYSQL56: DEFAULT_MYSQL56_AURORA_VERSION,
relational_db.POSTGRES: DEFAULT_POSTGRES_VERSION,
relational_db.AURORA_POSTGRES: DEFAULT_POSTGRES_AURORA_VERSION,
relational_db.SQLSERVER_EXPRESS: DEFAULT_SQLSERVER_VERSION,
relational_db.SQLSERVER_STANDARD: DEFAULT_SQLSERVER_VERSION,
relational_db.SQLSERVER_ENTERPRISE: DEFAULT_SQLSERVER_VERSION,
}

_AURORA_ENGINES = set([
_AURORA_ENGINES = (
relational_db.AURORA_MYSQL56, relational_db.AURORA_MYSQL,
relational_db.AURORA_POSTGRES
])
relational_db.AURORA_POSTGRES)

_RDS_ENGINES = set([relational_db.MYSQL, relational_db.POSTGRES])
_SQL_SERVER_ENGINES = (
relational_db.SQLSERVER_EXPRESS,
relational_db.SQLSERVER_STANDARD,
relational_db.SQLSERVER_ENTERPRISE)

_RDS_ENGINES = (
relational_db.MYSQL,
relational_db.POSTGRES,
relational_db.SQLSERVER_EXPRESS,
relational_db.SQLSERVER_STANDARD,
relational_db.SQLSERVER_ENTERPRISE)


class AwsRelationalDbCrossRegionException(Exception):
Expand Down Expand Up @@ -305,6 +318,9 @@ def _CreateAwsSqlInstance(self):
'--availability-zone=%s' % self.spec.db_spec.zone, '--tags'
] + util.MakeFormattedDefaultTags()

if self.spec.engine in _SQL_SERVER_ENGINES:
cmd = cmd + ['--license-model=license-included']

if self.spec.db_disk_spec.disk_type == aws_disk.IO1:
cmd.append('--iops=%s' % self.spec.db_disk_spec.iops)
# TODO(ferneyhough): add backup_enabled and backup_window
Expand Down
4 changes: 2 additions & 2 deletions perfkitbenchmarker/providers/azure/azure_relational_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def GetDefaultEngineVersion(engine):
elif engine == relational_db.MYSQL:
return DEFAULT_MYSQL_VERSION
elif engine == relational_db.SQLSERVER:
return DEFAULT_MYSQL_VERSION
return DEFALUT_SQLSERVER_VERSION
else:
raise relational_db.RelationalDbEngineNotFoundException(
'Unsupported engine {0}'.format(engine))
Expand Down Expand Up @@ -186,7 +186,7 @@ def _ApplyManagedMysqlFlags(self):
raise Exception('Invalid MySQL flags: {0}. Error {1}'.format(
name_and_value, stderr))

def _CreateMySqlOrPostgresInstanceS(self):
def _CreateMySqlOrPostgresInstance(self):
"""Creates a managed MySql or Postgres instance."""
if not self.spec.high_availability:
raise Exception('Azure databases can only be used in high '
Expand Down
8 changes: 7 additions & 1 deletion perfkitbenchmarker/relational_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,20 @@
AURORA_MYSQL = 'aurora-mysql'
AURORA_MYSQL56 = 'aurora'
SQLSERVER = 'sqlserver'
SQLSERVER_EXPRESS = 'sqlserver-ex'
SQLSERVER_ENTERPRISE = 'sqlserver-ee'
SQLSERVER_STANDARD = 'sqlserver-se'

ALL_ENGINES = [
MYSQL,
POSTGRES,
AURORA_POSTGRES,
AURORA_MYSQL,
AURORA_MYSQL56,
SQLSERVER
SQLSERVER,
SQLSERVER_EXPRESS,
SQLSERVER_ENTERPRISE,
SQLSERVER_STANDARD
]

FLAGS = flags.FLAGS
Expand Down

0 comments on commit bbe8238

Please sign in to comment.