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));
  }