??????????????
Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 176

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 178
ó ßUdac@sdZddlZddlZddlZddlmZddlmZyddlm Z Wn!e k rddl m Z nXddl m Z mZddlmZddlmZmZmZmZmZdZd efd „ƒYZd efd„ƒYZdd„Zed„ZdS(sThis module adds shared support for generic Amazon AWS modules **This code is not yet ready for use in user modules. As of 2017** **and through to 2018, the interface is likely to change** **aggressively as the exact correct interface for ansible AWS modules** **is identified. In particular, until this notice goes away or is** **changed, methods may disappear from the interface. Please don't** **publish modules using this except directly to the main Ansible** **development repository.** In order to use this module, include it as part of a custom module as shown below. from ansible.module_utils.aws import AnsibleAWSModule module = AnsibleAWSModule(argument_spec=dictionary, supports_check_mode=boolean mutually_exclusive=list1, required_together=list2) The 'AnsibleAWSModule' module provides similar, but more restricted, interfaces to the normal Ansible module. It also includes the additional methods for connecting to AWS using the standard module arguments m.resource('lambda') # - get an AWS connection as a boto3 resource. or m.client('sts') # - get an AWS connection as a boto3 client. To make use of AWSRetry easier, it can now be wrapped around any call from a module-created client. To add retries to a client, create a client: m.client('ec2', retry_decorator=AWSRetry.jittered_backoff(retries=10)) Any calls from that client can be made to use the decorator passed at call-time using the `aws_retry` argument. By default, no retries are used. ec2 = m.client('ec2', retry_decorator=AWSRetry.jittered_backoff(retries=10)) ec2.describe_instances(InstanceIds=['i-123456789'], aws_retry=True) The call will be retried the specified number of times, so the calling functions don't need to be wrapped in the backoff decorator. iÿÿÿÿN(twraps(t LooseVersion(tStringIO(t AnsibleModuletmissing_required_lib(t to_native(t HAS_BOTO3tcamel_dict_to_snake_dicttec2_argument_spect boto3_conntget_aws_connection_infotAnsibleAWSModuleRtis_boto3_error_codecBsÌeZdZied6ed6ed6ed6Zd„Zed„ƒZd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zdd„Zd„Zdd„Zd„Zd„Zd„ZRS(sÖAn ansible module class for AWS modules AnsibleAWSModule provides an a class for building modules which connect to Amazon Web Services. The interface is currently more restricted than the basic module class with the aim that later the basic module class can be reduced. If you find that any key feature is missing please contact the author/Ansible AWS team (available on #ansible-aws on IRC) to request the additional features needed. t default_argst check_boto3t auto_retryt module_classcKsi}xMtjD]B}y|j|ƒ||t|ƒ}nX|dk r`dj||ƒ}n|}y |j}Wntk rŒd}nXtd|d||j ƒ}|dk rÍ|j t |ƒn|j |dS(s³call fail_json with processed exception function for converting exceptions thrown by AWS SDK modules, botocore, boto3 and boto, into nice error messages. s{0}: {1}Rt exceptionN( t tracebackt format_excRtmessagetAttributeErrorR!R8tresponsetdictt_gather_versionsRRR(R+RURtlast_tracebackt except_msgRXRZtfailure((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyt fail_json_aws¿s&       cCs;ts iSddl}ddl}td|jd|jƒS(s­Gather AWS SDK (boto3 and botocore) dependency versions Returns {'boto3_version': str, 'botocore_version': str} Returns {} if neither are installed iÿÿÿÿNt boto3_versiontbotocore_version(RRItbotocoreR[t __version__(R+RIRc((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyR\ãs   cCs&|jƒ}t|dƒt|ƒkS(s•Check if the available boto3 version is greater than or equal to a desired version. Usage: if module.params.get('assign_ipv6_address') and not module.boto3_at_least('1.4.4'): # conditionally fail on old boto3 versions if a specific feature is not supported module.fail_json(msg="Boto3 can't deal with EC2 IPv6 addresses before version 1.4.4.") Ra(R\R(R+tdesiredtexisting((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pytboto3_at_leastðs cCs&|jƒ}t|dƒt|ƒkS(sCheck if the available botocore version is greater than or equal to a desired version. Usage: if not module.botocore_at_least('1.2.3'): module.fail_json(msg='The Serverless Elastic Load Compute Service is not in botocore before v1.2.3') if not module.botocore_at_least('1.5.3'): module.warn('Botocore did not include waiters for Service X before 1.5.3. ' 'To wait until Service X resources are fully available, update botocore.') Rb(R\R(R+ReRf((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pytbotocore_at_leastûs N(t__name__t __module__t__doc__RNRRR0tpropertyR#R@RBRRDRERFRGRHR!RKR?R`R\RgRh(((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyR Ss,   %          $ ROcBs)eZdZd„Zd„Zd„ZRS(t get_paginatort can_paginatet get_waitertgenerate_presigned_urlcCs||_||_dS(N(RKtretry(R+RKRq((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyR0s cs4|jˆƒ‰tˆƒt‡‡fd†ƒ}|S(Ncs$|rˆ||ŽSˆ||ŽSdS(N((t aws_retryRCR,(tretrying_wrappert unwrapped(sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pytdeciding_wrappers (RqRtFalse(R+RtRu((RsRtsA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyt'_create_optional_retry_wrapper_functions cCs\t|j|ƒ}||jkr%|St|ƒrT|j|ƒ}t|||ƒ|S|SdS(N(tgetattrRKt&_RetryingBotoClientWrapper__never_waittcallableRwtsetattr(R+tnameRttwrapped((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyt __getattr__s (RmRnRoRp(RiRjRyR0RwR~(((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyRO s   cCs}ddlm}|dkr@ddl}|jƒ\}}}nt||ƒrj|jdd|krj|StdtfiƒS(sêCheck if the botocore exception is raised by a specific error code. Returns ClientError if the error code matches, a dummy exception if it does not have an error code or does not match Example: try: ec2.describe_instances(InstanceIds=['potato']) except is_boto3_error_code('InvalidInstanceID.Malformed'): # handle the error for that code case except botocore.exceptions.ClientError as e: # handle the generic error case for all other codes iÿÿÿÿ(t ClientErrorNtErrortCodetNeverEverRaisedException( tbotocore.exceptionsRR!tsystexc_infot isinstanceRZttypet Exception(tcodeteRR„tdummy((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyR *s   &cCsj|jjj|ƒ}|jj|ƒj}|s9g}n-|rQt|jƒ}nt|jj ƒƒ}|S(N( tmetatmethod_to_api_mappingR$t_service_modeltoperation_modelt input_shapeR9trequired_memberstmemberstkeys(RKt method_nametrequiredtopRt parameters((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyt"get_boto3_client_method_parameters@s (sAnsibleAWSModules HAS_BOTO3sis_boto3_error_code(RkR4R%RVt functoolsRtdistutils.versionRt cStringIORt ImportErrortiotansible.module_utils.basicRRtansible.module_utils._textRtansible.module_utils.ec2RRRR R t__all__tobjectR ROR!R RvR˜(((sA/usr/lib/python2.7/site-packages/ansible/module_utils/aws/core.pyt=s"    (¶!