diff --git a/awx/main/models/credential.py b/awx/main/models/credential.py index e4ee83fdb7..c24a0b7cec 100644 --- a/awx/main/models/credential.py +++ b/awx/main/models/credential.py @@ -1092,7 +1092,7 @@ def tower(cls): 'env': { 'TOWER_HOSTNAME': '{{host}}', 'TOWER_USERNAME': '{{username}}', - 'TOWER_PASSWORD': '{{password}}' + 'TOWER_PASSWORD': '{{password}}', } }, ) diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index e6d2164750..5f43975919 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -1203,7 +1203,7 @@ class InventorySourceOptions(BaseModel): raise ValidationError(_('Invalid filter expression: %(filter)s') % {'filter': ', '.join(invalid_filters)}) return instance_filters - elif self.source == 'vmware': + elif self.source in ('vmware', 'tower'): return instance_filters else: return '' diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 78d832a97d..c3adb98a07 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -1912,6 +1912,8 @@ class RunInventoryUpdate(BaseTask): for env_k in inventory_update.source_vars_dict: if str(env_k) not in env and str(env_k) not in settings.INV_ENV_VARIABLE_BLACKLIST: env[str(env_k)] = unicode(inventory_update.source_vars_dict[env_k]) + elif inventory_update.source == 'tower': + env['TOWER_INVENTORY'] = inventory_update.instance_filters elif inventory_update.source == 'file': raise NotImplementedError('Cannot update file sources through the task system.') # add private_data_files diff --git a/awx/plugins/inventory/tower.py b/awx/plugins/inventory/tower.py index 86121ca24e..077aa556f9 100755 --- a/awx/plugins/inventory/tower.py +++ b/awx/plugins/inventory/tower.py @@ -54,7 +54,7 @@ def parse_configuration(): host_name = os.environ.get("TOWER_HOSTNAME", None) username = os.environ.get("TOWER_USERNAME", None) password = os.environ.get("TOWER_PASSWORD", None) - ignore_ssl = os.environ.get("TOWER_IGNORE_SSL", "0").lower() in ("1", "yes", "true") + ignore_ssl = os.environ.get("TOWER_IGNORE_SSL", "1").lower() in ("1", "yes", "true") inventory = os.environ.get("TOWER_INVENTORY", None) errors = [] diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index b64656fdbc..1255e9d21d 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -832,6 +832,16 @@ OVIRT4_HOST_FILTER = r'^.+$' OVIRT4_EXCLUDE_EMPTY_GROUPS = True OVIRT4_INSTANCE_ID_VAR = 'id' +# --------------------- +# ----- Tower ----- +# --------------------- +TOWER_ENABLED_VAR = 'status' +TOWER_ENABLED_VALUE = 'enabled' +TOWER_GROUP_FILTER = r'^.+$' +TOWER_HOST_FILTER = r'^.+$' +TOWER_EXCLUDE_EMPTY_GROUPS = True +TOWER_INSTANCE_ID_VAR = 'id' + # --------------------- # ----- Foreman ----- # ---------------------