| | alisation>`__ |
+------------------------------------+---------------------------------+
| EUAG | `ONAP End User Advisory |
-| | Group <https://wiki.lfnetworkin |
-| | g.org/pages/viewpage.action?pag |
-| | eId=2916362>`__ |
+| | Group <https://lf-networking.at |
+| | lassian.net/wiki/spaces/LN/page |
+| | s/15633594/INACTIVE+EUAG+LFN+En |
+| | d+User+Advisory+Group>`__ |
+------------------------------------+---------------------------------+
| FCAPS | Fault Configuration Accounting |
| | Performance Security |
<dependencies>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
- <artifactId>rfc6991</artifactId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
</dependency>
</dependencies>
<name>ccsdk-features :: sdnr-northbound :: ${project.artifactId}</name>
<dependencies>
+ <!--
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>sal-netconf-connector</artifactId>
<scope>provided</scope>
</dependency>
+ -->
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-dom-codec-api</artifactId>
<artifactId>netconf-dom-api</artifactId>
<scope>provided</scope>
</dependency>
+ <!--
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>sal-netconf-connector</artifactId>
<scope>provided</scope>
</dependency>
+ -->
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-topology</artifactId>
<dependencies>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
- <artifactId>rfc6991</artifactId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
- <artifactId>rfc6991</artifactId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
</dependency>
</dependencies>
</project>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
import org.opendaylight.mdsal.dom.api.DOMEvent;
import org.opendaylight.mdsal.dom.api.DOMNotification;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+
import org.opendaylight.yangtools.yang.binding.*;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
}
- public static <K extends Identifier<V>, V extends Identifiable<K>> Map<K, V> toMap(List<V> list) {
- return list == null || list.isEmpty() ? null : Maps.uniqueIndex(list, Identifiable::key);
+ public static <K extends Key<V>, V extends KeyAware<K>> Map<K, V> toMap(List<V> list) {
+ return list == null || list.isEmpty() ? null : Maps.uniqueIndex(list, KeyAware::key);
}
@SuppressWarnings("unchecked")
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.ClassDeserializer;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.IdentifierDeserializer;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.TypeObjectDeserializer;
+import org.opendaylight.yangtools.concepts.Identifier;
import org.opendaylight.yangtools.yang.binding.BaseIdentity;
-import org.opendaylight.yangtools.yang.binding.Identifier;
import org.opendaylight.yangtools.yang.binding.ScalarTypeObject;
import org.opendaylight.yangtools.yang.binding.TypeObject;
import org.slf4j.Logger;
import java.util.Map;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
-public class YangtoolsMapDesirializer<K extends Identifier<V>, V extends Identifiable<K>>
+
+public class YangtoolsMapDesirializer<K extends Key<V>, V extends KeyAware<K>>
extends JsonDeserializer<Map<K, V>> {
private final Class<V> clazz;
import java.util.Map;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
-public class YangtoolsMapDesirializer2<K extends Identifier<V>, V extends Identifiable<K>>
+
+public class YangtoolsMapDesirializer2<K extends Key<V>, V extends KeyAware<K>>
extends JsonDeserializer<Map<K, V>> {
private final Class<V> clazz;
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
-import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
public class SetDeserializer<V>
extends JsonDeserializer<Set<V>> {
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
- <scope>provided</scope>
+ <!-- <scope>provided</scope>-->
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jdt</groupId>
+ <artifactId>org.eclipse.jdt.annotation</artifactId>
+ <version>2.2.800</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
- <scope>provided</scope>
+<!-- <scope>provided</scope>-->
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
- <scope>provided</scope>
+ <!-- <scope>provided</scope>-->
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
- <scope>provided</scope>
+ <!-- <scope>provided</scope>-->
</dependency>
</dependencies>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class ExtRestClient {
private static final Logger LOG = LoggerFactory.getLogger(ExtRestClient.class);
* Hint: Elasticsearch index/alias and doctype will be the same value server side restricted since ES 5.0
*
*/
+
+@Deprecated
public class HtDatabaseClient extends ExtRestClient implements DatabaseClient, AutoCloseable {
private static final boolean REFRESH_AFTER_REWRITE_DEFAULT = true;
/**
* Element is a document in the ES database.
*/
+@Deprecated
public interface IsEsObject {
/**
import org.json.JSONObject;
+@Deprecated
public class SearchHit {
private final String index;
import java.util.List;
import java.util.Set;
+@Deprecated
public class SearchResult<T> {
/**
* @author Michael Dürre
*
*/
+@Deprecated
public class AliasesEntry {
private static final String regex = "^([^\\ ]+)[\\ ]+([^\\ ]+)[\\ ]+.*$";
private static final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
* @author Michael Dürre
*
*/
+@Deprecated
public class AliasesEntryList extends ArrayList<AliasesEntry> {
/**
import java.util.List;
import org.onap.ccsdk.features.sdnr.wt.common.database.queries.RangeQueryBuilder;
+@Deprecated
public class DbFilter {
private static final List<String> timestampValueNames = Arrays.asList("timestamp", "start", "end", "date");
* @author Herbert
*
*/
+@Deprecated
public class EsObject implements IsEsObject {
@JsonIgnore
*
* yellow open inventoryequipment-v1 5nNPRbJ3T9arMxqxBbJKyQ 5 1 0 0 1.2kb 1.2kb
*/
+@Deprecated
public class IndicesEntry {
private final String status;
* @author Michael Dürre
*
*/
+@Deprecated
public class IndicesEntryList extends ArrayList<IndicesEntry> {
/**
import org.json.JSONArray;
import org.json.JSONObject;
+@Deprecated
public class BoolQueryBuilder extends QueryBuilder {
private JSONObject inner;
import org.json.JSONArray;
import org.json.JSONObject;
+@Deprecated
public class QueryBuilder {
private JSONObject innerQuery;
import java.util.List;
import org.json.JSONObject;
+@Deprecated
public class QueryBuilders {
public static QueryBuilder matchAllQuery() {
import org.json.JSONObject;
+@Deprecated
public class RangeQueryBuilder extends QueryBuilder {
private Object gtValue = null;
import org.json.JSONObject;
+@Deprecated
public class RegexQueryBuilder extends QueryBuilder {
private JSONObject inner;
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.queries;
+@Deprecated
public enum SortOrder {
ASCENDING("asc"), DESCENDING("desc");
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public abstract class BaseRequest {
private static final Logger LOG = LoggerFactory.getLogger(BaseRequest.class);
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class ClusterHealthRequest extends BaseRequest {
//https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-index_.html
//https://github.com/elastic/elasticsearch/blob/6.8/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.put_settings.json
+@Deprecated
public class ClusterSettingsRequest extends BaseRequest {
private static final boolean DEFAULT_ALLOW_AUTOCREATEINDEX = true;
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class CountRequest extends BaseRequest {
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.put_alias.json
+@Deprecated
public class CreateAliasRequest extends BaseRequest {
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.create.json
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.put_mapping.json
+@Deprecated
public class CreateIndexRequest extends BaseRequest {
private JSONObject settings;
* @author Michael Dürre
*
*/
+@Deprecated
public class Delete7Request extends DeleteRequest {
public Delete7Request(String alias, String esId) {
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.delete_alias.json
+@Deprecated
public class DeleteAliasRequest extends BaseRequest {
public DeleteAliasRequest(String index, String alias) {
import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilder;
+@Deprecated
public class DeleteByQueryRequest extends BaseRequest {
public DeleteByQueryRequest(String alias) {
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.delete.json
+@Deprecated
public class DeleteIndexRequest extends BaseRequest {
public DeleteIndexRequest(String index) {
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class DeleteRequest extends BaseRequest {
private final String alias;
* @author Michael Dürre
*
*/
+@Deprecated
public class Get7Request extends GetRequest {
public Get7Request(String alias, String esId) {
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.exists.json
+@Deprecated
public class GetIndexRequest extends BaseRequest {
public GetIndexRequest(String index) {
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
//https://github.com/elastic/elasticsearch/blob/6.4/rest-api-spec/src/main/resources/rest-api-spec/api/indices.exists.json
+@Deprecated
public class GetInfoRequest extends BaseRequest {
public GetInfoRequest() {
import javax.annotation.Nonnull;
+@Deprecated
public class GetRequest extends BaseRequest {
private final String alias;
* @author Michael Dürre
*
*/
+@Deprecated
public class Index7Request extends IndexRequest {
public Index7Request(String alias) {
import javax.annotation.Nullable;
+@Deprecated
public class IndexRequest extends BaseRequest {
private final String alias;
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class ListAliasesRequest extends BaseRequest {
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class ListIndicesRequest extends BaseRequest {
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class NodeStatsRequest extends BaseRequest {
*/
package org.onap.ccsdk.features.sdnr.wt.common.database.requests;
+@Deprecated
public class RefreshIndexRequest extends BaseRequest {
public RefreshIndexRequest(String alias) {
* @author Michael Dürre
*
*/
+@Deprecated
public class Search7Request extends SearchRequest {
/**
import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilder;
+@Deprecated
public class SearchRequest extends BaseRequest {
private final String alias;
*
* https://github.com/elastic/elasticsearch/blob/7.1/rest-api-spec/src/main/resources/rest-api-spec/api/update.json
*/
+@Deprecated
public class Update7Request extends UpdateRequest {
public Update7Request(String alias, String esId, int retries, boolean refresh) {
* @author Michael Dürre
*
*/
+@Deprecated
public class UpdateByQuery7Request extends UpdateByQueryRequest {
public UpdateByQuery7Request(String alias, boolean refresh) {
import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilder;
import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
+@Deprecated
public class UpdateByQueryRequest extends BaseRequest {
private JSONObject params;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class UpdateRequest extends BaseRequest {
private static final Logger LOG = LoggerFactory.getLogger(UpdateRequest.class);
import org.elasticsearch.client.Response;
import org.json.JSONObject;
+@Deprecated
public class AcknowledgedResponse extends BaseResponse {
private boolean isAcknowledged;
import java.util.LinkedHashMap;
import java.util.List;
+@Deprecated
public class AggregationEntries extends LinkedHashMap<String, Long> {
private static final long serialVersionUID = 1L;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class BaseResponse {
private static final Logger LOG = LoggerFactory.getLogger(BaseResponse.class);
import org.json.JSONException;
import org.json.JSONObject;
+@Deprecated
public class ClusterHealthResponse extends BaseResponse {
public static final String HEALTHSTATUS_GREEN = "green";
import org.elasticsearch.client.Response;
+@Deprecated
public class ClusterSettingsResponse extends AcknowledgedResponse {
public ClusterSettingsResponse(Response response) {
import org.elasticsearch.client.Response;
+@Deprecated
public class CreateAliasResponse extends AcknowledgedResponse {
public CreateAliasResponse(Response response) {
import org.elasticsearch.client.Response;
+@Deprecated
public class CreateIndexResponse extends AcknowledgedResponse {
public CreateIndexResponse(Response response) {
import org.elasticsearch.client.Response;
+@Deprecated
public class DeleteAliasResponse extends AcknowledgedResponse {
public DeleteAliasResponse(Response response) {
* @author jack
*
*/
+@Deprecated
public class DeleteByQueryResponse extends BaseResponse {
private int deleted;
import org.elasticsearch.client.Response;
+@Deprecated
public class DeleteIndexResponse extends AcknowledgedResponse {
public DeleteIndexResponse(Response response) {
import org.elasticsearch.client.Response;
import org.json.JSONObject;
+@Deprecated
public class DeleteResponse extends BaseResponse {
private boolean isDeleted;
import org.json.JSONObject;
import org.onap.ccsdk.features.sdnr.wt.common.database.data.DatabaseVersion;
+@Deprecated
public class GetInfoResponse extends BaseResponse {
/**
import org.json.JSONObject;
import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
+@Deprecated
public class GetResponse extends BaseResponse {
private boolean found;
import org.elasticsearch.client.Response;
import org.json.JSONObject;
+@Deprecated
public class IndexResponse extends BaseResponse {
private boolean isCreated;
import org.onap.ccsdk.features.sdnr.wt.common.database.data.AliasesEntry;
import org.onap.ccsdk.features.sdnr.wt.common.database.data.AliasesEntryList;
+@Deprecated
public class ListAliasesResponse extends BaseResponse {
/*
import org.onap.ccsdk.features.sdnr.wt.common.database.data.IndicesEntry;
import org.onap.ccsdk.features.sdnr.wt.common.database.data.IndicesEntryList;
+@Deprecated
public class ListIndicesResponse extends BaseResponse {
/*
import org.json.JSONException;
import org.json.JSONObject;
+@Deprecated
public class NodeStatsResponse extends BaseResponse {
private NodesInfo nodesInfo;
* @author jack
*
*/
+@Deprecated
public class RefreshIndexResponse extends BaseResponse {
private boolean succeeded;
import org.json.JSONObject;
import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
+@Deprecated
public class SearchResponse extends BaseResponse {
private long total;
* @author jack
*
*/
+@Deprecated
public class UpdateByQueryResponse extends BaseResponse {
* @author jack
*
*/
+@Deprecated
public class UpdateResponse extends BaseResponse {
private String result;
<artifactId>jackson-databind</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
<!-- MariaDB end -->
</dependencies>
- <!-- Tests require MariaDB4j , which does not currently support ARM64 -->
- <profiles>
- <profile>
- <id>disable-test-on-ARM64</id>
- <activation>
- <os>
- <arch>aarch64</arch>
- </os>
- </activation>
- <properties>
- <skipTests>true</skipTests>
- </properties>
- </profile>
- </profiles>
-
</project>
}
return this.dbClient.write(query);
} else {
- this.controllerId = data.getString(0);
+ this.controllerId = data.getString(1);
LOG.trace("controllerId already set");
}
return true;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter;
-import io.netty.util.internal.StringUtil;
+
public interface SqlQuery {
}
if (!filters2.isEmpty()) {
sb.append(" WHERE ");
- sb.append(StringUtil.join(" AND ", filters2));
+ sb.append(String.join(" AND ", filters2));
+
}
return sb.toString();
}
package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test;
import ch.vorburger.exec.ManagedProcessException;
+import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtUserdataManager;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
-import org.opendaylight.netconf.shaded.sshd.common.util.io.IoUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmNotificationType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmSourceIndicator;
assertEquals(2, faultCurrents.getData().size());
ReadStatusOutputBuilder status = null;
try {
- EntityInput input=null;
+ EntityInput input = null;
status = dbProvider.readStatus(input);
} catch (IOException e) {
e.printStackTrace();
List<String> nodeList = dbProvider.getAllNodesWithCurrentAlarms();
assertTrue(nodeList.contains(NODEID1));
- assertEquals(1,nodeList.size());
+ assertEquals(1, nodeList.size());
faultCurrent1 = new FaultcurrentBuilder().setNodeId(NODEID1).setCounter(1).setObjectId("obj")
.setProblem(PROBLEM1).setTimestamp(DateAndTime.getDefaultInstance(TIME1))
e.printStackTrace();
fail("unable to update maintenance data");
}
- data = dbProvider.readMaintenanceList(createInput("active","false",1, 20));
+ data = dbProvider.readMaintenanceList(createInput("active", "false", 1, 20));
assertEquals(1, data.getData().size());
DeleteMaintenanceInput delete1 = new DeleteMaintenanceInputBuilder().setId(NODEID1).build();
try {
HtDatabaseMaintenance maintenanceService = dbProvider.getHtDatabaseMaintenance();
MaintenanceEntity e = maintenanceService.createIfNotExists(nodeId);
assertNotNull(e);
- assertEquals(nodeId,e.getNodeId());
+ assertEquals(nodeId, e.getNodeId());
MaintenanceEntity e2 = new CreateMaintenanceInputBuilder(e).setActive(true).build();
e = maintenanceService.setMaintenance(e2);
assertNotNull(e);
- assertEquals(nodeId,e.getNodeId());
+ assertEquals(nodeId, e.getNodeId());
assertTrue(e.getActive());
maintenanceService.deleteIfNotRequired(nodeId);
- data = dbProvider.readMaintenanceList(createInput("node-id",nodeId,1, 20));
+ data = dbProvider.readMaintenanceList(createInput("node-id", nodeId, 1, 20));
assertEquals(0, data.getData().size());
}
ReadStatusOutputBuilder status = null;
try {
- EntityInput input=null;
+ EntityInput input = null;
status = dbProvider.readStatus(input);
} catch (IOException e) {
e.printStackTrace();
assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUndefined().intValue());
assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnmounted().intValue());
- ReadStatusOutputBuilder status2=null;
+ ReadStatusOutputBuilder status2 = null;
try {
- EntityInput input=createInput("node-id","node2*", 1, 20);
+ EntityInput input = createInput("node-id", "node2*", 1, 20);
status = dbProvider.readStatus(input);
status2 = dbProviderOverall.readStatus(input);
} catch (IOException e) {
assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnableToConnect().intValue());
assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUndefined().intValue());
assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnmounted().intValue());
-
+
assertEquals(1, status2.getData().get(0).getNetworkElementConnections().getConnected().intValue());
assertEquals(1, status2.getData().get(0).getNetworkElementConnections().getConnecting().intValue());
assertEquals(0, status2.getData().get(0).getNetworkElementConnections().getDisconnected().intValue());
public void testUserdata() {
HtUserdataManager mgr = dbProvider.getUserManager();
String userdata = mgr.getUserdata(USERNAME);
- assertEquals("{}",userdata);
+ assertEquals("{}", userdata);
JSONObject o = new JSONObject();
o.put("key1", false);
- o.put("key2","value2");
+ o.put("key2", "value2");
boolean result = mgr.setUserdata(USERNAME, o.toString());
assertTrue(result);
userdata = mgr.getUserdata(USERNAME);
o = new JSONObject(userdata);
- assertEquals(false,o.getBoolean("key1"));
- assertEquals("value2",o.getString("key2"));
+ assertEquals(false, o.getBoolean("key1"));
+ assertEquals("value2", o.getString("key2"));
o = new JSONObject();
o.put("enabled", true);
- o.put("name","abcdef");
- result = mgr.setUserdata(USERNAME,"app1",o.toString());
+ o.put("name", "abcdef");
+ result = mgr.setUserdata(USERNAME, "app1", o.toString());
assertTrue(result);
userdata = mgr.getUserdata(USERNAME);
o = new JSONObject(userdata);
- assertEquals(false,o.getBoolean("key1"));
- assertEquals("value2",o.getString("key2"));
+ assertEquals(false, o.getBoolean("key1"));
+ assertEquals("value2", o.getString("key2"));
JSONObject app = o.getJSONObject("app1");
assertNotNull(app);
assertEquals(true, app.getBoolean("enabled"));
assertEquals("abcdef", app.getString("name"));
}
+
@Test
public void testpm15m() {
try {
}
private static String loadFile(String filename) throws IOException {
- return String.join("\n", IoUtils.readAllLines(TestMariaDataProvider.class.getResourceAsStream(filename)));
+ return String.join("\n",
+ Files.readAllLines(new File(TestMariaDataProvider.class.getResource(filename).getFile()).toPath()));
+
}
static EntityInput createInput(String filter, String filterValue, int page, int size) {
<dependency>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>installed-odl-bom</artifactId>
- <version>2.7.0-SNAPSHOT</version>
+ <version>2.8.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</license>
</licenses>
- <properties>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- </properties>
-
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<artifactId>json</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
+ </dependency>
</dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>**/gen/**</exclude>
- <exclude>**/generated-sources/**</exclude>
- <exclude>**/yang-gen-sal/**</exclude>
- <exclude>**/pax/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
import java.util.Map;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SortOrder;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.common.Uint64;
/**
* Aluminium version
*/
- public static <K extends Identifier<T>,T extends Identifiable<K>> Map<K, T> getListOrMap(Class<K> clazz, List<T> list) {
+ public static <K extends Key<T>,T extends KeyAware<K>> Map<K, T> getListOrMap(Class<K> clazz, List<T> list) {
Map<K,T> map = new HashMap<>();
for(T listelement:list) {
Constructor<K> constructor;
}
return map;
}
- public static <K extends Identifier<T>,T extends Identifiable<K>> Map<K, T> getListOrMap(Class<K> clazz, T listElement) {
+ public static <K extends Key<T>,T extends KeyAware<K>> Map<K, T> getListOrMap(Class<K> clazz, T listElement) {
return getListOrMap(clazz, Arrays.asList(listElement) );
}
public static Uint32 getLongOrUint32(long longVal) {
</dependency>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
+ <artifactId>netconf-client-mdsal</artifactId>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>yang-binding</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-singleton-common-api</artifactId>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class EsConfig implements Configuration, IEsConfig {
private static final Logger LOG = LoggerFactory.getLogger(EsConfig.class);
*
* @param <T> Yang tools generated class object.
*/
+@Deprecated
public class EsDataObjectReaderWriter2<T extends DataObject> {
private static final Logger LOG = LoggerFactory.getLogger(EsDataObjectReaderWriter2.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class DataObjectAcessor<T extends DataObject> extends EsDataObjectReaderWriter2<T> {
private static final Logger LOG = LoggerFactory.getLogger(DataObjectAcessor.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class DataObjectAcessorInventory<T extends DataObject> extends DataObjectAcessorWithId<T> {
private final Logger LOG = LoggerFactory.getLogger(DataObjectAcessorInventory.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class DataObjectAcessorPm<T extends DataObject> extends DataObjectAcessor<T> {
private final Logger LOG = LoggerFactory.getLogger(DataObjectAcessorPm.class);
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.status.entity.NetworkElementConnectionsBuilder;
import org.opendaylight.yangtools.yang.common.Uint32;
+@Deprecated
public class DataObjectAcessorStatus extends DataObjectAcessor<Data> {
final String ESDATATYPE_FAULTCURRENT_SEVERITY_KEY = "severity";
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class DataObjectAcessorWithId<T extends DataObject> extends DataObjectAcessor<T> {
private static final Logger LOG = LoggerFactory.getLogger(DataObjectAcessorWithId.class);
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultcurrentEntity;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+@Deprecated
public class FaultEntityManager {
/**
*
* @author herbert
*/
+@Deprecated
public class HtDatabaseEventsService implements ArchiveCleanProvider, DataProvider {
private static final Logger LOG = LoggerFactory.getLogger(HtDatabaseEventsService.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class HtDatabaseMaintenanceService implements HtDatabaseMaintenance {
private static final Logger LOG = LoggerFactory.getLogger(HtDatabaseMaintenanceService.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class QueryByFilter {
private static final Logger LOG = LoggerFactory.getLogger(DataObjectAcessorPm.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
class QueryByFilterStatic {
private static final Logger LOG = LoggerFactory.getLogger(DataObjectAcessorPm.class);
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PaginationOutputG;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.PaginationBuilder;
+@Deprecated
public class QueryResult<T> {
private SearchResult<T> result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class ElasticSearchDataProvider implements DatabaseDataProvider {
private static final Logger LOG = LoggerFactory.getLogger(ElasticSearchDataProvider.class);
import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.HtUserdataManagerBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
+@Deprecated
public class HtUserdataManagerImpl extends HtUserdataManagerBase {
private final HtDatabaseClient dbClient;
if (onapCCSDKVersion == null) {
return def;
}
+ if (onapCCSDKVersion.startsWith("2.7.")) {
+ return "ONAP New Dehli";
+ }
if (onapCCSDKVersion.startsWith("2.6.")) {
return "ONAP Montreal";
}
}
if(odlMdsalVersionLUT==null) {
odlMdsalVersionLUT = new HashMap<>();
+ odlMdsalVersionLUT.put("12.0.4","potassium-SR2 (0.19.2)");
+ odlMdsalVersionLUT.put("12.0.3","potassium-SR1 (0.19.1)");
+ odlMdsalVersionLUT.put("12.0.2","potassium-SR0 (0.19.0)");
+ odlMdsalVersionLUT.put("11.0.15","argon-SR3 (0.18.3)");
odlMdsalVersionLUT.put("11.0.12","argon-SR2 (0.18.2)");
odlMdsalVersionLUT.put("11.0.9","argon-SR1 (0.18.1)");
odlMdsalVersionLUT.put("11.0.7","argon-SR0 (0.18.0)");
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.IdentifierDeserializer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPassword;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPassword;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.OdlHelloMessageCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.parameters.OdlHelloMessageCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPasswordBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Deprecated
public class ElasticsearchDataMigrationProvider implements DataMigrationProviderService {
</properties>
<dependencies>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-data-provider-model</artifactId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
package org.onap.ccsdk.features.sdnr.wt.devicemanager.types;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus;
public class InternalConnectionStatus {
<artifactId>ietf-topology</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
<artifactId>annotations</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- begin for testing -->
<dependency>
<groupId>org.mockito</groupId>
import org.opendaylight.mdsal.binding.api.ReadTransaction;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus;
/**
* (NonConnected) A registration after creation of a mountpoint occured
*
- * @param registrationName of device (mountpoint name)
+ * @param nodeId of device (mountpoint name)
* @param nNode with mountpoint data
*/
@Override
/**
* (Connected) mountpoint state moves to connected
*
- * @param mountpointNodeName uuid that is nodeId or mountpointId
+ * @param nNodeId uuid that is nodeId or mountpointId
* @param deviceType according to assessement
*/
@Override
/**
* (NonConnected) mountpoint state changed.
*
- * @param mountpointNodeName nodeid
+ * @param nodeId nodeid
* @param netconfNode node
*/
public void onStateChangeIndication(NodeId nodeId, NetconfNode netconfNode) {
/**
* (NonConnected) A deregistration after removal of a mountpoint occured.
*
- * @param registrationName Name of the event that is used as key in the database.
+ * @param nodeId Name of the event that is used as key in the database.
*/
@SuppressWarnings("null")
@Override
/**
* Mountpoint state changed .. from connected -> connecting or unable-to-connect or vis-e-versa.
*
- * @param registrationName Name of the event that is used as key in the database.
+ * @param nodeId Name of the event that is used as key in the database.
*/
@Override
public void updateRegistration(NodeId nodeId, String attribute, String attributeNewValue, NetconfNode nNode) {
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeConnectListener;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.KeyAuth;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPw;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwUnencrypted;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.login.pw.LoginPassword;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.KeyAuth;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPw;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.LoginPwUnencrypted;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.credentials.credentials.login.pw.LoginPassword;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
import org.opendaylight.yangtools.concepts.Identifier;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.EventInstantAware;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
import org.opendaylight.yangtools.yang.binding.Notification;
import org.opendaylight.yangtools.yang.common.QName;
import org.slf4j.Logger;
String keyString;
for (Object listObject : (List<?>) value) {
if (listObject != null) {
- if (Identifiable.class.isAssignableFrom(listObject.getClass())) {
- keyString = getKeyString((Identifiable<?>) listObject);
+ if (KeyAware.class.isAssignableFrom(listObject.getClass())) {
+ keyString = getKeyString((KeyAware<?>) listObject);
} else {
keyString = String.valueOf(idx);
}
*
* @return
*/
- private String getKeyString(Identifiable<?> indentifiableObject) {
+ private String getKeyString(KeyAware<?> indentifiableObject) {
String keyString = (indentifiableObject.key()).toString();
int start = keyString.indexOf("=") + 1;
int end = keyString.length() - 1;
</properties>
<dependencies>
- <dependency>
- <groupId>org.json</groupId>
- <artifactId>json</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-devicemanager-o-ran-sc-oran-model</artifactId>
<version>${project.version}</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
+
<dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rfc7317-ietf-system</artifactId>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>callhome-model</artifactId>
- <!-- <scope>provided</scope> -->
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-common-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
- <artifactId>mdsal-singleton-common-api</artifactId>
+ <artifactId>mdsal-dom-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>rfc7317-ietf-system</artifactId>
- <version>${project.version}</version>
+ <groupId>org.opendaylight.netconf.model</groupId>
+ <artifactId>rfc5277</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <!--<dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-api</artifactId>
+ </dependency>-->
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- begin for testing -->
<dependency>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>test</scope>
</dependency>
<!-- end for testing -->
-
+
</dependencies>
<build>
import org.opendaylight.yangtools.yang.binding.CodeHelpers;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
* @param sys
* @return
*/
- public static Optional<Guicutthrough> getGuicutthrough(@Nullable AugmentationNode onapSysAugData,
+ public static Optional<Guicutthrough> getGuicutthrough(@Nullable ContainerNode sysData,
@NonNull OnapSystem onapSys) {
- if (onapSysAugData != null) {
- String name = ORanDMDOMUtility.getLeafValue(onapSysAugData, onapSys.getName());
+ if (sysData != null) {
+ String name = ORanDMDOMUtility.getLeafValue(sysData, onapSys.getName());
@Nullable
- Uri uri = new Uri(ORanDMDOMUtility.getLeafValue(onapSysAugData, onapSys.getWebUi()));
+ Uri uri = new Uri(ORanDMDOMUtility.getLeafValue(sysData, onapSys.getWebUi()));
if (uri.getValue() != null) {
GuicutthroughBuilder gcBuilder = new GuicutthroughBuilder();
if (name != null) {
}
LOG.warn("Uri not set to invoke a Gui cut through session to the device. Please set the Uri in the device");
}
- LOG.warn("Retrieving augmented System details failed. Gui cut through information not available");
return Optional.empty();
}
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
getActiveAlarms();
}
if (onapSystem.isPresent()) {
- AugmentationNode gcData = (AugmentationNode) onapSystem.get().getOnapSystemData();
+ ContainerNode gcData = (ContainerNode) onapSystem.get().getOnapSystemData();
Optional<Guicutthrough> oGuicutthrough =
ORanDOMToInternalDataModel.getGuicutthrough(gcData, onapSystem.get());
if (oGuicutthrough.isPresent()) {
import org.opendaylight.mdsal.dom.api.DOMEvent;
import org.opendaylight.mdsal.dom.api.DOMNotification;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
private void recurseDOMData(@NonNull ContainerNode notifContainer, DataContainerChild domData, DataContainerNode cn,
HashMap<String, String> result, String namePath) {
- PathArgument pa1 = domData.getIdentifier();
- namePath += "/" + pa1.getNodeType().getLocalName();
+ NodeIdentifier id = domData.name();
+ namePath += "/" + id.getNodeType().getLocalName();
if (domData.getClass().getSimpleName().equals("ImmutableContainerNode")) {
try {
- ContainerNode cn1 = (ContainerNode) cn.getChildByArg(pa1);
+ ContainerNode cn1 = (ContainerNode) cn.getChildByArg(id);
for (DataContainerChild data1 : cn1.body()) {
recurseDOMData(notifContainer, data1, cn1, result, namePath);
}
} catch (VerifyException ve) {
- LOG.debug("{} does not exist", pa1);
+ LOG.debug("{} does not exist", id);
}
}
if (domData.getClass().getSimpleName().equals("ImmutableChoiceNode")) {
try {
- ChoiceNode cn1 = (ChoiceNode) cn.getChildByArg(pa1);
+ ChoiceNode cn1 = (ChoiceNode) cn.getChildByArg(id);
for (DataContainerChild data1 : cn1.body()) {
// recurseChoiceData(data1, cn1, namePath);
recurseDOMData(notifContainer, data1, cn1, result, namePath);
}
} catch (VerifyException ve) {
- LOG.debug("{} does not exist", pa1);
+ LOG.debug("{} does not exist", id);
}
}
if (domData.getClass().getSimpleName().equals("ImmutableUnkeyedListNode")) {
try {
- UnkeyedListNode cn1 = (UnkeyedListNode) cn.getChildByArg(pa1);
+ UnkeyedListNode cn1 = (UnkeyedListNode) cn.getChildByArg(id);
for (UnkeyedListEntryNode data1 : cn1.body()) {
recurseUnkeyedListEntryNodeData(data1, cn1, result, namePath);
}
} catch (VerifyException ve) {
- LOG.debug("{} does not exist", pa1);
+ LOG.debug("{} does not exist", id);
}
}
if (domData.getClass().getSimpleName().equals("ImmutableMapNode")) {
try {
- MapNode cn1 = (MapNode) cn.getChildByArg(pa1);
+ MapNode cn1 = (MapNode) cn.getChildByArg(id);
for (MapEntryNode data1 : cn1.body()) {
recurseMapEntryNodeData(notifContainer, data1, cn1, result, namePath);
}
} catch (VerifyException ve) {
- LOG.debug("{} does not exist", pa1);
+ LOG.debug("{} does not exist", id);
}
}
if (domData.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
try {
- LeafSetNode<?> cn1 = (LeafSetNode<?>) cn.getChildByArg(pa1);
+ LeafSetNode<?> cn1 = (LeafSetNode<?>) cn.getChildByArg(id);
for (LeafSetEntryNode<?> data1 : cn1.body()) {
recurseLeafSetEntryNodeData(data1, cn1, result, namePath);
}
} catch (VerifyException ve) {
- LOG.debug("{} does not exist", pa1);
+ LOG.debug("{} does not exist", id);
}
}
private void recurseLeafSetEntryNodeData(LeafSetEntryNode<?> data, LeafSetNode<?> cn1,
HashMap<String, String> result, String namePath) {
- PathArgument pa1 = data.getIdentifier();
+ NodeWithValue<?> pa1 = data.name();
namePath += "/" + pa1.getNodeType().getLocalName();
if (data.getClass().getSimpleName().equals("ImmutableLeafSetEntryNode")) {
private void recurseMapEntryNodeData(@NonNull ContainerNode notifContainer, MapEntryNode data, MapNode cn1,
HashMap<String, String> result, String namePath) {
- PathArgument pa1 = data.getIdentifier();
- NodeIdentifierWithPredicates ni = data.getIdentifier();
+ PathArgument pa1 = data.name();
+ NodeIdentifierWithPredicates ni = data.name();
for (QName qn : ni.keySet()) {
namePath += "/" + ni.getValue(qn);
for (DataContainerChild data1 : data.body()) {
if (data1.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
try {
- LeafSetNode<?> cn2 = (LeafSetNode<?>) data.getChildByArg(data1.getIdentifier());
+ LeafSetNode<?> cn2 = (LeafSetNode<?>) data.getChildByArg(data1.name());
for (LeafSetEntryNode<?> data2 : cn2.body()) {
recurseLeafSetEntryNodeData(data2, cn2, result, namePath);
}
} catch (VerifyException ve) {
- LOG.debug("{} does not exist", data1.getIdentifier());
+ LOG.debug("{} does not exist", data1.name());
}
} else {
recurseLeafNode(data1, result, namePath);
if (data.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
try {
- LeafSetNode<?> cn2 = (LeafSetNode<?>) notifContainer.getChildByArg(pa1);
+ LeafSetNode<?> cn2 = (LeafSetNode<?>) notifContainer.getChildByArg((NodeIdentifier) pa1);
for (LeafSetEntryNode<?> data1 : cn2.body()) {
recurseLeafSetEntryNodeData(data1, cn2, result, namePath);
}
private void recurseUnkeyedListEntryNodeData(UnkeyedListEntryNode data, UnkeyedListNode cn1,
HashMap<String, String> result, String namePath) {
- PathArgument pa1 = data.getIdentifier();
+ PathArgument pa1 = data.name();
namePath += "/" + pa1.getNodeType().getLocalName();
if (data.getClass().getSimpleName().equals("ImmutableUnkeyedListEntryNode")) {
}
public void recurseLeafNode(DataContainerChild data, HashMap<String, String> result, String namePath) {
- PathArgument pa1 = data.getIdentifier();
+ PathArgument pa1 = data.name();
if (!(data.getClass().getSimpleName().equals("ImmutableAugmentationNode")))
namePath += "/" + pa1.getNodeType().getLocalName();
if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
public void recurseChoiceData(HashMap<String, String> result, DataContainerChild data, ChoiceNode cn,
String namePath) {
- PathArgument pa1 = data.getIdentifier();
+ PathArgument pa1 = data.name();
namePath += "/" + pa1.getNodeType().getLocalName();
// NodeIdentifier nodeId = new NodeIdentifier(pa1.getNodeType());
if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
public static final @NonNull QName IETF_HW_COMPONENT_LIST_KEY = QName.create(IETF_HW_MODULE_NAME, "name");
public static final @NonNull QName IETF_HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HW_MODULE_NAME, "mfg-name"); //leaf:String
public static final @NonNull QName IETF_HW_COMPONENT_LIST_UUID = QName.create(IETF_HW_MODULE_NAME, "uuid"); //leaf:yang:uuid
- public static final @NonNull QName IETF_HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HW_MODULE_NAME, "model-name"); //leaf:String
+ public static final @NonNull QName IETF_HW_COMPONENT_LIST_MODEL_NAME =
+ QName.create(IETF_HW_MODULE_NAME, "model-name"); //leaf:String
public static final @NonNull QName IETF_HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HW_MODULE_NAME, "serial-num"); //leaf:String
- public static final @NonNull QName IETF_HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HW_MODULE_NAME, "software-rev"); //leaf:String
+ public static final @NonNull QName IETF_HW_COMPONENT_LIST_SW_REV =
+ QName.create(IETF_HW_MODULE_NAME, "software-rev"); //leaf:String
public static final @NonNull QName IETF_HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HW_MODULE_NAME, "alias"); //leaf:String
public static final @NonNull QName IETF_HW_COMPONENT_LIST_CLASS = QName.create(IETF_HW_MODULE_NAME, "class");
public static final @NonNull QName IETF_HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HW_MODULE_NAME, "mfg-date"); //leaf:yang:date-and-time
- public static final @NonNull QName IETF_HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HW_MODULE_NAME, "contains-child"); //leaf-list:leafref
+ public static final @NonNull QName IETF_HW_COMPONENT_LIST_CONTAINS_CHILD =
+ QName.create(IETF_HW_MODULE_NAME, "contains-child"); //leaf-list:leafref
public static final @NonNull QName IETF_HW_COMPONENT_LIST_PARENT = QName.create(IETF_HW_MODULE_NAME, "parent"); //leaf:leafref
public static final @NonNull QName IETF_HW_COMPONENT_LIST_DESC = QName.create(IETF_HW_MODULE_NAME, "description"); //leaf:String
- public static final @NonNull QName IETF_HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HW_MODULE_NAME, "hardware-rev"); //leaf:String
+ public static final @NonNull QName IETF_HW_COMPONENT_LIST_HW_REV =
+ QName.create(IETF_HW_MODULE_NAME, "hardware-rev"); //leaf:String
//odl-netconf-callhome-server.yang
public static final String CALLHOME_SERVER_NS = "urn:opendaylight:params:xml:ns:yang:netconf-callhome-server";
//o-ran-hardware.yang
public static final String ORAN_HW_NS = "urn:o-ran:hardware:1.0";
public static final String ORAN_HW_REVISION = "2019-03-28";
- public static final @NonNull QName ORAN_HW_MODULE = QName.create(ORAN_HW_NS, ORAN_HW_REVISION, "o-ran-hardware").intern();
+ public static final @NonNull QName ORAN_HW_MODULE =
+ QName.create(ORAN_HW_NS, ORAN_HW_REVISION, "o-ran-hardware").intern();
public static final @NonNull QName ORAN_HW_COMPONENT = QName.create(ORAN_HW_MODULE, "O-RAN-HW-COMPONENT");
//ietf-netconf-notifications.yang
public static final String IETF_NETCONF_NOTIFICATIONS_NS = "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
public static final String IETF_NETCONF_NOTIFICATIONS_REVISION = "2012-02-06";
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_MODULE = QName.create(IETF_NETCONF_NOTIFICATIONS_NS, IETF_NETCONF_NOTIFICATIONS_REVISION, "ietf-netconf-notifications").intern();
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-config-change");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIRMED_COMMIT = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-confirmed-commit");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_START = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-start");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_END = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-end");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CAPABILITY_CHANGE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-capability-change");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_CHANGEDBY = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "changed-by");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SERVERORUSER = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "server-or-user");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_EDITNODE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "edit");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_USERNAME = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "username");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SESSIONID = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "session-id");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_OPERATION = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "operation");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_TARGET = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "target");
- public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_DATASTORE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "datastore");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_MODULE = QName
+ .create(IETF_NETCONF_NOTIFICATIONS_NS, IETF_NETCONF_NOTIFICATIONS_REVISION, "ietf-netconf-notifications")
+ .intern();
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-config-change");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIRMED_COMMIT =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-confirmed-commit");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_START =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-start");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_END =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-end");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CAPABILITY_CHANGE =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-capability-change");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_CHANGEDBY =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "changed-by");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SERVERORUSER =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "server-or-user");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_EDITNODE =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "edit");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_USERNAME =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "username");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SESSIONID =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "session-id");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_OPERATION =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "operation");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_TARGET =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "target");
+ public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_DATASTORE =
+ QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "datastore");
//o-ran-supervision.yang
public static final String ORAN_SUPERVISION_NS = "urn:o-ran:supervision:1.0";
public static final String ORAN_SUPERVISION_REVISION = "2022-12-05";
- public static final @NonNull QName ORAN_SUPERVISION_MODULE = QName.create(ORAN_SUPERVISION_NS, ORAN_SUPERVISION_REVISION, "o-ran-supervision");
- public static final @NonNull QName ORAN_SUPERVISION_NOTIFICATION = QName.create(ORAN_SUPERVISION_MODULE, "supervision-notification");
+ public static final @NonNull QName ORAN_SUPERVISION_MODULE =
+ QName.create(ORAN_SUPERVISION_NS, ORAN_SUPERVISION_REVISION, "o-ran-supervision");
+ public static final @NonNull QName ORAN_SUPERVISION_NOTIFICATION =
+ QName.create(ORAN_SUPERVISION_MODULE, "supervision-notification");
}
*/
package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.yangspecs;
-import com.google.common.collect.Sets;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.slf4j.Logger;
@NonNull
InstanceIdentifierBuilder ietfSystemIID =
YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.IETF_SYSTEM_CONTAINER);
- @NonNull
- AugmentationIdentifier onapSystemIID = null;
- if (netconfDomAccessor.getCapabilites().isSupportingNamespaceAndRevision(ONAPSYSTEM_2020_10_26))
- onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create(Sets.newHashSet(NAME, WEB_UI));
- else if (netconfDomAccessor.getCapabilites().isSupportingNamespaceAndRevision(ONAPSYSTEM_2022_11_04))
- onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier
- .create(Sets.newHashSet(NAME, WEB_UI, GEOGRAPHICAL_LOCATION));
-
- InstanceIdentifierBuilder augmentedOnapSystem =
- YangInstanceIdentifier.builder(ietfSystemIID.build()).node(onapSystemIID);
Optional<NormalizedNode> res =
- netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedOnapSystem.build());
+ netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, ietfSystemIID.build());
LOG.debug("Result of System1 = {}", res);
return res.isPresent() ? res.get() : null;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import com.google.common.collect.Sets;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.util.Optional;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import org.eclipse.jdt.annotation.NonNull;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizationResult;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
*/
final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
- final NormalizedNodeResult result = new NormalizedNodeResult();
+ final NormalizationResultHolder result = new NormalizationResultHolder();
final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
xmlParser.flush();
xmlParser.close();
- NormalizedNode transformedInput = result.getResult();
+ NormalizedNode transformedInput = result.getResult().data();
List<Inventory> inventoryList = ORanDOMToInternalDataModel.getInventoryList(nodeId, transformedInput);
assertEquals("All elements", 27, inventoryList.size());
final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
- final NormalizedNodeResult result = new NormalizedNodeResult();
+ final NormalizationResultHolder result = new NormalizationResultHolder();
final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, systemSchema);
xmlParser.flush();
xmlParser.close();
- NormalizedNode transformedInput = result.getResult();
+ NormalizedNode transformedInput = result.getResult().data();
ContainerNode cn = (ContainerNode) transformedInput;
- AugmentationNode gcData = (AugmentationNode) cn.childByArg(
- YangInstanceIdentifier.AugmentationIdentifier.create(Sets.newHashSet(onapSystem.get().getName(),
- onapSystem.get().getWebUi(), onapSystem.get().getGeoLocation())));
- Optional<Guicutthrough> gc = ORanDOMToInternalDataModel.getGuicutthrough(gcData, onapSystem.get());
+ Optional<Guicutthrough> gc = ORanDOMToInternalDataModel.getGuicutthrough(cn, onapSystem.get());
assertEquals(gc.isPresent(), true);
-
}
@Test
TestORanDOMToInternalDataModel.class.getResourceAsStream("/oran-fm-active-alarm.xml");
final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
- final NormalizedNodeResult result = new NormalizedNodeResult();
+ final NormalizationResultHolder result = new NormalizationResultHolder();
final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, activeAlarmSchema);
xmlParser.flush();
xmlParser.close();
- NormalizedNode transformedInput = result.getResult();
- ContainerNode cn = (ContainerNode) transformedInput;
+ @NonNull NormalizationResult<?> transformedInput = result.getResult();
+ ContainerNode cn = (ContainerNode) transformedInput.data();
UnkeyedListNode activeAlarmsList =
(UnkeyedListNode) cn.childByArg(new NodeIdentifier(oranfm.get().getFaultActiveAlarmsQName()));
import java.util.ServiceLoader;
import java.util.Set;
import java.util.stream.Collectors;
-
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.YangConstants;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.stmt.FeatureSet;
import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.parser.api.YangParser;
final Set<QName> supportedFeatures, final Collection<? extends SchemaSourceRepresentation> sources) {
final YangParser parser = PARSER_FACTORY.createParser(config);
if (supportedFeatures != null) {
- parser.setSupportedFeatures(supportedFeatures);
+ parser.setSupportedFeatures(FeatureSet.of(supportedFeatures));
}
try {
--- /dev/null
+[ORAN-SUPERVISION]
+supervision-notification-interval=60
+guard-timer-overhead=10
</license>
</licenses>
- <properties>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- </properties>
-
<dependencies>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>**/gen/**</exclude>
- <exclude>**/generated-sources/**</exclude>
- <exclude>**/yang-gen-sal/**</exclude>
- <exclude>**/pax/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
</properties>
<dependencies>
- <!-- begin for testing -->
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <scope>test</scope>
- </dependency>
-
- <!-- end for testing -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-devicemanager-onap-adapter-manager-model</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-singleton-common-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
- <artifactId>mdsal-singleton-common-api</artifactId>
+ <artifactId>mdsal-dom-api</artifactId>
<scope>provided</scope>
</dependency>
+ <!-- begin for testing -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <!-- end for testing -->
</dependencies>
<build>
<filtering>true</filtering>
</resource>
</resources>
- <plugins>
+ <!-- <plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</excludes>
</configuration>
</plugin>
- </plugins>
+ </plugins>-->
</build>
</project>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-api</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
+ <artifactId>netconf-topology</artifactId>
</dependency>
- <!-- begin for testing -->
- <dependency>
+ <!-- begin for testing -->
+ <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
- <version>3.4.2</version>
+ <!--<version>3.4.2</version> -->
<scope>test</scope>
</dependency>
<dependency>
<buildtime>${maven.build.timestamp} UTC</buildtime>
<databaseport>49400</databaseport>
</properties>
-
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-devicemanager-core-model</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
- </dependency>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-websocketmanager-model</artifactId>
<artifactId>sdnr-wt-common</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-dom-codec-api</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-singleton-common-api</artifactId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-common-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-dom-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf.model</groupId>
+ <artifactId>rfc5277</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-codec-binfmt</artifactId>
+ </dependency>
<!-- begin for testing -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
- </dependency>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-model-util</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-parser-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-codec-gson</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-codec-xml</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<!-- end for testing -->
</dependencies>
<filtering>true</filtering>
</resource>
</resources>
- <pluginManagement><plugins>
- <plugin>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>yang-maven-plugin</artifactId>
- <version>7.0.9</version>
- <executions>
- <execution>
- <id>binding</id>
- <phase>none</phase>
- <goals>
- <goal>generate-sources</goal>
- </goals>
- <configuration>
- <inspectDependencies>true</inspectDependencies>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.mdsal</groupId>
- <artifactId>mdsal-binding-java-api-generator</artifactId>
- <version>8.0.6</version>
- <scope>compile</scope>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </pluginManagement>
<plugins>
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>**/gen/**</exclude>
- <exclude>**/generated-sources/**</exclude>
- <exclude>**/yang-gen-sal/**</exclude>
- <exclude>**/pax/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-enforcer-plugin</artifactId>
- <version>3.0.0</version>
- <executions>
- <execution>
- <id>enforce-maven</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <requireJavaVersion>
- <version>11</version>
- </requireJavaVersion>
- <requireMavenVersion>
- <version>[3.5.0,)</version>
- </requireMavenVersion>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>enforce-banned-dependencies</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <message>Please always use mockito-core instead of mockito-all (see https://bugs.opendaylight.org/show_bug.cgi?id=7662), and spotbugs:annotations instead of findbugs:annotations</message>
- <excludes>
- <exclude>org.mockito:mockito-all</exclude>
- <exclude>com.google.code.findbugs:annotations</exclude>
- </excludes>
- </bannedDependencies>
- </rules>
- <fail>false</fail>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
</project>
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.equipment.Onf14DomEquipmentManager;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.Onf14DomInterfacePacManager;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.TechnologySpecificPacKeys;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.qnames.Onf14DevicemanagerQNames;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.yangspecs.CoreModel14;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
@Override
public void deregister() {
+ faultService.removeAllCurrentProblemsOfNode(netconfDomAccessor.getNodeId());
performanceManager.deRegistration(netconfDomAccessor.getNodeId());
}
}
@Override
- public void warmstart() {}
+ public void warmstart() {
+ int problems = removeAllCurrentProblemsOfNode();
+ log.debug("Removed all {} problems from database at deregistration for {}", problems, netconfDomAccessor.getNodeId().getValue());
+ }
+
+ /**
+ * Remove all entries from list
+ */
+ public int removeAllCurrentProblemsOfNode() {
+ return faultService.removeAllCurrentProblemsOfNode(netconfDomAccessor.getNodeId());
+ }
@Override
public Optional<NetconfAccessor> getAcessor() {
List<Inventory> inventoryList = new ArrayList<>();
for (String uuid : getTopLevelEquipment(controlConstruct)) {
Optional<NormalizedNode> equipment = readEquipmentInstance(netconfDomAccessor, uuid);
+ log.info("Equipment Data is - {}", equipment.get().prettyTree());
MapEntryNode equipmentEntry = (MapEntryNode) equipment.get();
if (equipmentEntry != null) {
collectEquipment(inventoryList, equipmentEntry, null, EQUIPMENTROOTLEVEL);
*/
package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.yangspecs;
-import com.google.common.collect.Sets;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.TechnologySpecificPacKeys;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.pm.PerformanceDataAirInterface;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
this.coreModel14 = coreModel14;
}
- public FaultData readAllCurrentProblems(FaultData resultList,
- List<TechnologySpecificPacKeys> airInterfaceList) {
+ public FaultData readAllCurrentProblems(FaultData resultList, List<TechnologySpecificPacKeys> airInterfaceList) {
int idxStart; // Start index for debug messages
// model
YangInstanceIdentifier layerProtocolIID = coreModel14.getLayerProtocolIId(ltpUuid, localId);
-
- @NonNull
- AugmentationIdentifier airInterfacePacIID =
- YangInstanceIdentifier.AugmentationIdentifier.create(Sets.newHashSet(getQName("air-interface-pac")));
-
- InstanceIdentifierBuilder augmentedAirInterfacePacIID =
- YangInstanceIdentifier.builder(layerProtocolIID).node(airInterfacePacIID);
-
+ InstanceIdentifierBuilder airInterfacePacIID =
+ YangInstanceIdentifier.builder(layerProtocolIID).node(getQName("air-interface-pac"));
+
+ // @NonNull
+ // AugmentationIdentifier airInterfacePacIID =
+ // YangInstanceIdentifier.AugmentationIdentifier.create(Sets.newHashSet(getQName("air-interface-pac")));
+ //
+ // InstanceIdentifierBuilder augmentedAirInterfacePacIID =
+ // YangInstanceIdentifier.builder(layerProtocolIID).node(airInterfacePacIID);
+ //
// reading all the current-problems list for this specific LTP and LP
Optional<NormalizedNode> airInterfacePacDataOpt =
- netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedAirInterfacePacIID.build());
-
+ netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, airInterfacePacIID.build());
if (airInterfacePacDataOpt.isPresent()) {
- AugmentationNode airInterfacePacData = (AugmentationNode) airInterfacePacDataOpt.get();
+ LOG.info("Air Interface = {}", airInterfacePacDataOpt.get().prettyTree());
+ }
+ if (airInterfacePacDataOpt.isPresent()) {
+ ContainerNode airInterfacePacData = (ContainerNode) airInterfacePacDataOpt.get();
MapNode airInterfaceCurrentProblemsList =
(MapNode) airInterfacePacData.childByArg(new NodeIdentifier(getQName("current-problem-list")));
if (airInterfaceCurrentProblemsList != null) {
// model
YangInstanceIdentifier layerProtocolIID = coreModel14.getLayerProtocolIId(ltpUuid, localId);
-
- @NonNull
- AugmentationIdentifier airInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier
- .create(Sets.newHashSet(Onf14DevicemanagerQNames.AIR_INTERFACE_PAC));
-
- InstanceIdentifierBuilder augmentedAirInterfacePacIID =
- YangInstanceIdentifier.builder(layerProtocolIID).node(airInterfacePacIID);
-
- // reading historical performance list for this specific LTP and LP
- Optional<NormalizedNode> airInterfacePacDataOpt =
- netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedAirInterfacePacIID.build());
- LOG.debug("Performance Data = {}", airInterfacePacDataOpt.get().body());
- if (airInterfacePacDataOpt.isPresent()) {
- AugmentationNode airInterfacePacData = (AugmentationNode) airInterfacePacDataOpt.get();
- ContainerNode cn = (ContainerNode) airInterfacePacData
- .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_PAC));
- if (cn != null) {
- ContainerNode airIntfHistPerf = (ContainerNode) cn
- .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_HISTORICAL_PERFORMANCES));
- if (airIntfHistPerf != null) {
- MapNode airInterfaceHistoricalPerformanceList = (MapNode) airIntfHistPerf.childByArg(
- new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_HISTORICAL_PERFORMANCES_LIST));
- if (airInterfaceHistoricalPerformanceList != null) {
- Collection<MapEntryNode> airInterfaceHistoricalPerfCollection =
- airInterfaceHistoricalPerformanceList.body();
- for (MapEntryNode airInterfaceHistPerf : airInterfaceHistoricalPerfCollection) {
- res.add(new PerformanceDataAirInterface(netconfDomAccessor.getNodeId(), ltpUuid, localId,
- airInterfaceHistPerf));
+ InstanceIdentifierBuilder airInterfacePacIID =
+ YangInstanceIdentifier.builder(layerProtocolIID).node(getQName("air-interface-pac"));
+
+ // @NonNull
+ // AugmentationIdentifier airInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier
+ // .create(Sets.newHashSet(Onf14DevicemanagerQNames.AIR_INTERFACE_PAC));
+ //
+ // InstanceIdentifierBuilder augmentedAirInterfacePacIID =
+ // YangInstanceIdentifier.builder(layerProtocolIID).node(airInterfacePacIID);
+ //
+ // // reading historical performance list for this specific LTP and LP
+ Optional<NormalizedNode> airInterfacePacDataOpt =
+ netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, airInterfacePacIID.build());
+ LOG.debug("Performance Data = {}", airInterfacePacDataOpt.get().body());
+ if (airInterfacePacDataOpt.isPresent()) {
+ ContainerNode airInterfacePacData = (ContainerNode) airInterfacePacDataOpt.get();
+ ContainerNode cn = (ContainerNode) airInterfacePacData
+ .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_PAC));
+ if (cn != null) {
+ ContainerNode airIntfHistPerf = (ContainerNode) cn
+ .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_HISTORICAL_PERFORMANCES));
+ if (airIntfHistPerf != null) {
+ MapNode airInterfaceHistoricalPerformanceList = (MapNode) airIntfHistPerf.childByArg(
+ new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_HISTORICAL_PERFORMANCES_LIST));
+ if (airInterfaceHistoricalPerformanceList != null) {
+ Collection<MapEntryNode> airInterfaceHistoricalPerfCollection =
+ airInterfaceHistoricalPerformanceList.body();
+ for (MapEntryNode airInterfaceHistPerf : airInterfaceHistoricalPerfCollection) {
+ res.add(new PerformanceDataAirInterface(netconfDomAccessor.getNodeId(), ltpUuid, localId,
+ airInterfaceHistPerf));
+ }
+ return res;
+ } else {
+ LOG.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+ }
}
- return res;
- } else {
- LOG.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
}
}
- }
- }
return null;
}
*/
package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.yangspecs;
-import com.google.common.collect.Sets;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
YangInstanceIdentifier alarmsPacIID =
YangInstanceIdentifier.builder().node(coreModel14.getControlConstructQName()).build();
-
- @NonNull
- AugmentationIdentifier alarmsContainerIID =
- YangInstanceIdentifier.AugmentationIdentifier.create(Sets.newHashSet(ALARM_PAC));
-
- InstanceIdentifierBuilder augmentedAlarmsIID =
- YangInstanceIdentifier.builder(alarmsPacIID).node(alarmsContainerIID);
-
- // reading all the alarms
+ InstanceIdentifierBuilder alarmsContainerIID = YangInstanceIdentifier.builder(alarmsPacIID).node(ALARM_PAC);
+
+ // @NonNull
+ // AugmentationIdentifier alarmsContainerIID =
+ // YangInstanceIdentifier.AugmentationIdentifier.create(Sets.newHashSet(ALARM_PAC));
+ //
+ // InstanceIdentifierBuilder augmentedAlarmsIID =
+ // YangInstanceIdentifier.builder(alarmsPacIID).node(alarmsContainerIID);
+ //
+ // // reading all the alarms
Optional<NormalizedNode> alarms =
- this.getNetconfDomAccessor().readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedAlarmsIID.build());
+ this.getNetconfDomAccessor().readDataNode(LogicalDatastoreType.OPERATIONAL, alarmsContainerIID.build());
FaultData resultList = new FaultData();
if (alarms.isPresent()) {
- AugmentationNode alarmsDataNode = (AugmentationNode) alarms.get();
+ ContainerNode alarmsDataNode = (ContainerNode) alarms.get();
ContainerNode alarmsContainer = (ContainerNode) alarmsDataNode.childByArg(new NodeIdentifier(ALARM_PAC));
ContainerNode currentAlarmsContainer =
(ContainerNode) alarmsContainer.childByArg(new NodeIdentifier(CURRENT_ALARMS));
}
}
return resultList;
+
}
public boolean isSupported(Capabilities capabilites) {
return module.getRevision().get().toString();
}
- @Override
- public QName getQName(String localName) {
- return QName.create(module, localName);
- }
-
public QName getControlConstructQName() {
return CONTROL_CONSTRUCT;
}
*/
package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.yangspecs;
-import com.google.common.collect.Sets;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.TechnologySpecificPacKeys;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Debug;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
// constructing the IID needs the augmentation exposed by the
// ethernet-container-2-0 model
YangInstanceIdentifier layerProtocolIID = coreModel14.getLayerProtocolIId(ltpUuid, localId);
-
- @NonNull
- AugmentationIdentifier ethernetContainerIID = YangInstanceIdentifier.AugmentationIdentifier
- .create(Sets.newHashSet(getQName("ethernet-container-pac")));
-
- InstanceIdentifierBuilder augmentedEthernetContainerConfigurationIID =
- YangInstanceIdentifier.builder(layerProtocolIID).node(ethernetContainerIID);
-
- // reading all the current-problems list for this specific LTP and LP
+ InstanceIdentifierBuilder ethernetContainerIID = YangInstanceIdentifier.builder(layerProtocolIID).node(getQName("ethernet-container-pac"));
+// @NonNull
+// AugmentationIdentifier ethernetContainerIID = YangInstanceIdentifier.AugmentationIdentifier
+// .create(Sets.newHashSet(getQName("ethernet-container-pac")));
+//
+// InstanceIdentifierBuilder augmentedEthernetContainerConfigurationIID =
+// YangInstanceIdentifier.builder(layerProtocolIID).node(ethernetContainerIID);
+//
+// // reading all the current-problems list for this specific LTP and LP
Optional<NormalizedNode> etherntContainerConfigurationOpt = netconfDomAccessor
- .readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedEthernetContainerConfigurationIID.build());
+ .readDataNode(LogicalDatastoreType.OPERATIONAL, ethernetContainerIID.build());
if (etherntContainerConfigurationOpt.isPresent()) {
- AugmentationNode etherntContainerConfiguration = (AugmentationNode) etherntContainerConfigurationOpt.get();
+ ContainerNode etherntContainerConfiguration = (ContainerNode) etherntContainerConfigurationOpt.get();
MapNode ethernetContainerCurrentProblemsList = (MapNode) etherntContainerConfiguration
.childByArg(new NodeIdentifier(getQName("current-problem-list")));
if (ethernetContainerCurrentProblemsList != null) {
*/
package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.yangspecs;
-import com.google.common.collect.Sets;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.TechnologySpecificPacKeys;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.qnames.Onf14DevicemanagerQNames;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
// constructing the IID needs the augmentation exposed by the wire-interface-2-0
// model
YangInstanceIdentifier layerProtocolIID = coreModel14.getLayerProtocolIId(ltpUuid, localId);
-
- @NonNull
- AugmentationIdentifier wireInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier
- .create(Sets.newHashSet(Onf14DevicemanagerQNames.WIRE_INTERFACE_PAC));
-
- InstanceIdentifierBuilder augmentedWireInterfaceConfigurationIID =
- YangInstanceIdentifier.builder(layerProtocolIID).node(wireInterfacePacIID);
+ InstanceIdentifierBuilder wireInterfacePacIID =
+ YangInstanceIdentifier.builder(layerProtocolIID).node(Onf14DevicemanagerQNames.WIRE_INTERFACE_PAC);
+ // @NonNull
+ // YangInstanceIdentifier wireInterfacePacIID =
+ // YangInstanceIdentifier.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_PAC);
+ //
+ // InstanceIdentifierBuilder augmentedWireInterfaceConfigurationIID =
+ // YangInstanceIdentifier.builder(layerProtocolIID).node(wireInterfacePacIID.getLastPathArgument());
// reading all the current-problems list for this specific LTP and LP
- Optional<NormalizedNode> wireInterfaceConfigurationOpt = netconfDomAccessor
- .readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedWireInterfaceConfigurationIID.build());
+ Optional<NormalizedNode> wireInterfaceConfigurationOpt =
+ netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, wireInterfacePacIID.build());
if (wireInterfaceConfigurationOpt.isPresent()) {
- AugmentationNode wireInterfaceConfiguration = (AugmentationNode) wireInterfaceConfigurationOpt.get();
+ ContainerNode wireInterfaceConfiguration = (ContainerNode) wireInterfaceConfigurationOpt.get();
MapNode wireInterfaceCurrentProblemsList = (MapNode) wireInterfaceConfiguration
.childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_LIST));
if (wireInterfaceCurrentProblemsList != null) {
return resultList;
}
- public FaultData readAllCurrentProblems(FaultData resultList,
- List<TechnologySpecificPacKeys> wireInterfaceList) {
+ public FaultData readAllCurrentProblems(FaultData resultList, List<TechnologySpecificPacKeys> wireInterfaceList) {
int idxStart; // Start index for debug messages
Onf14DomToInternalDataModel model = new Onf14DomToInternalDataModel();
ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromJson();
+ System.out.println("Container Node = "+cn);
MapNode equipmentMap = (MapNode) cn.getChildByArg(new NodeIdentifier(QName.create(qnm, "equipment")));
List<Inventory> inventoryList = new ArrayList<Inventory>();
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizationResult;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+
import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier;
import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
+
//import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; //Yangtool 8.0
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
import org.xml.sax.SAXException;
public class Onf14DomTestUtils {
loadTextFile(new File(Onf14DomTestUtils.class.getResource("/ControlConstruct-data-test.json").toURI()));
final JsonReader reader = new JsonReader(new StringReader(streamAsString));
- NormalizedNodeResult result = new NormalizedNodeResult();
+ NormalizationResultHolder result = new NormalizationResultHolder();
// StreamWriter which attaches NormalizedNode under parent
final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
}
// Finally build the node
- transformedInput = result.getResult();
+ transformedInput = result.getResult().data();
return transformedInput;
}
*/
final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
- final NormalizedNodeResult result = new NormalizedNodeResult();
+ final NormalizationResultHolder result = new NormalizationResultHolder();
final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
xmlParser.flush();
xmlParser.close();
- transformedInput = result.getResult();
+ transformedInput = result.getResult().data();
return transformedInput;
}
*/
final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
- final NormalizedNodeResult result = new NormalizedNodeResult();
+ final NormalizationResultHolder result = new NormalizationResultHolder();
final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
xmlParser.flush();
xmlParser.close();
- transformedInput = result.getResult();
+ transformedInput = result.getResult().data();
return transformedInput;
}
import java.util.ServiceLoader;
import java.util.Set;
import java.util.stream.Collectors;
-
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.YangConstants;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.stmt.FeatureSet;
import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.parser.api.YangParser;
final Set<QName> supportedFeatures, final Collection<? extends SchemaSourceRepresentation> sources) {
final YangParser parser = PARSER_FACTORY.createParser(config);
if (supportedFeatures != null) {
- parser.setSupportedFeatures(supportedFeatures);
+ parser.setSupportedFeatures(FeatureSet.of(supportedFeatures));
}
try {
</license>
</licenses>
- <properties>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
- <buildtime>${maven.build.timestamp} UTC</buildtime>
- </properties>
-
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
+ <!-- <dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>sal-netconf-connector</artifactId>
<scope>provided</scope>
- </dependency>
+ </dependency> -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
- <version>3.2.4</version>
+ <!-- <version>3.2.4</version>-->
<scope>test</scope>
</dependency>
<dependency>
<artifactId>byte-buddy</artifactId>
<groupId>net.bytebuddy</groupId>
+ <version>1.14.9</version>
<scope>test</scope>
</dependency>
<dependency>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
-
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf.model</groupId>
+ <artifactId>rfc6241</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf.model</groupId>
+ <artifactId>rfc6470</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-common-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-dom-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- end for testing -->
</dependencies>
<filtering>true</filtering>
</resource>
</resources>
- <plugins>
+ <!-- <plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</excludes>
</configuration>
</plugin>
- </plugins>
+ </plugins>-->
</build>
</project>
</license>
</licenses>
- <properties>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
- <buildtime>${maven.build.timestamp} UTC</buildtime>
- </properties>
-
<dependencies>
-
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ietf-alarms</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
+ <!-- <dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>sal-netconf-connector</artifactId>
<scope>provided</scope>
- </dependency>
+ </dependency> -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<dependency>
<groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
<artifactId>sdnr-wt-yang-utils</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf.model</groupId>
+ <artifactId>rfc6241</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf.model</groupId>
+ <artifactId>rfc6470</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-common-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-dom-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- end for testing -->
</dependencies>
<properties>
<application.name>sdnr-wt-installer</application.name>
</properties>
-
+ <!-- <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>installed-odl-bom</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+
+ </dependencies>
+ </dependencyManagement> -->
<dependencies>
+ <!-- <dependency>
+ <groupId>jakarta.activation</groupId>
+ <artifactId>jakarta.activation-api</artifactId>
+ <version>2.0.1</version>
+ <scope>provided</scope>
+ </dependency> -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-feature-aggregator</artifactId>
<type>xml</type>
<classifier>features</classifier>
</dependency>
- <dependency>
+ <dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sdnr-wt-feature-aggregator-oauth</artifactId>
<version>${project.version}</version>
<dependencies>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>**/gen/**</exclude>
- <exclude>**/generated-sources/**</exclude>
- <exclude>**/yang-gen-sal/**</exclude>
- <exclude>**/pax/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
* ============LICENSE_END==========================================================================
*/
+
package org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config;
import org.onap.ccsdk.features.sdnr.wt.common.configuration.Configuration;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.ExecutionException;
+import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.clients.admin.Admin;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.GeneralConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.kafka.VESMsgKafkaConsumer;
protected final GeneralConfig generalConfig;
Admin kafkaAdminClient = null;
- protected StrimziKafkaVESMsgConsumerImpl(GeneralConfig generalConfig, Admin kafkaAdminClient) {
+ protected StrimziKafkaVESMsgConsumerImpl(GeneralConfig generalConfig) {
this.generalConfig = generalConfig;
- this.kafkaAdminClient = kafkaAdminClient;
}
/*
*/
@Override
public void init(Properties strimziKafkaProperties, Properties consumerProperties) {
+ Properties props = new Properties();
+ props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, strimziKafkaProperties.getProperty("bootstrapServers"));
+ kafkaAdminClient = Admin.create(props);
try {
this.consumer = new VESMsgKafkaConsumer(strimziKafkaProperties, consumerProperties);
*/
@Override
public void stopConsumer() {
- consumer.stop();
running = false;
}
import java.util.List;
import java.util.Map;
import java.util.Properties;
-import org.apache.kafka.clients.admin.Admin;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.FaultConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.GeneralConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.MessageConfig;
private ProvisioningConfig provisioningConfig;
private StndDefinedFaultConfig stndDefinedFaultConfig;
private StrimziKafkaConfig strimziKafkaConfig;
- private Admin kafkaAdminClient = null;
public StrimziKafkaVESMsgConsumerMain(Map<String, MessageConfig> configMap, GeneralConfig generalConfig) {
this.generalConfig = generalConfig;
StrimziKafkaConfig strimziKafkaConfig) {
this.generalConfig = generalConfig;
this.strimziKafkaConfig = strimziKafkaConfig;
- kafkaAdminClient = Admin.create(getStrimziKafkaProps(strimziKafkaConfig));
configMap.forEach(this::initialize);
}
private Properties getStrimziKafkaProps(StrimziKafkaConfig strimziKafkaConfig) {
if (strimziKafkaProperties.size() == 0) {
- strimziKafkaProperties.put("bootstrap.servers", strimziKafkaConfig.getBootstrapServers());
- strimziKafkaProperties.put("security.protocol", strimziKafkaConfig.getSecurityProtocol());
- strimziKafkaProperties.put("sasl.mechanism", strimziKafkaConfig.getSaslMechanism());
- strimziKafkaProperties.put("sasl.jaas.config", strimziKafkaConfig.getSaslJaasConfig());
+ strimziKafkaProperties.put("bootstrapServers", strimziKafkaConfig.getBootstrapServers());
+ strimziKafkaProperties.put("securityProtocol", strimziKafkaConfig.getSecurityProtocol());
+ strimziKafkaProperties.put("saslMechanism", strimziKafkaConfig.getSaslMechanism());
+ strimziKafkaProperties.put("saslJaasConfig", strimziKafkaConfig.getSaslJaasConfig());
}
return strimziKafkaProperties;
}
StrimziKafkaVESMsgConsumerImpl consumer = null;
if (consumerType.equalsIgnoreCase(_PNFREG_DOMAIN))
- consumer = new StrimziKafkaPNFRegVESMsgConsumer(generalConfig, kafkaAdminClient);
+ consumer = new StrimziKafkaPNFRegVESMsgConsumer(generalConfig);
else if (consumerType.equalsIgnoreCase(_FAULT_DOMAIN))
- consumer = new StrimziKafkaFaultVESMsgConsumer(generalConfig, kafkaAdminClient);
+ consumer = new StrimziKafkaFaultVESMsgConsumer(generalConfig);
else if (consumerType.equalsIgnoreCase(_CM_DOMAIN))
- consumer = new StrimziKafkaCMVESMsgConsumer(generalConfig, kafkaAdminClient);
+ consumer = new StrimziKafkaCMVESMsgConsumer(generalConfig);
else if (consumerType.equals(_STNDDEFINED_FAULT_DOMAIN))
- consumer = new StrimziKafkaStndDefinedFaultVESMsgConsumer(generalConfig, kafkaAdminClient);
+ consumer = new StrimziKafkaStndDefinedFaultVESMsgConsumer(generalConfig);
handleConsumer(consumer, consumerProperties, strimziKafkaProps, consumers);
return !consumers.isEmpty();
Thread.currentThread().interrupt();
}
}
- kafkaAdminClient.close();
+
LOG.info("No listener threads running - exiting");
}
*/
public VESMsgKafkaConsumer(Properties strimziKafkaProperties, Properties consumerProperties) {
Properties props = new Properties();
- props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, strimziKafkaProperties.getProperty("bootstrap.servers"));
- props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, strimziKafkaProperties.getProperty("security.protocol"));
- props.put(SaslConfigs.SASL_MECHANISM, strimziKafkaProperties.getProperty("sasl.mechanism"));
- props.put(SaslConfigs.SASL_JAAS_CONFIG, strimziKafkaProperties.getProperty("sasl.jaas.config"));
+ props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, strimziKafkaProperties.getProperty("bootstrapServers"));
+ props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, strimziKafkaProperties.getProperty("securityProtocol"));
+ props.put(SaslConfigs.SASL_MECHANISM, strimziKafkaProperties.getProperty("saslMechanism"));
+ props.put(SaslConfigs.SASL_JAAS_CONFIG, strimziKafkaProperties.getProperty("saslJaasConfig"));
props.put(ConsumerConfig.GROUP_ID_CONFIG,
consumerProperties.getProperty("consumerGroup") + "-" + consumerProperties.getProperty("topic"));
props.put(ConsumerConfig.CLIENT_ID_CONFIG,
public String getTopicName() {
return topicName;
}
-
- public void stop() {
- consumer.unsubscribe();
- consumer.close();
- }
}
import java.time.ZoneId;
import java.util.Iterator;
import java.util.Map;
-import org.apache.kafka.clients.admin.Admin;
+
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.GeneralConfig;
-import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.InvalidMessageException;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.StrimziKafkaVESMsgConsumerImpl;
+import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.InvalidMessageException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger LOG = LoggerFactory.getLogger(StrimziKafkaCMVESMsgConsumer.class);
- public StrimziKafkaCMVESMsgConsumer(GeneralConfig generalConfig, Admin kafkaAdminClient) {
- super(generalConfig, kafkaAdminClient);
+ public StrimziKafkaCMVESMsgConsumer(GeneralConfig generalConfig) {
+ super(generalConfig);
LOG.info("StrimziKafkaCMVESMsgConsumer started successfully");
}
import java.time.Instant;
import java.time.ZoneId;
import java.util.Map;
-import org.apache.kafka.clients.admin.Admin;
+
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.GeneralConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.StrimziKafkaVESMsgConsumerImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
private static final Logger LOG = LoggerFactory.getLogger(StrimziKafkaFaultVESMsgConsumer.class);
- public StrimziKafkaFaultVESMsgConsumer(GeneralConfig generalConfig, Admin kafkaAdminClient) {
- super(generalConfig, kafkaAdminClient);
+ public StrimziKafkaFaultVESMsgConsumer(GeneralConfig generalConfig) {
+ super(generalConfig);
}
@Override
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
-import org.apache.kafka.clients.admin.Admin;
import org.eclipse.jdt.annotation.Nullable;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.GeneralConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.StrimziKafkaVESMsgConsumerImpl;
private static final String DEFAULT_PASSWORD = "netconf";
- public StrimziKafkaPNFRegVESMsgConsumer(GeneralConfig generalConfig, Admin kafkaAdminClient) {
- super(generalConfig, kafkaAdminClient);
+ public StrimziKafkaPNFRegVESMsgConsumer(GeneralConfig generalConfig) {
+ super(generalConfig);
}
@Override
import java.time.Instant;
import java.time.ZoneId;
import java.util.Map;
-import org.apache.kafka.clients.admin.Admin;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.GeneralConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.InvalidMessageException;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.StrimziKafkaVESMsgConsumerImpl;
String faultNodeId;
String notificationType;
- public StrimziKafkaStndDefinedFaultVESMsgConsumer(GeneralConfig generalConfig, Admin kafkaAdminClient) {
- super(generalConfig, kafkaAdminClient);
+ public StrimziKafkaStndDefinedFaultVESMsgConsumer(GeneralConfig generalConfig) {
+ super(generalConfig);
LOG.info("StrimziKafkaStndDefinedFaultVESMsgConsumer started successfully");
}
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
+import org.junit.After;
+import org.junit.Test;
import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.config.StrimziKafkaConfig;
+ "";
// @formatter:on
- private StrimziKafkaConfig sKafkaCfg;
+ private ConfigurationFileRepresentation cfg;
private static final String CONFIGURATIONFILE = "test2.properties";
- public TestStrimziKafkaConfig(String filename) throws IOException {
- Files.asCharSink(new File(filename), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
- ConfigurationFileRepresentation globalCfg = new ConfigurationFileRepresentation(filename);
- this.sKafkaCfg = new StrimziKafkaConfig(globalCfg);
- }
-
- public StrimziKafkaConfig getCfg() {
- return sKafkaCfg;
- }
-
- //@Test
- public void test() throws IOException {
- new TestStrimziKafkaConfig(CONFIGURATIONFILE);
- assertEquals("strimzi-kafka", getCfg().getSectionName());
- assertEquals("onap-strimzi-kafka-0:9094,onap-strimzi-kafka-1:9094", getCfg().getBootstrapServers());
- assertEquals("PLAINTEXT", getCfg().getSecurityProtocol());
- assertEquals(false, getCfg().getEnabled());
- assertEquals("PLAIN", getCfg().getSaslJaasConfig());
- assertEquals("PLAIN", getCfg().getSaslMechanism());
+ @Test
+ public void test() {
+ try {
+ Files.asCharSink(new File(CONFIGURATIONFILE), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
+ cfg = new ConfigurationFileRepresentation(CONFIGURATIONFILE);
+ StrimziKafkaConfig sKafkaCfg = new StrimziKafkaConfig(cfg);
+ assertEquals("strimzi-kafka", sKafkaCfg.getSectionName());
+ assertEquals("onap-strimzi-kafka-0:9094,onap-strimzi-kafka-1:9094", sKafkaCfg.getBootstrapServers());
+ assertEquals("PLAINTEXT", sKafkaCfg.getSecurityProtocol());
+ assertEquals(false, sKafkaCfg.getEnabled());
+ assertEquals("PLAIN", sKafkaCfg.getSaslJaasConfig());
+ assertEquals("PLAIN", sKafkaCfg.getSaslMechanism());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
- //@After
+ @After
public void cleanUp() {
File file = new File(CONFIGURATIONFILE);
if (file.exists()) {
import org.junit.Test;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.InvalidMessageException;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.test.config.GeneralConfigForTest;
-import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.test.config.TestStrimziKafkaConfig;
import org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.vesdomain.cm.StrimziKafkaCMVESMsgConsumer;
public class TestStrimziKafkaCMVESMsgConsumer {
private static final String CONFIGURATION_FILE = "cm_test.properties";
private StrimziKafkaCMVESMsgConsumer sKafkaCMVESMsgConsumer;
private GeneralConfigForTest generalConfigForTest;
- private TestStrimziKafkaConfig strimziKafkaConfigForTest;
@Before
public void setUp() throws Exception {
generalConfigForTest = new GeneralConfigForTest(CONFIGURATION_FILE);
- strimziKafkaConfigForTest = new TestStrimziKafkaConfig(CONFIGURATION_FILE);
- sKafkaCMVESMsgConsumer = new StrimziKafkaCMVESMsgConsumer(generalConfigForTest.getCfg(), null);
+ sKafkaCMVESMsgConsumer = new StrimziKafkaCMVESMsgConsumer(generalConfigForTest.getCfg());
}
@Test
@Test
public void test() throws IOException {
- StrimziKafkaFaultVESMsgConsumer faultMsgConsumer = new StrimziKafkaFaultVESMsgConsumer(cfgTest.getCfg(), null);
+ StrimziKafkaFaultVESMsgConsumer faultMsgConsumer = new StrimziKafkaFaultVESMsgConsumer(cfgTest.getCfg());
try {
faultMsgConsumer.processMsg(faultVESMsg.replace("@eventSeverity@", "CRITICAL"));
@Test
public void processMsgTest() {
- StrimziKafkaPNFRegVESMsgConsumer pnfRegMsgConsumer = new StrimziKafkaPNFRegVESMsgConsumer(cfgTest.getCfg(), null);
+ StrimziKafkaPNFRegVESMsgConsumer pnfRegMsgConsumer = new StrimziKafkaPNFRegVESMsgConsumer(cfgTest.getCfg());
try {
pnfRegMsgConsumer.processMsg(pnfRegMsg);
pnfRegMsgConsumer.processMsg(pnfRegMsg_SSH);
@Test
public void Test1() {
- StrimziKafkaPNFRegVESMsgConsumer pnfConsumer = new StrimziKafkaPNFRegVESMsgConsumer(cfgTest.getCfg(), null);
+ StrimziKafkaPNFRegVESMsgConsumer pnfConsumer = new StrimziKafkaPNFRegVESMsgConsumer(cfgTest.getCfg());
System.out.println(pnfConsumer.getBaseUrl());
System.out.println(pnfConsumer.getSDNRUser());
System.out.println(pnfConsumer.getSDNRPasswd());
@Test
public void testNotifyNewAlarm() throws IOException {
- StrimziKafkaStndDefinedFaultVESMsgConsumer stndDefinedFaultMsgConsumer =
- new StrimziKafkaStndDefinedFaultVESMsgConsumer(cfgTest.getCfg(), null);
+ StrimziKafkaStndDefinedFaultVESMsgConsumer stndDefinedFaultMsgConsumer = new StrimziKafkaStndDefinedFaultVESMsgConsumer(cfgTest.getCfg());
try {
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "CRITICAL"));
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "Major"));
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "minor"));
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "NonAlarmed"));
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "warning"));
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "Unknown"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "CRITICAL"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "Major"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "minor"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "NonAlarmed"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "warning"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyNewAlarm.replace("@eventSeverity@", "Unknown"));
//stndDefinedFaultMsgConsumer.processMsg(faultVESMsg_Incomplete);
} catch (Exception e) {
e.printStackTrace();
@Test
public void testNotifyClearedAlarm() throws IOException {
- StrimziKafkaStndDefinedFaultVESMsgConsumer stndDefinedFaultMsgConsumer =
- new StrimziKafkaStndDefinedFaultVESMsgConsumer(cfgTest.getCfg(), null);
+ StrimziKafkaStndDefinedFaultVESMsgConsumer stndDefinedFaultMsgConsumer = new StrimziKafkaStndDefinedFaultVESMsgConsumer(cfgTest.getCfg());
try {
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyClearedAlarm.replace("@eventSeverity@", "cleared"));
- stndDefinedFaultMsgConsumer
- .processMsg(stndDefinedVESMsg_NotifyClearedAlarm.replace("@eventSeverity@", "Indeterminate"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyClearedAlarm.replace("@eventSeverity@", "cleared"));
+ stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_NotifyClearedAlarm.replace("@eventSeverity@", "Indeterminate"));
//stndDefinedFaultMsgConsumer.processMsg(faultVESMsg_Incomplete);
} catch (Exception e) {
e.printStackTrace();
@Test(expected = InvalidMessageException.class)
public void testInvalidStndDefinedMessage() throws InvalidMessageException, JsonProcessingException {
- StrimziKafkaStndDefinedFaultVESMsgConsumer stndDefinedFaultMsgConsumer =
- new StrimziKafkaStndDefinedFaultVESMsgConsumer(cfgTest.getCfg(), null);
+ StrimziKafkaStndDefinedFaultVESMsgConsumer stndDefinedFaultMsgConsumer = new StrimziKafkaStndDefinedFaultVESMsgConsumer(cfgTest.getCfg());
stndDefinedFaultMsgConsumer.processMsg(stndDefinedVESMsg_Invalid.replace("@eventSeverity@", "cleared"));
}
}
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-inet-types</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-topology</artifactId>
+ </dependency>
+
<!-- end for testing -->
</dependencies>
boolean vesCollectorEnabled = vesCollectorService.getConfig().isVESCollectorEnabled();
if (vesCollectorEnabled) {
+ vesCollectorEnabledCV = true;
startPublishing();
}
}
public VESMessage createVESMessage(JSONObject obj) {
if (LOG.isDebugEnabled()) {
- LOG.debug("JSON Object to format to VES is - {0}", obj);
+ LOG.debug("JSON Object to format to VES is - {}", obj);
}
MountpointStateVESMessageFormatter.incrSequenceNo();
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.opendaylight.yangtools.yang.common.Uint16;
</properties>
<dependencies>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-dom-codec-api</artifactId>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-topology</artifactId>
- <version>5.0.6</version>
- <scope>compile</scope>
+ <scope>provided</scope>
</dependency>
</dependencies>
import java.util.Optional;
import javax.annotation.Nullable;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.UnavailableCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.AvailableCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.UnavailableCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.unavailable.capabilities.UnavailableCapability;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import static org.mockito.Mockito.when;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.UnavailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapabilityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapability;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.AvailableCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.UnavailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.available.capabilities.AvailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.unavailable.capabilities.UnavailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.unavailable.capabilities.UnavailableCapabilityBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
</license>
</licenses>
- <properties>
+<!-- <properties>
<maven.javadoc.skip>true</maven.javadoc.skip>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
<buildtime>${maven.build.timestamp} UTC</buildtime>
- </properties>
+ </properties>-->
<dependencies>
<dependency>
<artifactId>netconf-dom-api</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
+ <!--<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>sal-netconf-connector</artifactId>
<scope>provided</scope>
- </dependency>
+ </dependency>-->
<!-- akka -->
<dependency>
<groupId>com.typesafe</groupId>
<artifactId>sdnr-wt-netconfnode-state-service-model</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>netconf-topology</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-dom-codec</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
import org.opendaylight.mdsal.dom.api.DOMMountPointService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.ClusteredConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.ClusteredConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconfnode.state.rev191011.GetStatusInput;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.NetconfNodeStateServiceImpl;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.dom.api.DOMDataBroker;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.slf4j.Logger;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizationResult;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier;
import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
public class DomParser {
* @param schemaContext schema context
* @return created {@link NormalizedNode}
*/
- public static NormalizedNode parseJsonFile(final String path, final EffectiveModelContext schemaContext) {
+ public static NormalizationResult<?> parseJsonFile(final String path, final EffectiveModelContext schemaContext) {
final JSONCodecFactory codecFactory = JSONCodecFactorySupplier.RFC7951.createSimple(schemaContext);
- final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
+ final NormalizationResultHolder resultHolder = new NormalizationResultHolder();
try (NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
JsonParserStream jsonParser = JsonParserStream.create(writer, codecFactory);
InputStream inputStream = NetconfDomAccessorImpl.class.getResourceAsStream(path);
+++ /dev/null
-#
-# ============LICENSE_START=======================================================
-# ONAP : ccsdk features
-# ================================================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=======================================================
-#
-#
-
-# Properties filled in by maven during build process
-version = ${project.version}
-build = ${buildtime}
import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconfnode.state.rev191011.AttributeChangeNotification;
package org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.test.example;
import java.io.IOException;
-import java.net.URI;
import java.util.Objects;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.DomContext;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.dom.DomParser;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizationResult;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.parser.api.YangParser;
import org.opendaylight.yangtools.yang.parser.api.YangParserException;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final EffectiveModelContext schemaContext = parser.buildEffectiveModel();
// (2) parsing of configuration into binding-independent format
- final NormalizedNode data = DomParser.parseJsonFile("/example.json", schemaContext);
+ final NormalizationResult<?> data = DomParser.parseJsonFile("/example.json", schemaContext);
// (3) conversion into binding-aware format (md-sal codec needs to know about path on which data is placed)
- final Configuration config = (Configuration) domContext.getBindingNormalizedNodeSerializer().fromNormalizedNode(CONFIGURATION_PATH, data)
+ final Configuration config = (Configuration) domContext.getBindingNormalizedNodeSerializer().fromNormalizedNode(CONFIGURATION_PATH, data.data())
.getValue();
// (4) printing some useful information
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.NetconfAccessorImpl;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.NetconfCommunicatorManager;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.dom.DomContextImpl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240118.connection.oper.available.capabilities.AvailableCapabilityBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
/**
* Provide a test node.
- * @param nodeIdString
+ * @param nodeId
+ * @param capabilityString
*/
public static Node getTestNode(NodeId nodeId, String capabilityString) {
NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder();
<artifactId>rfc6991-ietf-yang-types</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.opendaylight.netconf</groupId>
- <artifactId>sal-netconf-connector</artifactId>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
<artifactId>sdnr-wt-oauth-provider-top</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-features :: ${project.artifactId}</name>