??????????????
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@s”ddlZddlZddlZddlmZmZddlmZddlm Z ddl m Z dZ yhddlmZmZmZddlmZmZddlmZdd lmZddlZeZWn#ek rýejƒZ eZnXej d ƒZ!d e"fd „ƒYZ#d e$fd„ƒYZ%de$fd„ƒYZ&de$fd„ƒYZ'de$fd„ƒYZ(d„Z)dd„Z*dS(iÿÿÿÿN(t AnsibleModuletmissing_required_lib(t configparser(t expanduser(tUUID(t API_ENDPOINTStDimensionDataAPIExceptiontDimensionDataStatus(tNodet NodeLocation(t get_driver(tProviders .*MCP\s?2.*tDimensionDataModulecBsheZdZd„Zd„Zd„Zd„Zd„Zed„ƒZ ed„ƒZ ed„ƒZ RS( sd The base class containing common functionality used by Dimension Data modules for Ansible. cCsN||_ts1|jjdtdƒdtƒn|jƒ}|d|_|d|_|jjd}dj |ƒ|_ |jjd|_ |jjd t j _ttjƒ|j|jd|j ƒ|_|j|j ƒ|_d |jjkr/|jjd |_|jjd |_|jjd |_nt|_d |_d |_dS(sÄ Create a new DimensionDataModule. Will fail if Apache libcloud is not present. :param module: The underlying Ansible module. :type module: AnsibleModule tmsgtlibcloudt exceptiontuser_idtkeytregionsdd-{0}tlocationtvalidate_certstwaitt wait_timetwait_poll_intervaliN(tmodulet HAS_LIBCLOUDt fail_jsonRtLIBCLOUD_IMP_ERRtget_credentialsRRtparamstformatRRRtsecuritytVERIFY_SSL_CERTR R t DIMENSIONDATAtdrivertget_mcp_versiont mcp_versionRRRtFalse(tselfRt credentialsR((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyt__init__>s, "       cCsts|jjddƒnd}d}d|jjkr…d|jjkrb|jjddƒn|jjd}|jjd}n| s“| rÀtjjddƒ}tjjddƒ}n| sÎ| rBtdƒ}t j ƒ}|j d |ƒy(|jd dƒ}|jd dƒ}WqBt j t j fk r>qBXn|sWtd ƒ‚n|sltd ƒ‚ntd |d|ƒS(sÕ Get user_id and key from module configuration, environment, or dotfile. Order of priority is module, environment, dotfile. To set in environment: export MCP_USER='myusername' export MCP_PASSWORD='mypassword' To set in dot file place a file at ~/.dimensiondata with the following contents: [dimensiondatacloud] MCP_USER: myusername MCP_PASSWORD: mypassword R s%libcloud is required for this module.tmcp_usert mcp_passwordsg"mcp_user" parameter was specified, but not "mcp_password" (either both must be specified, or neither).tMCP_USERt MCP_PASSWORDt~s%s/.dimensiondatatdimensiondataclouds Dimension Data user id not foundsDimension Data key not foundRRN(RRRtNoneRtostenvirontgetRRtRawConfigParsertreadtNoSectionErrort NoOptionErrortMissingCredentialsErrortdict(R&RRthometconfig((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyRls6    cCs,|jj|ƒ}tj|jƒr(dSdS(sA Get the MCP version for the specified location. s2.0s1.0(R"tex_get_location_by_idtMCP_2_LOCATION_NAME_PATTERNtmatchtname(R&R((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyR#©scCst|ƒr!|jj|ƒ}nPg|jjd|ƒD]}|j|kr7|^q7}|rk|d}nd}|r{|Std|ƒ‚dS(s> Retrieve a network domain by its name or Id. RisNetwork '%s' could not be foundN(tis_uuidR"tex_get_network_domaintex_list_network_domainsR>R/tUnknownNetworkError(R&tlocatorRtnetwork_domaintmatching_network_domains((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pytget_network_domain´s  cCst|ƒr!|jj|ƒ}nPg|jj||ƒD]}|j|kr7|^q7}|rk|d}nd}|r{|Std|ƒ‚dS(s5 Get a VLAN object by its name or id isVLAN '%s' could not be foundN(R?R"t ex_get_vlant ex_list_vlansR>R/tUnknownVLANError(R&RCRRDtvlantmatching_vlans((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pytget_vlanËs  cKs˜tdtddddƒdtdddtƒdtdddtd tƒd tdddtƒd tdd dtdtƒƒ}|r”|j|ƒn|S( s Build an argument specification for a Dimension Data module. :param additional_argument_spec: An optional dictionary representing the specification for additional module arguments (if any). :return: A dict containing the argument specification. RttypetstrtdefaulttnaR)trequiredR*tno_logRRtbool(R8R%tTruetupdate(tadditional_argument_spectspec((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyt argument_specásc Kswtjdtdddtdtƒdtdddtddƒd tdddtdd ƒƒ}|rs|j|ƒn|S( sD Build an argument specification for a Dimension Data module that includes "wait for completion" arguments. :param additional_argument_spec: An optional dictionary representing the specification for additional module arguments (if any). :return: A dict containing the argument specification. RRMRSRQRORtintiXRi(R RXR8R%RU(RVRW((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pytargument_spec_with_waitös cGs)ddgg}|r%|j|ƒn|S(sl Get the basic argument specification for Dimension Data modules indicating which arguments are must be specified together. :param additional_required_together: An optional list representing the specification for additional module arguments that must be specified together. :return: An array containing the argument specifications. R)R*(textend(tadditional_required_togethertrequired_together((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyR] s ( t__name__t __module__t__doc__R(RR#RFRLt staticmethodRXRZR](((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyR 9s . =  tLibcloudNotFoundcBseZdZRS(s@ Exception raised when Apache libcloud cannot be found. (R^R_R`(((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyRbsR7cBseZdZRS(s\ Exception raised when credentials for Dimension Data CloudControl cannot be found. (R^R_R`(((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyR7#sRBcBseZdZRS(sL Exception raised when a network or network domain cannot be found. (R^R_R`(((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyRB+sRIcBseZdZRS(s7 Exception raised when a VLAN cannot be found. (R^R_R`(((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyRI3scCs<tjƒ}g|D]}|jdƒr|d^q}|S(sK Get the list of available regions whose vendor is Dimension Data. sdd-i(Rtkeyst startswith(t all_regionsRtregions((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pytget_dd_regions;s ,icCs?y&t|d|ƒ}t|ƒ|kSWntk r:tSXdS(s Test if valid v4 UUID tversionN(RRNt ValueErrorR%(tuRhtuuid_obj((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyR?Is  (+R0tret tracebacktansible.module_utils.basicRRtansible.module_utils.six.movesRtos.pathRtuuidRR/Rtlibcloud.common.dimensiondataRRRtlibcloud.compute.baseRR tlibcloud.compute.providersR tlibcloud.compute.typesR tlibcloud.securityRRTRt ImportErrort format_excR%tcompileR<tobjectR t ExceptionRbR7RBRIRgR?(((sF/usr/lib/python2.7/site-packages/ansible/module_utils/dimensiondata.pyts2        â