/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.service.vmware.tasks; import javax.inject.Inject; import com.emc.sa.engine.ExecutionTask; import com.iwave.ext.vmware.HostStorageAPI; import com.iwave.ext.vmware.VCenterAPI; import com.vmware.vim25.HostPathSelectionPolicyOption; import com.vmware.vim25.mo.HostSystem; public class VerifySupportedMultipathPolicy extends ExecutionTask<Void> { @Inject private VCenterAPI vcenter; private String multipathPolicy; private HostStorageAPI hostStorageAPI; public VerifySupportedMultipathPolicy(HostSystem host, String multipathPolicy) { this.multipathPolicy = multipathPolicy; this.hostStorageAPI = new HostStorageAPI(host); provideDetailArgs(multipathPolicy); } @Override public void execute() throws Exception { HostPathSelectionPolicyOption[] policies = hostStorageAPI.getPathSelectionPolicyOptions(); if (!isPathPolicySupported(policies, multipathPolicy)) { throw stateException("VerifySupportedMultipathPolicy.illegalState.policy.not.supported", multipathPolicy); } } private boolean isPathPolicySupported(HostPathSelectionPolicyOption[] supportedPolicies, String multipathPolicy) { if (supportedPolicies != null) { for (HostPathSelectionPolicyOption policy : supportedPolicies) { if (policy.getPolicy().getKey().toString().equalsIgnoreCase(multipathPolicy.toString())) { return true; } } } return false; } }