From bb6032cff64a13c35f6c4f04b7820c7de0c854cb Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Mon, 19 Feb 2018 14:46:39 -0500 Subject: [PATCH] docs and review change for IS multivault Mention inventory sources /credentials/ endpoint in docs Also change means of identifying projects for the purose of injecting custom credentials --- awx/api/views.py | 7 ++----- awx/main/tasks.py | 4 ++-- docs/multi_credential_assignment.md | 15 ++++++++++++++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/awx/api/views.py b/awx/api/views.py index 0358d43e8e..c22cfd9154 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2735,11 +2735,8 @@ class InventorySourceCredentialsList(SubListAttachDetachAPIView): if error: return {'msg': error} if sub.credential_type == 'vault': - # Vault credentials are only exclusive with others of same ID - if sub.unique_hash() in [cred.unique_hash() for cred in parent.credentials.all()]: - return {"msg": _( - "A credential of type {credential_type} is already assigned to this inventory source." - ).format(credential_type=sub.unique_hash(display=True))} + # TODO: support this + return {"msg": _("Vault credentials are not yet supported for inventory sources.")} else: # Cloud credentials are exclusive with all other cloud credentials cloud_cred_qs = parent.credentials.exclude(credential_type__kind='vault') diff --git a/awx/main/tasks.py b/awx/main/tasks.py index e2e6f5a827..42a7db56fc 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -927,8 +927,8 @@ class BaseTask(LogErrorsTask): elif isinstance(instance, InventoryUpdate): # TODO: allow multiple custom creds for inv updates credentials = [instance.get_cloud_credential()] - elif hasattr(instance, 'credential'): - # once other UnifiedJobs (project updates) + elif isinstance(instance, Project): + # once (or if) project updates # move from a .credential -> .credentials model, we can # lose this block credentials = [instance.credential] diff --git a/docs/multi_credential_assignment.md b/docs/multi_credential_assignment.md index ca7bfa2353..f32203860c 100644 --- a/docs/multi_credential_assignment.md +++ b/docs/multi_credential_assignment.md @@ -2,7 +2,7 @@ Multi-Credential Assignment =========================== awx has added support for assigning zero or more credentials to -a JobTemplate via a singular, unified interface. +JobTemplates and InventoryUpdates via a singular, unified interface. Background ---------- @@ -220,3 +220,16 @@ POST /api/v2/job_templates/N/launch/ } } ``` + +Inventory Source Credentials +---------------------------- + +Inventory sources and inventory updates that they spawn also use the same +relationship. The new endpoints for this are + - `/api/v2/inventory_sources/N/credentials/` and + - `/api/v2/inventory_updates/N/credentials/` + +Most cloud sources will continue to adhere to the constraint that they +must have a single credential that corresponds to their cloud type. +However, this relationship allows users to associate multiple vault +credentials of different ids to inventory sources.