Refactor few process of VirtualMachineManagerImpl and improve logs (#4966)

* Improve logs

* Remove unnecessary comments

* Use diamond inference

* Fix some logs

* Remove unnecessary unboxing

* Create method to handle job result

* Remove unused vars and fix some logics

* Extract code to method and few adjusts

* Use CollectionUtils

* Extract pending work job validation to method

* Create new constructors

* Extract work job and info creation to a method

* Extract submit async job to a method

* Extract find vm by id to a method

* Change log level from trace to debug

* Remove unnused methods and add logs

* Undo code remotion

* Remove asserts and fix conditionals

* Address @GabrielBrascher reviews

* Remove double quotes from keys in manual json

* Undo code remotion

* Add object to log

* Remove statement from try/catch

* Implement toString with ReflectionToStringBuilderUtils

* Fix errors related to merge main

Co-authored-by: Daniel Augusto Veronezi Salvador <daniel@scclouds.com.br>
This commit is contained in:
Daniel Augusto Veronezi Salvador 2021-11-23 07:22:21 -03:00 committed by GitHub
parent d8004871e5
commit ddd2fcaf2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 745 additions and 1195 deletions

View File

@ -20,6 +20,7 @@ import java.io.Serializable;
import java.net.URI; import java.net.URI;
import org.apache.cloudstack.api.InternalIdentity; import org.apache.cloudstack.api.InternalIdentity;
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
import com.cloud.network.Network; import com.cloud.network.Network;
import com.cloud.network.Networks.AddressFormat; import com.cloud.network.Networks.AddressFormat;
@ -430,16 +431,6 @@ public class NicProfile implements InternalIdentity, Serializable {
@Override @Override
public String toString() { public String toString() {
return new StringBuilder("NicProfile[").append(id) return String.format("NicProfile %s", ReflectionToStringBuilderUtils.reflectOnlySelectedFields(this, "id", "vmId", "reservationId", "iPv4Address", "broadcastUri"));
.append("-")
.append(vmId)
.append("-")
.append(reservationId)
.append("-")
.append(iPv4Address)
.append("-")
.append(broadcastUri)
.append("]")
.toString();
} }
} }

View File

@ -34,6 +34,13 @@ public class VmWork implements Serializable {
this.handlerName = handlerName; this.handlerName = handlerName;
} }
public VmWork(VmWork vmWork) {
this.userId = vmWork.getUserId();
this.accountId = vmWork.getAccountId();
this.vmId = vmWork.getVmId();
this.handlerName = vmWork.getHandlerName();
}
public long getUserId() { public long getUserId() {
return userId; return userId;
} }

View File

@ -30,6 +30,12 @@ public class VmWorkAddVmToNetwork extends VmWork {
requstedNicProfile = requested; requstedNicProfile = requested;
} }
public VmWorkAddVmToNetwork(VmWork vmWork, long networkId, NicProfile requested) {
super(vmWork);
this.networkId = networkId;
this.requstedNicProfile = requested;
}
public Long getNetworkId() { public Long getNetworkId() {
return networkId; return networkId;
} }

View File

@ -41,18 +41,27 @@ public class VmWorkMigrate extends VmWork {
public VmWorkMigrate(long userId, long accountId, long vmId, String handlerName, public VmWorkMigrate(long userId, long accountId, long vmId, String handlerName,
long srcHostId, DeployDestination dst) { long srcHostId, DeployDestination dst) {
super(userId, accountId, vmId, handlerName); super(userId, accountId, vmId, handlerName);
setConstructorParams(srcHostId, dst);
}
public VmWorkMigrate(VmWork vmWork, long srcHostId, DeployDestination dest) {
super(vmWork);
setConstructorParams(srcHostId, dest);
}
private void setConstructorParams(long srcHostId, DeployDestination dest) {
this.srcHostId = srcHostId; this.srcHostId = srcHostId;
zoneId = dst.getDataCenter() != null ? dst.getDataCenter().getId() : null; this.zoneId = dest.getDataCenter() != null ? dest.getDataCenter().getId() : null;
podId = dst.getPod() != null ? dst.getPod().getId() : null; this.podId = dest.getPod() != null ? dest.getPod().getId() : null;
clusterId = dst.getCluster() != null ? dst.getCluster().getId() : null; this.clusterId = dest.getCluster() != null ? dest.getCluster().getId() : null;
hostId = dst.getHost() != null ? dst.getHost().getId() : null; this.hostId = dest.getHost() != null ? dest.getHost().getId() : null;
if (dst.getStorageForDisks() != null) { if (dest.getStorageForDisks() != null) {
storage = new HashMap<String, String>(dst.getStorageForDisks().size()); this.storage = new HashMap<>(dest.getStorageForDisks().size());
for (Map.Entry<Volume, StoragePool> entry : dst.getStorageForDisks().entrySet()) { for (Map.Entry<Volume, StoragePool> entry : dest.getStorageForDisks().entrySet()) {
storage.put(entry.getKey().getUuid(), entry.getValue().getUuid()); this.storage.put(entry.getKey().getUuid(), entry.getValue().getUuid());
} }
} else { } else {
storage = null; this.storage = null;
} }
} }

View File

@ -30,6 +30,11 @@ public class VmWorkMigrateAway extends VmWork {
this.srcHostId = srcHostId; this.srcHostId = srcHostId;
} }
public VmWorkMigrateAway(VmWork vmWork, long srcHostId) {
super(vmWork);
this.srcHostId = srcHostId;
}
public long getSrcHostId() { public long getSrcHostId() {
return srcHostId; return srcHostId;
} }

