diff --git a/awx/main/models/credential.py b/awx/main/models/credential.py index 2d7e5fb667..0e8f421d6b 100644 --- a/awx/main/models/credential.py +++ b/awx/main/models/credential.py @@ -27,11 +27,12 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique): ''' KIND_CHOICES = [ - ('ssh', _('Machine')), - ('scm', _('Source Control')), - ('aws', _('Amazon Web Services')), - ('rax', _('Rackspace')), + ('ssh', _('Machine')), + ('scm', _('Source Control')), + ('aws', _('Amazon Web Services')), + ('rax', _('Rackspace')), ('vmware', _('VMWare')), + ('gce', _('Google Compute Engine')), ] PASSWORD_FIELDS = ('password', 'ssh_key_data', 'ssh_key_unlock', diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 101ff762e7..3ee62a9a41 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -869,6 +869,9 @@ class RunInventoryUpdate(BaseTask): env['VMWARE_HOST'] = passwords.get('source_host', '') env['VMWARE_USER'] = passwords.get('source_username', '') env['VMWARE_PASSWORD'] = passwords.get('source_password', '') + elif inventory_update.source == 'gce': + pass + # env['GCE_USER'] elif inventory_update.source == 'file': # FIXME: Parse source_env to dict, update env. @@ -902,7 +905,7 @@ class RunInventoryUpdate(BaseTask): # These settings are "per-cloud-provider"; it's entirely possible that # they will be different between cloud providers if a Tower user # actively uses more than one. - if inventory_update.source in ('ec2', 'rax', 'vmware'): + if inventory_update.source in ('ec2', 'rax', 'vmware', 'gce'): # We need to reference the source's code frequently, assign it # to a shorter variable. :) src = inventory_update.source diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index 9a92759837..d5187a3555 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -389,7 +389,6 @@ EC2_EXCLUDE_EMPTY_GROUPS = True # ------------ # -- VMWare -- # ------------ -VMWARE_REGION_NAMES = {} VMWARE_REGIONS_BLACKLIST = [] # Inventory variable name/values for determining whether a host is @@ -407,6 +406,36 @@ VMWARE_HOST_FILTER = r'^.+$' VMWARE_EXCLUDE_EMPTY_GROUPS = True +# --------------------------- +# -- Google Compute Engine -- +# --------------------------- + +# It's not possible to get zones in GCE without authenticating, so we +# provide a list here. +# Source: https://developers.google.com/compute/docs/zones +GCE_REGION_CHOICES = [ + ('us-central1-a', 'US Central (A)'), + ('us-central1-b', 'US Central (B)'), + ('us-central1-f', 'US Central (F)'), + ('europe-west1-a', 'Europe West (A)'), + ('europe-west1-b', 'Europe West (B)') + ('asia-east1-a', 'Asia East (A)'), + ('asia-east1-b', 'Asia East (B)'), +] +GCE_REGIONS_BLACKLIST = [] + +# Inventory variable name/value for determining whether a host is active +# in Google Compute Engine. +GCE_ENABLED_VAR = 'status' +GCE_ENABLED_VALUE = '' + +# Filter for allowed group and host names when importing inventory from +# Google Compute Engine. +GCE_GROUP_FILTER = r'^.+$' +GCE_HOST_FILTER = r'^.+$' +GCE_EXCLUDE_EMPTY_GROUPS = True + + # --------------------- # -- Activity Stream -- # ---------------------