Skip to content

Commit

Permalink
NMS-15808: fix protocol mismatch between ALEC and Horizon 32
Browse files Browse the repository at this point in the history
* refactor Enlinkd to use protocol constants from OPA
* sync kafka protobuf with ALEC
* clean up karaf feature protobuf usage
  • Loading branch information
Benjamin Reed committed Jul 6, 2023
1 parent 4b737d4 commit 0159f4f
Show file tree
Hide file tree
Showing 50 changed files with 420 additions and 415 deletions.
13 changes: 12 additions & 1 deletion container/features/src/main/resources/features-core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,18 @@
</feature>

<feature name="org.json" version="${jsonVersion}" description="org.json">
<bundle>wrap:mvn:org.json/json/${jsonVersion}$Export-Package=org.json</bundle>
<bundle dependency="true">wrap:mvn:org.json/json/${jsonVersion}$Export-Package=org.json</bundle>
</feature>

<feature name="protobuf" version="${protobufVersion}" description="Protobuf gRPC">
<bundle dependency="true">mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
</feature>

<feature name="protobuf-util" version="${protobufVersion}" description="Protobuf gRPC utils">
<feature version="${protobufVersion}">protobuf</feature>
<!-- protobuf is way pickier about guava than it should be, grr -->
<bundle>mvn:com.google.guava/guava/30.1.1-jre</bundle>
<bundle dependency="true">mvn:com.google.protobuf/protobuf-java-util/${protobufVersion}</bundle>
</feature>

<feature name="snakeyaml" version="${snakeyamlVersion}" description="SnakeYAML">
Expand Down
2 changes: 1 addition & 1 deletion container/features/src/main/resources/features-minion.xml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@
<feature>opennms-dnsresolver-api</feature>
<feature>dropwizard-metrics</feature>
<feature>opennms-util</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<feature version="${protobufVersion}">protobuf</feature>
<bundle>mvn:com.google.code.gson/gson/${gsonVersion}</bundle>
<bundle>mvn:org.mongodb/bson/${bsonVersion}</bundle>
<bundle>mvn:org.apache.commons/commons-csv/${commonsCsvVersion}</bundle>
Expand Down
5 changes: 2 additions & 3 deletions container/features/src/main/resources/features-sentinel.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<feature>dropwizard-metrics</feature>
<!-- Needed to bootstrap opennms-core-ipc-sink-api Spring context -->
<feature>camel-spring</feature>
<feature version="${protobufVersion}">protobuf</feature>

<feature>opennms-core-daemon</feature>
<feature>opennms-core-ipc-sink-api</feature>
Expand All @@ -113,8 +114,6 @@
<feature>sentinel-thresholding-service</feature>
<feature>opennms-util</feature>

<bundle dependency="true">mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>

<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.api/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.config/org.opennms.features.telemetry.config.api/${project.version}</bundle>

