public static void ProcessStorageOnVdsInactive(VDS vds) { // Clear the problematic timers since the VDS is in maintenance so it doesn't make sense to // check it // anymore. IrsBrokerCommand.clearVdsFromCache( vds.getstorage_pool_id(), vds.getvds_id(), vds.getvds_name()); if (!vds.getstorage_pool_id().equals(Guid.Empty) && StoragePoolStatus.Uninitialized != DbFacade.getInstance().getStoragePoolDAO().get(vds.getstorage_pool_id()).getstatus() && Backend.getInstance() .getResourceManager() .RunVdsCommand( VDSCommandType.DisconnectStoragePool, new DisconnectStoragePoolVDSCommandParameters( vds.getvds_id(), vds.getstorage_pool_id(), vds.getvds_spm_id())) .getSucceeded()) { StoragePoolParametersBase tempVar = new StoragePoolParametersBase(vds.getstorage_pool_id()); tempVar.setVdsId(vds.getvds_id()); tempVar.setTransactionScopeOption(TransactionScopeOption.RequiresNew); Backend.getInstance() .runInternalAction(VdcActionType.DisconnectHostFromStoragePoolServers, tempVar); } }
@Override protected void UpdateInternal() { super.UpdateInternal(); if (getContainer().getProgress() != null) { return; } VDS host = (VDS) getContainer().getHost().getSelectedItem(); if (host == null) { ProposeDiscover(); return; } ClearItems(); InitializeItems(null, null); getContainer().StartProgress(null); Frontend.RunQuery( VdcQueryType.GetDeviceList, new GetDeviceListQueryParameters(host.getvds_id(), getType()), new AsyncQuery( this, new INewAsyncCallback() { @Override public void OnSuccess(Object target, Object returnValue) { SanStorageModel model = (SanStorageModel) target; VdcQueryReturnValue response = (VdcQueryReturnValue) returnValue; if (response.getSucceeded()) { model.ApplyData((java.util.ArrayList<LUNs>) response.getReturnValue(), false); } else { model.setGetLUNsFailure("Could not retrieve LUNs, please check your storage."); } model.getContainer().StopProgress(); } }, true)); }