summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/pnfsimulator/simulator/scheduler
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/pnfsimulator/simulator/scheduler')
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java99
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java120
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java38
3 files changed, 0 insertions, 257 deletions
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java b/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java
deleted file mode 100644
index a467370..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. 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.scheduler;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.simulator.KeywordsHandler;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapter;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.quartz.Job;
-import org.quartz.JobDataMap;
-import org.quartz.JobExecutionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.security.GeneralSecurityException;
-import java.util.Optional;
-
-public class EventJob implements Job {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(EventJob.class);
-
- static final String TEMPLATE_NAME = "TEMPLATE_NAME";
- static final String VES_URL = "VES_URL";
- static final String BODY = "BODY";
- static final String CLIENT_ADAPTER = "CLIENT_ADAPTER";
- static final String KEYWORDS_HANDLER = "KEYWORDS_HANDLER";
- static final String EVENT_ID = "EVENT_ID";
-
- @Override
- public void execute(JobExecutionContext jobExecutionContext) {
- JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
- String templateName = jobDataMap.getString(TEMPLATE_NAME);
- String vesUrl = jobDataMap.getString(VES_URL);
- JsonObject body = (JsonObject) jobDataMap.get(BODY);
- String id = jobDataMap.getString(EVENT_ID);
- Optional<HttpClientAdapter> httpClientAdapter = getHttpClientAdapter(jobDataMap, vesUrl);
-
- if (httpClientAdapter.isPresent()) {
- KeywordsHandler keywordsHandler = (KeywordsHandler) jobDataMap.get(KEYWORDS_HANDLER);
- JsonElement processedBody = keywordsHandler.substituteKeywords(body, id);
- String processedBodyString = processedBody.toString();
- String jobKey = jobExecutionContext.getJobDetail().getKey().toString();
-
- logEventDetails(templateName, vesUrl, body.toString(), jobKey);
- httpClientAdapter.get().send(processedBodyString);
- } else {
- LOGGER.error("Could not send event as client is not available");
- }
- }
-
- private Optional<HttpClientAdapter> getHttpClientAdapter(JobDataMap jobDataMap, String vesUrl) {
- HttpClientAdapter adapter = null;
- try {
- adapter = (HttpClientAdapter) (jobDataMap.containsKey(CLIENT_ADAPTER) ? jobDataMap.get(CLIENT_ADAPTER)
- : new HttpClientAdapterImpl(vesUrl, new SslAuthenticationHelper()));
- adapter = (HttpClientAdapter) (
- jobDataMap.containsKey(CLIENT_ADAPTER)
- ? jobDataMap.get(CLIENT_ADAPTER)
- : new HttpClientAdapterImpl(vesUrl, new SslAuthenticationHelper())
- );
- } catch (MalformedURLException e) {
- LOGGER.error("Invalid format of vesServerUr: {}", vesUrl);
- } catch (IOException | GeneralSecurityException e) {
- LOGGER.error("Invalid configuration of client certificate");
- }
- return Optional.ofNullable(adapter);
- }
-
- private void logEventDetails(String templateName, String vesUrl, String body, String jobKey) {
- LOGGER.info("Job {}:Sending event to {} from template {}",
- jobKey, vesUrl, templateName);
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Job {}: Request body {}", jobKey, body);
- }
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java b/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java
deleted file mode 100644
index 5584cb1..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. 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.scheduler;
-
-
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.simulator.KeywordsHandler;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.quartz.JobBuilder;
-import org.quartz.JobDataMap;
-import org.quartz.JobDetail;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobKey;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.SimpleTrigger;
-import org.quartz.TriggerBuilder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.BODY;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.CLIENT_ADAPTER;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.EVENT_ID;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.KEYWORDS_HANDLER;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.TEMPLATE_NAME;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.VES_URL;
-import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
-
-@Component
-public class EventScheduler {
-
-
- private final Scheduler scheduler;
- private final KeywordsHandler keywordsHandler;
- private final SslAuthenticationHelper sslAuthenticationHelper;
-
- @Autowired
- public EventScheduler(Scheduler scheduler, KeywordsHandler keywordsHandler, SslAuthenticationHelper sslAuthenticationHelper) {
- this.scheduler = scheduler;
- this.keywordsHandler = keywordsHandler;
- this.sslAuthenticationHelper = sslAuthenticationHelper;
- }
-
- public String scheduleEvent(String vesUrl, Integer repeatInterval, Integer repeatCount,
- String templateName, String eventId, JsonObject body)
- throws SchedulerException, IOException, GeneralSecurityException {
-
- JobDetail jobDetail = createJobDetail(vesUrl, templateName, eventId, body);
- SimpleTrigger trigger = createTrigger(repeatInterval, repeatCount);
-
- scheduler.scheduleJob(jobDetail, trigger);
- return jobDetail.getKey().getName();
- }
-
- public boolean cancelAllEvents() throws SchedulerException {
- List<JobKey> jobKeys = getActiveJobsKeys();
- return scheduler.deleteJobs(jobKeys);
- }
-
- public boolean cancelEvent(String jobName) throws SchedulerException {
- Optional<JobKey> activeJobKey = getActiveJobsKeys().stream().filter(e -> e.getName().equals(jobName)).findFirst();
- return activeJobKey.isPresent() && scheduler.deleteJob(activeJobKey.get());
- }
-
- private SimpleTrigger createTrigger(int interval, int repeatCount) {
- return TriggerBuilder.newTrigger()
- .withSchedule(simpleSchedule()
- .withIntervalInSeconds(interval)
- .withRepeatCount(repeatCount - 1))
- .build();
- }
-
- private JobDetail createJobDetail(String vesUrl, String templateName, String eventId, JsonObject body) throws IOException, GeneralSecurityException {
- JobDataMap jobDataMap = new JobDataMap();
- jobDataMap.put(TEMPLATE_NAME, templateName);
- jobDataMap.put(VES_URL, vesUrl);
- jobDataMap.put(EVENT_ID, eventId);
- jobDataMap.put(KEYWORDS_HANDLER, keywordsHandler);
- jobDataMap.put(BODY, body);
- jobDataMap.put(CLIENT_ADAPTER, new HttpClientAdapterImpl(vesUrl, sslAuthenticationHelper));
-
- return JobBuilder
- .newJob(EventJob.class)
- .withDescription(templateName)
- .usingJobData(jobDataMap)
- .build();
- }
-
- private List<JobKey> getActiveJobsKeys() throws SchedulerException {
- return scheduler.getCurrentlyExecutingJobs()
- .stream()
- .map(JobExecutionContext::getJobDetail)
- .map(JobDetail::getKey)
- .collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java b/src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java
deleted file mode 100644
index 2beb9dc..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. 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.scheduler;
-
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.impl.StdSchedulerFactory;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-class QuartzConfiguration {
-
- @Bean
- Scheduler provideScheduler() throws SchedulerException {
- StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
- Scheduler scheduler = stdSchedulerFactory.getScheduler();
- scheduler.start();
- return scheduler;
- }
-}