Expand All @@ -137,7 +136,7 @@
<feature>sentinel-kvstore-api</feature>
<feature>opennms-kafka</feature>
<feature>rate-limited-logger</feature>
<bundle>mvn:com.google.protobuf/protobuf-java-util/${protobufVersion}</bundle>
<feature version="${protobufVersion}">protobuf-util</feature>
<bundle>mvn:org.opennms.features.flows/org.opennms.features.flows.kafka-persistence/${project.version}</bundle>
<bundle>wrap:mvn:org.apache.commons/commons-csv/${commonsCsvVersion}</bundle>
<bundle>mvn:org.opennms.features.flows/org.opennms.features.flows.api/${project.version}</bundle>
Expand Down
23 changes: 11 additions & 12 deletions container/features/src/main/resources/features.xml
Original file line number Diff line number Diff line change
Expand Up @@ -503,12 +503,12 @@
<feature version="${guavaOsgiVersion}">guava</feature>
<feature>javax.mail</feature>
<feature>org.json</feature>
<feature version="${protobufVersion}">protobuf</feature>
<feature>rate-limited-logger</feature>
<feature>opennms-core</feature>
<feature>opennms-distributed-core-api</feature>
<feature>opennms-integration-api</feature>
<feature>opennms-core-tracing</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.core.ipc.sink/org.opennms.core.ipc.sink.api/${project.version}</bundle>
<bundle>mvn:org.opennms.core.ipc.sink/org.opennms.core.ipc.sink.common/${project.version}</bundle>
<bundle>mvn:org.opennms.core.ipc.sink/org.opennms.core.ipc.sink.xml/${project.version}</bundle>
Expand Down Expand Up @@ -1025,29 +1025,29 @@
<feature name="opennms-kafka-producer" version="${project.version}" description="OpenNMS :: Kafka :: Producer">
<feature version="${guavaOsgiVersion}">guava</feature>
<feature version="${kafkaVersion}">kafka-streams</feature>
<feature version="${protobufVersion}">protobuf</feature>
<feature>rate-limited-logger</feature>
<feature>opennms-collection-api</feature>
<feature>opennms-situation-feedback-api</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.core.ipc.common/org.opennms.core.ipc.common.kafka/${project.version}</bundle>
<bundle>mvn:org.opennms.features.kafka/org.opennms.features.kafka.producer/${project.version}</bundle>
</feature>
<feature name="opennms-kafka-consumer" version="${project.version}" description="OpenNMS :: Kafka :: Consumer">
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-kafka</feature>
<feature>opennms-events-api</feature>
<feature>opennms-model</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.core.ipc.common/org.opennms.core.ipc.common.kafka/${project.version}</bundle>
<bundle>mvn:org.opennms.features.kafka/org.opennms.features.kafka.consumer/${project.version}</bundle>
</feature>
<feature name="opennms-telemetry-collection" version="${project.version}" description="OpenNMS :: Telemetry :: Collection">
<feature version="${guavaOsgiVersion}">guava</feature>
<feature version="${netty4Version}">netty4</feature>
<feature>dropwizard-metrics</feature>
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-collection-api</feature>
<feature>opennms-thresholding-api</feature>
<feature>opennms-osgi-jsr223</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:com.google.code.gson/gson/${gsonVersion}</bundle>
<bundle>wrap:mvn:io.pkts/pkts-core/${pktsVersion}</bundle>
<bundle>wrap:mvn:io.pkts/pkts-buffers/${pktsVersion}</bundle>
Expand All @@ -1064,13 +1064,13 @@
<feature version="${netty4Version}">netty4</feature>
<feature>camel-spring</feature>
<feature>dropwizard-metrics</feature>
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-core-daemon</feature>
<feature>opennms-core-ipc-sink-api</feature>
<feature>opennms-dao-api</feature>
<feature>opennms-dao</feature>
<feature>opennms-telemetry-collection</feature>
<feature>opennms-util</feature>
<bundle dependency="true">mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.api/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.common/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.registry/${project.version}</bundle>
Expand Down Expand Up @@ -1101,24 +1101,24 @@
<feature>commons-net</feature>
</feature>
<feature name="opennms-telemetry-jti" version="${project.version}" description="OpenNMS :: Telemetry :: JTI">
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-telemetry-collection</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.jti/org.opennms.features.telemetry.protocols.jti.adapter/${project.version}</bundle>
</feature>
<feature name="opennms-telemetry-nxos" version="${project.version}" description="OpenNMS :: Telemetry :: NX-OS">
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-telemetry-collection</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.nxos/org.opennms.features.telemetry.protocols.nxos.adapter/${project.version}</bundle>
</feature>
<feature name="opennms-telemetry-graphite" version="${project.version}" description="OpenNMS :: Telemetry :: Graphite">
<feature>opennms-telemetry-collection</feature>
<bundle>mvn:org.opennms.features.telemetry.protocols.graphite/org.opennms.features.telemetry.protocols.graphite.adapter/${project.version}</bundle>
</feature>
<feature name="opennms-telemetry-openconfig" description="OpenNMS :: Telemetry :: OpenConfig" version="${project.version}">
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-telemetry-collection</feature>
<feature>opennms-telemetry-openconfig-client</feature>
<feature>opennms-rpc-utils</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.core.grpc/org.opennms.core.grpc.osgi/${project.version}</bundle>
<bundle>mvn:org.opennms.features.openconfig/org.opennms.features.openconfig.api/${project.version}</bundle>
<bundle>mvn:org.opennms.features.openconfig/org.opennms.features.openconfig.common/${project.version}</bundle>
Expand Down Expand Up @@ -1172,6 +1172,7 @@
<feature>opennms-jest</feature>
<feature version="${guavaOsgiVersion}">guava</feature>
<feature version="${netty4Version}">netty4</feature>
<feature version="${protobufVersion}">protobuf-util</feature>
<feature>quartz</feature>
<feature>opennms-core-tracing</feature>
<feature>opennms-distributed-core-api</feature>
Expand All @@ -1198,8 +1199,6 @@
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.api/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.common/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.listeners/${project.version}</bundle>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>mvn:com.google.protobuf/protobuf-java-util/${protobufVersion}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.common/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.flows/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.netflow/org.opennms.features.telemetry.protocols.netflow.parser/${project.version}</bundle>
Expand Down Expand Up @@ -1867,7 +1866,7 @@
<feature name="opennms-core-ipc-twin-common" description="OpenNMS :: Core :: IPC :: Twin :: Common" version="${project.version}">
<feature version="${guavaOsgiVersion}">guava</feature>
<feature>json-patch</feature>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<feature version="${protobufVersion}">protobuf</feature>
<bundle>mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.api/${project.version}</bundle>
<bundle>mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.common/${project.version}</bundle>
</feature>
Expand All @@ -1893,12 +1892,12 @@
</feature>