View File

@ -30,6 +30,11 @@ public class VmWorkMigrateForScale extends VmWorkMigrate {
this.newSvcOfferingId = newSvcOfferingId; this.newSvcOfferingId = newSvcOfferingId;
} }
public VmWorkMigrateForScale(VmWork vmWork, long srcHostId, DeployDestination dest, Long newSvcOfferingId) {
super(vmWork, srcHostId, dest);
this.newSvcOfferingId = newSvcOfferingId;
}
public Long getNewServiceOfferringId() { public Long getNewServiceOfferringId() {
return newSvcOfferingId; return newSvcOfferingId;
} }

View File

@ -35,6 +35,13 @@ public class VmWorkMigrateWithStorage extends VmWork {
this.volumeToPool = volumeToPool; this.volumeToPool = volumeToPool;
} }
public VmWorkMigrateWithStorage(VmWork vmWork, long srcHostId, long destHostId, Map<Long, Long> volumeToPool) {
super(vmWork);
this.srcHostId = srcHostId;
this.destHostId = destHostId;
this.volumeToPool = volumeToPool;
}
public long getSrcHostId() { public long getSrcHostId() {
return srcHostId; return srcHostId;
} }

View File

@ -34,6 +34,11 @@ public class VmWorkReboot extends VmWork {
setParams(params); setParams(params);
} }
public VmWorkReboot(VmWork vmWork, Map<VirtualMachineProfile.Param, Object> params) {
super(vmWork);
setParams(params);
}
public Map<VirtualMachineProfile.Param, Object> getParams() { public Map<VirtualMachineProfile.Param, Object> getParams() {
Map<VirtualMachineProfile.Param, Object> map = new HashMap<VirtualMachineProfile.Param, Object>(); Map<VirtualMachineProfile.Param, Object> map = new HashMap<VirtualMachineProfile.Param, Object>();

View File

@ -39,6 +39,14 @@ public class VmWorkReconfigure extends VmWork {
this.sameHost = sameHost; this.sameHost = sameHost;
} }
public VmWorkReconfigure(VmWork vmWork, long oldServiceOfferingId, long newServiceOfferingId, Map<String, String> customParameters, boolean sameHost) {
super(vmWork);
this.oldServiceOfferingId = oldServiceOfferingId;
this.newServiceOfferingId = newServiceOfferingId;
this.customParameters = customParameters;
this.sameHost = sameHost;
}
public Long getOldServiceOfferingId() { public Long getOldServiceOfferingId() {
return oldServiceOfferingId; return oldServiceOfferingId;
} }

View File

@ -27,6 +27,11 @@ public class VmWorkRemoveNicFromVm extends VmWork {
this.nicId = nicId; this.nicId = nicId;
} }
public VmWorkRemoveNicFromVm(VmWork vmWork, long nicId) {
super(vmWork);
this.nicId = nicId;
}
public Long getNicId() { public Long getNicId() {
return nicId; return nicId;
} }

View File

@ -33,6 +33,12 @@ public class VmWorkRemoveVmFromNetwork extends VmWork {
this.broadcastUri = broadcastUri; this.broadcastUri = broadcastUri;
} }
public VmWorkRemoveVmFromNetwork(VmWork vmWork, Network network, URI broadcastUri) {
super(vmWork);
this.network = network;
this.broadcastUri = broadcastUri;
}
public Network getNetwork() { public Network getNetwork() {
return network; return network;
} }

