diff --git a/src/pages/compute/containers/Instance/actions/AttachIsoVolume.jsx b/src/pages/compute/containers/Instance/actions/AttachIsoVolume.jsx index 8d20bfab..8da6aa27 100644 --- a/src/pages/compute/containers/Instance/actions/AttachIsoVolume.jsx +++ b/src/pages/compute/containers/Instance/actions/AttachIsoVolume.jsx @@ -16,10 +16,10 @@ import { inject, observer } from 'mobx-react'; import globalServerStore from 'stores/nova/instance'; import { ModalAction } from 'containers/Action'; import { - isActive, + isShutOff, isNotDeleting, isNotLocked, - isBuilding, + isIronicInstance, } from 'resources/instance'; import { multiTip } from 'resources/volume'; import { get as _get } from 'lodash'; @@ -75,8 +75,8 @@ export default class AttachIsoVolume extends ModalAction { !isAdminPage && isNotDeleting(item) && isNotLocked(item) && - !isActive(item) && - !isBuilding(item) + !isIronicInstance(item) && + isShutOff(item) ); }; diff --git a/src/pages/compute/containers/Instance/actions/DetachIsoVolume.jsx b/src/pages/compute/containers/Instance/actions/DetachIsoVolume.jsx index e089da51..dab5885b 100644 --- a/src/pages/compute/containers/Instance/actions/DetachIsoVolume.jsx +++ b/src/pages/compute/containers/Instance/actions/DetachIsoVolume.jsx @@ -18,11 +18,10 @@ import globalServerStore from 'stores/nova/instance'; import { ModalAction } from 'containers/Action'; import { volumeStatus, isOsDisk, isAttachIsoVolume } from 'resources/volume'; import { - isActive, + isShutOff, isNotLocked, isNotDeleting, isIronicInstance, - isBuilding, } from 'resources/instance'; @inject('rootStore') @@ -74,14 +73,16 @@ export default class DetachIsoVolume extends ModalAction { // static hasDataVolume = item => item.volumes_attached && item.volumes_attached.length > 1 // static allowed = item => Promise.resolve(isActive(item) && isNotDeleting(item) && isNotLocked(item) && this.hasDataVolume(item)) - static allowed = (item) => - Promise.resolve( - isNotDeleting(item) && + static allowed = (item, containerProps) => { + const { isAdminPage } = containerProps; + return Promise.resolve( + !isAdminPage && + isNotDeleting(item) && isNotLocked(item) && !isIronicInstance(item) && - !isActive(item) && - !isBuilding(item) + isShutOff(item) ); + }; get formItems() { return [