<feature name="opennms-core-ipc-twin-kafka-common" version="${project.version}" description="OpenNMS :: Core :: IPC :: Twin :: Kafka :: Common">
<feature version="${protobufVersion}">protobuf</feature>
<feature>opennms-kafka</feature>
<feature>opennms-core-ipc-twin-common</feature>
<bundle>mvn:org.opennms.core.ipc.common/org.opennms.core.ipc.common.kafka/${project.version}</bundle>
<bundle>mvn:org.opennms.core.ipc.twin.kafka/org.opennms.core.ipc.twin.kafka.common/${project.version}</bundle>
<bundle>mvn:org.opennms.core/org.opennms.core.sysprops/${project.version}</bundle>
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
</feature>
<feature name="opennms-core-ipc-twin-kafka" version="${project.version}" description="OpenNMS :: Core :: IPC :: Twin :: Kafka :: Subscriber">
<feature>opennms-core-ipc-twin-kafka-common</feature>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2022 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2022 The OpenNMS Group, Inc.
* Copyright (C) 2022-2023 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2023 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
Expand Down Expand Up @@ -38,7 +38,7 @@
import org.opennms.netmgt.enlinkd.service.api.BridgeTopologyService;
import org.opennms.netmgt.enlinkd.service.api.Node;
import org.opennms.netmgt.enlinkd.service.api.NodeTopologyService;
import org.opennms.netmgt.enlinkd.service.api.ProtocolSupported;
import org.opennms.integration.api.v1.model.TopologyProtocol;
import org.opennms.netmgt.scheduler.LegacyPriorityExecutor;
import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient;

