diff options
| author | Devan Goodwin <dgoodwin@redhat.com> | 2015-11-04 15:05:06 -0400 | 
|---|---|---|
| committer | Devan Goodwin <dgoodwin@redhat.com> | 2015-11-04 15:05:06 -0400 | 
| commit | 153c57d6bda48276bc1f8be520145780fa119941 (patch) | |
| tree | 7bcd0ddd715a688e9695bd65c642a89e1cda2687 /inventory/gce | |
| parent | 215a7aacc2fc3df19a64a2a57910516533665423 (diff) | |
| parent | 896b9c63292a50dce8e7aa00a889dfd52a3a8474 (diff) | |
| download | openshift-153c57d6bda48276bc1f8be520145780fa119941.tar.gz openshift-153c57d6bda48276bc1f8be520145780fa119941.tar.bz2 openshift-153c57d6bda48276bc1f8be520145780fa119941.tar.xz openshift-153c57d6bda48276bc1f8be520145780fa119941.zip | |
Merge remote-tracking branch 'upstream/master' into upgrade
Diffstat (limited to 'inventory/gce')
| -rwxr-xr-x | inventory/gce/hosts/gce.py | 32 | 
1 files changed, 21 insertions, 11 deletions
| diff --git a/inventory/gce/hosts/gce.py b/inventory/gce/hosts/gce.py index 6ed12e011..99746cdbf 100755 --- a/inventory/gce/hosts/gce.py +++ b/inventory/gce/hosts/gce.py @@ -66,12 +66,22 @@ Examples:    $ ansible -i gce.py us-central1-a -m shell -a "/bin/uname -a"    Use the GCE inventory script to print out instance specific information -  $ plugins/inventory/gce.py --host my_instance +  $ contrib/inventory/gce.py --host my_instance  Author: Eric Johnson <erjohnso@google.com>  Version: 0.0.1  ''' +__requires__ = ['pycrypto>=2.6'] +try: +    import pkg_resources +except ImportError: +    # Use pkg_resources to find the correct versions of libraries and set +    # sys.path appropriately when there are multiversion installs.  We don't +    # fail here as there is code that better expresses the errors where the +    # library is used. +    pass +  USER_AGENT_PRODUCT="Ansible-gce_inventory_plugin"  USER_AGENT_VERSION="v1" @@ -102,9 +112,9 @@ class GceInventory(object):          # Just display data for specific host          if self.args.host: -            print self.json_format_dict(self.node_to_dict( +            print(self.json_format_dict(self.node_to_dict(                      self.get_instance(self.args.host)), -                    pretty=self.args.pretty) +                    pretty=self.args.pretty))              sys.exit(0)          # Otherwise, assume user wants all instances grouped @@ -120,7 +130,6 @@ class GceInventory(object):              os.path.dirname(os.path.realpath(__file__)), "gce.ini")          gce_ini_path = os.environ.get('GCE_INI_PATH', gce_ini_default_path) -          # Create a ConfigParser.          # This provides empty defaults to each key, so that environment          # variable configuration (as opposed to INI configuration) is able @@ -174,7 +183,6 @@ class GceInventory(object):          args[1] = os.environ.get('GCE_PEM_FILE_PATH', args[1])          kwargs['project'] = os.environ.get('GCE_PROJECT', kwargs['project']) -                  # Retrieve and return the GCE driver.          gce = get_driver(Provider.GCE)(*args, **kwargs)          gce.connection.user_agent_append( @@ -213,8 +221,7 @@ class GceInventory(object):              'gce_image': inst.image,              'gce_machine_type': inst.size,              'gce_private_ip': inst.private_ips[0], -            # Hosts don't always have a public IP name -            #'gce_public_ip': inst.public_ips[0], +            'gce_public_ip': inst.public_ips[0] if len(inst.public_ips) >= 1 else None,              'gce_name': inst.name,              'gce_description': inst.extra['description'],              'gce_status': inst.extra['status'], @@ -222,15 +229,15 @@ class GceInventory(object):              'gce_tags': inst.extra['tags'],              'gce_metadata': md,              'gce_network': net, -            # Hosts don't always have a public IP name -            #'ansible_ssh_host': inst.public_ips[0] +            # Hosts don't have a public name, so we add an IP +            'ansible_ssh_host': inst.public_ips[0] if len(inst.public_ips) >= 1 else inst.private_ips[0]          }      def get_instance(self, instance_name):          '''Gets details about a specific instance '''          try:              return self.driver.ex_get_node(instance_name) -        except Exception, e: +        except Exception as e:              return None      def group_instances(self): @@ -250,7 +257,10 @@ class GceInventory(object):              tags = node.extra['tags']              for t in tags: -                tag = 'tag_%s' % t +                if t.startswith('group-'): +                    tag = t[6:] +                else: +                    tag = 'tag_%s' % t                  if groups.has_key(tag): groups[tag].append(name)                  else: groups[tag] = [name] | 
