Commit Graph

938 Commits

Author SHA1 Message Date
Bill Nottingham
24c16b1c58 Fix to enable system paths along with requirements override, from @alancoding. 2019-09-04 11:43:48 -04:00
Bill Nottingham
0fb7c859f4 Revert 9b95cc27c4.
We do not want to create a new setting for a on-Tower-host global
collection path at this time.
2019-09-04 11:43:33 -04:00
AlanCoding
2f3aafe1bb Add collection setting toggle to UI
Additional API housekeeping, removing unused code

Treat default branch as no branch provided
2019-08-12 22:16:04 -04:00
AlanCoding
dc5d696238 avoid unnecessary checkout, more docs content 2019-08-12 22:16:03 -04:00
AlanCoding
03d72dd18a JT-branch docs and code cleanup
bump migration

fine tune validation of project allow_override
  return highly custom error message

Restore branch after syncs to address bugs
  encountered after changing scm_refspec

remove unused code to determine scm_revision

Check Ansible version before project update and
  do not install collections if Ansible version too old

Add docs related to project branch override
  New file specific to branch override and refspec
Complete docs on collections to reflect current
  implementation and give a folder tree example
Update clustering docs related to project syncs

Fix bug where git depth was ignored during the
  local clone from project folder to run folder

Fix bug where submodules were not copied
2019-08-12 22:16:02 -04:00
chris meyers
d785145c59 force proj sync when collections/requirements.yml
* Similar to roles/requirements.yml sync optimization logic.
2019-08-12 22:16:02 -04:00
AlanCoding
270bd19dbd Fix bugs with discovery of collection requirements
Addresses some cases where
  collection requirements do not exist
  collection requirements cannot be evaluated

Consolidate logic for roles and collection installs
2019-08-12 22:14:32 -04:00
chris meyers
4be65a0879 collections/requirements.yml support
* just like we support ansible-galaxy role install, support
ansible-galaxy collection install
2019-08-12 22:14:30 -04:00
AlanCoding
f1f57e45de Add scm_refspec field
Update migration syntax to Django 2

fix status bug where canceled switched to error
2019-08-12 22:13:57 -04:00
AlanCoding
6baba10abe Add scm_revision to project updates and cleanup
Add validation around prompted scm_branch requiring
  project allow_override field to be true

Updated related process isolation docs

Fix invalid comarision in serializer

from PR review, clarify pre-check logging, minor docs additions
2019-08-12 11:01:10 -04:00
AlanCoding
ac86dc4fb9 Allow JTs to specify and prompt for SCM branch
Copy project folder each job run
  change cwd to private_data_dir, from proj
  do not add cwd to show_paths if it is
  a subdirectory of private_data_dir, which
  is already shown

Pass the job private_data_dir to the local
  project sync, and also add that directory
  to the project sync show paths

Add GitPython dep and use for job sync logic
  use this to manage shallow clone from desired
  commit, and to map branch to commit,
  and to assess necessity of project sync

Start on some validation change, but not all
  allow arbitrary playbooks with custom branch
2019-08-12 11:01:07 -04:00
Christian Adams
c37bf5e9f5 Fix NoneType path error with analytics collection 2019-08-07 16:19:05 -04:00
Ryan Petrello
1388dec4b0 fix a bug that breaks isolated task execution 2019-08-02 07:48:46 -04:00
Ryan Petrello
cfeedb158e attempt to properly clean up runner ansible_pi directories 2019-08-01 11:21:38 -04:00
Ryan Petrello
1cedf244b7 replace the smart inventory membership lock with a new Django 2.2 flag 2019-07-22 11:11:36 -04:00
chris meyers
9b95cc27c4 map in a global collections path 2019-07-17 15:36:09 -04:00
Jaap de Koning
94b1455f40 Insert signed public key in artifact_dir, hacky fix for issue #4139
Signed-off-by: Jaap de Koning <jaap.de.koning@bigdatarepublic.nl>
2019-07-12 14:10:14 +02:00
chris meyers
acb6d9c4d1 wrap smart inv cache update w/ advisory lock
* Two job templates that use the same smart inventory running at the
same time can easily race to recompute the smart inventory <-> host
mapping. In this case, bulk_create() can throw an error when racing.
* The per-smart-inventory advisory lock ensures that the state of the
system is consistent & that bulk_create() runs in isolation.
2019-06-21 08:52:34 -04:00
beeankha
8d6e1f0927 Trigger running notifications in WFJs and edit unit test 2019-06-17 10:47:57 -04:00
beeankha
8ec97235e3 Add feature for notifications to trigger on job start 2019-06-17 10:47:57 -04:00
AlanCoding
05aab5da4c cache smart inventory memberships to avoid slow query 2019-06-11 11:06:35 -04:00
softwarefactory-project-zuul[bot]
adb768bed3 Merge pull request #3413 from ryanpetrello/bye-bye-v1
remove /api/v1 and deprecated credential fields

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
2019-06-10 17:31:28 +00:00
Ryan Petrello
329b40fd69 support vault IDs that include dot characters
see: https://github.com/ansible/awx/issues/4009
2019-06-06 12:42:31 -04:00
Ryan Petrello
6da445f7c0 remove /api/v1 and deprecated credential fields 2019-06-06 12:23:00 -04:00
softwarefactory-project-zuul[bot]
873ff3de78 Merge pull request #3928 from wenottingham/waka-flocka
Use lockf, not flock.

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
2019-05-28 16:29:23 +00:00
softwarefactory-project-zuul[bot]
874465a2d4 Merge pull request #3865 from chrismeyersfsu/fix-enabled_still_online
disabled instance does not mean offline instance

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
2019-05-23 16:55:09 +00:00
AlanCoding
40f9d0b512 More precise handling of schedule computed fields no-ops
Do not set a next_run value for disabled schedules
Bail if no fields are changed
Do not update related template if its fields did not change

