diff options
Diffstat (limited to 'src/main/java/org/onap/pnfsimulator/simulator/scheduler')
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; - } -} |