Moti Asayag has posted comments on this change.

Change subject: engine: event on interface status change
......................................................................


Patch Set 2:

(11 comments)

Please add a third message to distinct slaves status change:
The RFE asks for indication of the slave status.

I'd merge the interface and bond to the same message, but you may leave it as 
is.

In addition, i think it is reasonable to ask for events to subscribe to for 
notifications via the engine-notifier.g

http://gerrit.ovirt.org/#/c/26104/2/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
File 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties:

Line 217: VDS_ACTIVATE_FAILED=Failed to activate Host ${VdsName}.(User: 
${UserName}).
Line 218: VDS_ACTIVATE_FAILED_ASYNC=Failed to autorecover Host ${VdsName}.
Line 219: HOST_REFRESHED_CAPABILITIES=Successfully refreshed the capabilities 
of host ${VdsName}.
Line 220: HOST_REFRESH_CAPABILITIES_FAILED=Failed to refresh the capabilities 
of host ${VdsName}.
Line 221: HOST_IFACE_DOWN=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to down
s/HOST_IFACE_DOWN/HOST_INTERFACE_STATE_DOWN
Line 222: HOST_IFACE_UP=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to up
Line 223: HOST_BOND_DOWN=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to down
Line 224: HOST_BOND_UP=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to up
Line 225: VDS_DETECTED=Status of host ${VdsName} was set to ${HostStatus}.


Line 218: VDS_ACTIVATE_FAILED_ASYNC=Failed to autorecover Host ${VdsName}.
Line 219: HOST_REFRESHED_CAPABILITIES=Successfully refreshed the capabilities 
of host ${VdsName}.
Line 220: HOST_REFRESH_CAPABILITIES_FAILED=Failed to refresh the capabilities 
of host ${VdsName}.
Line 221: HOST_IFACE_DOWN=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to down
Line 222: HOST_IFACE_UP=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to up
s/HOST_IFACE_UP/HOST_INTERFACE_STATE_UP
Line 223: HOST_BOND_DOWN=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to down
Line 224: HOST_BOND_UP=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to up
Line 225: VDS_DETECTED=Status of host ${VdsName} was set to ${HostStatus}.
Line 226: VDS_FAILURE=Host ${VdsName} is non responsive.


Line 219: HOST_REFRESHED_CAPABILITIES=Successfully refreshed the capabilities 
of host ${VdsName}.
Line 220: HOST_REFRESH_CAPABILITIES_FAILED=Failed to refresh the capabilities 
of host ${VdsName}.
Line 221: HOST_IFACE_DOWN=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to down
Line 222: HOST_IFACE_UP=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to up
Line 223: HOST_BOND_DOWN=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to down
s/HOST_BOND_DOWN/HOST_BOND_STATE_DOWN
Line 224: HOST_BOND_UP=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to up
Line 225: VDS_DETECTED=Status of host ${VdsName} was set to ${HostStatus}.
Line 226: VDS_FAILURE=Host ${VdsName} is non responsive.
Line 227: VDS_MAINTENANCE=Host ${VdsName} was switched to Maintenance Mode.


Line 220: HOST_REFRESH_CAPABILITIES_FAILED=Failed to refresh the capabilities 
of host ${VdsName}.
Line 221: HOST_IFACE_DOWN=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to down
Line 222: HOST_IFACE_UP=Interface '${InterfaceName}' on host ${VdsName}, 
changed state to up
Line 223: HOST_BOND_DOWN=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to down
Line 224: HOST_BOND_UP=Bond '${InterfaceName}' on host ${VdsName}, changed 
state to up
s/HOST_BOND_UP/HOST_BOND_STATE_UP
Line 225: VDS_DETECTED=Status of host ${VdsName} was set to ${HostStatus}.
Line 226: VDS_FAILURE=Host ${VdsName} is non responsive.
Line 227: VDS_MAINTENANCE=Host ${VdsName} was switched to Maintenance Mode.
Line 228: VDS_MAINTENANCE_MANUAL_HA=Host ${VdsName} was switched to Maintenance 
mode, but Hosted Engine HA maintenance could not be enabled. Please enable it 
manually.


http://gerrit.ovirt.org/#/c/26104/2/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java:

