Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(714)

Unified Diff: third_party/gsutil/third_party/boto/boto/rds/dbinstance.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/boto/boto/rds/dbinstance.py
diff --git a/third_party/gsutil/third_party/boto/boto/rds/dbinstance.py b/third_party/gsutil/third_party/boto/boto/rds/dbinstance.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a6385103d3ab4fa3f4e7759af9ef993e9b9b80e
--- /dev/null
+++ b/third_party/gsutil/third_party/boto/boto/rds/dbinstance.py
@@ -0,0 +1,416 @@
+# Copyright (c) 2006-2009 Mitch Garnaat http://garnaat.org/
+#
+# 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 boto.rds.dbsecuritygroup import DBSecurityGroup
+from boto.rds.parametergroup import ParameterGroup
+from boto.rds.statusinfo import StatusInfo
+from boto.rds.dbsubnetgroup import DBSubnetGroup
+from boto.rds.vpcsecuritygroupmembership import VPCSecurityGroupMembership
+from boto.resultset import ResultSet
+
+
+class DBInstance(object):
+ """
+ Represents a RDS DBInstance
+
+ Properties reference available from the AWS documentation at
+ http://goo.gl/sC2Kn
+
+ :ivar connection: connection
+ :ivar id: The name and identifier of the DBInstance
+ :ivar create_time: The date and time of creation
+ :ivar engine: The database engine being used
+ :ivar status: The status of the database in a string. e.g. "available"
+ :ivar allocated_storage: The size of the disk in gigabytes (int).
+ :ivar auto_minor_version_upgrade: Indicates that minor version patches
+ are applied automatically.
+ :ivar endpoint: A tuple that describes the hostname and port of
+ the instance. This is only available when the database is
+ in status "available".
+ :ivar instance_class: Contains the name of the compute and memory
+ capacity class of the DB Instance.
+ :ivar master_username: The username that is set as master username
+ at creation time.
+ :ivar parameter_groups: Provides the list of DB Parameter Groups
+ applied to this DB Instance.
+ :ivar security_groups: Provides List of DB Security Group elements
+ containing only DBSecurityGroup.Name and DBSecurityGroup.Status
+ subelements.
+ :ivar availability_zone: Specifies the name of the Availability Zone
+ the DB Instance is located in.
+ :ivar backup_retention_period: Specifies the number of days for
+ which automatic DB Snapshots are retained.
+ :ivar preferred_backup_window: Specifies the daily time range during
+ which automated backups are created if automated backups are
+ enabled, as determined by the backup_retention_period.
+ :ivar preferred_maintenance_window: Specifies the weekly time
+ range (in UTC) during which system maintenance can occur. (string)
+ :ivar latest_restorable_time: Specifies the latest time to which
+ a database can be restored with point-in-time restore. (string)
+ :ivar multi_az: Boolean that specifies if the DB Instance is a
+ Multi-AZ deployment.
+ :ivar iops: The current number of provisioned IOPS for the DB Instance.
+ Can be None if this is a standard instance.
+ :ivar vpc_security_groups: List of VPC Security Group Membership elements
+ containing only VpcSecurityGroupMembership.VpcSecurityGroupId and
+ VpcSecurityGroupMembership.Status subelements.
+ :ivar pending_modified_values: Specifies that changes to the
+ DB Instance are pending. This element is only included when changes
+ are pending. Specific changes are identified by subelements.
+ :ivar read_replica_dbinstance_identifiers: List of read replicas
+ associated with this DB instance.
+ :ivar status_infos: The status of a Read Replica. If the instance is not a
+ for a read replica, this will be blank.
+ :ivar character_set_name: If present, specifies the name of the character
+ set that this instance is associated with.
+ :ivar subnet_group: Specifies information on the subnet group associated
+ with the DB instance, including the name, description, and subnets
+ in the subnet group.
+ :ivar engine_version: Indicates the database engine version.
+ :ivar license_model: License model information for this DB instance.
+ """
+
+ def __init__(self, connection=None, id=None):
+ self.connection = connection
+ self.id = id
+ self.create_time = None
+ self.engine = None
+ self.status = None
+ self.allocated_storage = None
+ self.auto_minor_version_upgrade = None
+ self.endpoint = None
+ self.instance_class = None
+ self.master_username = None
+ self.parameter_groups = []
+ self.security_groups = []
+ self.read_replica_dbinstance_identifiers = []
+ self.availability_zone = None
+ self.backup_retention_period = None
+ self.preferred_backup_window = None
+ self.preferred_maintenance_window = None
+ self.latest_restorable_time = None
+ self.multi_az = False
+ self.iops = None
+ self.vpc_security_groups = None
+ self.pending_modified_values = None
+ self._in_endpoint = False
+ self._port = None
+ self._address = None
+ self.status_infos = None
+ self.character_set_name = None
+ self.subnet_group = None
+ self.engine_version = None
+ self.license_model = None
+
+ def __repr__(self):
+ return 'DBInstance:%s' % self.id
+
+ def startElement(self, name, attrs, connection):
+ if name == 'Endpoint':
+ self._in_endpoint = True
+ elif name == 'DBParameterGroups':
+ self.parameter_groups = ResultSet([('DBParameterGroup',
+ ParameterGroup)])
+ return self.parameter_groups
+ elif name == 'DBSecurityGroups':
+ self.security_groups = ResultSet([('DBSecurityGroup',
+ DBSecurityGroup)])
+ return self.security_groups
+ elif name == 'VpcSecurityGroups':
+ self.vpc_security_groups = ResultSet([('VpcSecurityGroupMembership',
+ VPCSecurityGroupMembership)])
+ return self.vpc_security_groups
+ elif name == 'PendingModifiedValues':
+ self.pending_modified_values = PendingModifiedValues()
+ return self.pending_modified_values
+ elif name == 'ReadReplicaDBInstanceIdentifiers':
+ self.read_replica_dbinstance_identifiers = \
+ ReadReplicaDBInstanceIdentifiers()
+ return self.read_replica_dbinstance_identifiers
+ elif name == 'StatusInfos':
+ self.status_infos = ResultSet([
+ ('DBInstanceStatusInfo', StatusInfo)
+ ])
+ return self.status_infos
+ elif name == 'DBSubnetGroup':
+ self.subnet_group = DBSubnetGroup()
+ return self.subnet_group
+ return None
+
+ def endElement(self, name, value, connection):
+ if name == 'DBInstanceIdentifier':
+ self.id = value
+ elif name == 'DBInstanceStatus':
+ self.status = value
+ elif name == 'InstanceCreateTime':
+ self.create_time = value
+ elif name == 'Engine':
+ self.engine = value
+ elif name == 'DBInstanceStatus':
+ self.status = value
+ elif name == 'AllocatedStorage':
+ self.allocated_storage = int(value)
+ elif name == 'AutoMinorVersionUpgrade':
+ self.auto_minor_version_upgrade = value.lower() == 'true'
+ elif name == 'DBInstanceClass':
+ self.instance_class = value
+ elif name == 'MasterUsername':
+ self.master_username = value
+ elif name == 'Port':
+ if self._in_endpoint:
+ self._port = int(value)
+ elif name == 'Address':
+ if self._in_endpoint:
+ self._address = value
+ elif name == 'Endpoint':
+ self.endpoint = (self._address, self._port)
+ self._in_endpoint = False
+ elif name == 'AvailabilityZone':
+ self.availability_zone = value
+ elif name == 'BackupRetentionPeriod':
+ self.backup_retention_period = int(value)
+ elif name == 'LatestRestorableTime':
+ self.latest_restorable_time = value
+ elif name == 'PreferredMaintenanceWindow':
+ self.preferred_maintenance_window = value
+ elif name == 'PreferredBackupWindow':
+ self.preferred_backup_window = value
+ elif name == 'MultiAZ':
+ if value.lower() == 'true':
+ self.multi_az = True
+ elif name == 'Iops':
+ self.iops = int(value)
+ elif name == 'CharacterSetName':
+ self.character_set_name = value
+ elif name == 'EngineVersion':
+ self.engine_version = value
+ elif name == 'LicenseModel':
+ self.license_model = value
+ else:
+ setattr(self, name, value)
+
+ @property
+ def security_group(self):
+ """
+ Provide backward compatibility for previous security_group
+ attribute.
+ """
+ if len(self.security_groups) > 0:
+ return self.security_groups[-1]
+ else:
+ return None
+
+ @property
+ def parameter_group(self):
+ """
+ Provide backward compatibility for previous parameter_group
+ attribute.
+ """
+ if len(self.parameter_groups) > 0:
+ return self.parameter_groups[-1]
+ else:
+ return None
+
+ def snapshot(self, snapshot_id):
+ """
+ Create a new DB snapshot of this DBInstance.
+
+ :type identifier: string
+ :param identifier: The identifier for the DBSnapshot
+
+ :rtype: :class:`boto.rds.dbsnapshot.DBSnapshot`
+ :return: The newly created DBSnapshot
+ """
+ return self.connection.create_dbsnapshot(snapshot_id, self.id)
+
+ def reboot(self):
+ """
+ Reboot this DBInstance
+
+ :rtype: :class:`boto.rds.dbsnapshot.DBSnapshot`
+ :return: The newly created DBSnapshot
+ """
+ return self.connection.reboot_dbinstance(self.id)
+
+ def update(self, validate=False):
+ """
+ Update the DB instance's status information by making a call to fetch
+ the current instance attributes from the service.
+
+ :type validate: bool
+ :param validate: By default, if EC2 returns no data about the
+ instance the update method returns quietly. If the
+ validate param is True, however, it will raise a
+ ValueError exception if no data is returned from EC2.
+ """
+ rs = self.connection.get_all_dbinstances(self.id)
+ if len(rs) > 0:
+ for i in rs:
+ if i.id == self.id:
+ self.__dict__.update(i.__dict__)
+ elif validate:
+ raise ValueError('%s is not a valid Instance ID' % self.id)
+ return self.status
+
+ def stop(self, skip_final_snapshot=False, final_snapshot_id=''):
+ """
+ Delete this DBInstance.
+
+ :type skip_final_snapshot: bool
+ :param skip_final_snapshot: This parameter determines whether
+ a final db snapshot is created before the instance is
+ deleted. If True, no snapshot is created. If False, a
+ snapshot is created before deleting the instance.
+
+ :type final_snapshot_id: str
+ :param final_snapshot_id: If a final snapshot is requested, this
+ is the identifier used for that snapshot.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The deleted db instance.
+ """
+ return self.connection.delete_dbinstance(self.id,
+ skip_final_snapshot,
+ final_snapshot_id)
+
+ def modify(self, param_group=None, security_groups=None,
+ preferred_maintenance_window=None,
+ master_password=None, allocated_storage=None,
+ instance_class=None,
+ backup_retention_period=None,
+ preferred_backup_window=None,
+ multi_az=False,
+ iops=None,
+ vpc_security_groups=None,
+ apply_immediately=False,
+ new_instance_id=None):
+ """
+ Modify this DBInstance.
+
+ :type param_group: str
+ :param param_group: Name of DBParameterGroup to associate with
+ this DBInstance.
+
+ :type security_groups: list of str or list of DBSecurityGroup objects
+ :param security_groups: List of names of DBSecurityGroup to
+ authorize on this DBInstance.
+
+ :type preferred_maintenance_window: str
+ :param preferred_maintenance_window: The weekly time range (in
+ UTC) during which maintenance can occur. Default is
+ Sun:05:00-Sun:09:00
+
+ :type master_password: str
+ :param master_password: Password of master user for the DBInstance.
+ Must be 4-15 alphanumeric characters.
+
+ :type allocated_storage: int
+ :param allocated_storage: The new allocated storage size, in GBs.
+ Valid values are [5-1024]
+
+ :type instance_class: str
+ :param instance_class: The compute and memory capacity of the
+ DBInstance. Changes will be applied at next maintenance
+ window unless apply_immediately is True.
+
+ Valid values are:
+
+ * db.m1.small
+ * db.m1.large
+ * db.m1.xlarge
+ * db.m2.xlarge
+ * db.m2.2xlarge
+ * db.m2.4xlarge
+
+ :type apply_immediately: bool
+ :param apply_immediately: If true, the modifications will be
+ applied as soon as possible rather than waiting for the
+ next preferred maintenance window.
+
+ :type new_instance_id: str
+ :param new_instance_id: The new DB instance identifier.
+
+ :type backup_retention_period: int
+ :param backup_retention_period: The number of days for which
+ automated backups are retained. Setting this to zero
+ disables automated backups.
+
+ :type preferred_backup_window: str
+ :param preferred_backup_window: The daily time range during
+ which automated backups are created (if enabled). Must be
+ in h24:mi-hh24:mi format (UTC).
+
+ :type multi_az: bool
+ :param multi_az: If True, specifies the DB Instance will be
+ deployed in multiple availability zones.
+
+ :type iops: int
+ :param iops: The amount of IOPS (input/output operations per
+ second) to Provisioned for the DB Instance. Can be
+ modified at a later date.
+
+ Must scale linearly. For every 1000 IOPS provision, you
+ must allocated 100 GB of storage space. This scales up to
+ 1 TB / 10 000 IOPS for MySQL and Oracle. MSSQL is limited
+ to 700 GB / 7 000 IOPS.
+
+ If you specify a value, it must be at least 1000 IOPS and
+ you must allocate 100 GB of storage.
+
+ :type vpc_security_groups: list
+ :param vpc_security_groups: List of VPCSecurityGroupMembership
+ that this DBInstance is a memberof.
+
+ :rtype: :class:`boto.rds.dbinstance.DBInstance`
+ :return: The modified db instance.
+ """
+ return self.connection.modify_dbinstance(self.id,
+ param_group,
+ security_groups,
+ preferred_maintenance_window,
+ master_password,
+ allocated_storage,
+ instance_class,
+ backup_retention_period,
+ preferred_backup_window,
+ multi_az,
+ apply_immediately,
+ iops,
+ vpc_security_groups,
+ new_instance_id)
+
+
+class PendingModifiedValues(dict):
+ def startElement(self, name, attrs, connection):
+ return None
+
+ def endElement(self, name, value, connection):
+ if name != 'PendingModifiedValues':
+ self[name] = value
+
+
+class ReadReplicaDBInstanceIdentifiers(list):
+ def startElement(self, name, attrs, connection):
+ return None
+
+ def endElement(self, name, value, connection):
+ if name == 'ReadReplicaDBInstanceIdentifier':
+ self.append(value)

Powered by Google App Engine
This is Rietveld 408576698