/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.sa.service.hpux; import static com.emc.sa.service.ServiceParams.VOLUME; import java.net.URI; import com.emc.sa.engine.ExecutionUtils; import com.emc.sa.engine.bind.Bindable; import com.emc.sa.engine.bind.Param; import com.emc.sa.engine.service.Service; import com.emc.sa.service.vipr.block.BlockStorageUtils; import com.emc.sa.service.vipr.block.ExportBlockVolumeHelper; import com.emc.storageos.model.block.BlockObjectRestRep; @Service("Hpux-MountBlockVolume") public class MountBlockVolumeService extends HpuxService { @Param(VOLUME) protected URI volumeId; private BlockObjectRestRep volume; @Bindable protected ExportBlockVolumeHelper exportBlockVolumeHelper = new ExportBlockVolumeHelper(); protected MountBlockVolumeHelper mountBlockVolumeHelper; @Override public void init() throws Exception { super.init(); mountBlockVolumeHelper = MountBlockVolumeHelper.create(hpuxSystem, hostPorts); } @Override public void precheck() throws Exception { super.precheck(); exportBlockVolumeHelper.precheck(); volume = BlockStorageUtils.getBlockResource(volumeId); if (BlockStorageUtils.isVolumeVMFSDatastore(volume)) { ExecutionUtils.fail("failTask.verifyVMFSDatastore", volume.getName(), volume.getName()); } checkForBootVolume(volumeId); acquireHostsLock(); mountBlockVolumeHelper.verifyMountConfiguration(volume); mountBlockVolumeHelper.precheck(); } @Override public void execute() throws Exception { exportBlockVolumeHelper.exportVolumes(); volume = BlockStorageUtils.getBlockResource(volumeId); mountBlockVolumeHelper.mount(volume); } }