diff --git a/awx/api/views/root.py b/awx/api/views/root.py index e27715af92..ac5592207f 100644 --- a/awx/api/views/root.py +++ b/awx/api/views/root.py @@ -24,7 +24,7 @@ from awx.api.generics import APIView from awx.conf.registry import settings_registry from awx.main.analytics import all_collectors from awx.main.ha import is_ha_environment -from awx.main.utils import get_awx_version, get_custom_venv_choices, to_python_boolean +from awx.main.utils import get_awx_version, get_custom_venv_choices from awx.main.utils.licensing import validate_entitlement_manifest from awx.api.versioning import reverse, drf_reverse from awx.main.constants import PRIVILEGE_ESCALATION_METHODS @@ -313,16 +313,6 @@ class ApiV2ConfigView(APIView): def post(self, request): if not isinstance(request.data, dict): return Response({"error": _("Invalid subscription data")}, status=status.HTTP_400_BAD_REQUEST) - if "eula_accepted" not in request.data: - return Response({"error": _("Missing 'eula_accepted' property")}, status=status.HTTP_400_BAD_REQUEST) - try: - eula_accepted = to_python_boolean(request.data["eula_accepted"]) - except ValueError: - return Response({"error": _("'eula_accepted' value is invalid")}, status=status.HTTP_400_BAD_REQUEST) - - if not eula_accepted: - return Response({"error": _("'eula_accepted' must be True")}, status=status.HTTP_400_BAD_REQUEST) - request.data.pop("eula_accepted") try: data_actual = json.dumps(request.data) except Exception: diff --git a/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/EulaStep.jsx b/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/EulaStep.jsx index be8852ade1..528f04b135 100644 --- a/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/EulaStep.jsx +++ b/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/EulaStep.jsx @@ -1,31 +1,17 @@ import React from 'react'; -import { Trans, t } from '@lingui/macro'; -import { useField } from 'formik'; +import { t } from '@lingui/macro'; import { Flex, FormGroup, TextArea } from '@patternfly/react-core'; -import { required } from '../../../../util/validators'; import { useConfig } from '../../../../contexts/Config'; -import { CheckboxField } from '../../../../components/FormField'; function EulaStep() { - const { eula, me } = useConfig(); - const [, meta] = useField('eula'); - const isValid = !(meta.touched && meta.error); + const { eula } = useConfig(); return ( - - Agree to the end user license agreement and click submit. - - + - ); diff --git a/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx b/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx index ef0c8680f9..2b20ef1de6 100644 --- a/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx +++ b/awx/ui_next/src/screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx @@ -1,6 +1,5 @@ import React, { useCallback, useEffect } from 'react'; import { useHistory, Link, useRouteMatch } from 'react-router-dom'; - import { t, Trans } from '@lingui/macro'; import { Formik, useFormikContext } from 'formik'; import { @@ -41,7 +40,6 @@ const CustomFooter = ({ isSubmitLoading }) => { isDisabled={ (!values.manifest_file && !values.subscription) || !me?.is_superuser || - !values.eula || Object.keys(errors).length !== 0 } type="button" @@ -133,13 +131,9 @@ function SubscriptionEdit() { if (form.manifest_file) { await ConfigAPI.create({ manifest: form.manifest_file, - eula_accepted: form.eula, }); } else if (form.subscription) { await ConfigAPI.attach({ pool_id: form.subscription.pool_id }); - await ConfigAPI.create({ - eula_accepted: form.eula, - }); } if (!hasValidKey) { @@ -223,7 +217,6 @@ function SubscriptionEdit() { <> ', () => { }); wrapper.update(); expect(wrapper.find('EulaStep').length).toBe(1); - expect(wrapper.find('CheckboxField').length).toBe(1); expect(wrapper.find('button#subscription-wizard-submit').length).toBe(1); - }); - - test('checking EULA agreement should enable Submit button', async () => { - expect( - wrapper.find('button#subscription-wizard-submit').prop('disabled') - ).toBe(true); - await act(async () => { - wrapper.find('Checkbox[name="eula"] input').simulate('change', { - target: { value: true, name: 'eula' }, - }); - }); - wrapper.update(); expect( wrapper.find('button#subscription-wizard-submit').prop('disabled') ).toBe(false); @@ -369,18 +356,6 @@ describe('', () => { expect(wrapper.find('SubscriptionStep').length).toBe(0); expect(wrapper.find('AnalyticsStep').length).toBe(0); expect(wrapper.find('EulaStep').length).toBe(1); - }); - - test('submit should be disabled until EULA agreement checked', async () => { - expect( - wrapper.find('button#subscription-wizard-submit').prop('disabled') - ).toBe(true); - await act(async () => { - wrapper.find('Checkbox[name="eula"] input').simulate('change', { - target: { value: true, name: 'eula' }, - }); - }); - wrapper.update(); expect( wrapper.find('button#subscription-wizard-submit').prop('disabled') ).toBe(false); diff --git a/awx_collection/plugins/modules/tower_license.py b/awx_collection/plugins/modules/tower_license.py index 37ce8531ff..90439b0a08 100644 --- a/awx_collection/plugins/modules/tower_license.py +++ b/awx_collection/plugins/modules/tower_license.py @@ -25,11 +25,6 @@ options: - file path to a Red Hat subscription manifest (a .zip file) required: True type: str - eula_accepted: - description: - - Whether or not the EULA is accepted. - required: True - type: bool force: description: - By default, the license manifest will only be applied if Tower is currently @@ -46,7 +41,6 @@ EXAMPLES = ''' - name: Set the license using a file tower_license: manifest: "/tmp/my_manifest.zip" - eula_accepted: True ''' import base64 @@ -58,16 +52,12 @@ def main(): module = TowerAPIModule( argument_spec=dict( manifest=dict(type='str', required=True), - eula_accepted=dict(type='bool', required=True), force=dict(type='bool', required=False), ), ) json_output = {'changed': False} - if not module.params.get('eula_accepted'): - module.fail_json(msg='You must accept the EULA by passing in the param eula_accepted as True') - try: manifest = base64.b64encode(open(module.params.get('manifest'), 'rb').read()) except OSError as e: @@ -94,7 +84,7 @@ def main(): # Do the actual install, if we need to if perform_install: json_output['changed'] = True - module.post_endpoint('config', data={'eula_accepted': True, 'manifest': manifest.decode()}) + module.post_endpoint('config', data={'manifest': manifest.decode()}) module.exit_json(**json_output)