diff --git a/src/js/components/deployments/createdeployment.js b/src/js/components/deployments/createdeployment.js index 56cd71ea52..618ded1fa9 100644 --- a/src/js/components/deployments/createdeployment.js +++ b/src/js/components/deployments/createdeployment.js @@ -39,7 +39,7 @@ import DeltaIcon from '../../../assets/img/deltaicon.svg'; import { createDeployment, getDeploymentsConfig } from '../../actions/deploymentActions'; import { getGroupDevices } from '../../actions/deviceActions'; import { advanceOnboarding } from '../../actions/onboardingActions'; -import { getReleases } from '../../actions/releaseActions'; +import { getRelease, getReleases } from '../../actions/releaseActions'; import { ALL_DEVICES } from '../../constants/deviceConstants'; import { onboardingSteps } from '../../constants/onboardingConstants'; import { toggle, validatePhases } from '../../helpers'; @@ -149,6 +149,7 @@ export const CreateDeployment = props => { const { devices = [], group, release } = deploymentObject; if (release) { dispatch(advanceOnboarding(onboardingSteps.SCHEDULING_ARTIFACT_SELECTION)); + dispatch(getRelease(release.name)); } dispatch(advanceOnboarding(onboardingSteps.SCHEDULING_GROUP_SELECTION)); let nextDeploymentObject = { deploymentDeviceCount: devices.length ? devices.length : 0 }; diff --git a/src/js/components/deployments/deployments.js b/src/js/components/deployments/deployments.js index c8d8fbc289..587847c280 100644 --- a/src/js/components/deployments/deployments.js +++ b/src/js/components/deployments/deployments.js @@ -19,6 +19,8 @@ import { Link, useNavigate } from 'react-router-dom'; import { Button, Tab, Tabs } from '@mui/material'; +import { isUUID } from 'validator'; + import { setSnackbar } from '../../actions/appActions'; import { abortDeployment, setDeploymentsState } from '../../actions/deploymentActions'; import { getDynamicGroups, getGroups } from '../../actions/deviceActions'; @@ -129,14 +131,17 @@ export const Deployments = () => { const retryDeployment = (deployment, deploymentDeviceIds) => { const { artifact_name, name, update_control_map = {} } = deployment; - const release = releases[artifact_name]; + const release = releases[artifact_name] || { name: artifact_name }; const enterpriseSettings = isEnterprise ? { phases: [{ batch_size: 100, start_ts: undefined, delay: 0 }], update_control_map: { states: update_control_map.states || {} } } : {}; - const targetDevicesConfig = name === ALL_DEVICES || groupsById[name] ? { group: name } : { devices: [devicesById[name]] }; + const targetDevicesConfig = + name === ALL_DEVICES || groupsById[name] + ? { group: name } + : { devices: isUUID(name) ? [devicesById[name]] : deploymentDeviceIds.map(id => devicesById[id] ?? { id }) }; const deploymentObject = { deploymentDeviceIds, release, diff --git a/src/js/components/releases/dialogs/__snapshots__/artifactinformationform.test.js.snap b/src/js/components/releases/dialogs/__snapshots__/artifactinformationform.test.js.snap index 13baaa3d57..ed37e90bad 100644 --- a/src/js/components/releases/dialogs/__snapshots__/artifactinformationform.test.js.snap +++ b/src/js/components/releases/dialogs/__snapshots__/artifactinformationform.test.js.snap @@ -935,10 +935,9 @@ label+.emotion-16 { class="MuiFormControl-root emotion-4" >