Martin Peřina has posted comments on this change.
Change subject: core: Add proxy agent support verification
......................................................................
Patch Set 1:
(3 comments)
....................................................
File
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/FenceExecutor.java
Line 281: private VDS getFenceProxy(final boolean onlyUpHost, final boolean
filterSelf, final PMProxyOptions proxyOptions) {
Line 282: List<VDS> hosts = DbFacade.getInstance().getVdsDao().getAll();
Line 283: VDS proxyHost = LinqUtils.firstOrNull(hosts, new
Predicate<VDS>() {
Line 284: @Override
Line 285: public boolean eval(VDS vds) {
I wonder if moving repeated conditions wouldn't make code simpler:
public boolean eval(VDS vds) {
if (!isAgentSupported(vds)) {
return false;
}
if ((proxyOptions == PMProxyOptions.CLUSTER
&&
vds.getVdsGroupId().equals(_vds.getVdsGroupId())
|| (proxyOptions == PMProxyOptions.DC
&&
vds.getStoragePoolId().equals(_vds.getStoragePoolId()))) {
if (onlyUpHost) {
if (filterSelf) {
return !vds.getId().equals(_vds.getId())
&& vds.getStatus() == VDSStatus.Up;
} else {
return vds.getStatus() == VDSStatus.Up;
}
} else {
if (filterSelf) {
return !isHostNetworkUnreacable(vds)
&& !vds.getId().equals(_vds.getId());
} else {
return !isHostNetworkUnreacable(vds);
}
}
}
return false;
}
But please verify me, I didn't test it :-)
Line 286: if (proxyOptions == PMProxyOptions.CLUSTER) {
Line 287: if (onlyUpHost) {
Line 288: if (filterSelf) {
Line 289: return !vds.getId().equals(_vds.getId())
Line 347: private boolean isAgentSupported(VDS vds) {
Line 348: boolean ret = false;
Line 349: // Checks if the requested _vds PM agent is supported
by the candidate proxy (vds)
Line 350: VdsFenceOptions options = new
VdsFenceOptions(vds.getVdsGroupCompatibilityVersion().getValue());
Line 351: if (!StringUtils.isEmpty(_vds.getManagementIp())) {
Wouldn't it be better to use StringUtils.isNotEmpty?
Line 352: ret = options.isAgentSupported(_vds.getPmType());
Line 353: }
Line 354: // In a case that a secondary agent is defined,
require the proxy host to be
Line 355: // in a cluster that supports both Primary &
Secondary agents since in concurrent
Line 354: // In a case that a secondary agent is defined,
require the proxy host to be
Line 355: // in a cluster that supports both Primary &
Secondary agents since in concurrent
Line 356: // PM devices we need both, and in sequential PM
devices Primary might fail and then
Line 357: // Secondary PM agent should attempt to fence the Host
Line 358: if (!StringUtils.isEmpty(_vds.getPmSecondaryIp())) {
Same as above
Line 359: ret =
options.isAgentSupported(_vds.getPmSecondaryType());
Line 360: }
Line 361: return ret;
Line 362: }
--
To view, visit http://gerrit.ovirt.org/22423
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I6e6610e1e7be660c894c879288d9df9b0956eda5
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Eli Mesika <[email protected]>
Gerrit-Reviewer: Eli Mesika <[email protected]>
Gerrit-Reviewer: Martin Peřina <[email protected]>
Gerrit-Reviewer: Yair Zaslavsky <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches