Arik Hadas has posted comments on this change. Change subject: core, engine: Prevent snapshot in ppc64 ......................................................................
Patch Set 1: (5 comments) .................................................... File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java Line 150: } Line 151: Line 152: private MemoryImageBuilder createMemoryImageBuilder() { Line 153: boolean archSupportSnapshot = isSnapshotSupportedByArchitecture(getVm().getClusterArch(), getVm().getVdsGroupCompatibilityVersion()); Line 154: if (!FeatureSupported.memorySnapshot(getVm().getVdsGroupCompatibilityVersion()) || archSupportSnapshot) { should be !archSupportSnapshot, right? Line 155: return new NullableMemoryImageBuilder(); Line 156: } Line 157: Line 158: if (getParameters().getSnapshotType() == SnapshotType.STATELESS) { Line 250: } Line 251: Line 252: boolean archSupportSnapshot = isSnapshotSupportedByArchitecture(getVm().getClusterArch(), getVm().getVdsGroupCompatibilityVersion()); Line 253: if (getParameters().isSaveMemory() Line 254: && (archSupportSnapshot || !FeatureSupported.memorySnapshot(getVm().getVdsGroupCompatibilityVersion()))) { same here (!archSupportSnapshot) ? how about extract this check to separate method like 'isMemorySnapshotSupported' that checks the cluster compatibility version and the architecture (because I see that is appears multiple times here) ? Line 255: log.warnFormat("A memory snapshot was required but not created, since VM architecture does not support it.", getVmId()); Line 256: } Line 257: Line 258: incrementVmGeneration(); Line 251: Line 252: boolean archSupportSnapshot = isSnapshotSupportedByArchitecture(getVm().getClusterArch(), getVm().getVdsGroupCompatibilityVersion()); Line 253: if (getParameters().isSaveMemory() Line 254: && (archSupportSnapshot || !FeatureSupported.memorySnapshot(getVm().getVdsGroupCompatibilityVersion()))) { Line 255: log.warnFormat("A memory snapshot was required but not created, since VM architecture does not support it.", getVmId()); this log is not accurate because it might be printed when getParameters().isSaveMemory() is true and FeatureSupported.memorySnapshot() is false - no matter what the architecture be and if so it might confuse us Line 256: } Line 257: Line 258: incrementVmGeneration(); Line 259: .................................................... File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java Line 165: /** Line 166: * Check if architecture supports snapshot Line 167: * @return Line 168: */ Line 169: public boolean isSnapshotSupportedByArchitecture (ArchitectureType architecture, Version compatibilityVersion) { I think that it is not the best place for this method since it probably won't be used for most of the commands that inherit VmCommand. It can be accessible to all the snapshot related commands by putting it in SnapshotsManager (as static method) which is a more appropriate place for it imo. Maybe it even worth that this method will get VM and will check both the cluster compatibility version and the architecture Line 170: boolean supported = false; Line 171: if (architecture != ArchitectureType.undefined) { Line 172: supported = ArchStrategyFactory.getStrategy(architecture).run(new IsSnapshotSupported(compatibilityVersion)).returnValue(); Line 173: } Line 167: * @return Line 168: */ Line 169: public boolean isSnapshotSupportedByArchitecture (ArchitectureType architecture, Version compatibilityVersion) { Line 170: boolean supported = false; Line 171: if (architecture != ArchitectureType.undefined) { Did you consider to add "Nullable strategy" for undefined architecture? it will save those checks before using the ArchStrategyFactory, and I think the implementation will be cleaner Line 172: supported = ArchStrategyFactory.getStrategy(architecture).run(new IsSnapshotSupported(compatibilityVersion)).returnValue(); Line 173: } Line 174: Line 175: return supported; -- To view, visit http://gerrit.ovirt.org/21657 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4f201b63ddf441a9bc76a37fda33f54fa766d937 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Leonardo Bianconi <leonardo.bianc...@eldorado.org.br> Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com> Gerrit-Reviewer: Arik Hadas <aha...@redhat.com> Gerrit-Reviewer: Gustavo Frederico Temple Pedrosa <gustavo.pedr...@eldorado.org.br> Gerrit-Reviewer: Leonardo Bianconi <leonardo.bianc...@eldorado.org.br> Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com> Gerrit-Reviewer: Roy Golan <rgo...@redhat.com> Gerrit-Reviewer: Vitor de Lima <vitor.l...@eldorado.org.br> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches