Arik Hadas has uploaded a new change for review. Change subject: core: progress monitor for import vm ......................................................................
core: progress monitor for import vm Change-Id: Icdeab17d43923cf86b322ba5c4233b758ac8b37e Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromExternalProviderCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/JobListener.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsJob.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmManager.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/ImportProgressColumn.java 12 files changed, 146 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/39879/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromExternalProviderCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromExternalProviderCommand.java index baeab6d..cdf15f8 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromExternalProviderCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromExternalProviderCommand.java @@ -64,6 +64,20 @@ } @Override + public AuditLogType getAuditLogTypeValue() { + switch (getActionState()) { + case END_SUCCESS: + return getSucceeded() ? AuditLogType.IMPORTEXPORT_STARTING_IMPORT_VM + : AuditLogType.IMPORTEXPORT_IMPORT_VM_FAILED; + case END_FAILURE: + return AuditLogType.IMPORTEXPORT_IMPORT_VM_FAILED; + + default: + } + return super.getAuditLogTypeValue(); + } + + @Override protected void postConstruct() { T parameters = getParameters(); setStoragePoolId(parameters.getStoragePoolId()); @@ -261,6 +275,8 @@ } public void onJobFinished(Guid jobId) { + getResourceManager().getVmManager(jobId).setPhase(null); + getResourceManager().getVmManager(jobId).setProgress(0); Guid vdsId = pickProxyHostFromDataCenter(); VDSReturnValue retValue = runVdsCommand( VDSCommandType.QueryConvertedVm, @@ -278,6 +294,11 @@ } addImportedDevices(vm.getStaticData()); + AuditLogableBase logable = new AuditLogableBase(); + logable.addCustomValue("VmName", vm.getName()); + logable.addCustomValue("StoragePoolName", getStoragePoolName()); + logable.addCustomValue("VdsGroupName", getVdsGroupName()); + auditLog(logable, AuditLogType.IMPORTEXPORT_IMPORT_VM); } finally { runVdsCommand(VDSCommandType.DeleteV2VJob, @@ -285,6 +306,12 @@ } } + @Override + public void progress(Guid jobId, String description, int progress) { + getResourceManager().getVmManager(jobId).setPhase(description); + getResourceManager().getVmManager(jobId).setProgress(progress); + } + private void convertFailed() { removeVm(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java index 66b0372..f2db902 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java @@ -162,6 +162,7 @@ for (VM vm : vms) { VmHandler.updateVmGuestAgentVersion(vm); VmHandler.updateVmLock(vm); + VmHandler.updateOperationProgress(vm); } return vms; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java index f097aca..b3fb9a6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java @@ -85,6 +85,7 @@ import org.ovirt.engine.core.utils.lock.LockManagerFactory; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; +import org.ovirt.engine.core.vdsbroker.ResourceManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -471,6 +472,11 @@ vm.setLockInfo(getLockManager().getLockInfo(String.format("%s%s", vm.getId(), LockingGroup.VM.name()))); } + public static void updateOperationProgress(final VM vm) { + vm.setPhase(ResourceManager.getInstance().getVmManager(vm.getId()).getPhase()); + vm.setProgress(ResourceManager.getInstance().getVmManager(vm.getId()).getProgress()); + } + protected static LockManager getLockManager() { return LockManagerFactory.getLockManager(); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/JobListener.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/JobListener.java index 4e7e9c8..dbd9715 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/JobListener.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/JobListener.java @@ -5,4 +5,5 @@ public interface JobListener { public void onJobFinished(Guid jobId); + public void progress(Guid jobId, String description, int progress); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java index 6e36983..91a3574 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java @@ -54,6 +54,9 @@ private LockInfo lockInfo; + private int progress; + private String phase; + public String getUserDefinedProperties() { return vmStatic.getUserDefinedProperties(); } @@ -1879,4 +1882,20 @@ public void setGuestMemoryFree(Long guestMemoryFree) { vmDynamic.setGuestMemoryFree(guestMemoryFree); } + + public int getProgress() { + return progress; + } + + public void setProgress(int progress) { + this.progress = progress; + } + + public String getPhase() { + return phase; + } + + public void setPhase(String phase) { + this.phase = phase; + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsJob.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsJob.java index d3c3697..218cabc 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsJob.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsJob.java @@ -6,6 +6,8 @@ private Guid id; private String status; + private String description; + private int progress; @Override public Guid getId() { @@ -37,4 +39,20 @@ public int hashCode() { return id.hashCode(); } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getProgress() { + return progress; + } + + public void setProgress(int progress) { + this.progress = progress; + } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java index da8df18..10e4784 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java @@ -98,6 +98,7 @@ public void notifyVdsJobProgress(Guid jobId, VdsJob obj) { JobListener listener = jobListeners.get(jobId); + listener.progress(jobId, obj.getDescription(), obj.getProgress()); } public void notifyVdsJobFinished(Guid jobId) { diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmManager.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmManager.java index 0d4c3f3..bc0913a 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmManager.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmManager.java @@ -19,6 +19,9 @@ private final Guid id; private final ReentrantLock lock = new ReentrantLock(); + private int progress; + private String phase; + public VmManager(Guid id) { this.id = id; } @@ -76,4 +79,20 @@ protected DbFacade db() { return DbFacade.getInstance(); } + + public int getProgress() { + return progress; + } + + public void setProgress(int progress) { + this.progress = progress; + } + + public String getPhase() { + return phase; + } + + public void setPhase(String phase) { + this.phase = phase; + } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java index f2456f1..229e8cb 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java @@ -1034,6 +1034,8 @@ VdsJob job = new VdsJob(); job.setId(Guid.createGuidFromString(jobId)); job.setStatus(AssignStringValue(xmlRpcStruct, VdsProperties.status)); + job.setDescription(AssignStringValue(xmlRpcStruct, VdsProperties.jobDescription)); + job.setProgress(AssignIntValue(xmlRpcStruct, VdsProperties.jobProgress)); return job; } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java index dd7769b..8160b49 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java @@ -451,6 +451,8 @@ // V2V Jobs public static final String vdsJobs = "v2vJobs"; + public static final String jobDescription = "description"; + public static final String jobProgress = "progress"; // VM Jobs public static final String vmJobs = "vmJobs"; diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java index 32795cc..ad931c0 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java @@ -37,6 +37,7 @@ import org.ovirt.engine.ui.webadmin.widget.table.column.AbstractLineChartProgressBarColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.AbstractUptimeColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.CommentColumn; +import org.ovirt.engine.ui.webadmin.widget.table.column.ImportProgressColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.MigrationProgressColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.ReasonColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.VmStatusColumn; @@ -194,11 +195,17 @@ return null; } + if (vm.getPhase() != null) { + // will be rendered by progress column + return null; + } + return super.getValue(vm); } }; MigrationProgressColumn migrationProgressColumn = new MigrationProgressColumn(); + ImportProgressColumn importProgressColumn = new ImportProgressColumn(); ReasonColumn<VM> reasonColumn = new ReasonColumn<VM>() { @@ -213,6 +220,7 @@ list.add(statusColumn); list.add(reasonColumn); list.add(migrationProgressColumn); + list.add(importProgressColumn); Cell<VM> compositeCell = new StatusCompositeCell<VM>(list); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/ImportProgressColumn.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/ImportProgressColumn.java new file mode 100644 index 0000000..38cf3e3 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/ImportProgressColumn.java @@ -0,0 +1,42 @@ +package org.ovirt.engine.ui.webadmin.widget.table.column; + +import org.ovirt.engine.core.common.businessentities.VM; + +import com.google.gwt.safehtml.shared.SafeHtml; + +public class ImportProgressColumn extends AbstractOneColorPercentColumn<VM> { + + public ImportProgressColumn() { + super(ProgressBarColors.GREEN); + } + + @Override + protected Integer getProgressValue(VM object) { + return object.getPhase() != null ? object.getProgress() : null; + } + + @Override + public SafeHtml getValue(VM object) { + if (object.getPhase() == null) { + return null; + } + + return super.getValue(object); + } + + @Override + protected String getStyle() { + return "engine-progress-box-migration";//$NON-NLS-1$ + } + + @Override + protected String getProgressText(VM object) { + if (object.getPhase() != null) { + return object.getProgress() == 0 ? + "Initializing" //$NON-NLS-1$ + : object.getPhase(); + } + + return super.getProgressText(object); + } +} -- To view, visit https://gerrit.ovirt.org/39879 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icdeab17d43923cf86b322ba5c4233b758ac8b37e Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
