summaryrefslogtreecommitdiffstats
path: root/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor
diff options
context:
space:
mode:
authorTamasBakai <tamas.bakai@est.tech>2019-03-19 09:56:28 +0000
committerTamasBakai <tamas.bakai@est.tech>2019-03-19 09:56:28 +0000
commit114c21c9ff09fd80851e8419b575ea75f5e0a206 (patch)
tree7a573cda93d7acff46a129fb0e6e24863e274d67 /test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor
parentdb4bd69a91545c22580f3c9c57237df82cf1b80e (diff)
ROP file processing in mass-pnf-simulator
Change-Id: I66203ff66e9d91865f8eee06bef01e55bcd6c39c Issue-ID: DCAEGEN2-1225 Signed-off-by: TamasBakai <tamas.bakai@est.tech>
Diffstat (limited to 'test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor')
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java62
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java71
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java114
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java34
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java42
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java51
-rw-r--r--test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java45
7 files changed, 419 insertions, 0 deletions
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java
new file mode 100644
index 000000000..bb173aef2
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java
@@ -0,0 +1,62 @@
+/// *
+// * ============LICENSE_START=======================================================
+// * PNF-REGISTRATION-HANDLER
+// * ================================================================================
+// * Copyright (C) 2018 NOKIA 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=========================================================
+// */
+//
+// package org.onap.pnfsimulator.netconfmonitor;
+//
+// import com.tailf.jnc.JNCException;
+// import java.io.IOException;
+// import java.util.TimerTask;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
+// import org.slf4j.Logger;
+// import org.slf4j.LoggerFactory;
+//
+// public class NetconfConfigurationCheckingTask extends TimerTask {
+//
+// private static final Logger LOGGER =
+/// LoggerFactory.getLogger(NetconfConfigurationCheckingTask.class);
+//
+// private final NetconfConfigurationReader reader;
+// private final NetconfConfigurationWriter writer;
+// private final NetconfConfigurationCache cache;
+//
+// public NetconfConfigurationCheckingTask(NetconfConfigurationReader reader,
+// NetconfConfigurationWriter writer,
+// NetconfConfigurationCache cache) {
+// this.reader = reader;
+// this.writer = writer;
+// this.cache = cache;
+// }
+//
+// @Override
+// public void run() {
+// try {
+// String currentConfiguration = reader.read();
+// if (!currentConfiguration.equals(cache.getConfiguration())) {
+// LOGGER.info("Configuration has changed, new configuration:\n\n{}", currentConfiguration);
+// writer.writeToFile(currentConfiguration);
+// cache.update(currentConfiguration);
+// }
+// } catch (IOException | JNCException e) {
+// LOGGER.warn("Error during configuration reading: {}", e.getMessage());
+// }
+// }
+// }
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java
new file mode 100644
index 000000000..4e484b9d9
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java
@@ -0,0 +1,71 @@
+/// *
+// * ============LICENSE_START=======================================================
+// * PNF-REGISTRATION-HANDLER
+// * ================================================================================ Copyright (C)
+// * 2018 NOKIA 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=========================================================
+// */
+//
+// package org.onap.pnfsimulator.netconfmonitor;
+//
+// import com.tailf.jnc.JNCException;
+// import java.io.IOException;
+// import java.util.Timer;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
+// import org.slf4j.Logger;
+// import org.slf4j.LoggerFactory;
+// import org.springframework.beans.factory.annotation.Autowired;
+//
+//// @Service
+// public class NetconfMonitorService {
+// private static final Logger LOGGER = LoggerFactory.getLogger(NetconfMonitorService.class);
+// private static final long timePeriod = 1000L;
+// private static final long startDelay = 0;
+//
+// private Timer timer;
+// private NetconfConfigurationReader reader;
+// private NetconfConfigurationWriter writer;
+// private NetconfConfigurationCache cache;
+//
+// @Autowired
+// public NetconfMonitorService(Timer timer, NetconfConfigurationReader reader,
+/// NetconfConfigurationWriter writer,
+// NetconfConfigurationCache cache) {
+// this.timer = timer;
+// this.reader = reader;
+// this.writer = writer;
+// this.cache = cache;
+// }
+//
+// // @PostConstruct
+// public void start() {
+// setStartConfiguration();
+// NetconfConfigurationCheckingTask task = new NetconfConfigurationCheckingTask(reader, writer,
+/// cache);
+// timer.scheduleAtFixedRate(task, startDelay, timePeriod);
+// }
+//
+// private void setStartConfiguration() {
+// try {
+// String configuration = reader.read();
+// writer.writeToFile(configuration);
+// cache.update(configuration);
+// } catch (IOException | JNCException e) {
+// LOGGER.warn("Error during configuration reading: {}", e.getMessage());
+// }
+// }
+// }
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java
new file mode 100644
index 000000000..d97315ba4
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java
@@ -0,0 +1,114 @@
+/// *
+// * ============LICENSE_START=======================================================
+// * PNF-REGISTRATION-HANDLER
+// * ================================================================================
+// * Copyright (C) 2018 NOKIA 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=========================================================
+// */
+//
+// package org.onap.pnfsimulator.netconfmonitor;
+//
+// import com.tailf.jnc.JNCException;
+// import com.tailf.jnc.NetconfSession;
+// import com.tailf.jnc.SSHConnection;
+// import com.tailf.jnc.SSHSession;
+// import java.io.IOException;
+// import java.util.Map;
+// import java.util.Timer;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
+// import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConnectionParams;
+// import org.slf4j.Logger;
+// import org.slf4j.LoggerFactory;
+// import org.springframework.context.annotation.Bean;
+// import org.springframework.context.annotation.Configuration;
+//
+// @Configuration
+// public class NetconfMonitorServiceConfiguration {
+//
+// private static final Logger LOGGER =
+/// LoggerFactory.getLogger(NetconfMonitorServiceConfiguration.class);
+// private static final Map<String, String> enviroment = System.getenv();
+//
+// private static final String LOG_PATH = "/var/log";
+//
+// private static final String NETCONF_ADDRESS = "NETCONF_ADDRESS";
+// private static final String NETCONF_PORT = "NETCONF_PORT";
+// private static final String NETCONF_MODEL = "NETCONF_MODEL";
+// private static final String NETCONF_MAIN_CONTAINER = "NETCONF_MAIN_CONTAINER";
+//
+// private static final String DEFAULT_NETCONF_ADDRESS = "localhost";
+// private static final int DEFAULT_NETCONF_PORT = 830;
+// private static final String DEFAULT_NETCONF_MODEL = "pnf-simulator";
+// private static final String DEFAULT_NETCONF_MAIN_CONTAINER = "config";
+//
+// private static final String DEFAULT_NETCONF_USER = "netconf";
+// private static final String DEFAULT_NETCONF_PASSWORD = "netconf";
+//
+// @Bean
+// public Timer timer() {
+// return new Timer("NetconfMonitorServiceTimer");
+// }
+//
+// @Bean
+// public NetconfConfigurationCache configurationCache() {
+// return new NetconfConfigurationCache();
+// }
+//
+// @Bean
+// public NetconfConfigurationReader configurationReader() throws IOException, JNCException {
+// NetconfConnectionParams params = resolveConnectionParams();
+// LOGGER.info("Configuration params are : {}", params);
+// NetconfSession session = createNetconfSession(params);
+// return new NetconfConfigurationReader(session, buildModelPath());
+// }
+//
+// NetconfSession createNetconfSession(NetconfConnectionParams params) throws IOException,
+/// JNCException {
+// SSHConnection sshConnection = new SSHConnection(params.address, params.port);
+// sshConnection.authenticateWithPassword(params.user, params.password);
+// return new NetconfSession( new SSHSession(sshConnection));
+// }
+//
+// @Bean
+// public NetconfConfigurationWriter netconfConfigurationWriter() {
+// return new NetconfConfigurationWriter(LOG_PATH);
+// }
+//
+// private String buildModelPath() {
+// return String.format("/%s:%s",
+// enviroment.getOrDefault(NETCONF_MODEL, DEFAULT_NETCONF_MODEL),
+// enviroment.getOrDefault(NETCONF_MAIN_CONTAINER, DEFAULT_NETCONF_MAIN_CONTAINER));
+// }
+//
+// NetconfConnectionParams resolveConnectionParams() {
+// return new NetconfConnectionParams(
+// enviroment.getOrDefault(NETCONF_ADDRESS, DEFAULT_NETCONF_ADDRESS),
+// resolveNetconfPort(),
+// DEFAULT_NETCONF_USER,
+// DEFAULT_NETCONF_PASSWORD);
+// }
+//
+// private int resolveNetconfPort() {
+// try {
+// return Integer.parseInt(enviroment.get(NETCONF_PORT));
+// } catch (NumberFormatException e) {
+// LOGGER.warn("Invalid netconf port: {}. Default netconf port {} is set.", e.getMessage(),
+// DEFAULT_NETCONF_PORT);
+// return DEFAULT_NETCONF_PORT;
+// }
+// }
+// }
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java
new file mode 100644
index 000000000..39721841b
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java
@@ -0,0 +1,34 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA 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=========================================================
+ */
+
+package org.onap.pnfsimulator.netconfmonitor.netconf;
+
+public class NetconfConfigurationCache {
+
+ private String configuration = "";
+
+ public String getConfiguration() {
+ return configuration;
+ }
+
+ public void update(String configuration) {
+ this.configuration = configuration;
+ }
+}
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java
new file mode 100644
index 000000000..e41e58f78
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java
@@ -0,0 +1,42 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================ Copyright (C)
+ * 2018 NOKIA 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=========================================================
+ */
+
+package org.onap.pnfsimulator.netconfmonitor.netconf;
+
+import com.tailf.jnc.JNCException;
+import com.tailf.jnc.NetconfSession;
+import java.io.IOException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class NetconfConfigurationReader {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(NetconfConfigurationReader.class);
+ private final NetconfSession session;
+ private final String netconfModelPath;
+
+ public NetconfConfigurationReader(NetconfSession session, String netconfModelPath) {
+ LOGGER.warn("netconfModelPath: {}", netconfModelPath);
+ this.session = session;
+ this.netconfModelPath = netconfModelPath;
+ }
+
+ public String read() throws IOException, JNCException {
+ return session.getConfig(netconfModelPath).first().toXMLString();
+ }
+}
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java
new file mode 100644
index 000000000..40030796f
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java
@@ -0,0 +1,51 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA 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=========================================================
+ */
+
+package org.onap.pnfsimulator.netconfmonitor.netconf;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import org.onap.pnfsimulator.rest.util.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NetconfConfigurationWriter {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(NetconfConfigurationWriter.class);
+ private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
+ private String pathToLog;
+
+ public NetconfConfigurationWriter(String pathToLog) {
+ this.pathToLog = pathToLog;
+ }
+
+ public void writeToFile(String configuration) {
+ String fileName = String.format("%s/config[%s].xml", pathToLog, DateUtil.getTimestamp(dateFormat));
+ try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
+ writer.write(configuration);
+ LOGGER.info("Configuration wrote to file {}/{} ", pathToLog, fileName);
+ } catch (IOException e) {
+ LOGGER.warn("Failed to write configuration to file: {}", e.getMessage());
+ }
+ }
+}
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java
new file mode 100644
index 000000000..1d6eb89bf
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA 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=========================================================
+ */
+
+package org.onap.pnfsimulator.netconfmonitor.netconf;
+
+public class NetconfConnectionParams {
+
+ public final String address;
+ public final int port;
+ public final String user;
+ public final String password;
+
+ public NetconfConnectionParams(String address, int port, String user, String password) {
+ this.address = address;
+ this.port = port;
+ this.user = user;
+ this.password = password;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("NetconfConnectionParams{address=%s, port=%d, user=%s, password=%s}",
+ address,
+ port,
+ user,
+ password);
+ }
+} \ No newline at end of file