From 21bed7473dc5385ea6412a1fc762549398c4a59f Mon Sep 17 00:00:00 2001 From: John Westcott IV Date: Tue, 14 Jun 2022 17:16:12 -0400 Subject: [PATCH] Making verbosity list and options a constant and adding WinRM debug to everything --- .../components/AdHocCommands/AdHocCommands.js | 11 +++-------- .../AdHocCommands/AdHocCommandsWizard.test.js | 10 ++-------- .../LaunchPrompt/steps/OtherPromptsStep.js | 11 ++--------- .../src/components/PromptDetail/PromptDetail.js | 9 +-------- .../PromptDetail/PromptInventorySourceDetail.js | 9 +-------- .../PromptDetail/PromptJobTemplateDetail.js | 9 +-------- .../Schedule/ScheduleDetail/ScheduleDetail.js | 9 +-------- awx/ui/src/constants.js | 17 +++++++++++++++++ awx/ui/src/screens/Job/JobDetail/JobDetail.js | 9 +-------- .../JobTemplateDetail/JobTemplateDetail.js | 14 ++------------ .../screens/Template/shared/JobTemplateForm.js | 10 ++-------- 11 files changed, 33 insertions(+), 85 deletions(-) diff --git a/awx/ui/src/components/AdHocCommands/AdHocCommands.js b/awx/ui/src/components/AdHocCommands/AdHocCommands.js index 5dd69d91a3..6ace0d9ad6 100644 --- a/awx/ui/src/components/AdHocCommands/AdHocCommands.js +++ b/awx/ui/src/components/AdHocCommands/AdHocCommands.js @@ -14,6 +14,8 @@ import ErrorDetail from '../ErrorDetail'; import AdHocCommandsWizard from './AdHocCommandsWizard'; import ContentError from '../ContentError'; +import { VERBOSE_OPTIONS } from '../../constants'; + function AdHocCommands({ adHocItems, hasListItems, @@ -26,13 +28,6 @@ function AdHocCommands({ const [isWizardOpen, setIsWizardOpen] = useState(false); const { isKebabified, onKebabModalChange } = useContext(KebabifiedContext); - const verbosityOptions = [ - { value: '0', key: '0', label: t`0 (Normal)` }, - { value: '1', key: '1', label: t`1 (Verbose)` }, - { value: '2', key: '2', label: t`2 (More Verbose)` }, - { value: '3', key: '3', label: t`3 (Debug)` }, - { value: '4', key: '4', label: t`4 (Connection Debug)` }, - ]; useEffect(() => { if (isKebabified) { onKebabModalChange(isWizardOpen); @@ -159,7 +154,7 @@ function AdHocCommands({ adHocItems={adHocItems} organizationId={organizationId} moduleOptions={moduleOptions} - verbosityOptions={verbosityOptions} + verbosityOptions={VERBOSE_OPTIONS} credentialTypeId={credentialTypeId} onCloseWizard={() => setIsWizardOpen(false)} onLaunch={handleSubmit} diff --git a/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.test.js b/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.test.js index 03e6faf8bd..95782c1373 100644 --- a/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.test.js +++ b/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.test.js @@ -6,6 +6,7 @@ import { waitForElement, } from '../../../testUtils/enzymeHelpers'; import AdHocCommandsWizard from './AdHocCommandsWizard'; +import { VERBOSE_OPTIONS } from '../../constants'; jest.mock('../../api/models/CredentialTypes'); jest.mock('../../api/models/Inventories'); @@ -13,13 +14,6 @@ jest.mock('../../api/models/Credentials'); jest.mock('../../api/models/ExecutionEnvironments'); jest.mock('../../api/models/Root'); -const verbosityOptions = [ - { value: '0', key: '0', label: '0 (Normal)' }, - { value: '1', key: '1', label: '1 (Verbose)' }, - { value: '2', key: '2', label: '2 (More Verbose)' }, - { value: '3', key: '3', label: '3 (Debug)' }, - { value: '4', key: '4', label: '4 (Connection Debug)' }, -]; const moduleOptions = [ ['command', 'command'], ['shell', 'shell'], @@ -44,7 +38,7 @@ describe('', () => { adHocItems={adHocItems} onLaunch={onLaunch} moduleOptions={moduleOptions} - verbosityOptions={verbosityOptions} + verbosityOptions={VERBOSE_OPTIONS} onCloseWizard={() => {}} credentialTypeId={1} organizationId={1} diff --git a/awx/ui/src/components/LaunchPrompt/steps/OtherPromptsStep.js b/awx/ui/src/components/LaunchPrompt/steps/OtherPromptsStep.js index d69fe75838..d50f454501 100644 --- a/awx/ui/src/components/LaunchPrompt/steps/OtherPromptsStep.js +++ b/awx/ui/src/components/LaunchPrompt/steps/OtherPromptsStep.js @@ -9,6 +9,7 @@ import { TagMultiSelect } from '../../MultiSelect'; import AnsibleSelect from '../../AnsibleSelect'; import { VariablesField } from '../../CodeEditor'; import Popover from '../../Popover'; +import { VERBOSE_OPTIONS } from '../../../constants'; const FieldHeader = styled.div` display: flex; @@ -130,14 +131,6 @@ function JobTypeField() { function VerbosityField() { const [field, meta, helpers] = useField('verbosity'); - const options = [ - { value: '0', key: '0', label: t`0 (Normal)` }, - { value: '1', key: '1', label: t`1 (Verbose)` }, - { value: '2', key: '2', label: t`2 (More Verbose)` }, - { value: '3', key: '3', label: t`3 (Debug)` }, - { value: '4', key: '4', label: t`4 (Connection Debug)` }, - ]; - const isValid = !(meta.touched && meta.error); return ( @@ -154,7 +147,7 @@ function VerbosityField() { > helpers.setValue(value)} /> diff --git a/awx/ui/src/components/PromptDetail/PromptDetail.js b/awx/ui/src/components/PromptDetail/PromptDetail.js index 920ea0e6d7..ce4c0b5a81 100644 --- a/awx/ui/src/components/PromptDetail/PromptDetail.js +++ b/awx/ui/src/components/PromptDetail/PromptDetail.js @@ -14,6 +14,7 @@ import PromptProjectDetail from './PromptProjectDetail'; import PromptInventorySourceDetail from './PromptInventorySourceDetail'; import PromptJobTemplateDetail from './PromptJobTemplateDetail'; import PromptWFJobTemplateDetail from './PromptWFJobTemplateDetail'; +import { VERBOSITY } from '../../constants'; const PromptTitle = styled(Title)` margin-top: var(--pf-global--spacer--xl); @@ -93,14 +94,6 @@ function PromptDetail({ overrides = {}, workflowNode = false, }) { - const VERBOSITY = { - 0: t`0 (Normal)`, - 1: t`1 (Verbose)`, - 2: t`2 (More Verbose)`, - 3: t`3 (Debug)`, - 4: t`4 (Connection Debug)`, - }; - const details = omitOverrides(resource, overrides, launchConfig.defaults); details.type = overrides?.nodeType || details.type; const hasOverrides = Object.keys(overrides).length > 0; diff --git a/awx/ui/src/components/PromptDetail/PromptInventorySourceDetail.js b/awx/ui/src/components/PromptDetail/PromptInventorySourceDetail.js index bfba27089c..ce8e8f0c0d 100644 --- a/awx/ui/src/components/PromptDetail/PromptInventorySourceDetail.js +++ b/awx/ui/src/components/PromptDetail/PromptInventorySourceDetail.js @@ -13,6 +13,7 @@ import { VariablesDetail } from '../CodeEditor'; import CredentialChip from '../CredentialChip'; import ChipGroup from '../ChipGroup'; import ExecutionEnvironmentDetail from '../ExecutionEnvironmentDetail'; +import { VERBOSITY } from '../../constants'; function PromptInventorySourceDetail({ resource }) { const { @@ -32,14 +33,6 @@ function PromptInventorySourceDetail({ resource }) { verbosity, } = resource; - const VERBOSITY = { - 0: t`0 (Normal)`, - 1: t`1 (Verbose)`, - 2: t`2 (More Verbose)`, - 3: t`3 (Debug)`, - 4: t`4 (Connection Debug)`, - }; - let optionsList = ''; if ( overwrite || diff --git a/awx/ui/src/components/PromptDetail/PromptJobTemplateDetail.js b/awx/ui/src/components/PromptDetail/PromptJobTemplateDetail.js index a467222865..fbf3c14a68 100644 --- a/awx/ui/src/components/PromptDetail/PromptJobTemplateDetail.js +++ b/awx/ui/src/components/PromptDetail/PromptJobTemplateDetail.js @@ -15,6 +15,7 @@ import Sparkline from '../Sparkline'; import { Detail, DeletedDetail } from '../DetailList'; import { VariablesDetail } from '../CodeEditor'; import ExecutionEnvironmentDetail from '../ExecutionEnvironmentDetail'; +import { VERBOSITY } from '../../constants'; function PromptJobTemplateDetail({ resource }) { const { @@ -42,14 +43,6 @@ function PromptJobTemplateDetail({ resource }) { custom_virtualenv, } = resource; - const VERBOSITY = { - 0: t`0 (Normal)`, - 1: t`1 (Verbose)`, - 2: t`2 (More Verbose)`, - 3: t`3 (Debug)`, - 4: t`4 (Connection Debug)`, - }; - let optionsList = ''; if ( become_enabled || diff --git a/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js b/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js index a9e1b94889..7cb55ee623 100644 --- a/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js +++ b/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js @@ -23,6 +23,7 @@ import DeleteButton from '../../DeleteButton'; import ErrorDetail from '../../ErrorDetail'; import ChipGroup from '../../ChipGroup'; import { VariablesDetail } from '../../CodeEditor'; +import { VERBOSITY } from '../../../constants'; const PromptDivider = styled(Divider)` margin-top: var(--pf-global--spacer--lg); @@ -67,14 +68,6 @@ function ScheduleDetail({ hasDaysToKeepField, schedule, surveyConfig }) { const { pathname } = useLocation(); const pathRoot = pathname.substr(0, pathname.indexOf('schedules')); - const VERBOSITY = { - 0: t`0 (Normal)`, - 1: t`1 (Verbose)`, - 2: t`2 (More Verbose)`, - 3: t`3 (Debug)`, - 4: t`4 (Connection Debug)`, - }; - const { request: deleteSchedule, isLoading: isDeleteLoading, diff --git a/awx/ui/src/constants.js b/awx/ui/src/constants.js index d4d7259a4d..08119f1b85 100644 --- a/awx/ui/src/constants.js +++ b/awx/ui/src/constants.js @@ -1,3 +1,5 @@ +import { t } from '@lingui/macro'; + /* eslint-disable-next-line import/prefer-default-export */ export const JOB_TYPE_URL_SEGMENTS = { job: 'playbook', @@ -12,3 +14,18 @@ export const SESSION_TIMEOUT_KEY = 'awx-session-timeout'; export const SESSION_REDIRECT_URL = 'awx-redirect-url'; export const PERSISTENT_FILTER_KEY = 'awx-persistent-filter'; export const SESSION_USER_ID = 'awx-session-user-id'; + +export const VERBOSITY = { + 0: t`0 (Normal)`, + 1: t`1 (Verbose)`, + 2: t`2 (More Verbose)`, + 3: t`3 (Debug)`, + 4: t`4 (Connection Debug)`, + 5: t`5 (WinRM Debug)`, +}; + +export const VERBOSE_OPTIONS = Object.entries(VERBOSITY).map(([k, v]) => ({ + key: k, + value: k, + label: v, +})); diff --git a/awx/ui/src/screens/Job/JobDetail/JobDetail.js b/awx/ui/src/screens/Job/JobDetail/JobDetail.js index a2079bd3be..24e064989f 100644 --- a/awx/ui/src/screens/Job/JobDetail/JobDetail.js +++ b/awx/ui/src/screens/Job/JobDetail/JobDetail.js @@ -28,6 +28,7 @@ import ExecutionEnvironmentDetail from 'components/ExecutionEnvironmentDetail'; import { getJobModel, isJobRunning } from 'util/jobs'; import { formatDateString } from 'util/dates'; import { Job } from 'types'; +import { VERBOSITY } from '../../../constants'; import jobHelpText from '../Job.helptext'; const StatusDetailValue = styled.div` @@ -37,14 +38,6 @@ const StatusDetailValue = styled.div` grid-template-columns: auto auto; `; -const VERBOSITY = { - 0: '0 (Normal)', - 1: '1 (Verbose)', - 2: '2 (More Verbose)', - 3: '3 (Debug)', - 4: '4 (Connection Debug)', -}; - function JobDetail({ job, inventorySourceLabels }) { const { me } = useConfig(); const { diff --git a/awx/ui/src/screens/Template/JobTemplateDetail/JobTemplateDetail.js b/awx/ui/src/screens/Template/JobTemplateDetail/JobTemplateDetail.js index 6d64faf3b4..d15c2be1a7 100644 --- a/awx/ui/src/screens/Template/JobTemplateDetail/JobTemplateDetail.js +++ b/awx/ui/src/screens/Template/JobTemplateDetail/JobTemplateDetail.js @@ -33,6 +33,7 @@ import useRequest, { useDismissableError } from 'hooks/useRequest'; import useBrandName from 'hooks/useBrandName'; import ExecutionEnvironmentDetail from 'components/ExecutionEnvironmentDetail'; import { relatedResourceDeleteRequests } from 'util/getRelatedResourceDeleteDetails'; +import { VERBOSITY } from '../../../constants'; import helpText from '../shared/JobTemplate.helptext'; function JobTemplateDetail({ template }) { @@ -104,17 +105,6 @@ function JobTemplateDetail({ template }) { relatedResourceDeleteRequests.template(template); const canLaunch = summary_fields.user_capabilities && summary_fields.user_capabilities.start; - const verbosityOptions = [ - { verbosity: 0, details: t`0 (Normal)` }, - { verbosity: 1, details: t`1 (Verbose)` }, - { verbosity: 2, details: t`2 (More Verbose)` }, - { verbosity: 3, details: t`3 (Debug)` }, - { verbosity: 4, details: t`4 (Connection Debug)` }, - { verbosity: 5, details: t`5 (WinRM Debug)` }, - ]; - const verbosityDetails = verbosityOptions.filter( - (option) => option.verbosity === verbosity - ); const generateCallBackUrl = `${window.location.origin + url}callback/`; const renderOptionsField = become_enabled || @@ -272,7 +262,7 @@ function JobTemplateDetail({ template }) { /> diff --git a/awx/ui/src/screens/Template/shared/JobTemplateForm.js b/awx/ui/src/screens/Template/shared/JobTemplateForm.js index a2cdc04f63..9e76f30595 100644 --- a/awx/ui/src/screens/Template/shared/JobTemplateForm.js +++ b/awx/ui/src/screens/Template/shared/JobTemplateForm.js @@ -46,6 +46,7 @@ import LabelSelect from 'components/LabelSelect'; import PlaybookSelect from './PlaybookSelect'; import WebhookSubForm from './WebhookSubForm'; import helpText from './JobTemplate.helptext'; +import { VERBOSE_OPTIONS } from '../../../constants'; const { origin } = document.location; @@ -215,13 +216,6 @@ function JobTemplateForm({ isDisabled: false, }, ]; - const verbosityOptions = [ - { value: '0', key: '0', label: t`0 (Normal)` }, - { value: '1', key: '1', label: t`1 (Verbose)` }, - { value: '2', key: '2', label: t`2 (More Verbose)` }, - { value: '3', key: '3', label: t`3 (Debug)` }, - { value: '4', key: '4', label: t`4 (Connection Debug)` }, - ]; let callbackUrl; if (template?.related) { const path = template.related.callback || `${template.url}callback`; @@ -437,7 +431,7 @@ function JobTemplateForm({ >