Line 755:         Set<VdsNetworkInterface> slaves = new HashSet<>();
Line 756:         Map<String, InterfaceStatus> monitoredInterfaces = new 
HashMap<String, InterfaceStatus>();
Line 757: 
Line 758:         for (VdsNetworkInterface iface : interfaces) {
Line 759:             if (iface.getBondName() != null) {
it would be nice to expose new method in VdsNetworkInterface named isSlave 
which will encapsulate this logic (and replace any other places which perform 
the same check)
Line 760:                 slaves.add(iface);
Line 761:             }
Line 762: 
Line 763:             String parentIfaceName =


Line 760:                 slaves.add(iface);
Line 761:             }
Line 762: 
Line 763:             String parentIfaceName =
Line 764:                     iface.getVlanId() == null ? iface.getName() : 
NetworkUtils.stripVlan(iface.getName());
no need for null check - see the javadoc of NetworkUtils.stripVlan(String):

    // method return interface name without vlan:
    // input: eth0.5 output eth0
    // input" eth0 output eth0
Line 765: 
Line 766:             // If the parent interface already marked as monitored- 
no need to check it again
Line 767:             if (monitoredInterfaces.containsKey(parentIfaceName)) {
Line 768:                 continue;


Line 769:             }
Line 770: 
Line 771:             // The status of the interface should be monitored only 
if it has networks attached to it or has labels
Line 772:             if (StringUtils.isNotEmpty(iface.getNetworkName())
Line 773:                     || (iface.getLabels() != null && 
!iface.getLabels().isEmpty())) {
use NetworkUtils.isLabeled(iface) instead
Line 774:                 VdsNetworkInterface parentIface = iface;
Line 775:                 // If vlan find the parent interface
Line 776:                 if (iface.getVlanId() != null) {
Line 777:                     for (VdsNetworkInterface tmpIface : interfaces) {


Line 773:                     || (iface.getLabels() != null && 
!iface.getLabels().isEmpty())) {
Line 774:                 VdsNetworkInterface parentIface = iface;
Line 775:                 // If vlan find the parent interface
Line 776:                 if (iface.getVlanId() != null) {
Line 777:                     for (VdsNetworkInterface tmpIface : interfaces) {
please replace the for loop with Entities.entitiesByName(interfaces) that will 
be saved to a local variable outside of the outer loop.
Line 778:                         if 
(parentIfaceName.equals(tmpIface.getName())) {
Line 779:                             parentIface = tmpIface;
Line 780:                         }
Line 781:                     }


Line 778:                         if 
(parentIfaceName.equals(tmpIface.getName())) {
Line 779:                             parentIface = tmpIface;
Line 780:                         }
Line 781:                     }
Line 782:                 }
please add a space line after the parenthesis
Line 783:                 monitoredInterfaces.put(parentIface.getName(), 
parentIface.getStatistics().getStatus());
Line 784:             }
Line 785:         }
Line 786: 


Line 779:                             parentIface = tmpIface;
Line 780:                         }
Line 781:                     }
Line 782:                 }
Line 783:                 monitoredInterfaces.put(parentIface.getName(), 
parentIface.getStatistics().getStatus());
why not to use parentIfaceName as the key ?
Line 784:             }
Line 785:         }
Line 786: 
Line 787:         // Slaves should be monitored if the bond is monitored


Line 797:                     && oldIface.getStatistics().getStatus() != 
status) {
Line 798:                 AuditLogableBase logable = new 
AuditLogableBase(_vds.getId());
Line 799:                 logable.setCustomId(oldIface.getName());
Line 800:                 logable.addCustomValue("InterfaceName", 
oldIface.getName());
Line 801:                 if (oldIface.getBonded() != null && 
oldIface.getBonded()) {
you could use:

if (Boolean.TRUE.equals(oldIface.getBonded())) {
  ...
  }
Line 802:                     auditLog(logable, status == InterfaceStatus.UP ? 
AuditLogType.HOST_BOND_UP
Line 803:                             : AuditLogType.HOST_BOND_DOWN);
Line 804:                 } else {
Line 805:                     auditLog(logable, status == InterfaceStatus.UP ? 
AuditLogType.HOST_IFACE_UP


-- 
To view, visit http://gerrit.ovirt.org/26104
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I76953e4b52e35d2e18b6bc68051fa7dd6f3db129
Gerrit-PatchSet: 2
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <alkap...@redhat.com>
Gerrit-Reviewer: Martin Mucha <mmu...@redhat.com>
Gerrit-Reviewer: Moti Asayag <masa...@redhat.com>
Gerrit-Reviewer: Yevgeny Zaspitsky <yzasp...@redhat.com>
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

Reply via email to