Change call pattern to schedule.update_computed_fields()
in doing so, fix bug where template does not pick up schedule
  due to schedules next_run not being saved

Handle the case (also a bug) where template was not updated
  when schedule was deleted
2019-05-23 08:13:37 -04:00
Bill Nottingham
f48713f4ae Use lockf, not flock.
This performs more reliably on certain filesystems in Linux.
2019-05-20 16:56:16 -04:00
Ryan Petrello
b1d75327e3 add the ability to toggle DEBUG logging on dynamically 2019-05-16 07:58:31 -04:00
chris meyers
8aa28092ff disabled instance does not mean offline instance
* Disabling an instance is used to stop and instance from being the
target of new jobs to run.
* The instance should still perform it's heartbeat so that it isn't
considered offline.
* If the instance was allowed to go offline on an openshift cluster it
would be deleted from the database.
2019-05-13 11:44:47 -04:00
AlanCoding
7e6a73f892 fix bug with null credential 2019-05-08 21:18:34 -04:00
AlanCoding
1874e8bb4c Reduce passing around of passwords dictionary 2019-05-08 21:18:34 -04:00
softwarefactory-project-zuul[bot]
4dc7178f3c Merge pull request #3785 from AlanCoding/no_output_replacements
Remove unused output_replacements logic

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
2019-05-06 16:11:51 +00:00
Ryan Petrello
8d75fc5f56 Merge branch 'downstream' into devel 2019-05-03 07:58:25 -04:00
Ryan Petrello
46795cc71e fix a bug that caused parent_uuid not to be persisted 2019-05-01 10:13:59 -04:00
AlanCoding
d204f12184 remove unneeded update_model call 2019-04-30 10:15:08 -04:00
AlanCoding
42dd3c5cf5 Remove unused output_replacements logic 2019-04-30 10:11:03 -04:00
AlanCoding
adfce6edf1 Unify openstack inventory injection logic
Remove logic specific to job runs to create a "clouds" file
  for openstack credential type

Move that logic into the collection of managed_by_tower
  injector methods, so it will be used by all job types

Modify inventory openstack injector logic to use this
  data as a base for its logic building the clouds file
2019-04-23 07:59:47 -04:00
Ryan Petrello
eb0463890c add a loud warning about perf regressions to tasks.py 2019-04-22 10:26:58 -04:00
Vismay Golwala
5d570a017a Validate virtual environment while running a job/inventory update
Currently we only check the custom virtual environment path when
it's created. However, to tackle with the case when the venv might
have been changed/deleted afterward, we need to validate it at
run-time too.

Signed-off-by: Vismay Golwala <vgolwala@redhat.com>
2019-04-18 08:09:49 -04:00
chris meyers
84c09a19d1 instantiate dispatcher once per job run
* Instantiating the callback dispatch queue on each job event callback
is expensive. Instead, instantiate it only once. Note, we do not need to
instantiate the callback queue in the iso case so we do not.
2019-04-17 14:03:00 -04:00
Ryan Petrello
387682ed8d if runner crashes, attempt to record why
this attempts to surface the underlying runner exception for tracebacks
like this one:

FileNotFoundError: [Errno 2] No such file or directory:
'/tmp/awx_41_93gtgv25/artifacts/41/status'
2019-04-15 13:17:45 -04:00
softwarefactory-project-zuul[bot]
e3dfc6c796 Merge pull request #3596 from jbradberry/capture-isolated-command
Updated IsolatedManager to take a callback that captures the remote command

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
2019-04-05 17:15:11 +00:00
Ryan Petrello
81fe923577 don't write playbook stdout to sys.stdout (it's duplicated in log files)
this instructs runner to _not_ write to stdout when we invoke
runner.interface.run(); AWX consumes/ingests this strictly as events
2019-04-05 11:20:34 -04:00
Jeff Bradberry
c6643946c5 Capture the redacted credential env vars separately
and then make use of them specifically to make safe the env vars
coming back from an isolated node.  This will allow us to capture the
safed versions of custom credential values, but without potentially
clobbering normal env var values that vary between the controller and
the node.
2019-04-04 15:22:27 -04:00
softwarefactory-project-zuul[bot]
5debfdf5e8 Merge pull request #3545 from chrismeyersfsu/fix-tower_header_on_insights_playbook_fetches
include tower header to insights on plan fetch

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
2019-04-04 15:51:06 +00:00
Jeff Bradberry
b0f6d2214c Fix a typo: there is no method called check_callback on BaseTask 2019-04-03 14:57:02 -04:00
Jeff Bradberry
4364e00117 Do the env vars redaction for isolated nodes on this side 2019-04-03 14:34:09 -04:00
Jeff Bradberry
32286a9d49 Change the artifact to also capture the actual envvars data 2019-04-02 17:10:26 -04:00
Jeff Bradberry
cac48e7cfb Updated IsolatedManager to take a callback that captures the remote command 2019-04-02 15:40:56 -04:00