Index: tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/rds/test_connection.py |
diff --git a/tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/rds/test_connection.py b/tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/rds/test_connection.py |
deleted file mode 100644 |
index fbc65b0949379c7b63ebf16cfd4d96581194ee93..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/rds/test_connection.py |
+++ /dev/null |
@@ -1,787 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved |
-# |
-# Permission is hereby granted, free of charge, to any person obtaining a |
-# copy of this software and associated documentation files (the |
-# "Software"), to deal in the Software without restriction, including |
-# without limitation the rights to use, copy, modify, merge, publish, dis- |
-# tribute, sublicense, and/or sell copies of the Software, and to permit |
-# persons to whom the Software is furnished to do so, subject to the fol- |
-# lowing conditions: |
-# |
-# The above copyright notice and this permission notice shall be included |
-# in all copies or substantial portions of the Software. |
-# |
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- |
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT |
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
-# IN THE SOFTWARE. |
-# |
- |
-from tests.unit import unittest |
-from tests.unit import AWSMockServiceTestCase |
- |
-from boto.ec2.securitygroup import SecurityGroup |
-from boto.rds import RDSConnection |
-from boto.rds.vpcsecuritygroupmembership import VPCSecurityGroupMembership |
-from boto.rds.parametergroup import ParameterGroup |
-from boto.rds.logfile import LogFile, LogFileObject |
- |
-import xml.sax.saxutils as saxutils |
- |
-class TestRDSConnection(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- |
- def setUp(self): |
- super(TestRDSConnection, self).setUp() |
- |
- def default_body(self): |
- return """ |
- <DescribeDBInstancesResponse> |
- <DescribeDBInstancesResult> |
- <DBInstances> |
- <DBInstance> |
- <Iops>2000</Iops> |
- <BackupRetentionPeriod>1</BackupRetentionPeriod> |
- <MultiAZ>false</MultiAZ> |
- <DBInstanceStatus>backing-up</DBInstanceStatus> |
- <DBInstanceIdentifier>mydbinstance2</DBInstanceIdentifier> |
- <PreferredBackupWindow>10:30-11:00</PreferredBackupWindow> |
- <PreferredMaintenanceWindow>wed:06:30-wed:07:00</PreferredMaintenanceWindow> |
- <OptionGroupMembership> |
- <OptionGroupName>default:mysql-5-5</OptionGroupName> |
- <Status>in-sync</Status> |
- </OptionGroupMembership> |
- <AvailabilityZone>us-west-2b</AvailabilityZone> |
- <ReadReplicaDBInstanceIdentifiers/> |
- <Engine>mysql</Engine> |
- <PendingModifiedValues/> |
- <LicenseModel>general-public-license</LicenseModel> |
- <DBParameterGroups> |
- <DBParameterGroup> |
- <ParameterApplyStatus>in-sync</ParameterApplyStatus> |
- <DBParameterGroupName>default.mysql5.5</DBParameterGroupName> |
- </DBParameterGroup> |
- </DBParameterGroups> |
- <Endpoint> |
- <Port>3306</Port> |
- <Address>mydbinstance2.c0hjqouvn9mf.us-west-2.rds.amazonaws.com</Address> |
- </Endpoint> |
- <EngineVersion>5.5.27</EngineVersion> |
- <DBSecurityGroups> |
- <DBSecurityGroup> |
- <Status>active</Status> |
- <DBSecurityGroupName>default</DBSecurityGroupName> |
- </DBSecurityGroup> |
- </DBSecurityGroups> |
- <VpcSecurityGroups> |
- <VpcSecurityGroupMembership> |
- <VpcSecurityGroupId>sg-1</VpcSecurityGroupId> |
- <Status>active</Status> |
- </VpcSecurityGroupMembership> |
- </VpcSecurityGroups> |
- <DBName>mydb2</DBName> |
- <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade> |
- <InstanceCreateTime>2012-10-03T22:01:51.047Z</InstanceCreateTime> |
- <AllocatedStorage>200</AllocatedStorage> |
- <DBInstanceClass>db.m1.large</DBInstanceClass> |
- <MasterUsername>awsuser</MasterUsername> |
- <StatusInfos> |
- <DBInstanceStatusInfo> |
- <Message></Message> |
- <Normal>true</Normal> |
- <Status>replicating</Status> |
- <StatusType>read replication</StatusType> |
- </DBInstanceStatusInfo> |
- </StatusInfos> |
- <DBSubnetGroup> |
- <VpcId>990524496922</VpcId> |
- <SubnetGroupStatus>Complete</SubnetGroupStatus> |
- <DBSubnetGroupDescription>My modified DBSubnetGroup</DBSubnetGroupDescription> |
- <DBSubnetGroupName>mydbsubnetgroup</DBSubnetGroupName> |
- <Subnets> |
- <Subnet> |
- <SubnetStatus>Active</SubnetStatus> |
- <SubnetIdentifier>subnet-7c5b4115</SubnetIdentifier> |
- <SubnetAvailabilityZone> |
- <Name>us-east-1c</Name> |
- </SubnetAvailabilityZone> |
- </Subnet> |
- <Subnet> |
- <SubnetStatus>Active</SubnetStatus> |
- <SubnetIdentifier>subnet-7b5b4112</SubnetIdentifier> |
- <SubnetAvailabilityZone> |
- <Name>us-east-1b</Name> |
- </SubnetAvailabilityZone> |
- </Subnet> |
- <Subnet> |
- <SubnetStatus>Active</SubnetStatus> |
- <SubnetIdentifier>subnet-3ea6bd57</SubnetIdentifier> |
- <SubnetAvailabilityZone> |
- <Name>us-east-1d</Name> |
- </SubnetAvailabilityZone> |
- </Subnet> |
- </Subnets> |
- </DBSubnetGroup> |
- </DBInstance> |
- </DBInstances> |
- </DescribeDBInstancesResult> |
- </DescribeDBInstancesResponse> |
- """ |
- |
- def test_get_all_db_instances(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.get_all_dbinstances('instance_id') |
- self.assertEqual(len(response), 1) |
- self.assert_request_parameters({ |
- 'Action': 'DescribeDBInstances', |
- 'DBInstanceIdentifier': 'instance_id', |
- }, ignore_params_values=['Version']) |
- db = response[0] |
- self.assertEqual(db.id, 'mydbinstance2') |
- self.assertEqual(db.create_time, '2012-10-03T22:01:51.047Z') |
- self.assertEqual(db.engine, 'mysql') |
- self.assertEqual(db.status, 'backing-up') |
- self.assertEqual(db.allocated_storage, 200) |
- self.assertEqual( |
- db.endpoint, |
- (u'mydbinstance2.c0hjqouvn9mf.us-west-2.rds.amazonaws.com', 3306)) |
- self.assertEqual(db.instance_class, 'db.m1.large') |
- self.assertEqual(db.master_username, 'awsuser') |
- self.assertEqual(db.availability_zone, 'us-west-2b') |
- self.assertEqual(db.backup_retention_period, 1) |
- self.assertEqual(db.preferred_backup_window, '10:30-11:00') |
- self.assertEqual(db.preferred_maintenance_window, |
- 'wed:06:30-wed:07:00') |
- self.assertEqual(db.latest_restorable_time, None) |
- self.assertEqual(db.multi_az, False) |
- self.assertEqual(db.iops, 2000) |
- self.assertEqual(db.pending_modified_values, {}) |
- |
- self.assertEqual(db.parameter_group.name, |
- 'default.mysql5.5') |
- self.assertEqual(db.parameter_group.description, None) |
- self.assertEqual(db.parameter_group.engine, None) |
- |
- self.assertEqual(db.security_group.owner_id, None) |
- self.assertEqual(db.security_group.name, 'default') |
- self.assertEqual(db.security_group.description, None) |
- self.assertEqual(db.security_group.ec2_groups, []) |
- self.assertEqual(db.security_group.ip_ranges, []) |
- self.assertEqual(len(db.status_infos), 1) |
- self.assertEqual(db.status_infos[0].message, '') |
- self.assertEqual(db.status_infos[0].normal, True) |
- self.assertEqual(db.status_infos[0].status, 'replicating') |
- self.assertEqual(db.status_infos[0].status_type, 'read replication') |
- self.assertEqual(db.vpc_security_groups[0].status, 'active') |
- self.assertEqual(db.vpc_security_groups[0].vpc_group, 'sg-1') |
- self.assertEqual(db.license_model, 'general-public-license') |
- self.assertEqual(db.engine_version, '5.5.27') |
- self.assertEqual(db.auto_minor_version_upgrade, True) |
- self.assertEqual(db.subnet_group.name, 'mydbsubnetgroup') |
- |
- |
-class TestRDSCCreateDBInstance(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- |
- def setUp(self): |
- super(TestRDSCCreateDBInstance, self).setUp() |
- |
- def default_body(self): |
- return """ |
- <CreateDBInstanceResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/"> |
- <CreateDBInstanceResult> |
- <DBInstance> |
- <ReadReplicaDBInstanceIdentifiers/> |
- <Engine>mysql</Engine> |
- <PendingModifiedValues> |
- <MasterUserPassword>****</MasterUserPassword> |
- </PendingModifiedValues> |
- <BackupRetentionPeriod>0</BackupRetentionPeriod> |
- <MultiAZ>false</MultiAZ> |
- <LicenseModel>general-public-license</LicenseModel> |
- <DBSubnetGroup> |
- <VpcId>990524496922</VpcId> |
- <SubnetGroupStatus>Complete</SubnetGroupStatus> |
- <DBSubnetGroupDescription>description</DBSubnetGroupDescription> |
- <DBSubnetGroupName>subnet_grp1</DBSubnetGroupName> |
- <Subnets> |
- <Subnet> |
- <SubnetStatus>Active</SubnetStatus> |
- <SubnetIdentifier>subnet-7c5b4115</SubnetIdentifier> |
- <SubnetAvailabilityZone> |
- <Name>us-east-1c</Name> |
- </SubnetAvailabilityZone> |
- </Subnet> |
- <Subnet> |
- <SubnetStatus>Active</SubnetStatus> |
- <SubnetIdentifier>subnet-7b5b4112</SubnetIdentifier> |
- <SubnetAvailabilityZone> |
- <Name>us-east-1b</Name> |
- </SubnetAvailabilityZone> |
- </Subnet> |
- <Subnet> |
- <SubnetStatus>Active</SubnetStatus> |
- <SubnetIdentifier>subnet-3ea6bd57</SubnetIdentifier> |
- <SubnetAvailabilityZone> |
- <Name>us-east-1d</Name> |
- </SubnetAvailabilityZone> |
- </Subnet> |
- </Subnets> |
- </DBSubnetGroup> |
- <DBInstanceStatus>creating</DBInstanceStatus> |
- <EngineVersion>5.1.50</EngineVersion> |
- <DBInstanceIdentifier>simcoprod01</DBInstanceIdentifier> |
- <DBParameterGroups> |
- <DBParameterGroup> |
- <ParameterApplyStatus>in-sync</ParameterApplyStatus> |
- <DBParameterGroupName>default.mysql5.1</DBParameterGroupName> |
- </DBParameterGroup> |
- </DBParameterGroups> |
- <DBSecurityGroups> |
- <DBSecurityGroup> |
- <Status>active</Status> |
- <DBSecurityGroupName>default</DBSecurityGroupName> |
- </DBSecurityGroup> |
- </DBSecurityGroups> |
- <PreferredBackupWindow>00:00-00:30</PreferredBackupWindow> |
- <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade> |
- <PreferredMaintenanceWindow>sat:07:30-sat:08:00</PreferredMaintenanceWindow> |
- <AllocatedStorage>10</AllocatedStorage> |
- <DBInstanceClass>db.m1.large</DBInstanceClass> |
- <MasterUsername>master</MasterUsername> |
- </DBInstance> |
- </CreateDBInstanceResult> |
- <ResponseMetadata> |
- <RequestId>2e5d4270-8501-11e0-bd9b-a7b1ece36d51</RequestId> |
- </ResponseMetadata> |
- </CreateDBInstanceResponse> |
- """ |
- |
- def test_create_db_instance_param_group_name(self): |
- self.set_http_response(status_code=200) |
- db = self.service_connection.create_dbinstance( |
- 'SimCoProd01', |
- 10, |
- 'db.m1.large', |
- 'master', |
- 'Password01', |
- param_group='default.mysql5.1', |
- db_subnet_group_name='dbSubnetgroup01', |
- backup_retention_period=0) |
- |
- self.assert_request_parameters({ |
- 'Action': 'CreateDBInstance', |
- 'AllocatedStorage': 10, |
- 'AutoMinorVersionUpgrade': 'true', |
- 'BackupRetentionPeriod': 0, |
- 'DBInstanceClass': 'db.m1.large', |
- 'DBInstanceIdentifier': 'SimCoProd01', |
- 'DBParameterGroupName': 'default.mysql5.1', |
- 'DBSubnetGroupName': 'dbSubnetgroup01', |
- 'Engine': 'MySQL5.1', |
- 'MasterUsername': 'master', |
- 'MasterUserPassword': 'Password01', |
- 'Port': 3306 |
- }, ignore_params_values=['Version']) |
- |
- self.assertEqual(db.id, 'simcoprod01') |
- self.assertEqual(db.engine, 'mysql') |
- self.assertEqual(db.status, 'creating') |
- self.assertEqual(db.allocated_storage, 10) |
- self.assertEqual(db.instance_class, 'db.m1.large') |
- self.assertEqual(db.master_username, 'master') |
- self.assertEqual(db.multi_az, False) |
- self.assertEqual(db.pending_modified_values, |
- {'MasterUserPassword': '****'}) |
- |
- self.assertEqual(db.parameter_group.name, |
- 'default.mysql5.1') |
- self.assertEqual(db.parameter_group.description, None) |
- self.assertEqual(db.parameter_group.engine, None) |
- self.assertEqual(db.backup_retention_period, 0) |
- |
- def test_create_db_instance_param_group_instance(self): |
- self.set_http_response(status_code=200) |
- param_group = ParameterGroup() |
- param_group.name = 'default.mysql5.1' |
- db = self.service_connection.create_dbinstance( |
- 'SimCoProd01', |
- 10, |
- 'db.m1.large', |
- 'master', |
- 'Password01', |
- param_group=param_group, |
- db_subnet_group_name='dbSubnetgroup01') |
- |
- self.assert_request_parameters({ |
- 'Action': 'CreateDBInstance', |
- 'AllocatedStorage': 10, |
- 'AutoMinorVersionUpgrade': 'true', |
- 'DBInstanceClass': 'db.m1.large', |
- 'DBInstanceIdentifier': 'SimCoProd01', |
- 'DBParameterGroupName': 'default.mysql5.1', |
- 'DBSubnetGroupName': 'dbSubnetgroup01', |
- 'Engine': 'MySQL5.1', |
- 'MasterUsername': 'master', |
- 'MasterUserPassword': 'Password01', |
- 'Port': 3306, |
- }, ignore_params_values=['Version']) |
- |
- self.assertEqual(db.id, 'simcoprod01') |
- self.assertEqual(db.engine, 'mysql') |
- self.assertEqual(db.status, 'creating') |
- self.assertEqual(db.allocated_storage, 10) |
- self.assertEqual(db.instance_class, 'db.m1.large') |
- self.assertEqual(db.master_username, 'master') |
- self.assertEqual(db.multi_az, False) |
- self.assertEqual(db.pending_modified_values, |
- {'MasterUserPassword': '****'}) |
- self.assertEqual(db.parameter_group.name, |
- 'default.mysql5.1') |
- self.assertEqual(db.parameter_group.description, None) |
- self.assertEqual(db.parameter_group.engine, None) |
- |
- |
-class TestRDSConnectionRestoreDBInstanceFromPointInTime(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- |
- def setUp(self): |
- super(TestRDSConnectionRestoreDBInstanceFromPointInTime, self).setUp() |
- |
- def default_body(self): |
- return """ |
- <RestoreDBInstanceToPointInTimeResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/"> |
- <RestoreDBInstanceToPointInTimeResult> |
- <DBInstance> |
- <ReadReplicaDBInstanceIdentifiers/> |
- <Engine>mysql</Engine> |
- <PendingModifiedValues/> |
- <BackupRetentionPeriod>1</BackupRetentionPeriod> |
- <MultiAZ>false</MultiAZ> |
- <LicenseModel>general-public-license</LicenseModel> |
- <DBInstanceStatus>creating</DBInstanceStatus> |
- <EngineVersion>5.1.50</EngineVersion> |
- <DBInstanceIdentifier>restored-db</DBInstanceIdentifier> |
- <DBParameterGroups> |
- <DBParameterGroup> |
- <ParameterApplyStatus>in-sync</ParameterApplyStatus> |
- <DBParameterGroupName>default.mysql5.1</DBParameterGroupName> |
- </DBParameterGroup> |
- </DBParameterGroups> |
- <DBSecurityGroups> |
- <DBSecurityGroup> |
- <Status>active</Status> |
- <DBSecurityGroupName>default</DBSecurityGroupName> |
- </DBSecurityGroup> |
- </DBSecurityGroups> |
- <PreferredBackupWindow>00:00-00:30</PreferredBackupWindow> |
- <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade> |
- <PreferredMaintenanceWindow>sat:07:30-sat:08:00</PreferredMaintenanceWindow> |
- <AllocatedStorage>10</AllocatedStorage> |
- <DBInstanceClass>db.m1.large</DBInstanceClass> |
- <MasterUsername>master</MasterUsername> |
- </DBInstance> |
- </RestoreDBInstanceToPointInTimeResult> |
- <ResponseMetadata> |
- <RequestId>1ef546bc-850b-11e0-90aa-eb648410240d</RequestId> |
- </ResponseMetadata> |
- </RestoreDBInstanceToPointInTimeResponse> |
- """ |
- |
- def test_restore_dbinstance_from_point_in_time(self): |
- self.set_http_response(status_code=200) |
- db = self.service_connection.restore_dbinstance_from_point_in_time( |
- 'simcoprod01', |
- 'restored-db', |
- True) |
- |
- self.assert_request_parameters({ |
- 'Action': 'RestoreDBInstanceToPointInTime', |
- 'SourceDBInstanceIdentifier': 'simcoprod01', |
- 'TargetDBInstanceIdentifier': 'restored-db', |
- 'UseLatestRestorableTime': 'true', |
- }, ignore_params_values=['Version']) |
- |
- self.assertEqual(db.id, 'restored-db') |
- self.assertEqual(db.engine, 'mysql') |
- self.assertEqual(db.status, 'creating') |
- self.assertEqual(db.allocated_storage, 10) |
- self.assertEqual(db.instance_class, 'db.m1.large') |
- self.assertEqual(db.master_username, 'master') |
- self.assertEqual(db.multi_az, False) |
- |
- self.assertEqual(db.parameter_group.name, |
- 'default.mysql5.1') |
- self.assertEqual(db.parameter_group.description, None) |
- self.assertEqual(db.parameter_group.engine, None) |
- |
- def test_restore_dbinstance_from_point_in_time__db_subnet_group_name(self): |
- self.set_http_response(status_code=200) |
- db = self.service_connection.restore_dbinstance_from_point_in_time( |
- 'simcoprod01', |
- 'restored-db', |
- True, |
- db_subnet_group_name='dbsubnetgroup') |
- |
- self.assert_request_parameters({ |
- 'Action': 'RestoreDBInstanceToPointInTime', |
- 'SourceDBInstanceIdentifier': 'simcoprod01', |
- 'TargetDBInstanceIdentifier': 'restored-db', |
- 'UseLatestRestorableTime': 'true', |
- 'DBSubnetGroupName': 'dbsubnetgroup', |
- }, ignore_params_values=['Version']) |
- |
- def test_create_db_instance_vpc_sg_str(self): |
- self.set_http_response(status_code=200) |
- vpc_security_groups = [ |
- VPCSecurityGroupMembership(self.service_connection, 'active', 'sg-1'), |
- VPCSecurityGroupMembership(self.service_connection, None, 'sg-2')] |
- |
- db = self.service_connection.create_dbinstance( |
- 'SimCoProd01', |
- 10, |
- 'db.m1.large', |
- 'master', |
- 'Password01', |
- param_group='default.mysql5.1', |
- db_subnet_group_name='dbSubnetgroup01', |
- vpc_security_groups=vpc_security_groups) |
- |
- self.assert_request_parameters({ |
- 'Action': 'CreateDBInstance', |
- 'AllocatedStorage': 10, |
- 'AutoMinorVersionUpgrade': 'true', |
- 'DBInstanceClass': 'db.m1.large', |
- 'DBInstanceIdentifier': 'SimCoProd01', |
- 'DBParameterGroupName': 'default.mysql5.1', |
- 'DBSubnetGroupName': 'dbSubnetgroup01', |
- 'Engine': 'MySQL5.1', |
- 'MasterUsername': 'master', |
- 'MasterUserPassword': 'Password01', |
- 'Port': 3306, |
- 'VpcSecurityGroupIds.member.1': 'sg-1', |
- 'VpcSecurityGroupIds.member.2': 'sg-2' |
- }, ignore_params_values=['Version']) |
- |
- def test_create_db_instance_vpc_sg_obj(self): |
- self.set_http_response(status_code=200) |
- |
- sg1 = SecurityGroup(name='sg-1') |
- sg2 = SecurityGroup(name='sg-2') |
- |
- vpc_security_groups = [ |
- VPCSecurityGroupMembership(self.service_connection, 'active', sg1.name), |
- VPCSecurityGroupMembership(self.service_connection, None, sg2.name)] |
- |
- db = self.service_connection.create_dbinstance( |
- 'SimCoProd01', |
- 10, |
- 'db.m1.large', |
- 'master', |
- 'Password01', |
- param_group='default.mysql5.1', |
- db_subnet_group_name='dbSubnetgroup01', |
- vpc_security_groups=vpc_security_groups) |
- |
- self.assert_request_parameters({ |
- 'Action': 'CreateDBInstance', |
- 'AllocatedStorage': 10, |
- 'AutoMinorVersionUpgrade': 'true', |
- 'DBInstanceClass': 'db.m1.large', |
- 'DBInstanceIdentifier': 'SimCoProd01', |
- 'DBParameterGroupName': 'default.mysql5.1', |
- 'DBSubnetGroupName': 'dbSubnetgroup01', |
- 'Engine': 'MySQL5.1', |
- 'MasterUsername': 'master', |
- 'MasterUserPassword': 'Password01', |
- 'Port': 3306, |
- 'VpcSecurityGroupIds.member.1': 'sg-1', |
- 'VpcSecurityGroupIds.member.2': 'sg-2' |
- }, ignore_params_values=['Version']) |
- |
- |
-class TestRDSOptionGroups(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- |
- def setUp(self): |
- super(TestRDSOptionGroups, self).setUp() |
- |
- def default_body(self): |
- return """ |
- <DescribeOptionGroupsResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/"> |
- <DescribeOptionGroupsResult> |
- <OptionGroupsList> |
- <OptionGroup> |
- <MajorEngineVersion>11.2</MajorEngineVersion> |
- <OptionGroupName>myoptiongroup</OptionGroupName> |
- <EngineName>oracle-se1</EngineName> |
- <OptionGroupDescription>Test option group</OptionGroupDescription> |
- <Options/> |
- </OptionGroup> |
- <OptionGroup> |
- <MajorEngineVersion>11.2</MajorEngineVersion> |
- <OptionGroupName>default:oracle-se1-11-2</OptionGroupName> |
- <EngineName>oracle-se1</EngineName> |
- <OptionGroupDescription>Default Option Group.</OptionGroupDescription> |
- <Options/> |
- </OptionGroup> |
- </OptionGroupsList> |
- </DescribeOptionGroupsResult> |
- <ResponseMetadata> |
- <RequestId>e4b234d9-84d5-11e1-87a6-71059839a52b</RequestId> |
- </ResponseMetadata> |
- </DescribeOptionGroupsResponse> |
- """ |
- |
- def test_describe_option_groups(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.describe_option_groups() |
- self.assertEqual(len(response), 2) |
- options = response[0] |
- self.assertEqual(options.name, 'myoptiongroup') |
- self.assertEqual(options.description, 'Test option group') |
- self.assertEqual(options.engine_name, 'oracle-se1') |
- self.assertEqual(options.major_engine_version, '11.2') |
- options = response[1] |
- self.assertEqual(options.name, 'default:oracle-se1-11-2') |
- self.assertEqual(options.description, 'Default Option Group.') |
- self.assertEqual(options.engine_name, 'oracle-se1') |
- self.assertEqual(options.major_engine_version, '11.2') |
- |
-class TestRDSLogFile(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- |
- def setUp(self): |
- super(TestRDSLogFile, self).setUp() |
- |
- def default_body(self): |
- return """ |
- <DescribeDBLogFilesResponse xmlns="http://rds.amazonaws.com/doc/2013-02-12/"> |
- <DescribeDBLogFilesResult> |
- <DescribeDBLogFiles> |
- <DescribeDBLogFilesDetails> |
- <LastWritten>1364403600000</LastWritten> |
- <LogFileName>error/mysql-error-running.log</LogFileName> |
- <Size>0</Size> |
- </DescribeDBLogFilesDetails> |
- <DescribeDBLogFilesDetails> |
- <LastWritten>1364338800000</LastWritten> |
- <LogFileName>error/mysql-error-running.log.0</LogFileName> |
- <Size>0</Size> |
- </DescribeDBLogFilesDetails> |
- <DescribeDBLogFilesDetails> |
- <LastWritten>1364342400000</LastWritten> |
- <LogFileName>error/mysql-error-running.log.1</LogFileName> |
- <Size>0</Size> |
- </DescribeDBLogFilesDetails> |
- <DescribeDBLogFilesDetails> |
- <LastWritten>1364346000000</LastWritten> |
- <LogFileName>error/mysql-error-running.log.2</LogFileName> |
- <Size>0</Size> |
- </DescribeDBLogFilesDetails> |
- <DescribeDBLogFilesDetails> |
- <LastWritten>1364349600000</LastWritten> |
- <LogFileName>error/mysql-error-running.log.3</LogFileName> |
- <Size>0</Size> |
- </DescribeDBLogFilesDetails> |
- <DescribeDBLogFilesDetails> |
- <LastWritten>1364405700000</LastWritten> |
- <LogFileName>error/mysql-error.log</LogFileName> |
- <Size>0</Size> |
- </DescribeDBLogFilesDetails> |
- </DescribeDBLogFiles> |
- </DescribeDBLogFilesResult> |
- <ResponseMetadata> |
- <RequestId>d70fb3b3-9704-11e2-a0db-871552e0ef19</RequestId> |
- </ResponseMetadata> |
- </DescribeDBLogFilesResponse> |
- """ |
- |
- def test_get_all_logs_simple(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.get_all_logs('db1') |
- |
- self.assert_request_parameters({ |
- 'Action': 'DescribeDBLogFiles', |
- 'DBInstanceIdentifier': 'db1', |
- }, ignore_params_values=['Version']) |
- |
- self.assertEqual(len(response), 6) |
- self.assertTrue(isinstance(response[0], LogFile)) |
- self.assertEqual(response[0].log_filename, 'error/mysql-error-running.log') |
- self.assertEqual(response[0].last_written, '1364403600000') |
- self.assertEqual(response[0].size, '0') |
- |
- def test_get_all_logs_filtered(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.get_all_logs('db_instance_1', max_records=100, marker='error/mysql-error.log', file_size=2000000, filename_contains='error', file_last_written=12345678) |
- |
- self.assert_request_parameters({ |
- 'Action': 'DescribeDBLogFiles', |
- 'DBInstanceIdentifier': 'db_instance_1', |
- 'MaxRecords': 100, |
- 'Marker': 'error/mysql-error.log', |
- 'FileSize': 2000000, |
- 'FilenameContains': 'error', |
- 'FileLastWritten': 12345678, |
- }, ignore_params_values=['Version']) |
- |
- self.assertEqual(len(response), 6) |
- self.assertTrue(isinstance(response[0], LogFile)) |
- self.assertEqual(response[0].log_filename, 'error/mysql-error-running.log') |
- self.assertEqual(response[0].last_written, '1364403600000') |
- self.assertEqual(response[0].size, '0') |
- |
- |
-class TestRDSLogFileDownload(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- logfile_sample = """ |
-??2014-01-26 23:59:00.01 spid54 Microsoft SQL Server 2012 - 11.0.2100.60 (X64) |
- |
- Feb 10 2012 19:39:15 |
- |
- Copyright (c) Microsoft Corporation |
- |
- Web Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) |
- |
- |
- |
-2014-01-26 23:59:00.01 spid54 (c) Microsoft Corporation. |
- |
-2014-01-26 23:59:00.01 spid54 All rights reserved. |
- |
-2014-01-26 23:59:00.01 spid54 Server process ID is 2976. |
- |
-2014-01-26 23:59:00.01 spid54 System Manufacturer: 'Xen', System Model: 'HVM domU'. |
- |
-2014-01-26 23:59:00.01 spid54 Authentication mode is MIXED. |
- |
-2014-01-26 23:59:00.01 spid54 Logging SQL Server messages in file 'D:\RDSDBDATA\Log\ERROR'. |
- |
-2014-01-26 23:59:00.01 spid54 The service account is 'WORKGROUP\AMAZONA-NUQUUMV$'. This is an informational message; no user action is required. |
- |
-2014-01-26 23:59:00.01 spid54 The error log has been reinitialized. See the previous log for older entries. |
- |
-2014-01-27 00:00:56.42 spid25s This instance of SQL Server has been using a process ID of 2976 since 10/21/2013 2:16:50 AM (local) 10/21/2013 2:16:50 AM (UTC). This is an informational message only; no user action is required. |
- |
-2014-01-27 09:35:15.43 spid71 I/O is frozen on database model. No user action is required. However, if I/O is not resumed promptly, you could cancel the backup. |
- |
-2014-01-27 09:35:15.44 spid72 I/O is frozen on database msdb. No user action is required. However, if I/O is not resumed promptly, you could cancel the backup. |
- |
-2014-01-27 09:35:15.44 spid74 I/O is frozen on database rdsadmin. No user action is required. However, if I/O is not resumed promptly, you could cancel the backup. |
- |
-2014-01-27 09:35:15.44 spid73 I/O is frozen on database master. No user action is required. However, if I/O is not resumed promptly, you could cancel the backup. |
- |
-2014-01-27 09:35:25.57 spid73 I/O was resumed on database master. No user action is required. |
- |
-2014-01-27 09:35:25.57 spid74 I/O was resumed on database rdsadmin. No user action is required. |
- |
-2014-01-27 09:35:25.57 spid71 I/O was resumed on database model. No user action is required. |
- |
-2014-01-27 09:35:25.57 spid72 I/O was resumed on database msdb. No user action is required. |
- """ |
- |
- def setUp(self): |
- super(TestRDSLogFileDownload, self).setUp() |
- |
- def default_body(self): |
- return """ |
-<DownloadDBLogFilePortionResponse xmlns="http://rds.amazonaws.com/doc/2013-09-09/"> |
- <DownloadDBLogFilePortionResult> |
- <Marker>0:4485</Marker> |
- <LogFileData>%s</LogFileData> |
- <AdditionalDataPending>false</AdditionalDataPending> |
- </DownloadDBLogFilePortionResult> |
- <ResponseMetadata> |
- <RequestId>27143615-87ae-11e3-acc9-fb64b157268e</RequestId> |
- </ResponseMetadata> |
-</DownloadDBLogFilePortionResponse> |
- """ % self.logfile_sample |
- |
- def test_single_download(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.get_log_file('db1', 'foo.log') |
- |
- self.assertTrue(isinstance(response, LogFileObject)) |
- self.assertEqual(response.marker, '0:4485') |
- self.assertEqual(response.dbinstance_id, 'db1') |
- self.assertEqual(response.log_filename, 'foo.log') |
- |
- self.assertEqual(response.data, saxutils.unescape(self.logfile_sample)) |
- |
- self.assert_request_parameters({ |
- 'Action': 'DownloadDBLogFilePortion', |
- 'DBInstanceIdentifier': 'db1', |
- 'LogFileName': 'foo.log', |
- }, ignore_params_values=['Version']) |
- |
- def test_multi_args(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.get_log_file('db1', 'foo.log', marker='0:4485', number_of_lines=10) |
- |
- self.assertTrue(isinstance(response, LogFileObject)) |
- |
- self.assert_request_parameters({ |
- 'Action': 'DownloadDBLogFilePortion', |
- 'DBInstanceIdentifier': 'db1', |
- 'Marker': '0:4485', |
- 'NumberOfLines': 10, |
- 'LogFileName': 'foo.log', |
- }, ignore_params_values=['Version']) |
- |
- |
-class TestRDSOptionGroupOptions(AWSMockServiceTestCase): |
- connection_class = RDSConnection |
- |
- def setUp(self): |
- super(TestRDSOptionGroupOptions, self).setUp() |
- |
- def default_body(self): |
- return """ |
- <DescribeOptionGroupOptionsResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/"> |
- <DescribeOptionGroupOptionsResult> |
- <OptionGroupOptions> |
- <OptionGroupOption> |
- <MajorEngineVersion>11.2</MajorEngineVersion> |
- <PortRequired>true</PortRequired> |
- <OptionsDependedOn/> |
- <Description>Oracle Enterprise Manager</Description> |
- <DefaultPort>1158</DefaultPort> |
- <Name>OEM</Name> |
- <EngineName>oracle-se1</EngineName> |
- <MinimumRequiredMinorEngineVersion>0.2.v3</MinimumRequiredMinorEngineVersion> |
- <Persistent>false</Persistent> |
- <Permanent>false</Permanent> |
- </OptionGroupOption> |
- </OptionGroupOptions> |
- </DescribeOptionGroupOptionsResult> |
- <ResponseMetadata> |
- <RequestId>d9c8f6a1-84c7-11e1-a264-0b23c28bc344</RequestId> |
- </ResponseMetadata> |
- </DescribeOptionGroupOptionsResponse> |
- """ |
- |
- def test_describe_option_group_options(self): |
- self.set_http_response(status_code=200) |
- response = self.service_connection.describe_option_group_options() |
- self.assertEqual(len(response), 1) |
- options = response[0] |
- self.assertEqual(options.name, 'OEM') |
- self.assertEqual(options.description, 'Oracle Enterprise Manager') |
- self.assertEqual(options.engine_name, 'oracle-se1') |
- self.assertEqual(options.major_engine_version, '11.2') |
- self.assertEqual(options.min_minor_engine_version, '0.2.v3') |
- self.assertEqual(options.port_required, True) |
- self.assertEqual(options.default_port, 1158) |
- self.assertEqual(options.permanent, False) |
- self.assertEqual(options.persistent, False) |
- self.assertEqual(options.depends_on, []) |
- |
- |
-if __name__ == '__main__': |
- unittest.main() |
- |