View File

@ -27,6 +27,11 @@ public class VmWorkRestore extends VmWork {
this.templateId = templateId; this.templateId = templateId;
} }
public VmWorkRestore(VmWork vmWork, Long templateId) {
super(vmWork);
this.templateId = templateId;
}
public Long getTemplateId() { public Long getTemplateId() {
return templateId; return templateId;
} }

View File

@ -54,6 +54,10 @@ public class VmWorkStart extends VmWork {
super(userId, accountId, vmId, handlerName); super(userId, accountId, vmId, handlerName);
} }
public VmWorkStart(VmWork vmWork){
super(vmWork);
}
public DeploymentPlan getPlan() { public DeploymentPlan getPlan() {
if (podId != null || clusterId != null || hostId != null || poolId != null || physicalNetworkId != null || avoids !=null) { if (podId != null || clusterId != null || hostId != null || poolId != null || physicalNetworkId != null || avoids !=null) {

View File

@ -26,6 +26,11 @@ public class VmWorkStop extends VmWork {
this.cleanup = cleanup; this.cleanup = cleanup;
} }
public VmWorkStop(VmWork vmWork, boolean cleanup) {
super(vmWork);
this.cleanup = cleanup;
}
public boolean isCleanup() { public boolean isCleanup() {
return cleanup; return cleanup;
} }

View File

@ -23,7 +23,7 @@ public class VmWorkStorageMigration extends VmWork {
Map<Long, Long> volumeToPool; Map<Long, Long> volumeToPool;
public VmWorkStorageMigration(long userId, long accountId, long vmId, String handlerName, Map <Long, Long> volumeToPool) { public VmWorkStorageMigration(long userId, long accountId, long vmId, String handlerName, Map<Long, Long> volumeToPool) {
super(userId, accountId, vmId, handlerName); super(userId, accountId, vmId, handlerName);
this.volumeToPool = volumeToPool; this.volumeToPool = volumeToPool;
@ -32,4 +32,9 @@ public class VmWorkStorageMigration extends VmWork {
public Map<Long, Long> getVolumeToPool() { public Map<Long, Long> getVolumeToPool() {
return volumeToPool; return volumeToPool;
} }
public VmWorkStorageMigration(VmWork vmWork, Map<Long, Long> volumeToPool) {
super(vmWork);
this.volumeToPool = volumeToPool;
}
} }

View File

@ -29,6 +29,12 @@ public class VmWorkUpdateDefaultNic extends VmWork {
this.defaultNicId = defaultNicId; this.defaultNicId = defaultNicId;
} }
public VmWorkUpdateDefaultNic(VmWork vmWork, long nicId, long defaultNicId) {
super(vmWork);
this.nicId = nicId;
this.defaultNicId = defaultNicId;
}
public Long getNicId() { public Long getNicId() {
return nicId; return nicId;
} }

View File

@ -31,6 +31,8 @@ import javax.persistence.Temporal;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
import javax.persistence.Transient; import javax.persistence.Transient;
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.TemplateType; import com.cloud.storage.Storage.TemplateType;
@ -551,15 +553,9 @@ public class VMTemplateVO implements VirtualMachineTemplate {
return uniqueName.hashCode(); return uniqueName.hashCode();
} }
@Transient
String toString;
@Override @Override
public String toString() { public String toString() {
if (toString == null) { return String.format("Template %s", ReflectionToStringBuilderUtils.reflectOnlySelectedFields(this, "id", "uniqueName", "format"));
toString = new StringBuilder("Tmpl[").append(id).append("-").append(format).append("-").append(uniqueName).toString();
}
return toString;
} }
public void setRemoved(Date removed) { public void setRemoved(Date removed) {

View File

@ -24,6 +24,7 @@ import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command; import com.cloud.agent.api.Command;
import com.cloud.agent.api.Command.OnError; import com.cloud.agent.api.Command.OnError;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import java.util.stream.Collectors;
public class Commands implements Iterable<Command> { public class Commands implements Iterable<Command> {
OnError _handler; OnError _handler;
@ -150,4 +151,10 @@ public class Commands implements Iterable<Command> {
public Iterator<Command> iterator() { public Iterator<Command> iterator() {
return _cmds.iterator(); return _cmds.iterator();
} }
@Override
public String toString() {
return _cmds.stream().map(cmd -> cmd.toString()).collect(Collectors.joining(", "));
}
} }