%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/states/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/states/boto_rds.pyo

�
���^c&@@s�dZddlmZmZmZddlZddlZddlmZddl	m
Z
ddlZej
e�Zd�Zdddddddddddddddddddddddddddddddddddddd�%Zdddddddddddddd�
Zdddddddd	�Zddded
ddddd�	Zdddddd�Zdd
dddddd�ZdS(u�
Manage RDSs
===========

.. versionadded:: 2015.8.0

Create and destroy RDS instances. Be aware that this interacts with Amazon's
services, and so may incur charges.

This module uses ``boto``, which can be installed via package, or pip.

This module accepts explicit rds credentials but can also utilize
IAM roles assigned to the instance through Instance Profiles. Dynamic
credentials are then automatically obtained from AWS API and no further
configuration is necessary. More information available `here
<http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html>`_.

If IAM roles are not used you need to specify them either in a pillar file or
in the minion's config file:

.. code-block:: yaml

    rds.keyid: GKTADJGHEIQSXMKKRBJ08H
    rds.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs

It's also possible to specify ``key``, ``keyid`` and ``region`` via a profile,
either passed in as a dict, or as a string to pull from pillars or minion
config:

.. code-block:: yaml

    myprofile:
        keyid: GKTADJGHEIQSXMKKRBJ08H
        key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
            region: us-east-1

.. code-block:: yaml

    Ensure myrds RDS exists:
      boto_rds.present:
        - name: myrds
        - allocated_storage: 5
        - storage_type: standard
        - db_instance_class: db.t2.micro
        - engine: MySQL
        - master_username: myuser
        - master_user_password: mypass
        - region: us-east-1
        - keyid: GKTADJGHEIQSXMKKRBJ08H
        - key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
        - tags:
            key: value

.. code-block:: yaml

    Ensure parameter group exists:
        create-parameter-group:
          boto_rds.parameter_present:
            - name: myparametergroup
            - db_parameter_group_family: mysql5.6
            - description: "parameter group family"
            - parameters:
              - binlog_cache_size: 32768
              - binlog_checksum: CRC32
            - region: eu-west-1

:depends: boto3

i(tabsolute_importtprint_functiontunicode_literalsN(tsix(tSaltInvocationErrorcC@s#dtkrdSttjd�fS(u)
    Only load if boto is available.
    uboto_rds.existsuboto_rds(t__salt__tFalsetmissing_fun_string(((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pyt__virtual__Usc+-,C@s�i|d6td6dd6id6}+td|| |"|$|%|*�},|,jd�s�tdr{d	j|�|+d<d|+d<|+Std
|||||||||	|
|||
|||||||||||||| |||||||#|!|&|'|(|"|)|$|%|*�+},|,jd�sAt|+d<dj|,d
d�|+d<|+Sidd6|+dd<itdd|ddd|"d|$d|%d|*�d6|+dd<dj|�|+d<ndj|�|+d<|+S(u�
    Ensure RDS instance exists.

    name
        Name of the RDS state definition.

    allocated_storage
        The amount of storage (in gigabytes) to be initially allocated for the
        database instance.

    db_instance_class
        The compute and memory capacity of the Amazon RDS DB instance.

    engine
        The name of the database engine to be used for this instance. Supported
        engine types are: MySQL, mariadb, oracle-se1, oracle-se, oracle-ee, sqlserver-ee,
        sqlserver-se, sqlserver-ex, sqlserver-web, postgres and aurora. For more
        information, please see the ``engine`` argument in the Boto3 RDS
        `create_db_instance`_ documentation.

    master_username
        The name of master user for the client DB instance.

    master_user_password
        The password for the master database user. Can be any printable ASCII
        character except "/", '"', or "@".

    db_name
        The meaning of this parameter differs according to the database engine you use.
        See the Boto3 RDS documentation to determine the appropriate value for your configuration.
        https://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.create_db_instance

    storage_type
        Specifies the storage type to be associated with the DB instance.
        Options are standard, gp2 and io1. If you specify io1, you must also include
        a value for the Iops parameter.

    db_security_groups
        A list of DB security groups to associate with this DB instance.

    vpc_security_group_ids
        A list of EC2 VPC security group IDs to associate with this DB instance.

    vpc_security_groups
        A list of EC2 VPC security groups (IDs or Name tags) to associate with this DB instance.

    availability_zone
        The EC2 Availability Zone that the database instance will be created
        in.

    db_subnet_group_name
        A DB subnet group to associate with this DB instance.

    preferred_maintenance_window
        The weekly time range (in UTC) during which system maintenance can
        occur.

    db_parameter_group_name
        A DB parameter group to associate with this DB instance.

    db_cluster_identifier
        If the DB instance is a member of a DB cluster, contains the name of
        the DB cluster that the DB instance is a member of.

    tde_credential_arn
        The ARN from the Key Store with which the instance is associated for
        TDE encryption.

    tde_credential_password
        The password to use for TDE encryption if an encryption key is not used.

    storage_encrypted
        Specifies whether the DB instance is encrypted.

    kms_keyid
        If storage_encrypted is true, the KMS key identifier for the encrypted
        DB instance.

    backup_retention_period
        The number of days for which automated backups are retained.

    preferred_backup_window
        The daily time range during which automated backups are created if
        automated backups are enabled.

    port
        The port number on which the database accepts connections.

    multi_az
        Specifies if the DB instance is a Multi-AZ deployment. You cannot set
        the AvailabilityZone parameter if the MultiAZ parameter is set to true.

    engine_version
        The version number of the database engine to use.

    auto_minor_version_upgrade
        Indicates that minor engine upgrades will be applied automatically to
        the DB instance during the maintenance window.

    license_model
        License model information for this DB instance.

    iops
        The amount of Provisioned IOPS (input/output operations per second) to
        be initially allocated for the DB instance.

    option_group_name
        Indicates that the DB instance should be associated with the specified
        option group.

    character_set_name
        For supported engines, indicates that the DB instance should be
        associated with the specified CharacterSet.

    publicly_accessible
        Specifies the accessibility options for the DB instance. A value of
        true specifies an Internet-facing instance with a publicly resolvable
        DNS name, which resolves to a public IP address. A value of false
        specifies an internal instance with a DNS name that resolves to a
        private IP address.

    wait_status
        Wait for the RDS instance to reach a desired status before finishing
        the state. Available states: available, modifying, backing-up

    tags
        A dict of tags.

    copy_tags_to_snapshot
        Specifies whether tags are copied from the DB instance to snapshots of
        the DB instance.

    region
        Region to connect to.

    domain
        The identifier of the Active Directory Domain.

    key
        AWS secret key to be used.

    keyid
        AWS access key to be used.

    monitoring_interval
        The interval, in seconds, between points when Enhanced Monitoring
        metrics are collected for the DB instance.

    monitoring_role_arn
        The ARN for the IAM role that permits RDS to send Enhanced Monitoring
        metrics to CloudWatch Logs.

    domain_iam_role_name
        Specify the name of the IAM role to be used when making API calls to
        the Directory Service.

    promotion_tier
        A value that specifies the order in which an Aurora Replica is
        promoted to the primary instance after a failure of the existing
        primary instance. For more information, see Fault Tolerance for an
        Aurora DB Cluster .

    profile
        A dict with region, key and keyid, or a pillar key (string) that
        contains a dict with region, key and keyid.

    .. _create_db_instance: https://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.create_db_instance
    unameuresultuucommentuchangesuboto_rds.existsuexistsutestu"RDS instance {0} would be created.uboto_rds.createucreatedu"Failed to create RDS instance {0}.uerrorumessageuinstanceuolduboto_rds.describe_db_instancestnametjmespathuDBInstances[0]tregiontkeytkeyidtprofileunewuRDS instance {0} created.uRDS instance {0} exists.N(tTrueRtgett__opts__tformattNoneR(-R	tallocated_storagetdb_instance_classtenginetmaster_usernametmaster_user_passwordtdb_nametstorage_typetdb_security_groupstvpc_security_group_idstvpc_security_groupstavailability_zonetdb_subnet_group_nametpreferred_maintenance_windowtdb_parameter_group_nametdb_cluster_identifierttde_credential_arnttde_credential_passwordtstorage_encryptedt	kms_keyidtbackup_retention_periodtpreferred_backup_windowtporttmulti_aztengine_versiontauto_minor_version_upgradet
license_modeltiopstoption_group_nametcharacter_set_nametpublicly_accessibletwait_statusttagstcopy_tags_to_snapshotRtdomainRR
tmonitoring_intervaltmonitoring_role_arntdomain_iam_role_nametpromotion_tierRtrettr((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pytpresent^sd�




	

cC@s9i|d6td6dd6id6}td||	|
|||
�}|jd�sCtdr{d	j|�|d<d|d<|Std
||||||||||	|
|||
�}|r#dj|�|d<idd6|dd
<itdd|ddd|
d|d|d|
�d6|dd<q5t|d<dj|�|d<n�d}tdd|d|d|
d|d|d|
�}t|�r�|dnd}||krtdd|d|d|
d|d|d|
�}|s�t|d<dj|�|d<n||dd
<||dd<nt|d<dj|�|d<|S(u�
    Ensure RDS replica exists.

    .. code-block:: yaml

        Ensure myrds replica RDS exists:
          boto_rds.create_replica:
            - name: myreplica
            - source: mydb
    unameuresultuucommentuchangesuboto_rds.existsuexistsutestu*RDS read replica {0} is set to be created uboto_rds.create_read_replicauRDS replica {0} created.uinstanceuolduboto_rds.describe_db_instancesR	R
uDBInstances[0]RRR
Runewu!Failed to create RDS replica {0}.u8DBInstances[0].DBParameterGroups[0].DBParameterGroupNameiuboto_rds.modify_db_instanceR!u5Failed to update parameter group of {0} RDS instance.uRDS replica {0} exists.N(RRRRRRRtlen(R	tsourceRRR)R,R.R/R1R3RRR
RR!R:treplica_existstcreatedR
tpmg_nametmodified((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pytreplica_presentls\




	
$
	


c	C@s7tjjj||f�s*td��ni|d6td6dd6id6}	|s[g}n|rx�|D]�}
tddd	|
d
|d|d|d
|�}d|kr�dj|dd�|	d<t|	d<|	S|dd krdj|
�|	d<t|	d<|	S|j
|d�qhWntdd	|d|d
|d|d|d
|�}|jd�stdr�dj|�|	d<d |	d<|	Stdd	|d|d|d|d
|d|d|d
|�}
|
s�t|	d<dj|�|	d<|	Sd |	dd<||	dd<dj|�|	d<|	Sdj|�|	d<|	Sd S(!u�
    Ensure DB subnet group exists.

    name
        The name for the DB subnet group. This value is stored as a lowercase string.

    subnet_ids
        A list of the EC2 Subnet IDs for the DB subnet group.
        Either subnet_ids or subnet_names must be provided.

    subnet_names
        A list of The EC2 Subnet names for the DB subnet group.
        Either subnet_ids or subnet_names must be provided.

    description
        Subnet group description.

    tags
        A dict of tags.

    region
        Region to connect to.

    key
        Secret key to be used.

    keyid
        Access key to be used.

    profile
        A dict with region, key and keyid, or a pillar key (string) that
        contains a dict with region, key and keyid.
    uBOne (but not both) of subnet_ids or subnet_names must be provided.unameuresultuucommentuchangesuboto_vpc.get_resource_idusubnetR	RRR
Ruerroru Error looking up subnet ids: {0}umessageuiduSubnet {0} does not exist.uboto_rds.subnet_group_existsR3uexistsutestu&Subnet group {0} is set to be created.uboto_rds.create_subnet_grouptdescriptiont
subnet_idsu"Failed to create {0} subnet group.uoldunewuSubnet {0} created.uSubnet {0} present.N(
tsalttutilstdatatexactly_oneRRRRRRtappendRR(R	RDREtsubnet_namesR3RRR
RR:tiR;texistsR@((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pytsubnet_group_present�s^$

	
	

"

	
i�c

C@s<i|d6td6dd6id6}
tdd|d|d	|d
|d|	�}t|�szt|
d<dj|�|
d<|
Std
r�dj|�|
d<d|
d<|
Std|||||||	|||�
}|s�t|
d<dj|�|
d<|
Si|dd6|
dd<idd6|
dd<dj|�|
d<|
S(u�
    Ensure RDS instance is absent.

    name
        Name of the RDS instance.

    skip_final_snapshot
        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.

    final_db_snapshot_identifier
        If a final snapshot is requested, this is the identifier used for that
        snapshot.

    tags
        A dict of tags.

    wait_for_deletion (bool)
        Wait for the RDS instance to be deleted completely before finishing
        the state.

    timeout (in seconds)
        The amount of time that can pass before raising an Exception.

    region
        Region to connect to.

    key
        Secret key to be used.

    keyid
        Access key to be used.

    profile
        A dict with region, key and keyid, or a pillar key (string) that
        contains a dict with region, key and keyid.
    unameuresultuucommentuchangesuboto_rds.describe_db_instancesR	RRR
Ru{0} RDS already absent.utestuRDS {0} would be removed.uboto_rds.deleteuFailed to delete {0} RDS.iuinstanceuoldunewuRDS {0} deleted.N(RRR=RRRR(
R	tskip_final_snapshottfinal_db_snapshot_identifierR3twait_for_deletionttimeoutRRR
RR:tcurrenttdeleted((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pytabsents4)


!




c	
C@si|d6td6dd6id6}tdd|d|d	|d
|d|d|�}|szt|d<d
j|�|d<|Stdr�dj|�|d<d|d<|Std|||||�}|s�t|d<dj|�|d<|S||dd<d|dd<dj|�|d<|S(Nunameuresultuucommentuchangesuboto_rds.subnet_group_existsR	R3RRR
Ru${0} RDS subnet group does not exist.utestu*RDS subnet group {0} is set to be removed.uboto_rds.delete_subnet_groupu&Failed to delete {0} RDS subnet group.uoldunewuRDS subnet group {0} deleted.(RRRRRR(	R	R3RRR
RR:RMRT((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pytsubnet_group_absentVs.

"



upending-rebootc
C@si|d6td6dd6id6}
tdd|d|d	|d
|d|d|	�}|jd
�stdr�dj|�|
d<d+|
d<|
Stdd|d|d|d|d	|d
|d|d|	�}|s�t|
d<dj|�|
d<|
S||
dd<dj|�|
d<ndj|�|
d<|d+k	ri}
i}xi|D]a}xX|j�D]J\}}t|�t	kr�|r�dnd|
|<qZt
j|�|
|<qZWqGWtj
d|
�tdd|d	|d
|d|d|	�}|jd�s-t|
d<tjj|
ddj|�g�|
d<|
Sx�|dj�D]�}|d|
kr>|
j|d�t
j|d�kr>tj
d|d|
j|d�|d�|
j|d�||d<q>q>Wt|�d kr�tdrtjj|
dd!j||�g�|
d<d+|
d<|
Std"|d#|d$|d|d	|d
|d|d|	�}d%|kr�t|
d<tjj|
dd&j||�|d%d'g�|
d<|
S||
dd(<tjj|
dd)j||�g�|
d<qtjj|
dd*j|
|�g�|
d<n|
S(,u�
    Ensure DB parameter group exists and update parameters.

    name
        The name for the parameter group.

    db_parameter_group_family
        The DB parameter group family name. A
        DB parameter group can be associated with one and only one DB
        parameter group family, and can be applied only to a DB instance
        running a database engine and engine version compatible with that
        DB parameter group family.

    description
        Parameter group description.

    parameters
        The DB parameters that need to be changed of type dictionary.

    apply_method
        The `apply-immediate` method can be used only for dynamic
        parameters; the `pending-reboot` method can be used with MySQL
        and Oracle DB instances for either dynamic or static
        parameters. For Microsoft SQL Server DB instances, the
        `pending-reboot` method can be used only for static
        parameters.

    tags
        A dict of tags.

    region
        Region to connect to.

    key
        Secret key to be used.

    keyid
        Access key to be used.

    profile
        A dict with region, key and keyid, or a pillar key (string) that
        contains a dict with region, key and keyid.
    unameuresultuucommentuchangesuboto_rds.parameter_group_existsR	R3RRR
Ruexistsutestu)Parameter group {0} is set to be created.uboto_rds.create_parameter_grouptdb_parameter_group_familyRDu%Failed to create {0} parameter group.uNew Parameter GroupuParameter group {0} created.uParameter group {0} present.uonuoffuParameters from user are : %s.uboto_rds.describe_parametersu'Faled to get parameters for group  {0}.u
parametersu
ParameterNameuParameterValueu0Values that are being compared for %s are %s:%s.iu3Parameters {0} for group {1} are set to be changed.uboto_rds.update_parameter_groupt
parameterstapply_methoduerroru.Failed to change parameters {0} for group {1}:umessageu
Parametersu)Parameters {0} for group {1} are changed.u)Parameters {0} for group {1} are present.N(RRRRRRRtitemsttypetboolRt	text_typetlogtdebugtostlineseptjointvaluesR=(R	RWRDRXRYR3RRR
RR:tresR@tparamstchangedRZtktvaluetoptionst	parametertupdate((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pytparameter_presentsst-

"



+
)6"
,
%
7//(t__doc__t
__future__RRRtloggingR`tsalt.extRtsalt.exceptionsRtsalt.utils.dataRFt	getLoggert__name__R^RRR<RCRNRRURVRl(((s8/usr/lib/python2.7/site-packages/salt/states/boto_rds.pyt<module>Fsx	�>]	F

Zerion Mini Shell 1.0