??????????????
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ΞddlmZmZmZeZdZdZddlZddl m Z m Z ddl m Z ddlmZy$ddlmZdd lmZWnek r³e d ƒ‚nXd efd „ƒYZdS( i(tabsolute_importtdivisiontprint_functionsš name: linode plugin_type: inventory author: - Luke Murphy (@lwm) short_description: Ansible dynamic inventory plugin for Linode. version_added: "2.8" requirements: - python >= 2.7 - linode_api4 >= 2.0.0 description: - Reads inventories from the Linode API v4. - Uses a YAML configuration file that ends with linode.(yml|yaml). - Linode labels are used by default as the hostnames. - The inventory groups are built from groups and not tags. options: plugin: description: marks this as an instance of the 'linode' plugin required: true choices: ['linode'] access_token: description: The Linode account personal access token. required: true env: - name: LINODE_ACCESS_TOKEN regions: description: Populate inventory with instances in this region. default: [] type: list required: false types: description: Populate inventory with instances with this type. default: [] type: list required: false sή # Minimal example. `LINODE_ACCESS_TOKEN` is exposed in environment. plugin: linode # Example with regions, types, groups and access token plugin: linode access_token: foobar regions: - eu-west types: - g5-standard-2 N(t AnsibleErrortAnsibleParserError(t string_types(tBaseInventoryPlugin(t LinodeClient(tApiErrors9the Linode dynamic inventory plugin requires linode_api4.tInventoryModulecB`skeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z e d „Z RS( tlinodecC`sq|jdƒ}|dkrCytjd}WqCtk r?qCXn|dkr^tdƒ‚nt|ƒ|_dS(sBuild the Linode client.t access_tokentLINODE_ACCESS_TOKENsOCould not retrieve Linode access token from plugin configuration or environmentN(t get_optiontNonetostenvirontKeyErrorRRtclient(tselfR ((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt _build_clientKs    cC`sCy|jjjƒ|_Wn#tk r>}td|ƒ‚nXdS(s:Retrieve Linode instance information from cloud inventory.sLinode client raised: %sN(RR t instancestLinodeApiErrorR(Rt exception((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt_get_instances_inventory^scC`sYttdg|jD]}|j^qƒƒ|_x!|jD]}|jj|ƒq;WdS(s4Add Linode instance groups to the dynamic inventory.N(tsettfilterRRtgroupt linode_groupst inventoryt add_group(Rtinstancet linode_group((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt _add_groupses %cC`sx|r:g|jD]}|jj|kr|^q|_n|rtg|jD]}|jj|krJ|^qJ|_ndS(s1Filter instances by user specified configuration.N(Rtregiontidttype(RtregionsttypesR((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt_filter_by_configrs $cC`s4x-|jD]"}|jj|jd|jƒq WdS(s5Add instance names to their dynamic inventory groups.RN(RRtadd_hosttlabelR(RR((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt_add_instances_to_groups€scC`sOxH|jD]=}|j}x+|D]#}|jj|j|||ƒq Wq WdS(s4Add hostvars for instances in the dynamic inventory.N(Rt _raw_jsonRt set_variableR)(RRthostvarst hostvar_key((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt_add_hostvars_for_instances…s   cC`snt|tƒr'|tkr'|g}n|dkr?|ƒ}nt||ƒsjtd|||fƒ‚n|S(s9Validate user specified configuration data against types.sThe option %s (%s) must be a %sN(t isinstanceRtlistRR(Rtnamet desired_typet option_value((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyt_validate_options   cC`s¬iitd6|jdgƒd6d6itd6|jdgƒd6d6}x;|D]3}|j|||d||dƒ||dΎs(s linode.yamls linode.yml(tsuperR t verify_filetanytTruetFalse(RR?tendings((R?sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyRAΊs cC`s†tt|ƒj|||ƒ|jƒ|jƒ|j|ƒ}|j|ƒ\}}|j||ƒ|jƒ|j ƒ|j ƒdS(s-Dynamically parse Linode the cloud inventory.N( R@R tparseRRt_read_config_dataR;R'R!R*R/(RRtloaderR?tcacheR9R%R&((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyRFΒs    (t__name__t __module__tNAMERRR!R'R*R/R5R;RARCRF(((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyR Gs       (t __future__RRRR$t __metaclass__t DOCUMENTATIONtEXAMPLESRtansible.errorsRRtansible.module_utils.sixRtansible.plugins.inventoryRt linode_api4Rtlinode_api4.errorsRRt ImportErrorR (((sD/usr/lib/python2.7/site-packages/ansible/plugins/inventory/linode.pyts%