diff options
Diffstat (limited to 'test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator')
7 files changed, 0 insertions, 504 deletions
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/Simulator.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/Simulator.java deleted file mode 100644 index ba114760f..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/Simulator.java +++ /dev/null @@ -1,213 +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 com.github.fge.jsonschema.core.exceptions.ProcessingException; -import java.io.IOException; -import java.time.Duration; -import java.time.Instant; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.json.JSONObject; -import org.onap.pnfsimulator.FileProvider; -import org.onap.pnfsimulator.message.MessageProvider; -import org.onap.pnfsimulator.simulator.client.HttpClientAdapter; -import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl; -import org.onap.pnfsimulator.simulator.validation.JSONValidator; -import org.onap.pnfsimulator.simulator.validation.NoRopFilesException; -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; - -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 JSONObject commonEventHeaderParams; - private Optional<JSONObject> pnfRegistrationParams; - private Optional<JSONObject> notificationParams; - private String xnfUrl; - private static final String DEFAULT_OUTPUT_SCHEMA_PATH = "json_schema/output_validator_ves_schema_30.0.1.json"; - private FileProvider fileProvider; - private Exception thrownException = null; - - private Simulator() {} - - public static Builder builder() { - return new Builder(); - } - - @Override - public void run() { - setMdcContextMap(contextMap); - LOGGER.info("Simulation started - duration: {}, interval: {}s", getDuration(), interval.getSeconds()); - endTime = Instant.now().plus(duration); - while (isEndless || runningTimeNotExceeded()) { - try { - - List<String> fileList = fileProvider.getFiles(); - MessageProvider messageProvider = new MessageProvider(); - JSONValidator validator = new JSONValidator(); - messageBody = messageProvider.createMessage(this.commonEventHeaderParams, this.pnfRegistrationParams, - this.notificationParams, fileList, this.xnfUrl); - validator.validate(messageBody.toString(), DEFAULT_OUTPUT_SCHEMA_PATH); - - LOGGER.info("Message to be sent:\n" + getMessage()); - httpClient.send(messageBody.toString(), vesUrl); - Thread.sleep(interval.toMillis()); - } catch (InterruptedException | ValidationException | ProcessingException | IOException | NoRopFilesException e) { - LOGGER.info("Simulation stopped due to an exception: " + e); - thrownException = e; - 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 Exception getThrownException() { - return thrownException; - } - - 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 Optional<JSONObject> notificationParams; - private Optional<JSONObject> pnfRegistrationParams; - private JSONObject commonEventHeaderParams; - private String xnfUrl; - private FileProvider fileProvider; - - private Builder() { - this.vesUrl = ""; - this.httpClient = new HttpClientAdapterImpl(); - //this.messageBody = new JSONObject(); - this.duration = Duration.ZERO; - this.interval = Duration.ZERO; - this.commonEventHeaderParams = new JSONObject(); - } - - 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 Builder withCommonEventHeaderParams(JSONObject commonEventHeaderParams) { - this.commonEventHeaderParams = commonEventHeaderParams; - return this; - } - - public Builder withNotificationParams(Optional<JSONObject> notificationParams) { - this.notificationParams = notificationParams; - return this; - } - - public Builder withPnfRegistrationParams(Optional<JSONObject> pnfRegistrationParams) { - this.pnfRegistrationParams = pnfRegistrationParams; - return this; - } - - public Builder withXnfUrl(String xnfUrl) { - this.xnfUrl = xnfUrl; - return this; - } - - public Builder withFileProvider(FileProvider fileProvider) { - this.fileProvider = fileProvider; - 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.xnfUrl = this.xnfUrl; - simulator.fileProvider = this.fileProvider; - simulator.commonEventHeaderParams = this.commonEventHeaderParams; - simulator.pnfRegistrationParams = this.pnfRegistrationParams; - simulator.notificationParams = this.notificationParams; - simulator.isEndless = duration.equals(Duration.ZERO); - return simulator; - } - } -} diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java deleted file mode 100644 index 851e6ad1d..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java +++ /dev/null @@ -1,54 +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 static java.lang.Integer.parseInt; -import static org.onap.pnfsimulator.message.MessageConstants.MESSAGE_INTERVAL; -import static org.onap.pnfsimulator.message.MessageConstants.TEST_DURATION; -import java.time.Duration; -import java.util.Optional; -import org.json.JSONObject; -import org.onap.pnfsimulator.ConfigurationProvider; -import org.onap.pnfsimulator.FileProvider; -import org.onap.pnfsimulator.PnfSimConfig; -import org.springframework.stereotype.Service; - -@Service -public class SimulatorFactory { - - public Simulator create(JSONObject simulatorParams, JSONObject commonEventHeaderParams, - Optional<JSONObject> pnfRegistrationParams, Optional<JSONObject> notificationParams) { - PnfSimConfig configuration = ConfigurationProvider.getConfigInstance(); - - String xnfUrl = null; - if (configuration.getTypefileserver().equals("sftp")) { - xnfUrl = configuration.getUrlsftp() + "/"; - } else if (configuration.getTypefileserver().equals("ftps")) { - xnfUrl = configuration.getUrlftps() + "/"; - } - - String urlVes = configuration.getUrlves(); - Duration duration = Duration.ofSeconds(parseInt(simulatorParams.getString(TEST_DURATION))); - Duration interval = Duration.ofSeconds(parseInt(simulatorParams.getString(MESSAGE_INTERVAL))); - - return Simulator.builder().withVesUrl(urlVes).withXnfUrl(xnfUrl).withDuration(duration) - .withFileProvider(new FileProvider()).withCommonEventHeaderParams(commonEventHeaderParams) - .withNotificationParams(notificationParams).withPnfRegistrationParams(pnfRegistrationParams) - .withInterval(interval).build(); - } -} diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java deleted file mode 100644 index 47f2e3112..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/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/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java deleted file mode 100644 index f0c9917f5..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/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/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/JSONValidator.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/JSONValidator.java deleted file mode 100644 index 89135f9b4..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/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/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/NoRopFilesException.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/NoRopFilesException.java deleted file mode 100644 index d3765a8c1..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/NoRopFilesException.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 NoRopFilesException extends Exception { - - public NoRopFilesException(String message) { - super(message); - } -} diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/ValidationException.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/simulator/validation/ValidationException.java deleted file mode 100644 index a9349174a..000000000 --- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/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); - } -} |