diff options
author | 2019-07-10 13:48:52 +0200 | |
---|---|---|
committer | 2019-07-19 17:18:49 +0000 | |
commit | 032ff22ef20b59950a8b5fae8d2ba6d03e93ac93 (patch) | |
tree | 98058dcf2726b3f432cecffc42bd7cbccca3555e /test/mocks/pnfsimulator/src/main | |
parent | 79c9b78adb7fbc943fd2aee7d333fd3cadf5b8f3 (diff) |
Opensourcing new version of Simulator
Additional info in README.md
Issue-ID: INT-1134
Signed-off-by: Wojciech Sliwka <wojciech.sliwka@nokia.com>
Change-Id: I06d41fd3f361b7a451b30b702882810e4136a129
Diffstat (limited to 'test/mocks/pnfsimulator/src/main')
24 files changed, 0 insertions, 1591 deletions
diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/Main.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/Main.java deleted file mode 100644 index 244eef6bd..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/Main.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * ============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; - -import org.onap.pnfsimulator.message.MessageProvider; -import org.onap.pnfsimulator.simulator.validation.JSONValidator; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; -import org.springframework.scheduling.annotation.EnableAsync; - -@SpringBootApplication -@EnableAsync -public class Main { - - public static void main(String[] args) { - SpringApplication.run(Main.class, args); - } - - @Bean - public MessageProvider messageProvider() { - return new MessageProvider(); - } - - @Bean - public JSONValidator jsonValidator() { - return new JSONValidator(); - } -} - - diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/logging/MDCVariables.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/logging/MDCVariables.java deleted file mode 100644 index 8f6fe3b66..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/logging/MDCVariables.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * ============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.logging; - -public final class MDCVariables { - - public static final String X_ONAP_REQUEST_ID = "X-ONAP-RequestID"; - public static final String X_INVOCATION_ID = "X-InvocationID"; - public static final String REQUEST_ID = "RequestID"; - public static final String INVOCATION_ID = "InvocationID"; - public static final String INSTANCE_UUID = "InstanceUUID"; - public static final String RESPONSE_CODE = "ResponseCode"; - public static final String SERVICE_NAME = "ServiceName"; - - private MDCVariables() { - } -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java deleted file mode 100644 index 3ebf5674a..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * ============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.message; - -import static org.onap.pnfsimulator.message.MessageConstants.EVENT_ID; -import static org.onap.pnfsimulator.message.MessageConstants.INTERNAL_HEADER_FIELDS; -import static org.onap.pnfsimulator.message.MessageConstants.LAST_EPOCH_MICROSEC; -import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS_VERSION; -import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS_VERSION_VALUE; -import static org.onap.pnfsimulator.message.MessageConstants.PNF_LAST_SERVICE_DATE; -import static org.onap.pnfsimulator.message.MessageConstants.PNF_MANUFACTURE_DATE; -import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS_VERSION; -import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS_VERSION_VALUE; -import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY; -import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY_NORMAL; -import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE; -import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE_NUMBER; -import static org.onap.pnfsimulator.message.MessageConstants.START_EPOCH_MICROSEC; -import static org.onap.pnfsimulator.message.MessageConstants.VERSION; -import static org.onap.pnfsimulator.message.MessageConstants.VERSION_NUMBER; -import static org.onap.pnfsimulator.message.MessageConstants.VES_EVENT_LISTENER_VERSION; -import static org.onap.pnfsimulator.message.MessageConstants.VES_EVENT_LISTENER_VERSION_NUMBER; - -import org.json.JSONObject; - -final class JSONObjectFactory { - - static JSONObject generateConstantCommonEventHeader() { - JSONObject commonEventHeader = new JSONObject(); - long timestamp = System.currentTimeMillis(); - commonEventHeader.put(EVENT_ID, generateEventId()); - commonEventHeader.put(LAST_EPOCH_MICROSEC, timestamp); - commonEventHeader.put(PRIORITY, PRIORITY_NORMAL); - commonEventHeader.put(SEQUENCE, SEQUENCE_NUMBER); - commonEventHeader.put(START_EPOCH_MICROSEC, timestamp); - commonEventHeader.put(INTERNAL_HEADER_FIELDS, new JSONObject()); - commonEventHeader.put(VERSION, VERSION_NUMBER); - commonEventHeader.put(VES_EVENT_LISTENER_VERSION, VES_EVENT_LISTENER_VERSION_NUMBER); - return commonEventHeader; - } - - static JSONObject generatePnfRegistrationFields() { - JSONObject pnfRegistrationFields = new JSONObject(); - pnfRegistrationFields.put(PNF_REGISTRATION_FIELDS_VERSION, PNF_REGISTRATION_FIELDS_VERSION_VALUE); - pnfRegistrationFields.put(PNF_LAST_SERVICE_DATE, String.valueOf(System.currentTimeMillis())); - pnfRegistrationFields.put(PNF_MANUFACTURE_DATE, String.valueOf(System.currentTimeMillis())); - return pnfRegistrationFields; - } - - static JSONObject generateNotificationFields() { - JSONObject notificationFields = new JSONObject(); - notificationFields.put(NOTIFICATION_FIELDS_VERSION, NOTIFICATION_FIELDS_VERSION_VALUE); - return notificationFields; - } - - - static String generateEventId() { - String timeAsString = String.valueOf(System.currentTimeMillis()); - return String.format("registration_%s", - timeAsString.substring(timeAsString.length() - 11, timeAsString.length() - 3)); - } - - private JSONObjectFactory() { - - } - -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageBuilder.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageBuilder.java deleted file mode 100644 index ef0b2fdd2..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageBuilder.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * PNF-REGISTRATION-HANDLER - * ================================================================================ - * Copyright (C) 2019 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.message; - -import org.json.JSONObject; - -import static org.onap.pnfsimulator.message.MessageConstants.COMMON_EVENT_HEADER; -import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN; -import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN_NOTIFICATION; -import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN_PNF_REGISTRATION; -import static org.onap.pnfsimulator.message.MessageConstants.EVENT; -import static org.onap.pnfsimulator.message.MessageConstants.EVENT_TYPE; -import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS; -import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS; - -public final class MessageBuilder { - private JSONObject root; - private JSONObject event; - private JSONObject commonEventHeader; - - private MessageBuilder() { - } - - public static MessageBuilder withCommonEventHeaderParams(JSONObject commonEventHeaderParams) { - MessageBuilder builder = new MessageBuilder(); - builder.initializeBuilder(commonEventHeaderParams); - return builder; - } - - public MessageBuilder withNotificationParams(JSONObject notificationParams) { - JSONObject notificationFields = JSONObjectFactory.generateNotificationFields(); - merge(notificationParams, notificationFields); - commonEventHeader.put(DOMAIN, DOMAIN_NOTIFICATION); - event.put(NOTIFICATION_FIELDS, notificationFields); - return this; - } - - public MessageBuilder withPnfRegistrationParams(JSONObject pnfRegistrationParams) { - JSONObject pnfRegistrationFields = JSONObjectFactory.generatePnfRegistrationFields(); - merge(pnfRegistrationParams, pnfRegistrationFields); - commonEventHeader.put(DOMAIN, DOMAIN_PNF_REGISTRATION); - commonEventHeader.put(EVENT_TYPE, DOMAIN_PNF_REGISTRATION); - event.put(PNF_REGISTRATION_FIELDS, pnfRegistrationFields); - return this; - } - - public JSONObject build() { - return root; - } - - private void initializeBuilder(JSONObject commonEventHeaderParams) { - root = new JSONObject(); - event = new JSONObject(); - commonEventHeader = JSONObjectFactory.generateConstantCommonEventHeader(); - commonEventHeaderParams.toMap().forEach(commonEventHeader::put); - event.put(COMMON_EVENT_HEADER, commonEventHeader); - root.put(EVENT, event); - } - - private void merge(JSONObject source, JSONObject destination) { - source.toMap().forEach(destination::put); - } -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java deleted file mode 100644 index 95e8f69f3..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * ============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.message; - -public final class MessageConstants { - - public static final String SIMULATOR_PARAMS = "simulatorParams"; - public static final String COMMON_EVENT_HEADER_PARAMS = "commonEventHeaderParams"; - public static final String PNF_REGISTRATION_PARAMS = "pnfRegistrationParams"; - public static final String NOTIFICATION_PARAMS = "notificationParams"; - - static final String COMMON_EVENT_HEADER = "commonEventHeader"; - static final String PNF_REGISTRATION_FIELDS = "pnfRegistrationFields"; - static final String NOTIFICATION_FIELDS = "notificationFields"; - static final String EVENT = "event"; - - //============================================================================================= - //Simulation parameters - public static final String VES_SERVER_URL = "vesServerUrl"; - public static final String TEST_DURATION = "testDuration"; - public static final String MESSAGE_INTERVAL = "messageInterval"; - - //============================================================================================= - //commonEventHeader - //parameters - static final String DOMAIN = "domain"; - static final String EVENT_ID = "eventId"; - static final String EVENT_TYPE = "eventType"; - static final String LAST_EPOCH_MICROSEC = "lastEpochMicrosec"; - static final String PRIORITY = "priority"; - static final String SEQUENCE = "sequence"; - static final String START_EPOCH_MICROSEC = "startEpochMicrosec"; - static final String INTERNAL_HEADER_FIELDS = "internalHeaderFields"; - static final String VERSION = "version"; - static final String VES_EVENT_LISTENER_VERSION = "vesEventListenerVersion"; - //constant values - static final int SEQUENCE_NUMBER = 0; - static final String VERSION_NUMBER = "4.0.1"; - static final String VES_EVENT_LISTENER_VERSION_NUMBER = "7.0.1"; - static final String PRIORITY_NORMAL = "Normal"; - - //============================================================================================= - //PNF registration - //parameters - static final String PNF_REGISTRATION_FIELDS_VERSION = "pnfRegistrationFieldsVersion"; - static final String PNF_LAST_SERVICE_DATE = "lastServiceDate"; - static final String PNF_MANUFACTURE_DATE = "manufactureDate"; - //constant values - static final String PNF_REGISTRATION_FIELDS_VERSION_VALUE = "2.0"; - static final String DOMAIN_PNF_REGISTRATION ="pnfRegistration"; - - //============================================================================================= - // Notifications - //parameters - static final String NOTIFICATION_FIELDS_VERSION = "notificationFieldsVersion"; - //constant values - static final String NOTIFICATION_FIELDS_VERSION_VALUE = "2.0"; - static final String DOMAIN_NOTIFICATION ="notification"; - - private MessageConstants() { - } - -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java deleted file mode 100644 index fee574597..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * PNF-REGISTRATION-HANDLER - * ================================================================================ - * Copyright (C) 2018-2019 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.message; - -import org.json.JSONObject; - -public class MessageProvider { - - public JSONObject createMessageWithNotification(JSONObject commonEventHeaderParams, - JSONObject notificationParams) { - return MessageBuilder - .withCommonEventHeaderParams(commonEventHeaderParams) - .withNotificationParams(notificationParams) - .build(); - } - - public JSONObject createMessageWithPnfRegistration(JSONObject commonEventHeaderParams, JSONObject pnfRegistrationParams) { - return MessageBuilder - .withCommonEventHeaderParams(commonEventHeaderParams) - .withPnfRegistrationParams(pnfRegistrationParams) - .build(); - } - -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java deleted file mode 100644 index 2300d6492..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfConfigurationCheckingTask.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * ============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/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java deleted file mode 100644 index 0e7ab257d..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorService.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * ============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 javax.annotation.PostConstruct; -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; -import org.springframework.stereotype.Service; - -@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/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java deleted file mode 100644 index b0965d42b..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/NetconfMonitorServiceConfiguration.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * ============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/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java deleted file mode 100644 index 39721841b..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationCache.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * ============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/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java deleted file mode 100644 index 593598e86..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationReader.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ============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; - -public class NetconfConfigurationReader { - - private final NetconfSession session; - private final String netconfModelPath; - - public NetconfConfigurationReader(NetconfSession session, String netconfModelPath) { - this.session = session; - this.netconfModelPath = netconfModelPath; - } - - public String read() throws IOException, JNCException { - return session.getConfig(netconfModelPath).first().toXMLString(); - } -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java deleted file mode 100644 index 40030796f..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConfigurationWriter.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * ============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/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java deleted file mode 100644 index 1d6eb89bf..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/netconfmonitor/netconf/NetconfConnectionParams.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * ============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 diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java deleted file mode 100644 index 6b9f02622..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java +++ /dev/null @@ -1,211 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * PNF-REGISTRATION-HANDLER - * ================================================================================ - * Copyright (C) 2018-2019 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.rest; - -import com.github.fge.jsonschema.core.exceptions.ProcessingException; -import org.json.JSONException; -import org.json.JSONObject; -import org.onap.pnfsimulator.rest.util.DateUtil; -import org.onap.pnfsimulator.rest.util.ResponseBuilder; -import org.onap.pnfsimulator.simulator.Simulator; -import org.onap.pnfsimulator.simulator.SimulatorFactory; -import org.onap.pnfsimulator.simulator.validation.JSONValidator; -import org.onap.pnfsimulator.simulator.validation.ValidationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.UUID; - -import static org.onap.pnfsimulator.logging.MDCVariables.INSTANCE_UUID; -import static org.onap.pnfsimulator.logging.MDCVariables.INVOCATION_ID; -import static org.onap.pnfsimulator.logging.MDCVariables.REQUEST_ID; -import static org.onap.pnfsimulator.logging.MDCVariables.RESPONSE_CODE; -import static org.onap.pnfsimulator.logging.MDCVariables.SERVICE_NAME; -import static org.onap.pnfsimulator.logging.MDCVariables.X_INVOCATION_ID; -import static org.onap.pnfsimulator.logging.MDCVariables.X_ONAP_REQUEST_ID; -import static org.onap.pnfsimulator.message.MessageConstants.COMMON_EVENT_HEADER_PARAMS; -import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_PARAMS; -import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_PARAMS; -import static org.onap.pnfsimulator.message.MessageConstants.SIMULATOR_PARAMS; -import static org.onap.pnfsimulator.rest.util.ResponseBuilder.MESSAGE; -import static org.onap.pnfsimulator.rest.util.ResponseBuilder.REMAINING_TIME; -import static org.onap.pnfsimulator.rest.util.ResponseBuilder.SIMULATOR_STATUS; -import static org.onap.pnfsimulator.rest.util.ResponseBuilder.TIMESTAMP; -import static org.springframework.http.HttpStatus.BAD_REQUEST; -import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; -import static org.springframework.http.HttpStatus.OK; - -@RestController -@RequestMapping("/simulator") -public class SimulatorController { - - private static final Logger LOGGER = LoggerFactory.getLogger(Simulator.class); - private static final DateFormat RESPONSE_DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss,SSS"); - private final Marker ENTRY = MarkerFactory.getMarker("ENTRY"); - private Simulator simulator; - private JSONValidator validator; - private SimulatorFactory factory; - - @Autowired - public SimulatorController(JSONValidator validator, SimulatorFactory factory) { - this.validator = validator; - this.factory = factory; - } - - @PostMapping("start") - public ResponseEntity start(@RequestHeader HttpHeaders headers, @RequestBody String message) { - MDC.put(REQUEST_ID, headers.getFirst(X_ONAP_REQUEST_ID)); - MDC.put(INVOCATION_ID, headers.getFirst(X_INVOCATION_ID)); - MDC.put(INSTANCE_UUID, UUID.randomUUID().toString()); - MDC.put(SERVICE_NAME, "/simulator/start"); - LOGGER.info(ENTRY, "Simulator starting"); - - if (isSimulatorRunning()) { - MDC.put(RESPONSE_CODE, BAD_REQUEST.toString()); - return ResponseBuilder - .status(BAD_REQUEST) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Cannot start simulator since it's already running") - .build(); - } - - try { - validator.validate(message, "json_schema/input_validator.json"); - JSONObject root = new JSONObject(message); - JSONObject simulatorParams = root.getJSONObject(SIMULATOR_PARAMS); - JSONObject commonEventHeaderParams = root.getJSONObject(COMMON_EVENT_HEADER_PARAMS); - simulator = createSimulator(root, simulatorParams, commonEventHeaderParams); - simulator.start(); - - MDC.put(RESPONSE_CODE, OK.toString()); - return ResponseBuilder - .status(OK) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Simulator started") - .build(); - - } catch (JSONException e) { - MDC.put(RESPONSE_CODE, BAD_REQUEST.toString()); - LOGGER.warn("Cannot start simulator, invalid json format: {}", e.getMessage()); - LOGGER.debug("Received json has invalid format", e); - return ResponseBuilder - .status(BAD_REQUEST) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Cannot start simulator, invalid json format") - .build(); - - } catch (ProcessingException | ValidationException | IOException e) { - MDC.put(RESPONSE_CODE, BAD_REQUEST.toString()); - LOGGER.warn("Json validation failed: {}", e.getMessage()); - return ResponseBuilder - .status(BAD_REQUEST) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Cannot start simulator - Json format is not compatible with schema definitions") - .build(); - - } catch (Exception e) { - MDC.put(RESPONSE_CODE, INTERNAL_SERVER_ERROR.toString()); - LOGGER.error("Cannot start simulator - unexpected exception", e); - return ResponseBuilder - .status(INTERNAL_SERVER_ERROR) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Unexpected exception: " + e.getMessage()) - .build(); - } finally { - MDC.clear(); - } - } - - private Simulator createSimulator(JSONObject root, JSONObject simulatorParams, JSONObject commonEventHeaderParams) - throws ProcessingException, IOException, ValidationException { - JSONObject pnfRegistrationFields = root.optJSONObject(PNF_REGISTRATION_PARAMS); - JSONObject notificationFields = root.optJSONObject(NOTIFICATION_PARAMS); - if (pnfRegistrationFields != null && notificationFields == null) { - return factory.createSimulatorWithPnfRegistration(simulatorParams, commonEventHeaderParams, pnfRegistrationFields); - } else if (pnfRegistrationFields == null && notificationFields != null) { - return factory.createSimulatorWithNotification(simulatorParams, commonEventHeaderParams, notificationFields); - } else { - throw new ValidationException("Exactly one of pnfRegistrationFields or notificationFields should be present"); - } - } - - @GetMapping("status") - public ResponseEntity status() { - if (isSimulatorRunning()) { - ResponseBuilder responseBuilder = ResponseBuilder - .status(OK) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(SIMULATOR_STATUS, "RUNNING"); - - return !simulator.isEndless() ? - responseBuilder - .put(REMAINING_TIME, simulator.getRemainingTime()) - .build() : - responseBuilder - .build(); - } else { - return ResponseBuilder - .status(OK) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(SIMULATOR_STATUS, "NOT RUNNING") - .build(); - } - } - - @PostMapping("stop") - public ResponseEntity stop() { - if (isSimulatorRunning()) { - simulator.interrupt(); - - return ResponseBuilder - .status(OK) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Simulator successfully stopped") - .build(); - } else { - return ResponseBuilder - .status(BAD_REQUEST) - .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT)) - .put(MESSAGE, "Cannot stop simulator, because it's not running") - .build(); - } - } - - private boolean isSimulatorRunning() { - return simulator != null && simulator.isAlive(); - } -} - diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java deleted file mode 100644 index 284d58904..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * ============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.rest.util; - -import java.text.DateFormat; -import java.util.Date; - -public final class DateUtil { - - private DateUtil() { - } - - public static String getTimestamp(DateFormat dateFormat) { - - return dateFormat.format(new Date()); - } -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java deleted file mode 100644 index 98f4588c1..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * ============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.rest.util; - -import java.util.LinkedHashMap; -import java.util.Map; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; - -public class ResponseBuilder { - - public static final String TIMESTAMP = "timestamp"; - public static final String MESSAGE = "message"; - public static final String SIMULATOR_STATUS = "simulatorStatus"; - public static final String REMAINING_TIME = "remainingTime"; - - private HttpStatus httpStatus; - private Map<String, Object> body = new LinkedHashMap<>(); - - private ResponseBuilder(HttpStatus httpStatus) { - this.httpStatus = httpStatus; - } - - public static ResponseBuilder status(HttpStatus httpStatus) { - - return new ResponseBuilder(httpStatus); - } - - public ResponseBuilder put(String key, Object value) { - - body.put(key, value); - return this; - } - - public ResponseEntity build() { - - if (body.isEmpty()) { - return ResponseEntity.status(httpStatus).build(); - } - - return ResponseEntity.status(httpStatus).body(body); - } - -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/Simulator.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/Simulator.java deleted file mode 100644 index 854311709..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/Simulator.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * ============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.simulator; - -import java.time.Duration; -import java.time.Instant; -import java.util.Map; -import org.json.JSONObject; -import org.onap.pnfsimulator.simulator.client.HttpClientAdapter; -import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; - -public class Simulator extends Thread { - - private static final Logger LOGGER = LoggerFactory.getLogger(Simulator.class); - private final Marker EXIT = MarkerFactory.getMarker("EXIT"); - private Map<String,String> contextMap = MDC.getCopyOfContextMap(); - private boolean isEndless; - private String vesUrl; - private HttpClientAdapter httpClient; - private JSONObject messageBody; - private Duration duration; - private Duration interval; - private Instant endTime; - - private Simulator() { - } - - public static Builder builder() { - return new Builder(); - } - - public void run() { - setMdcContextMap(contextMap); - LOGGER.info("Simulation started - duration: {}, interval: {}s", getDuration(), interval.getSeconds()); - endTime = Instant.now().plus(duration); - while (isEndless || runningTimeNotExceeded()) { - try { - LOGGER.debug("Message to be sent:\n" + getMessage()); - httpClient.send(messageBody.toString(), vesUrl); - Thread.sleep(interval.toMillis()); - } catch (InterruptedException e) { - LOGGER.info("Simulation interrupted"); - return; - } - } - LOGGER.info(EXIT, "Simulation finished"); - MDC.clear(); - } - - private void setMdcContextMap(Map<String,String> mdcContextMap) { - if(mdcContextMap != null) - MDC.setContextMap(mdcContextMap); - } - - private String getMessage() { - return messageBody.toString(4); - } - - private String getDuration() { - return isEndless() ? "infinity" : duration.getSeconds() + "s"; - } - - private boolean runningTimeNotExceeded() { - return Instant.now().isBefore(endTime); - } - - public boolean isEndless() { - return isEndless; - } - - public long getRemainingTime() { - return Duration.between(Instant.now(), endTime).getSeconds(); - } - - public static class Builder { - - private String vesUrl; - private HttpClientAdapter httpClient; - private JSONObject messageBody; - private Duration duration; - private Duration interval; - - private Builder() { - this.vesUrl = ""; - this.httpClient = new HttpClientAdapterImpl(); - this.messageBody = new JSONObject(); - this.duration = Duration.ZERO; - this.interval = Duration.ZERO; - } - - public Builder withVesUrl(String vesUrl) { - this.vesUrl = vesUrl; - return this; - } - - public Builder withCustomHttpClientAdapter(HttpClientAdapter httpClient) { - this.httpClient = httpClient; - return this; - } - - public Builder withMessageBody(JSONObject messageBody) { - this.messageBody = messageBody; - return this; - } - - public Builder withDuration(Duration duration) { - this.duration = duration; - return this; - } - - - public Builder withInterval(Duration interval) { - this.interval = interval; - return this; - } - - public Simulator build() { - Simulator simulator = new Simulator(); - simulator.vesUrl = this.vesUrl; - simulator.httpClient = this.httpClient; - simulator.messageBody = this.messageBody; - simulator.duration = this.duration; - simulator.interval = this.interval; - simulator.isEndless = duration.equals(Duration.ZERO); - return simulator; - } - } -}
\ No newline at end of file diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java deleted file mode 100644 index 8e16ad2ce..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * PNF-REGISTRATION-HANDLER - * ================================================================================ - * Copyright (C) 2018-2019 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.simulator; - -import com.github.fge.jsonschema.core.exceptions.ProcessingException; -import org.json.JSONObject; -import org.onap.pnfsimulator.message.MessageProvider; -import org.onap.pnfsimulator.simulator.validation.JSONValidator; -import org.onap.pnfsimulator.simulator.validation.ValidationException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.io.IOException; -import java.time.Duration; - -import static java.lang.Integer.parseInt; -import static org.onap.pnfsimulator.message.MessageConstants.MESSAGE_INTERVAL; -import static org.onap.pnfsimulator.message.MessageConstants.TEST_DURATION; -import static org.onap.pnfsimulator.message.MessageConstants.VES_SERVER_URL; - -@Service -public class SimulatorFactory { - - private static final String DEFAULT_OUTPUT_SCHEMA_PATH = "json_schema/output_validator_ves_schema_30.0.1.json"; - - private MessageProvider messageProvider; - private JSONValidator validator; - - @Autowired - public SimulatorFactory(MessageProvider messageProvider, JSONValidator validator) { - this.messageProvider = messageProvider; - this.validator = validator; - } - - public Simulator createSimulatorWithNotification(JSONObject simulatorParams, JSONObject commonEventHeaderParams, - JSONObject notificationParams) - throws ProcessingException, IOException, ValidationException { - JSONObject messageBody = messageProvider - .createMessageWithNotification(commonEventHeaderParams, notificationParams); - return createSimulatorWithMessage(simulatorParams, messageBody); - } - - public Simulator createSimulatorWithPnfRegistration(JSONObject simulatorParams, JSONObject commonEventHeaderParams, - JSONObject pnfRegistrationParams) - throws ProcessingException, IOException, ValidationException { - JSONObject messageBody = messageProvider - .createMessageWithPnfRegistration(commonEventHeaderParams, pnfRegistrationParams); - return createSimulatorWithMessage(simulatorParams, messageBody); - } - - private Simulator createSimulatorWithMessage(JSONObject simulatorParams, JSONObject messageBody) - throws ValidationException, ProcessingException, IOException { - Duration duration = Duration.ofSeconds(parseInt(simulatorParams.getString(TEST_DURATION))); - Duration interval = Duration.ofSeconds(parseInt(simulatorParams.getString(MESSAGE_INTERVAL))); - String vesUrl = simulatorParams.getString(VES_SERVER_URL); - validator.validate(messageBody.toString(), DEFAULT_OUTPUT_SCHEMA_PATH); - - return Simulator.builder() - .withVesUrl(vesUrl) - .withDuration(duration) - .withInterval(interval) - .withMessageBody(messageBody) - .build(); - } -}
\ No newline at end of file diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java deleted file mode 100644 index 47f2e3112..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * ============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.simulator.client; - -public interface HttpClientAdapter { - - void send(String content, String url); -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java deleted file mode 100644 index f0c9917f5..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * ============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.simulator.client; - -import static org.onap.pnfsimulator.logging.MDCVariables.REQUEST_ID; -import static org.onap.pnfsimulator.logging.MDCVariables.X_INVOCATION_ID; -import static org.onap.pnfsimulator.logging.MDCVariables.X_ONAP_REQUEST_ID; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.util.UUID; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.util.EntityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; - -public class HttpClientAdapterImpl implements HttpClientAdapter { - - private static final Logger LOGGER = LoggerFactory.getLogger(HttpClientAdapterImpl.class); - private static final String CONTENT_TYPE = "Content-Type"; - private static final String APPLICATION_JSON = "application/json"; - private final Marker INVOKE = MarkerFactory.getMarker("INVOKE"); - private static final RequestConfig CONFIG = RequestConfig.custom() - .setConnectTimeout(1000) - .setConnectionRequestTimeout(1000) - .setSocketTimeout(1000) - .build(); - - private HttpClient client; - - public HttpClientAdapterImpl() { - this.client = HttpClientBuilder - .create() - .setDefaultRequestConfig(CONFIG) - .build(); - } - - @Override - public void send(String content, String url) { - try { - HttpPost request = createRequest(content, url); - HttpResponse response = client.execute(request); - EntityUtils.consumeQuietly(response.getEntity()); - LOGGER.info(INVOKE, "Message sent, ves response code: {}", response.getStatusLine()); - } catch (IOException e) { - LOGGER.warn("Error sending message to ves: {}", e.getMessage()); - } - } - - HttpClientAdapterImpl(HttpClient client) { - this.client = client; - } - - private HttpPost createRequest(String content, String url) throws UnsupportedEncodingException { - HttpPost request = new HttpPost(url); - StringEntity stringEntity = new StringEntity(content); - request.addHeader(CONTENT_TYPE, APPLICATION_JSON); - request.addHeader(X_ONAP_REQUEST_ID, MDC.get(REQUEST_ID)); - request.addHeader(X_INVOCATION_ID, UUID.randomUUID().toString()); - request.setEntity(stringEntity); - return request; - } -}
\ No newline at end of file diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/validation/JSONValidator.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/validation/JSONValidator.java deleted file mode 100644 index 89135f9b4..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/validation/JSONValidator.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * ============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.simulator.validation; - -import com.fasterxml.jackson.databind.JsonNode; -import com.github.fge.jackson.JsonLoader; -import com.github.fge.jsonschema.core.exceptions.ProcessingException; -import com.github.fge.jsonschema.core.report.LogLevel; -import com.github.fge.jsonschema.core.report.ProcessingMessage; -import com.github.fge.jsonschema.core.report.ProcessingReport; -import com.github.fge.jsonschema.main.JsonSchema; -import com.github.fge.jsonschema.main.JsonSchemaFactory; -import com.google.gson.JsonParser; -import java.io.FileReader; -import java.io.IOException; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -public class JSONValidator { - - public void validate(String data, String jsonSchemaPath) - throws ValidationException, ProcessingException, IOException { - String jsonSchema = readJsonSchemaAsString(jsonSchemaPath); - JsonNode jsonData = JsonLoader.fromString(data); - ProcessingReport report = createJsonSchema(jsonSchema).validate(jsonData); - - if (!report.isSuccess()) { - throw new ValidationException(constructValidationErrors(report)); - } - } - - private String readJsonSchemaAsString(String schemaPath) throws IOException { - try (FileReader reader = new FileReader(schemaPath)) { - return new JsonParser().parse(reader).toString(); - } - } - - private JsonSchema createJsonSchema(String schema) throws ProcessingException, IOException { - return JsonSchemaFactory.byDefault().getJsonSchema(JsonLoader.fromString(schema)); - } - - private String constructValidationErrors(ProcessingReport report) { - return StreamSupport.stream(report.spliterator(), false) - .filter(entry -> entry.getLogLevel() == LogLevel.ERROR) - .map(ProcessingMessage::getMessage) - .collect(Collectors.joining("\n")); - } -} diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/validation/ValidationException.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/validation/ValidationException.java deleted file mode 100644 index a9349174a..000000000 --- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/validation/ValidationException.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * ============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.simulator.validation; - -public class ValidationException extends Exception { - - public ValidationException(String message) { - super(message); - } -} diff --git a/test/mocks/pnfsimulator/src/main/resources/application.properties b/test/mocks/pnfsimulator/src/main/resources/application.properties deleted file mode 100644 index 888dcec44..000000000 --- a/test/mocks/pnfsimulator/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -server.port=5000
\ No newline at end of file diff --git a/test/mocks/pnfsimulator/src/main/resources/logback.xml b/test/mocks/pnfsimulator/src/main/resources/logback.xml deleted file mode 100644 index de34b9ae3..000000000 --- a/test/mocks/pnfsimulator/src/main/resources/logback.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration complete="true" compact="true"> - - <Property name="outputFilename" value="pnfsimulator_output"/> - <Property name="log-path" value="/var/log/ONAP/pnfsimulator"/> - <Property name="archive" value="/var/log/ONAP/pnfsimulator/archive"/> - <property name="maxFileSize" value="50MB"/> - <property name="maxHistory" value="30"/> - <property name="totalSizeCap" value="10GB"/> - - <appender name="Console" target="SYSTEM_OUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <Pattern>%nopexception%logger - |%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC} - |%level - |%replace(%replace(%message){'\t','\\\\t'}){'\n','\\\\n'} - |%replace(%replace(%mdc){'\t','\\\\t'}){'\n','\\\\n'} - |%replace(%replace(%rootException){'\t','\\\\t'}){'\n','\\\\n'} - |%replace(%replace(%marker){'\t','\\\\t'}){'\n','\\\\n'} - |%thread - |%n</Pattern> - </encoder> - </appender> - - <appender name="ROLLING-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <encoder> - <pattern>%nopexception%logger - |%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC} - |%level - |%replace(%replace(%message){'\t','\\\\t'}){'\n','\\\\n'} - |%replace(%replace(%mdc){'\t','\\\\t'}){'\n','\\\\n'} - |%replace(%replace(%rootException){'\t','\\\\t'}){'\n','\\\\n'} - |%replace(%replace(%marker){'\t','\\\\t'}){'\n','\\\\n'} - |%thread - |%n</pattern> - </encoder> - <File>${log-path}/${outputFilename}.log</File> - <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> - <FileNamePattern>${archive}/${outputFilename}.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern> - <MaxFileSize>${maxFileSize}</MaxFileSize> - <MaxHistory>${maxHistory}</MaxHistory> - <TotalSizeCap>${totalSizeCap}</TotalSizeCap> - </rollingPolicy> - </appender> - - <root level="info"> - <appender-ref ref="Console" /> - <appender-ref ref="ROLLING-FILE" /> - </root> -</Configuration> |