Expand All @@ -50,7 +50,7 @@ public class NodeCollectionGroupBridge extends SchedulableNodeCollectorGroup {


public NodeCollectionGroupBridge(long interval, long initial, LegacyPriorityExecutor executor, int priority, NodeTopologyService nodeTopologyService, LocationAwareSnmpClient locationAwareSnmpClient, BridgeTopologyService bridgeTopologyService, int max_bft, boolean disableBridgeVlanDiscovery) {
super(interval, initial, executor, priority, ProtocolSupported.BRIDGE, nodeTopologyService, locationAwareSnmpClient);
super(interval, initial, executor, priority, TopologyProtocol.BRIDGE, nodeTopologyService, locationAwareSnmpClient);
m_bridgeTopologyService = bridgeTopologyService;
m_maxBft = max_bft;
m_disableBridgeVlanDiscovery = disableBridgeVlanDiscovery;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2022 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2022 The OpenNMS Group, Inc.
* Copyright (C) 2022-2023 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2023 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
Expand Down Expand Up @@ -33,7 +33,7 @@
import org.opennms.netmgt.enlinkd.service.api.CdpTopologyService;
import org.opennms.netmgt.enlinkd.service.api.Node;
import org.opennms.netmgt.enlinkd.service.api.NodeTopologyService;
import org.opennms.netmgt.enlinkd.service.api.ProtocolSupported;
import org.opennms.integration.api.v1.model.TopologyProtocol;
import org.opennms.netmgt.scheduler.LegacyPriorityExecutor;
import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient;

Expand All @@ -43,7 +43,7 @@ public class NodeCollectionGroupCdp extends SchedulableNodeCollectorGroup {


public NodeCollectionGroupCdp(long interval, long initial, LegacyPriorityExecutor executor, int priority, NodeTopologyService nodeTopologyService, LocationAwareSnmpClient locationAwareSnmpClient, CdpTopologyService cdpTopologyService) {
super(interval, initial, executor, priority, ProtocolSupported.CDP, nodeTopologyService, locationAwareSnmpClient);
super(interval, initial, executor, priority, TopologyProtocol.CDP, nodeTopologyService, locationAwareSnmpClient);
m_cdpTopologyService = cdpTopologyService;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2022 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2022 The OpenNMS Group, Inc.
* Copyright (C) 2022-2023 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2023 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
Expand Down Expand Up @@ -33,7 +33,7 @@
import org.opennms.netmgt.enlinkd.service.api.IpNetToMediaTopologyService;
import org.opennms.netmgt.enlinkd.service.api.Node;
import org.opennms.netmgt.enlinkd.service.api.NodeTopologyService;
import org.opennms.netmgt.enlinkd.service.api.ProtocolSupported;
import org.opennms.integration.api.v1.model.TopologyProtocol;
import org.opennms.netmgt.scheduler.LegacyPriorityExecutor;
import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient;

Expand All @@ -42,7 +42,7 @@ public class NodeCollectionGroupIpNetToMedia extends SchedulableNodeCollectorGro
private final IpNetToMediaTopologyService m_ipNetToMediaTopologyService;

public NodeCollectionGroupIpNetToMedia(long interval, long initial, LegacyPriorityExecutor executor, int priority, NodeTopologyService nodeTopologyService, LocationAwareSnmpClient locationAwareSnmpClient, IpNetToMediaTopologyService ipNeytToMediaTopologyService) {
super(interval, initial, executor, priority, ProtocolSupported.BRIDGE, nodeTopologyService, locationAwareSnmpClient);
super(interval, initial, executor, priority, TopologyProtocol.BRIDGE, nodeTopologyService, locationAwareSnmpClient);
m_ipNetToMediaTopologyService = ipNeytToMediaTopologyService;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2022 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2022 The OpenNMS Group, Inc.
* Copyright (C) 2022-2023 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2023 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
Expand Down Expand Up @@ -33,7 +33,7 @@
import org.opennms.netmgt.enlinkd.service.api.IsisTopologyService;
import org.opennms.netmgt.enlinkd.service.api.Node;
import org.opennms.netmgt.enlinkd.service.api.NodeTopologyService;
import org.opennms.netmgt.enlinkd.service.api.ProtocolSupported;
import org.opennms.integration.api.v1.model.TopologyProtocol;
import org.opennms.netmgt.scheduler.LegacyPriorityExecutor;
import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient;

Expand All @@ -43,7 +43,7 @@ public class NodeCollectionGroupIsis extends SchedulableNodeCollectorGroup {


public NodeCollectionGroupIsis(long interval, long initial, LegacyPriorityExecutor executor, int priority, NodeTopologyService nodeTopologyService, LocationAwareSnmpClient locationAwareSnmpClient, IsisTopologyService isisTopologyService) {
super(interval, initial, executor, priority, ProtocolSupported.ISIS, nodeTopologyService, locationAwareSnmpClient);
super(interval, initial, executor, priority, TopologyProtocol.ISIS, nodeTopologyService, locationAwareSnmpClient);
m_isisTopologyService = isisTopologyService;
}

Expand Down
Loading

0 comments on commit 0159f4f

Please sign in to comment.