From 87abbd4b10e24e0e4922c0338479f37c10df6d7e Mon Sep 17 00:00:00 2001 From: jainnikhil30 Date: Wed, 6 Dec 2023 18:50:33 +0530 Subject: [PATCH 1/5] Fix the bulk Job Launch Integration test in awx collection (#14702) * fix the integration tests --- .../tests/integration/targets/bulk_job_launch/tasks/main.yml | 2 +- .../tests/integration/targets/job_list/tasks/main.yml | 4 ++-- .../tests/integration/targets/job_wait/tasks/main.yml | 2 +- .../integration/targets/lookup_api_plugin/tasks/main.yml | 2 +- .../tests/integration/targets/lookup_rruleset/tasks/main.yml | 2 +- .../tests/integration/targets/schedule/tasks/main.yml | 4 ++-- .../tests/integration/targets/schedule_rrule/tasks/main.yml | 2 +- .../tests/integration/targets/workflow_launch/tasks/main.yml | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/awx_collection/tests/integration/targets/bulk_job_launch/tasks/main.yml b/awx_collection/tests/integration/targets/bulk_job_launch/tasks/main.yml index cd152a8eef29..f4a107ecfb50 100644 --- a/awx_collection/tests/integration/targets/bulk_job_launch/tasks/main.yml +++ b/awx_collection/tests/integration/targets/bulk_job_launch/tasks/main.yml @@ -60,7 +60,7 @@ - result['job_info']['skip_tags'] == "skipbaz" - result['job_info']['limit'] == "localhost" - result['job_info']['job_tags'] == "Hello World" - - result['job_info']['inventory'] == {{ inventory_id }} + - result['job_info']['inventory'] == inventory_id | int - "result['job_info']['extra_vars'] == '{\"animal\": \"bear\", \"food\": \"carrot\"}'" # cleanup diff --git a/awx_collection/tests/integration/targets/job_list/tasks/main.yml b/awx_collection/tests/integration/targets/job_list/tasks/main.yml index 04495bfcba5a..b9e602cb4972 100644 --- a/awx_collection/tests/integration/targets/job_list/tasks/main.yml +++ b/awx_collection/tests/integration/targets/job_list/tasks/main.yml @@ -16,7 +16,7 @@ - assert: that: - - "{{ matching_jobs.count }} == 1" + - matching_jobs.count == 1 - name: List failed jobs (which don't exist) job_list: @@ -26,7 +26,7 @@ - assert: that: - - "{{ successful_jobs.count }} == 0" + - successful_jobs.count == 0 - name: Get ALL result pages! job_list: diff --git a/awx_collection/tests/integration/targets/job_wait/tasks/main.yml b/awx_collection/tests/integration/targets/job_wait/tasks/main.yml index 60a53f209a79..cc38e171d3da 100644 --- a/awx_collection/tests/integration/targets/job_wait/tasks/main.yml +++ b/awx_collection/tests/integration/targets/job_wait/tasks/main.yml @@ -99,7 +99,7 @@ that: - wait_results is failed - 'wait_results.status == "canceled"' - - "wait_results.msg == 'Job with id {{ job.id }} failed' or 'Job with id={{ job.id }} failed, error: Job failed.'" + - "'Job with id ~ job.id failed' or 'Job with id= ~ job.id failed, error: Job failed.' is in wait_results.msg" # workflow wait test - name: Generate a random string for test diff --git a/awx_collection/tests/integration/targets/lookup_api_plugin/tasks/main.yml b/awx_collection/tests/integration/targets/lookup_api_plugin/tasks/main.yml index 511dc727552b..6fac5a0bce1f 100644 --- a/awx_collection/tests/integration/targets/lookup_api_plugin/tasks/main.yml +++ b/awx_collection/tests/integration/targets/lookup_api_plugin/tasks/main.yml @@ -132,7 +132,7 @@ - name: Get the ID of the first user created and verify that it is correct assert: - that: "{{ query(plugin_name, 'users', query_params={ 'username' : user_creation_results['results'][0]['item'] }, return_ids=True)[0] }} == {{ user_creation_results['results'][0]['id'] }}" + that: "query(plugin_name, 'users', query_params={ 'username' : user_creation_results['results'][0]['item'] }, return_ids=True)[0] == user_creation_results['results'][0]['id'] | string" - name: Try to get an ID of someone who does not exist set_fact: diff --git a/awx_collection/tests/integration/targets/lookup_rruleset/tasks/main.yml b/awx_collection/tests/integration/targets/lookup_rruleset/tasks/main.yml index 6ff771749e82..28ad1da96b25 100644 --- a/awx_collection/tests/integration/targets/lookup_rruleset/tasks/main.yml +++ b/awx_collection/tests/integration/targets/lookup_rruleset/tasks/main.yml @@ -11,7 +11,7 @@ - name: Call ruleset with no rules set_fact: - complex_rule: "{{ query(ruleset_plugin_name, '2022-04-30 10:30:45') }}" + complex_rule: "{{ query(ruleset_plugin_name | string, '2022-04-30 10:30:45') }}" ignore_errors: True register: results diff --git a/awx_collection/tests/integration/targets/schedule/tasks/main.yml b/awx_collection/tests/integration/targets/schedule/tasks/main.yml index 6f9eca1b33b6..c61785d3b756 100644 --- a/awx_collection/tests/integration/targets/schedule/tasks/main.yml +++ b/awx_collection/tests/integration/targets/schedule/tasks/main.yml @@ -36,7 +36,7 @@ - assert: that: - result is failed - - "'Unable to create schedule {{ sched1 }}' in result.msg" + - "'Unable to create schedule '~ sched1 in result.msg" - name: Create with options that the JT does not support schedule: @@ -62,7 +62,7 @@ - assert: that: - result is failed - - "'Unable to create schedule {{ sched1 }}' in result.msg" + - "'Unable to create schedule '~ sched1 in result.msg" - name: Build a real schedule schedule: diff --git a/awx_collection/tests/integration/targets/schedule_rrule/tasks/main.yml b/awx_collection/tests/integration/targets/schedule_rrule/tasks/main.yml index bf416b813dc0..af2d95300172 100644 --- a/awx_collection/tests/integration/targets/schedule_rrule/tasks/main.yml +++ b/awx_collection/tests/integration/targets/schedule_rrule/tasks/main.yml @@ -9,7 +9,7 @@ - name: Test too many params (failure from validation of terms) debug: - msg: "{{ query(plugin_name, 'none', 'weekly', start_date='2020-4-16 03:45:07') }}" + msg: "{{ query(plugin_name | string, 'none', 'weekly', start_date='2020-4-16 03:45:07') }}" ignore_errors: true register: result diff --git a/awx_collection/tests/integration/targets/workflow_launch/tasks/main.yml b/awx_collection/tests/integration/targets/workflow_launch/tasks/main.yml index a328b8380183..ce41c6bb87d7 100644 --- a/awx_collection/tests/integration/targets/workflow_launch/tasks/main.yml +++ b/awx_collection/tests/integration/targets/workflow_launch/tasks/main.yml @@ -57,7 +57,7 @@ - assert: that: - result is failed - - "'Monitoring of Workflow Job - {{ wfjt_name1 }} aborted due to timeout' in result.msg" + - "'Monitoring of Workflow Job - '~ wfjt_name1 ~ ' aborted due to timeout' in result.msg" - name: Kick off a workflow and wait for it workflow_launch: From fe6bac6d9ebb5b5895c61385b47d9f303c70d777 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Wed, 6 Dec 2023 08:43:45 -0600 Subject: [PATCH 2/5] [CI] Reduce GHA timeouts from 6h default (#14704) * [CI] Reduce GHA timeouts from 6h default The goal here is to never interfere with a real run (so most of the timeout-minutes values seem rather high) but to avoid having 6h long runs if something goes crazy and never ends. Signed-off-by: Rick Elrod * Do bash hackery instead Signed-off-by: Rick Elrod --------- Signed-off-by: Rick Elrod --- .github/actions/run_awx_devel/action.yml | 12 ++++++++---- .github/workflows/ci.yml | 6 ++++++ .github/workflows/devel_images.yml | 1 + .github/workflows/docs.yml | 1 + .github/workflows/feature_branch_deletion.yml | 1 + .github/workflows/label_issue.yml | 2 ++ .github/workflows/label_pr.yml | 2 ++ .github/workflows/pr_body_check.yml | 1 + .github/workflows/promote.yml | 1 + .github/workflows/stage.yml | 1 + .github/workflows/update_dependabot_prs.yml | 1 + .github/workflows/upload_schema.yml | 1 + 12 files changed, 26 insertions(+), 4 deletions(-) diff --git a/.github/actions/run_awx_devel/action.yml b/.github/actions/run_awx_devel/action.yml index 80b02669cf82..79c795c85d77 100644 --- a/.github/actions/run_awx_devel/action.yml +++ b/.github/actions/run_awx_devel/action.yml @@ -43,10 +43,14 @@ runs: - name: Update default AWX password shell: bash run: | - while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' -k https://localhost:8043/api/v2/ping/)" != "200" ]] - do - echo "Waiting for AWX..." - sleep 5 + SECONDS=0 + while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' -k https://localhost:8043/api/v2/ping/)" != "200" ]]; do + if [[ $SECONDS -gt 600 ]]; then + echo "Timing out, AWX never came up" + exit 1 + fi + echo "Waiting for AWX..." + sleep 5 done echo "AWX is up, updating the password..." docker exec -i tools_awx_1 sh <<-EOSH diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7bc82741e8e2..afdbd69eb610 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,7 @@ jobs: common-tests: name: ${{ matrix.tests.name }} runs-on: ubuntu-latest + timeout-minutes: 60 permissions: packages: write contents: read @@ -49,6 +50,7 @@ jobs: dev-env: runs-on: ubuntu-latest + timeout-minutes: 60 steps: - uses: actions/checkout@v3 @@ -63,6 +65,7 @@ jobs: awx-operator: runs-on: ubuntu-latest + timeout-minutes: 60 steps: - name: Checkout awx uses: actions/checkout@v3 @@ -112,6 +115,7 @@ jobs: collection-sanity: name: awx_collection sanity runs-on: ubuntu-latest + timeout-minutes: 30 strategy: fail-fast: false steps: @@ -131,6 +135,7 @@ jobs: collection-integration: name: awx_collection integration runs-on: ubuntu-latest + timeout-minutes: 60 strategy: fail-fast: false matrix: @@ -182,6 +187,7 @@ jobs: collection-integration-coverage-combine: name: combine awx_collection integration coverage runs-on: ubuntu-latest + timeout-minutes: 10 needs: - collection-integration strategy: diff --git a/.github/workflows/devel_images.yml b/.github/workflows/devel_images.yml index 179828be7d97..7f8c791bc4e7 100644 --- a/.github/workflows/devel_images.yml +++ b/.github/workflows/devel_images.yml @@ -12,6 +12,7 @@ jobs: push: if: endsWith(github.repository, '/awx') || startsWith(github.ref, 'refs/heads/release_') runs-on: ubuntu-latest + timeout-minutes: 60 permissions: packages: write contents: read diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d50793210ea1..a5dc51fb59ca 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,6 +6,7 @@ jobs: docsite-build: name: docsite test build runs-on: ubuntu-latest + timeout-minutes: 30 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/feature_branch_deletion.yml b/.github/workflows/feature_branch_deletion.yml index 3e574b211b80..3fbd287cb126 100644 --- a/.github/workflows/feature_branch_deletion.yml +++ b/.github/workflows/feature_branch_deletion.yml @@ -9,6 +9,7 @@ on: jobs: push: runs-on: ubuntu-latest + timeout-minutes: 20 permissions: packages: write contents: read diff --git a/.github/workflows/label_issue.yml b/.github/workflows/label_issue.yml index f33efab60015..c5a2b2c7cb4c 100644 --- a/.github/workflows/label_issue.yml +++ b/.github/workflows/label_issue.yml @@ -13,6 +13,7 @@ permissions: jobs: triage: runs-on: ubuntu-latest + timeout-minutes: 20 name: Label Issue steps: @@ -26,6 +27,7 @@ jobs: community: runs-on: ubuntu-latest + timeout-minutes: 20 name: Label Issue - Community steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/label_pr.yml b/.github/workflows/label_pr.yml index 6ee5a34e8b7d..15571a866cf2 100644 --- a/.github/workflows/label_pr.yml +++ b/.github/workflows/label_pr.yml @@ -14,6 +14,7 @@ permissions: jobs: triage: runs-on: ubuntu-latest + timeout-minutes: 20 name: Label PR steps: @@ -25,6 +26,7 @@ jobs: community: runs-on: ubuntu-latest + timeout-minutes: 20 name: Label PR - Community steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/pr_body_check.yml b/.github/workflows/pr_body_check.yml index 7af1914bb4c0..9532aa87ede1 100644 --- a/.github/workflows/pr_body_check.yml +++ b/.github/workflows/pr_body_check.yml @@ -10,6 +10,7 @@ jobs: if: github.repository_owner == 'ansible' && endsWith(github.repository, 'awx') name: Scan PR description for semantic versioning keywords runs-on: ubuntu-latest + timeout-minutes: 20 permissions: packages: write contents: read diff --git a/.github/workflows/promote.yml b/.github/workflows/promote.yml index 58e3762851a2..81a7878d6e80 100644 --- a/.github/workflows/promote.yml +++ b/.github/workflows/promote.yml @@ -15,6 +15,7 @@ jobs: promote: if: endsWith(github.repository, '/awx') runs-on: ubuntu-latest + timeout-minutes: 90 steps: - name: Checkout awx uses: actions/checkout@v3 diff --git a/.github/workflows/stage.yml b/.github/workflows/stage.yml index aab4ad83a500..f38cda55ec20 100644 --- a/.github/workflows/stage.yml +++ b/.github/workflows/stage.yml @@ -23,6 +23,7 @@ jobs: stage: if: endsWith(github.repository, '/awx') runs-on: ubuntu-latest + timeout-minutes: 90 permissions: packages: write contents: write diff --git a/.github/workflows/update_dependabot_prs.yml b/.github/workflows/update_dependabot_prs.yml index a61eb1c17222..bcb0b7674a70 100644 --- a/.github/workflows/update_dependabot_prs.yml +++ b/.github/workflows/update_dependabot_prs.yml @@ -9,6 +9,7 @@ jobs: name: Update Dependabot Prs if: contains(github.event.pull_request.labels.*.name, 'dependencies') && contains(github.event.pull_request.labels.*.name, 'component:ui') runs-on: ubuntu-latest + timeout-minutes: 20 steps: - name: Checkout branch diff --git a/.github/workflows/upload_schema.yml b/.github/workflows/upload_schema.yml index ae4e23d977ae..0b7bc7bf6e6d 100644 --- a/.github/workflows/upload_schema.yml +++ b/.github/workflows/upload_schema.yml @@ -13,6 +13,7 @@ on: jobs: push: runs-on: ubuntu-latest + timeout-minutes: 60 permissions: packages: write contents: read From dd00bbba4259e0c127a6be0adc1eb039f855da3d Mon Sep 17 00:00:00 2001 From: Don Naro Date: Wed, 6 Dec 2023 17:17:12 +0000 Subject: [PATCH 3/5] separate tox calls in readthedocs config (#14673) --- .readthedocs.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 0c11aab82f67..9376ce0e342b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -10,6 +10,7 @@ build: 3.11 commands: - pip install --user tox - - python3 -m tox -e docs + - python3 -m tox -e docs --notest -v + - python3 -m tox -e docs --skip-pkg-install -q - mkdir -p _readthedocs/html/ - mv docs/docsite/build/html/* _readthedocs/html/ From 7501ad6836467c0aee5f3978f60d30dd618cf102 Mon Sep 17 00:00:00 2001 From: jessicamack Date: Tue, 5 Dec 2023 17:27:20 -0500 Subject: [PATCH 4/5] add django-ansible-base Signed-off-by: jessicamack --- awx/settings/defaults.py | 1 + licenses/django-ansible-base.txt | 168 ++++++++++++++++++++++++++++++ requirements/requirements.in | 4 +- requirements/requirements.txt | 50 +++++++-- requirements/requirements_git.txt | 1 + 5 files changed, 214 insertions(+), 10 deletions(-) create mode 100644 licenses/django-ansible-base.txt diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index d12fa8d2238c..0b5e000b40b0 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -336,6 +336,7 @@ 'awx.ui', 'awx.sso', 'solo', + 'ansible_base', ] INTERNAL_IPS = ('127.0.0.1',) diff --git a/licenses/django-ansible-base.txt b/licenses/django-ansible-base.txt new file mode 100644 index 000000000000..cb929855702f --- /dev/null +++ b/licenses/django-ansible-base.txt @@ -0,0 +1,168 @@ +Apache License +============== + +_Version 2.0, January 2004_ +_<>_ + +### Terms and Conditions for use, reproduction, and distribution + +#### 1. Definitions + +“License” shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +“Licensor” shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +“Legal Entity” shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, “control” means **(i)** the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the +outstanding shares, or **(iii)** beneficial ownership of such entity. + +“You” (or “Your”) shall mean an individual or Legal Entity exercising +permissions granted by this License. + +“Source” form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +“Object” form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +“Work” shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +“Derivative Works” shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +“Contribution” shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +“submitted” means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as “Not a Contribution.” + +“Contributor” shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +#### 2. Grant of Copyright License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +#### 3. Grant of Patent License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +#### 4. Redistribution + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +* **(a)** You must give any other recipients of the Work or Derivative Works a copy of +this License; and +* **(b)** You must cause any modified files to carry prominent notices stating that You +changed the files; and +* **(c)** You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +#### 5. Submission of Contributions + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +#### 6. Trademarks + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +#### 7. Disclaimer of Warranty + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +#### 8. Limitation of Liability + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +#### 9. Accepting Warranty or Additional Liability + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. \ No newline at end of file diff --git a/requirements/requirements.in b/requirements/requirements.in index d32837ad2ac4..fdb3608308e0 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -47,8 +47,8 @@ python-tss-sdk>=1.2.1 python-ldap pyyaml>=6.0.1 receptorctl -social-auth-core[openidconnect]==4.3.0 # see UPGRADE BLOCKERs -social-auth-app-django==5.0.0 # see UPGRADE BLOCKERs +social-auth-core[openidconnect]==4.4.2 # see UPGRADE BLOCKERs +social-auth-app-django==5.4.0 # see UPGRADE BLOCKERs sqlparse >= 0.4.4 # Required by django https://github.com/ansible/awx/security/dependabot/96 redis requests diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 24ac4cf1e2ed..4f24c624db95 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -83,6 +83,7 @@ cryptography==41.0.3 # adal # autobahn # azure-keyvault + # django-ansible-base # jwcrypto # pyopenssl # service-identity @@ -105,23 +106,35 @@ django==4.2.6 # via # -r /awx_devel/requirements/requirements.in # channels + # django-ansible-base # django-auth-ldap # django-cors-headers # django-crum # django-extensions + # django-filter # django-guid # django-oauth-toolkit # django-polymorphic # django-solo # djangorestframework + # drf-spectacular + # social-auth-app-django +django-ansible-base @ git+https://github.com/ansible/django-ansible-base.git@devel + # via -r /awx_devel/requirements/requirements_git.txt django-auth-ldap==4.1.0 - # via -r /awx_devel/requirements/requirements.in + # via + # -r /awx_devel/requirements/requirements.in + # django-ansible-base django-cors-headers==3.13.0 # via -r /awx_devel/requirements/requirements.in django-crum==0.7.9 - # via -r /awx_devel/requirements/requirements.in + # via + # -r /awx_devel/requirements/requirements.in + # django-ansible-base django-extensions==3.2.1 # via -r /awx_devel/requirements/requirements.in +django-filter==23.5 + # via django-ansible-base django-guid==3.2.1 # via -r /awx_devel/requirements/requirements.in django-oauth-toolkit==1.7.1 @@ -136,11 +149,16 @@ django-solo==2.0.0 django-split-settings==1.0.0 # via -r /awx_devel/requirements/requirements.in djangorestframework==3.14.0 - # via -r /awx_devel/requirements/requirements.in + # via + # -r /awx_devel/requirements/requirements.in + # django-ansible-base + # drf-spectacular djangorestframework-yaml==2.0.0 # via -r /awx_devel/requirements/requirements.in docutils==0.19 # via python-daemon +drf-spectacular==0.26.5 + # via django-ansible-base ecdsa==0.18.0 # via python-jose enum-compat==0.0.3 @@ -179,6 +197,10 @@ incremental==22.10.0 # via twisted inflect==6.0.2 # via jaraco-text +inflection==0.5.1 + # via + # django-ansible-base + # drf-spectacular irc==20.1.0 # via -r /awx_devel/requirements/requirements.in isodate==0.6.1 @@ -213,7 +235,9 @@ jmespath==1.0.1 json-log-formatter==0.5.1 # via -r /awx_devel/requirements/requirements.in jsonschema==4.17.3 - # via -r /awx_devel/requirements/requirements.in + # via + # -r /awx_devel/requirements/requirements.in + # drf-spectacular jwcrypto==1.4.2 # via django-oauth-toolkit kubernetes==25.3.0 @@ -328,6 +352,7 @@ python-jose==3.3.0 python-ldap==3.4.3 # via # -r /awx_devel/requirements/requirements.in + # django-ansible-base # django-auth-ldap python-string-utils==1.0.0 # via openshift @@ -335,7 +360,9 @@ python-tss-sdk==1.2.1 # via -r /awx_devel/requirements/requirements.in python3-openid==3.2.0 # via social-auth-core - # via -r /awx_devel/requirements/requirements_git.txt + # via + # -r /awx_devel/requirements/requirements_git.txt + # django-ansible-base pytz==2022.6 # via # djangorestframework @@ -347,6 +374,7 @@ pyyaml==6.0.1 # -r /awx_devel/requirements/requirements.in # ansible-runner # djangorestframework-yaml + # drf-spectacular # kubernetes # receptorctl receptorctl==1.4.2 @@ -406,9 +434,11 @@ slack-sdk==3.19.4 # via -r /awx_devel/requirements/requirements.in smmap==5.0.0 # via gitdb -social-auth-app-django==5.0.0 - # via -r /awx_devel/requirements/requirements.in -social-auth-core[openidconnect]==4.3.0 +social-auth-app-django==5.4.0 + # via + # -r /awx_devel/requirements/requirements.in + # django-ansible-base +social-auth-core[openidconnect]==4.4.2 # via # -r /awx_devel/requirements/requirements.in # social-auth-app-django @@ -416,6 +446,8 @@ sqlparse==0.4.4 # via # -r /awx_devel/requirements/requirements.in # django +tabulate==0.9.0 + # via django-ansible-base tacacs-plus==1.0 # via -r /awx_devel/requirements/requirements.in tempora==5.1.0 @@ -439,6 +471,8 @@ typing-extensions==4.4.0 # setuptools-rust # setuptools-scm # twisted +uritemplate==4.1.1 + # via drf-spectacular urllib3==1.26.13 # via # botocore diff --git a/requirements/requirements_git.txt b/requirements/requirements_git.txt index f04010b84e49..d4820f02d0a7 100644 --- a/requirements/requirements_git.txt +++ b/requirements/requirements_git.txt @@ -5,3 +5,4 @@ git+https://github.com/ansible/ansible-runner.git@devel#egg=ansible-runner # specifically need https://github.com/robgolding/django-radius/pull/27 git+https://github.com/ansible/django-radius.git@develop#egg=django-radius git+https://github.com/ansible/python3-saml.git@devel#egg=python3-saml +git+https://github.com/ansible/django-ansible-base.git@devel#egg=django-ansible-base \ No newline at end of file From a689f87f1c0dc63d68ec43276d24ed61d058936f Mon Sep 17 00:00:00 2001 From: jessicamack Date: Wed, 6 Dec 2023 10:39:20 -0500 Subject: [PATCH 5/5] add licenses --- licenses/django-filter.txt | 24 +++++ licenses/drf-spectacular.txt | 30 ++++++ licenses/inflection.txt | 19 ++++ licenses/tabulate.txt | 20 ++++ licenses/uritemplate.txt | 202 +++++++++++++++++++++++++++++++++++ 5 files changed, 295 insertions(+) create mode 100644 licenses/django-filter.txt create mode 100644 licenses/drf-spectacular.txt create mode 100644 licenses/inflection.txt create mode 100644 licenses/tabulate.txt create mode 100644 licenses/uritemplate.txt diff --git a/licenses/django-filter.txt b/licenses/django-filter.txt new file mode 100644 index 000000000000..4201174c7cf2 --- /dev/null +++ b/licenses/django-filter.txt @@ -0,0 +1,24 @@ +Copyright (c) Alex Gaynor and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * The names of its contributors may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/licenses/drf-spectacular.txt b/licenses/drf-spectacular.txt new file mode 100644 index 000000000000..0b55a2c5909a --- /dev/null +++ b/licenses/drf-spectacular.txt @@ -0,0 +1,30 @@ +Copyright © 2011-present, Encode OSS Ltd. +Copyright © 2019-2021, T. Franzel , Cashlink Technologies GmbH. +Copyright © 2021-present, T. Franzel . + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/licenses/inflection.txt b/licenses/inflection.txt new file mode 100644 index 000000000000..e03e8accdb04 --- /dev/null +++ b/licenses/inflection.txt @@ -0,0 +1,19 @@ +Copyright (C) 2012-2020 Janne Vanhala + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/licenses/tabulate.txt b/licenses/tabulate.txt new file mode 100644 index 000000000000..f23421bcee51 --- /dev/null +++ b/licenses/tabulate.txt @@ -0,0 +1,20 @@ +Copyright (c) 2011-2020 Sergey Astanin and contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licenses/uritemplate.txt b/licenses/uritemplate.txt new file mode 100644 index 000000000000..7a4a3ea2424c --- /dev/null +++ b/licenses/uritemplate.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file