2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Copyright (C) 2017 Amdocs
8 * =============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 * ============LICENSE_END=========================================================
25 package org.onap.appc.provider;
27 import java.text.ParseException;
28 import java.util.concurrent.ExecutorService;
29 import java.util.concurrent.Executors;
30 import java.util.concurrent.Future;
31 import org.onap.appc.Constants;
32 import org.onap.appc.configuration.Configuration;
33 import org.onap.appc.configuration.ConfigurationFactory;
34 import org.onap.appc.i18n.Msg;
35 import org.onap.appc.logging.LoggingConstants;
36 import org.onap.appc.logging.LoggingUtils;
37 import org.onap.appc.provider.lcm.service.AbstractBaseUtils;
38 import org.onap.appc.provider.lcm.service.ActionStatusService;
39 import org.onap.appc.provider.lcm.service.QueryService;
40 import org.onap.appc.provider.lcm.service.QuiesceTrafficService;
41 import org.onap.appc.provider.lcm.service.RebootService;
42 import org.onap.appc.provider.lcm.service.RequestExecutor;
43 import org.onap.appc.provider.lcm.service.ResumeTrafficService;
44 import org.onap.appc.provider.lcm.service.UpgradeService;
45 import org.onap.appc.provider.lcm.service.VolumeService;
46 import org.onap.appc.provider.lcm.service.ConfigScaleOutService;
47 import org.onap.appc.provider.lcm.util.RequestInputBuilder;
48 import org.onap.appc.provider.lcm.util.ValidationService;
49 import org.onap.appc.requesthandler.objects.RequestHandlerInput;
50 import org.onap.appc.requesthandler.objects.RequestHandlerOutput;
51 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
52 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
53 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
54 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
55 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.*;
56 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.status.Status;
57 import org.opendaylight.yangtools.yang.common.RpcResult;
58 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
59 import com.att.eelf.configuration.EELFLogger;
60 import com.att.eelf.configuration.EELFManager;
61 import com.google.common.util.concurrent.Futures;
64 public class AppcProviderLcm extends AbstractBaseUtils implements AutoCloseable, AppcProviderLcmService {
66 private Configuration configuration = ConfigurationFactory.getConfiguration();
67 private final EELFLogger logger = EELFManager.getInstance().getLogger(AppcProviderLcm.class);
69 private final ExecutorService executor;
72 * The ODL data store broker. Provides access to a conceptual data tree store and also provides the ability to
73 * subscribe for changes to data under a given branch of the tree.
75 protected DataBroker dataBroker;
78 * ODL Notification Service that provides publish/subscribe capabilities for YANG modeled notifications.
80 protected NotificationProviderService notificationService;
83 * Provides a registry for Remote Procedure Call (RPC) service implementations. The RPCs are defined in YANG models.
85 protected RpcProviderRegistry rpcRegistry;
88 * Represents our RPC implementation registration
90 protected BindingAwareBroker.RpcRegistration<AppcProviderLcmService> rpcRegistration;
95 * @param notificationProviderService
96 * @param rpcProviderRegistry
98 @SuppressWarnings({"javadoc", "nls"})
99 public AppcProviderLcm(DataBroker dataBroker, NotificationProviderService notificationProviderService,
100 RpcProviderRegistry rpcProviderRegistry) {
102 String appName = configuration.getProperty(Constants.PROPERTY_APPLICATION_NAME);
103 logger.info(Msg.COMPONENT_INITIALIZING, appName, "provider-lcm");
105 executor = Executors.newFixedThreadPool(1);
106 this.dataBroker = dataBroker;
107 this.notificationService = notificationProviderService;
108 this.rpcRegistry = rpcProviderRegistry;
110 if (this.rpcRegistry != null) {
111 rpcRegistration = rpcRegistry.addRpcImplementation(AppcProviderLcmService.class, this);
114 logger.info(Msg.COMPONENT_INITIALIZED, appName, "provider");
118 * Implements the close of the service
120 * @see java.lang.AutoCloseable#close()
122 @SuppressWarnings("nls")
124 public void close() throws Exception {
125 String appName = configuration.getProperty(Constants.PROPERTY_APPLICATION_NAME);
126 logger.info(Msg.COMPONENT_TERMINATING, appName, "provider");
128 if (rpcRegistration != null) {
129 rpcRegistration.close();
131 logger.info(Msg.COMPONENT_TERMINATED, appName, "provider");
136 * Rebuilds a specific VNF
138 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#rebuild(RebuildInput)
141 public Future<RpcResult<RebuildOutput>> rebuild(RebuildInput input) {
142 logger.debug("Input received : " + input.toString());
144 RebuildOutputBuilder outputBuilder = new RebuildOutputBuilder();
145 String action = Action.Rebuild.toString();
146 String rpcName = Action.Rebuild.name().toLowerCase();
148 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
149 if (null == status) {
151 RequestHandlerInput request = new RequestInputBuilder().requestContext()
152 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
153 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
154 status = buildStatusWithDispatcherOutput(executeRequest(request));
155 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
156 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
157 } catch (ParseException e) {
158 status = buildStatusWithParseException(e);
160 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
161 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
162 this.getClass().getName());
166 outputBuilder.setCommonHeader(input.getCommonHeader());
167 outputBuilder.setStatus(status);
168 RpcResult<RebuildOutput> result =
169 RpcResultBuilder.<RebuildOutput>status(true).withResult(outputBuilder.build()).build();
170 return Futures.immediateFuture(result);
176 * Restarts a specific VNF
178 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#restart(RestartInput)
181 public Future<RpcResult<RestartOutput>> restart(RestartInput input) {
182 logger.debug("Input received : " + input.toString());
184 RestartOutputBuilder outputBuilder = new RestartOutputBuilder();
185 String action = Action.Restart.toString();
186 String rpcName = Action.Restart.name().toLowerCase();
188 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
189 if (null == status) {
191 RequestHandlerInput request = new RequestInputBuilder().requestContext()
192 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
193 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
195 status = buildStatusWithDispatcherOutput(executeRequest(request));
196 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
197 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
198 } catch (ParseException e) {
199 status = buildStatusWithParseException(e);
201 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
202 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
203 this.getClass().getName());
207 outputBuilder.setCommonHeader(input.getCommonHeader());
208 outputBuilder.setStatus(status);
209 RpcResult<RestartOutput> result =
210 RpcResultBuilder.<RestartOutput>status(true).withResult(outputBuilder.build()).build();
211 return Futures.immediateFuture(result);
217 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#startApplication(StartApplicationInput)
220 public Future<RpcResult<StartApplicationOutput>> startApplication(StartApplicationInput input) {
221 logger.debug("Input received : " + input.toString());
223 StartApplicationOutputBuilder outputBuilder = new StartApplicationOutputBuilder();
224 String action = Action.StartApplication.toString();
225 String rpcName = Action.StartApplication.name().toLowerCase();
227 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
228 if (null == status) {
230 RequestHandlerInput request = new RequestInputBuilder().requestContext()
231 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
232 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
234 status = buildStatusWithDispatcherOutput(executeRequest(request));
235 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
236 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
237 } catch (ParseException e) {
238 status = buildStatusWithParseException(e);
240 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
241 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
242 this.getClass().getName());
246 outputBuilder.setCommonHeader(input.getCommonHeader());
247 outputBuilder.setStatus(status);
248 RpcResult<StartApplicationOutput> result =
249 RpcResultBuilder.<StartApplicationOutput>status(true).withResult(outputBuilder.build()).build();
250 return Futures.immediateFuture(result);
254 * Migrates a specific VNF
256 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#migrate(MigrateInput)
259 public Future<RpcResult<MigrateOutput>> migrate(MigrateInput input) {
260 logger.debug("Input received : " + input.toString());
262 MigrateOutputBuilder outputBuilder = new MigrateOutputBuilder();
263 String action = Action.Migrate.toString();
264 String rpcName = Action.Migrate.name().toLowerCase();
266 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
267 if (null == status) {
269 RequestHandlerInput request = new RequestInputBuilder().requestContext()
270 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
271 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
272 status = buildStatusWithDispatcherOutput(executeRequest(request));
273 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
274 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
275 } catch (ParseException e) {
276 status = buildStatusWithParseException(e);
278 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
279 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
280 this.getClass().getName());
284 outputBuilder.setCommonHeader(input.getCommonHeader());
285 outputBuilder.setStatus(status);
286 RpcResult<MigrateOutput> result =
287 RpcResultBuilder.<MigrateOutput>status(true).withResult(outputBuilder.build()).build();
288 return Futures.immediateFuture(result);
293 * Evacuates a specific VNF
295 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#evacuate(EvacuateInput)
298 public Future<RpcResult<EvacuateOutput>> evacuate(EvacuateInput input) {
299 logger.debug("Input received : " + input.toString());
301 EvacuateOutputBuilder outputBuilder = new EvacuateOutputBuilder();
302 String action = Action.Evacuate.toString();
303 String rpcName = Action.Evacuate.name().toLowerCase();
305 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
306 if (null == status) {
308 RequestHandlerInput request = new RequestInputBuilder().requestContext()
309 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
310 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
311 status = buildStatusWithDispatcherOutput(executeRequest(request));
312 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
313 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
314 } catch (ParseException e) {
315 status = buildStatusWithParseException(e);
317 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
318 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
319 this.getClass().getName());
323 outputBuilder.setCommonHeader(input.getCommonHeader());
324 outputBuilder.setStatus(status);
325 RpcResult<EvacuateOutput> result =
326 RpcResultBuilder.<EvacuateOutput>status(true).withResult(outputBuilder.build()).build();
327 return Futures.immediateFuture(result);
332 * Evacuates a specific VNF
334 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#snapshot(SnapshotInput)
337 public Future<RpcResult<SnapshotOutput>> snapshot(SnapshotInput input) {
338 logger.debug("Input received : " + input.toString());
340 SnapshotOutputBuilder outputBuilder = new SnapshotOutputBuilder();
341 String action = Action.Snapshot.toString();
342 String rpcName = Action.Snapshot.name().toLowerCase();
344 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
345 String identityUrl = input.getIdentityUrl();
346 if (null == status) {
348 RequestHandlerInput request =
349 new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader())
350 .actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload())
351 .action(action).rpcName(rpcName).additionalContext("identity-url", identityUrl).build();
352 status = buildStatusWithDispatcherOutput(executeRequest(request));
353 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
354 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
355 } catch (ParseException e) {
356 status = buildStatusWithParseException(e);
358 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
359 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
360 this.getClass().getName());
363 outputBuilder.setCommonHeader(input.getCommonHeader());
364 outputBuilder.setStatus(status);
365 RpcResult<SnapshotOutput> result =
366 RpcResultBuilder.<SnapshotOutput>status(true).withResult(outputBuilder.build()).build();
367 return Futures.immediateFuture(result);
371 public Future<RpcResult<RollbackOutput>> rollback(RollbackInput input) {
372 logger.debug("Input received : " + input.toString());
374 RollbackOutputBuilder outputBuilder = new RollbackOutputBuilder();
375 String rpcName = Action.Rollback.toString();
377 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), rpcName);
378 String identityUrl = input.getIdentityUrl();
379 String snapshotId = input.getSnapshotId();
380 if (null == status) {
382 RequestHandlerInput request = new RequestInputBuilder().requestContext()
383 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
384 .payload(input.getPayload()).additionalContext("identity-url", identityUrl)
385 .additionalContext("snapshot-id", snapshotId).action(rpcName).build();
386 status = buildStatusWithDispatcherOutput(executeRequest(request));
387 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
388 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
389 } catch (ParseException e) {
390 status = buildStatusWithParseException(e);
392 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
393 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, rpcName, e.getMessage()),
394 this.getClass().getName());
398 outputBuilder.setCommonHeader(input.getCommonHeader());
399 outputBuilder.setStatus(status);
400 RpcResult<RollbackOutput> result =
401 RpcResultBuilder.<RollbackOutput>status(true).withResult(outputBuilder.build()).build();
402 return Futures.immediateFuture(result);
406 public Future<RpcResult<SyncOutput>> sync(SyncInput input) {
407 logger.debug("Input received : " + input.toString());
408 SyncOutputBuilder outputBuilder = new SyncOutputBuilder();
409 String action = Action.Sync.toString();
410 String rpcName = Action.Sync.name().toLowerCase();
412 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
413 if (null == status) {
415 RequestHandlerInput request = new RequestInputBuilder().requestContext()
416 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
417 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
418 status = buildStatusWithDispatcherOutput(executeRequest(request));
419 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
420 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
421 } catch (ParseException e) {
422 status = buildStatusWithParseException(e);
424 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
425 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
426 this.getClass().getName());
430 outputBuilder.setCommonHeader(input.getCommonHeader());
431 outputBuilder.setStatus(status);
432 RpcResult<SyncOutput> result =
433 RpcResultBuilder.<SyncOutput>status(true).withResult(outputBuilder.build()).build();
434 return Futures.immediateFuture(result);
438 public Future<RpcResult<QueryOutput>> query(QueryInput input) {
439 logger.debug(String.format("LCM query received input: %s", input.toString()));
440 QueryOutputBuilder outputBuilder = new QueryService().process(input);
441 RpcResult<QueryOutput> result =
442 RpcResultBuilder.<QueryOutput>status(true).withResult(outputBuilder.build()).build();
443 return Futures.immediateFuture(result);
447 public Future<RpcResult<RebootOutput>> reboot(RebootInput input) {
448 logger.debug(String.format("LCM reboot received input: %s", input.toString()));
449 RebootOutputBuilder outputBuilder = new RebootService().process(input);
450 RpcResult<RebootOutput> result =
451 RpcResultBuilder.<RebootOutput>status(true).withResult(outputBuilder.build()).build();
452 return Futures.immediateFuture(result);
456 public Future<RpcResult<AttachVolumeOutput>> attachVolume(AttachVolumeInput input) {
457 logger.debug(String.format("LCM attachVolume received input: %s", input.toString()));
458 AttachVolumeOutputBuilder outputBuilder = new VolumeService(true).attachVolume(input);
459 RpcResult<AttachVolumeOutput> result =
460 RpcResultBuilder.<AttachVolumeOutput>status(true).withResult(outputBuilder.build()).build();
461 return Futures.immediateFuture(result);
465 public Future<RpcResult<DetachVolumeOutput>> detachVolume(DetachVolumeInput input) {
466 logger.debug(String.format("LCM detachVolume received input: %s", input.toString()));
467 DetachVolumeOutputBuilder outputBuilder = new VolumeService(false).detachVolume(input);
468 RpcResult<DetachVolumeOutput> result =
469 RpcResultBuilder.<DetachVolumeOutput>status(true).withResult(outputBuilder.build()).build();
470 return Futures.immediateFuture(result);
474 public Future<RpcResult<QuiesceTrafficOutput>> quiesceTraffic(QuiesceTrafficInput input) {
475 logger.debug(String.format("LCM quiesce received input: %s", input.toString()));
476 QuiesceTrafficOutputBuilder outputBuilder = new QuiesceTrafficService().process(input);
477 RpcResult<QuiesceTrafficOutput> result =
478 RpcResultBuilder.<QuiesceTrafficOutput>status(true).withResult(outputBuilder.build()).build();
479 return Futures.immediateFuture(result);
483 public Future<RpcResult<ResumeTrafficOutput>> resumeTraffic(ResumeTrafficInput input) {
484 logger.debug(String.format("LCM resume received input: %s", input.toString()));
485 ResumeTrafficOutputBuilder outputBuilder = new ResumeTrafficService().process(input);
486 RpcResult<ResumeTrafficOutput> result =
487 RpcResultBuilder.<ResumeTrafficOutput>status(true).withResult(outputBuilder.build()).build();
488 return Futures.immediateFuture(result);
492 public Future<RpcResult<UpgradePreCheckOutput>> upgradePreCheck(UpgradePreCheckInput input) {
493 logger.debug(String.format("LCM upgradeprecheck received input: %s", input.toString()));
494 UpgradePreCheckOutputBuilder outputBuilder = new UpgradeService("upgradePre").upgradePreCheck(input);
495 RpcResult<UpgradePreCheckOutput> result =
496 RpcResultBuilder.<UpgradePreCheckOutput>status(true).withResult(outputBuilder.build()).build();
497 return Futures.immediateFuture(result);
501 public Future<RpcResult<UpgradeSoftwareOutput>> upgradeSoftware(UpgradeSoftwareInput input) {
502 logger.debug(String.format("LCM upgradesoftware received input: %s", input.toString()));
503 UpgradeSoftwareOutputBuilder outputBuilder = new UpgradeService("upgradeSoft").upgradeSoftware(input);
504 RpcResult<UpgradeSoftwareOutput> result =
505 RpcResultBuilder.<UpgradeSoftwareOutput>status(true).withResult(outputBuilder.build()).build();
506 return Futures.immediateFuture(result);
510 public Future<RpcResult<UpgradePostCheckOutput>> upgradePostCheck(UpgradePostCheckInput input) {
511 logger.debug(String.format("LCM upgradepostcheck received input: %s", input.toString()));
512 UpgradePostCheckOutputBuilder outputBuilder = new UpgradeService("upgradePost").upgradePostCheck(input);
513 RpcResult<UpgradePostCheckOutput> result =
514 RpcResultBuilder.<UpgradePostCheckOutput>status(true).withResult(outputBuilder.build()).build();
515 return Futures.immediateFuture(result);
519 public Future<RpcResult<UpgradeBackupOutput>> upgradeBackup(UpgradeBackupInput input) {
520 logger.debug(String.format("LCM backup received input: %s", input.toString()));
521 UpgradeBackupOutputBuilder outputBuilder = new UpgradeService("upgradeBackup").upgradeBackup(input);
522 RpcResult<UpgradeBackupOutput> result =
523 RpcResultBuilder.<UpgradeBackupOutput>status(true).withResult(outputBuilder.build()).build();
524 return Futures.immediateFuture(result);
528 public Future<RpcResult<UpgradeBackoutOutput>> upgradeBackout(UpgradeBackoutInput input) {
529 logger.debug(String.format("LCM backout received input: %s", input.toString()));
530 UpgradeBackoutOutputBuilder outputBuilder = new UpgradeService("upgradeBackout").upgradeBackout(input);
531 RpcResult<UpgradeBackoutOutput> result =
532 RpcResultBuilder.<UpgradeBackoutOutput>status(true).withResult(outputBuilder.build()).build();
533 return Futures.immediateFuture(result);
537 public Future<RpcResult<TerminateOutput>> terminate(TerminateInput input) {
538 logger.debug("Input received : " + input.toString());
539 TerminateOutputBuilder outputBuilder = new TerminateOutputBuilder();
540 Action myAction = Action.Terminate;
541 String action = myAction.toString();
542 String rpcName = getRpcName(myAction);
544 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
545 if (null == status) {
547 RequestHandlerInput request = new RequestInputBuilder().requestContext()
548 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
549 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
550 status = buildStatusWithDispatcherOutput(executeRequest(request));
551 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
552 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
553 } catch (ParseException e) {
555 status = buildStatusWithParseException(e);
557 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
558 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
559 this.getClass().getName());
564 outputBuilder.setCommonHeader(input.getCommonHeader());
565 outputBuilder.setStatus(status);
566 RpcResult<TerminateOutput> result =
567 RpcResultBuilder.<TerminateOutput>status(true).withResult(outputBuilder.build()).build();
568 return Futures.immediateFuture(result);
572 public Future<RpcResult<ConfigureOutput>> configure(ConfigureInput input) {
573 logger.debug("Input received : " + input.toString());
574 ConfigureOutputBuilder outputBuilder = new ConfigureOutputBuilder();
575 Action myAction = Action.Configure;
576 String action = myAction.toString();
577 String rpcName = getRpcName(myAction);
579 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
580 if (null == status) {
582 RequestHandlerInput request = new RequestInputBuilder().requestContext()
583 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
584 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
585 status = buildStatusWithDispatcherOutput(executeRequest(request));
586 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
587 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
588 } catch (ParseException e) {
589 status = buildStatusWithParseException(e);
591 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
592 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
593 this.getClass().getName());
597 outputBuilder.setCommonHeader(input.getCommonHeader());
598 outputBuilder.setStatus(status);
599 RpcResult<ConfigureOutput> result =
600 RpcResultBuilder.<ConfigureOutput>status(true).withResult(outputBuilder.build()).build();
601 return Futures.immediateFuture(result);
605 public Future<RpcResult<ActionStatusOutput>> actionStatus(ActionStatusInput input) {
606 logger.debug(String.format("Input received : %s", input.toString()));
607 ActionStatusOutputBuilder outputBuilder = (new ActionStatusService()).queryStatus(input);
608 RpcResult<ActionStatusOutput> result =
609 RpcResultBuilder.<ActionStatusOutput>status(true).withResult(outputBuilder.build()).build();
610 return Futures.immediateFuture(result);
614 public Future<RpcResult<ConfigModifyOutput>> configModify(ConfigModifyInput input) {
615 logger.debug("Input received : " + input.toString());
616 ConfigModifyOutputBuilder outputBuilder = new ConfigModifyOutputBuilder();
617 Action myAction = Action.ConfigModify;
618 String action = myAction.toString();
619 String rpcName = getRpcName(myAction);
621 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
622 if (null == status) {
624 RequestHandlerInput request = new RequestInputBuilder().requestContext()
625 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
626 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
627 status = buildStatusWithDispatcherOutput(executeRequest(request));
628 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
629 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
630 } catch (ParseException e) {
631 status = buildStatusWithParseException(e);
633 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
634 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
635 this.getClass().getName());
639 outputBuilder.setCommonHeader(input.getCommonHeader());
640 outputBuilder.setStatus(status);
641 RpcResult<ConfigModifyOutput> result =
642 RpcResultBuilder.<ConfigModifyOutput>status(true).withResult(outputBuilder.build()).build();
643 return Futures.immediateFuture(result);
647 public Future<RpcResult<ConfigScaleOutOutput>> configScaleOut(ConfigScaleOutInput input) {
648 logger.debug("Input received : " + input.toString());
649 ConfigScaleOutOutputBuilder outputBuilder = new ConfigScaleOutService().process(input);
650 RpcResult<ConfigScaleOutOutput> result = RpcResultBuilder.<ConfigScaleOutOutput> status(true).withResult(outputBuilder.build()).build();
651 return Futures.immediateFuture(result);
655 public Future<RpcResult<ConfigRestoreOutput>> configRestore(ConfigRestoreInput input) {
656 logger.debug("Input received : " + input.toString());
657 ConfigRestoreOutputBuilder outputBuilder = new ConfigRestoreOutputBuilder();
658 Action myAction = Action.ConfigRestore;
659 String action = myAction.toString();
660 String rpcName = getRpcName(myAction);
662 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
663 if (null == status) {
665 RequestHandlerInput request = new RequestInputBuilder().requestContext()
666 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
667 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
668 status = buildStatusWithDispatcherOutput(executeRequest(request));
669 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
670 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
671 } catch (ParseException e) {
672 status = buildStatusWithParseException(e);
674 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
675 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
676 this.getClass().getName());
680 outputBuilder.setCommonHeader(input.getCommonHeader());
681 outputBuilder.setStatus(status);
682 RpcResult<ConfigRestoreOutput> result =
683 RpcResultBuilder.<ConfigRestoreOutput>status(true).withResult(outputBuilder.build()).build();
684 return Futures.immediateFuture(result);
688 public Future<RpcResult<TestOutput>> test(TestInput input) {
689 logger.debug("Input received : " + input.toString());
690 TestOutputBuilder outputBuilder = new TestOutputBuilder();
691 Action myAction = Action.Test;
692 String action = myAction.toString();
693 String rpcName = getRpcName(myAction);
695 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
696 if (null == status) {
698 RequestHandlerInput request = new RequestInputBuilder().requestContext()
699 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
700 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
701 status = buildStatusWithDispatcherOutput(executeRequest(request));
702 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
703 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
704 } catch (ParseException e) {
705 status = buildStatusWithParseException(e);
707 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
708 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
709 this.getClass().getName());
713 outputBuilder.setCommonHeader(input.getCommonHeader());
714 outputBuilder.setStatus(status);
715 RpcResult<TestOutput> result =
716 RpcResultBuilder.<TestOutput>status(true).withResult(outputBuilder.build()).build();
717 return Futures.immediateFuture(result);
722 public Future<RpcResult<StopOutput>> stop(StopInput input) {
723 logger.debug("Input received : " + input.toString());
724 StopOutputBuilder outputBuilder = new StopOutputBuilder();
725 Action myAction = Action.Stop;
726 String action = myAction.toString();
727 String rpcName = getRpcName(myAction);
729 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
730 if (null == status) {
732 RequestHandlerInput request = new RequestInputBuilder().requestContext()
733 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
734 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
735 status = buildStatusWithDispatcherOutput(executeRequest(request));
736 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
737 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
738 } catch (ParseException e) {
739 status = buildStatusWithParseException(e);
741 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
742 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
743 this.getClass().getName());
747 outputBuilder.setCommonHeader(input.getCommonHeader());
748 outputBuilder.setStatus(status);
749 RpcResult<StopOutput> result =
750 RpcResultBuilder.<StopOutput>status(true).withResult(outputBuilder.build()).build();
751 return Futures.immediateFuture(result);
755 * Starts a specific VNF
757 * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#start(StartInput)
760 public Future<RpcResult<StartOutput>> start(StartInput input) {
761 logger.debug("Input received : " + input.toString());
763 StartOutputBuilder outputBuilder = new StartOutputBuilder();
764 Action myAction = Action.Start;
765 String action = myAction.toString();
766 String rpcName = getRpcName(myAction);
768 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
769 if (null == status) {
771 RequestHandlerInput request = new RequestInputBuilder().requestContext()
772 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
773 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
774 status = buildStatusWithDispatcherOutput(executeRequest(request));
775 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
776 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
777 } catch (ParseException e) {
778 status = buildStatusWithParseException(e);
780 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
781 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
782 this.getClass().getName());
786 outputBuilder.setCommonHeader(input.getCommonHeader());
787 outputBuilder.setStatus(status);
788 RpcResult<StartOutput> result =
789 RpcResultBuilder.<StartOutput>status(true).withResult(outputBuilder.build()).build();
790 return Futures.immediateFuture(result);
795 public Future<RpcResult<AuditOutput>> audit(AuditInput input) {
796 logger.debug("Input received : " + input.toString());
797 AuditOutputBuilder outputBuilder = new AuditOutputBuilder();
798 Action myAction = Action.Audit;
799 String action = myAction.toString();
800 String rpcName = getRpcName(myAction);
802 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
803 if (null == status) {
805 RequestHandlerInput request = new RequestInputBuilder().requestContext()
806 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
807 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
808 status = buildStatusWithDispatcherOutput(executeRequest(request));
809 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
810 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
811 } catch (ParseException e) {
812 status = buildStatusWithParseException(e);
814 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
815 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
816 this.getClass().getName());
820 outputBuilder.setCommonHeader(input.getCommonHeader());
821 outputBuilder.setStatus(status);
822 RpcResult<AuditOutput> result =
823 RpcResultBuilder.<AuditOutput>status(true).withResult(outputBuilder.build()).build();
824 return Futures.immediateFuture(result);
828 public Future<RpcResult<SoftwareUploadOutput>> softwareUpload(SoftwareUploadInput input) {
829 logger.debug("Input received : " + input.toString());
830 SoftwareUploadOutputBuilder outputBuilder = new SoftwareUploadOutputBuilder();
831 Action myAction = Action.SoftwareUpload;
832 String action = myAction.toString();
833 String rpcName = getRpcName(myAction);
835 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
836 if (null == status) {
838 RequestHandlerInput request = new RequestInputBuilder().requestContext()
839 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
840 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
841 status = buildStatusWithDispatcherOutput(executeRequest(request));
842 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
843 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
844 } catch (ParseException e) {
845 status = buildStatusWithParseException(e);
847 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
848 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
849 this.getClass().getName());
853 outputBuilder.setCommonHeader(input.getCommonHeader());
854 outputBuilder.setStatus(status);
855 RpcResult<SoftwareUploadOutput> result =
856 RpcResultBuilder.<SoftwareUploadOutput>status(true).withResult(outputBuilder.build()).build();
857 return Futures.immediateFuture(result);
861 public Future<RpcResult<HealthCheckOutput>> healthCheck(HealthCheckInput input) {
862 logger.debug("Input received : " + input.toString());
863 HealthCheckOutputBuilder outputBuilder = new HealthCheckOutputBuilder();
864 Action myAction = Action.HealthCheck;
865 String action = myAction.toString();
866 String rpcName = getRpcName(myAction);
868 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
869 if (null == status) {
871 RequestHandlerInput request = new RequestInputBuilder().requestContext()
872 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
873 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
874 status = buildStatusWithDispatcherOutput(executeRequest(request));
875 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
876 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
877 } catch (ParseException e) {
878 status = buildStatusWithParseException(e);
880 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
881 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
882 this.getClass().getName());
886 outputBuilder.setCommonHeader(input.getCommonHeader());
887 outputBuilder.setStatus(status);
888 RpcResult<HealthCheckOutput> result =
889 RpcResultBuilder.<HealthCheckOutput>status(true).withResult(outputBuilder.build()).build();
890 return Futures.immediateFuture(result);
894 public Future<RpcResult<LiveUpgradeOutput>> liveUpgrade(LiveUpgradeInput input) {
895 logger.debug("Input received : " + input.toString());
896 LiveUpgradeOutputBuilder outputBuilder = new LiveUpgradeOutputBuilder();
897 Action myAction = Action.LiveUpgrade;
898 String action = myAction.toString();
899 String rpcName = getRpcName(myAction);
901 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
902 if (null == status) {
904 RequestHandlerInput request = new RequestInputBuilder().requestContext()
905 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
906 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
907 status = buildStatusWithDispatcherOutput(executeRequest(request));
908 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
909 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
910 } catch (ParseException e) {
911 status = buildStatusWithParseException(e);
913 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
914 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
915 this.getClass().getName());
919 outputBuilder.setCommonHeader(input.getCommonHeader());
920 outputBuilder.setStatus(status);
921 RpcResult<LiveUpgradeOutput> result =
922 RpcResultBuilder.<LiveUpgradeOutput>status(true).withResult(outputBuilder.build()).build();
923 return Futures.immediateFuture(result);
928 public Future<RpcResult<LockOutput>> lock(LockInput input) {
929 logger.debug("Input received : " + input.toString());
930 LockOutputBuilder outputBuilder = new LockOutputBuilder();
931 Action myAction = Action.Lock;
932 String action = myAction.toString();
933 String rpcName = getRpcName(myAction);
935 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
936 if (null == status) {
938 RequestHandlerInput request = new RequestInputBuilder().requestContext()
939 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
940 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
941 status = buildStatusWithDispatcherOutput(executeRequest(request));
942 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
943 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
944 } catch (ParseException e) {
945 status = buildStatusWithParseException(e);
947 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
948 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
949 this.getClass().getName());
953 outputBuilder.setCommonHeader(input.getCommonHeader());
954 outputBuilder.setStatus(status);
955 RpcResult<LockOutput> result =
956 RpcResultBuilder.<LockOutput>status(true).withResult(outputBuilder.build()).build();
957 return Futures.immediateFuture(result);
962 public Future<RpcResult<UnlockOutput>> unlock(UnlockInput input) {
963 logger.debug("Input received : " + input.toString());
964 UnlockOutputBuilder outputBuilder = new UnlockOutputBuilder();
965 Action myAction = Action.Unlock;
966 String action = myAction.toString();
967 String rpcName = getRpcName(myAction);
969 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
970 if (null == status) {
972 RequestHandlerInput request = new RequestInputBuilder().requestContext()
973 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
974 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
975 status = buildStatusWithDispatcherOutput(executeRequest(request));
976 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
977 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
978 } catch (ParseException e) {
979 status = buildStatusWithParseException(e);
981 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
982 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
983 this.getClass().getName());
987 outputBuilder.setCommonHeader(input.getCommonHeader());
988 outputBuilder.setStatus(status);
989 RpcResult<UnlockOutput> result =
990 RpcResultBuilder.<UnlockOutput>status(true).withResult(outputBuilder.build()).build();
991 return Futures.immediateFuture(result);
995 public Future<RpcResult<CheckLockOutput>> checkLock(CheckLockInput input) {
996 logger.debug("Input received : " + input.toString());
997 CheckLockOutputBuilder outputBuilder = new CheckLockOutputBuilder();
998 Action myAction = Action.CheckLock;
999 String action = myAction.toString();
1000 String rpcName = getRpcName(myAction);
1001 RequestHandlerOutput requestHandlerOutput = null;
1003 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
1004 if (null == status) {
1006 RequestHandlerInput request = new RequestInputBuilder().requestContext()
1007 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
1008 .action(action).rpcName(rpcName).build();
1009 requestHandlerOutput = executeRequest(request);
1011 status = buildStatusWithDispatcherOutput(requestHandlerOutput);
1012 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
1013 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
1014 } catch (ParseException e) {
1015 status = buildStatusWithParseException(e);
1017 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
1018 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
1019 this.getClass().getName());
1024 outputBuilder.setCommonHeader(input.getCommonHeader());
1025 outputBuilder.setStatus(status);
1026 if (requestHandlerOutput != null && requestHandlerOutput.getResponseContext().getStatus().getCode() == 400) {
1027 outputBuilder.setLocked(CheckLockOutput.Locked.valueOf(
1028 requestHandlerOutput.getResponseContext().getAdditionalContext().get("locked").toUpperCase()));
1030 RpcResult<CheckLockOutput> result =
1031 RpcResultBuilder.<CheckLockOutput>status(true).withResult(outputBuilder.build()).build();
1032 return Futures.immediateFuture(result);
1036 public Future<RpcResult<ConfigBackupOutput>> configBackup(ConfigBackupInput input) {
1037 logger.debug("Input received : " + input.toString());
1038 ConfigBackupOutputBuilder outputBuilder = new ConfigBackupOutputBuilder();
1039 Action myAction = Action.ConfigBackup;
1040 String action = myAction.toString();
1041 String rpcName = getRpcName(myAction);
1043 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
1044 if (null == status) {
1046 RequestHandlerInput request = new RequestInputBuilder().requestContext()
1047 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
1048 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
1049 status = buildStatusWithDispatcherOutput(executeRequest(request));
1050 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
1051 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
1052 } catch (ParseException e) {
1053 status = buildStatusWithParseException(e);
1055 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
1056 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
1057 this.getClass().getName());
1061 outputBuilder.setCommonHeader(input.getCommonHeader());
1062 outputBuilder.setStatus(status);
1063 RpcResult<ConfigBackupOutput> result =
1064 RpcResultBuilder.<ConfigBackupOutput>status(true).withResult(outputBuilder.build()).build();
1065 return Futures.immediateFuture(result);
1070 public Future<RpcResult<ConfigBackupDeleteOutput>> configBackupDelete(ConfigBackupDeleteInput input) {
1071 logger.debug("Input received : " + input.toString());
1072 ConfigBackupDeleteOutputBuilder outputBuilder = new ConfigBackupDeleteOutputBuilder();
1073 Action myAction = Action.ConfigBackupDelete;
1074 String action = myAction.toString();
1075 String rpcName = getRpcName(myAction);
1077 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
1078 if (null == status) {
1080 RequestHandlerInput request = new RequestInputBuilder().requestContext()
1081 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
1082 .action(action).rpcName(rpcName).build();
1083 status = buildStatusWithDispatcherOutput(executeRequest(request));
1084 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
1085 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
1086 } catch (ParseException e) {
1087 status = buildStatusWithParseException(e);
1089 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
1090 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
1091 this.getClass().getName());
1095 outputBuilder.setCommonHeader(input.getCommonHeader());
1096 outputBuilder.setStatus(status);
1097 RpcResult<ConfigBackupDeleteOutput> result =
1098 RpcResultBuilder.<ConfigBackupDeleteOutput>status(true).withResult(outputBuilder.build()).build();
1099 return Futures.immediateFuture(result);
1104 public Future<RpcResult<ConfigExportOutput>> configExport(ConfigExportInput input) {
1105 logger.debug("Input received : " + input.toString());
1106 ConfigExportOutputBuilder outputBuilder = new ConfigExportOutputBuilder();
1107 Action myAction = Action.ConfigExport;
1108 String action = myAction.toString();
1109 String rpcName = getRpcName(myAction);
1111 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
1112 if (null == status) {
1114 RequestHandlerInput request = new RequestInputBuilder().requestContext()
1115 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
1116 .action(action).rpcName(rpcName).build();
1117 status = buildStatusWithDispatcherOutput(executeRequest(request));
1118 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
1119 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
1120 } catch (ParseException e) {
1121 status = buildStatusWithParseException(e);
1123 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
1124 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
1125 this.getClass().getName());
1129 outputBuilder.setCommonHeader(input.getCommonHeader());
1130 outputBuilder.setStatus(status);
1131 RpcResult<ConfigExportOutput> result =
1132 RpcResultBuilder.<ConfigExportOutput>status(true).withResult(outputBuilder.build()).build();
1133 return Futures.immediateFuture(result);
1137 public Future<RpcResult<StopApplicationOutput>> stopApplication(StopApplicationInput input) {
1138 logger.debug("Input received : " + input.toString());
1139 StopApplicationOutputBuilder outputBuilder = new StopApplicationOutputBuilder();
1140 Action myAction = Action.StopApplication;
1141 String action = myAction.toString();
1142 String rpcName = getRpcName(myAction);
1144 ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
1145 if (null == status) {
1147 RequestHandlerInput request = new RequestInputBuilder().requestContext()
1148 .commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers())
1149 .payload(input.getPayload()).action(action).rpcName(rpcName).build();
1150 status = buildStatusWithDispatcherOutput(executeRequest(request));
1151 logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
1152 input.getActionIdentifiers(), status.getCode(), status.getMessage()));
1153 } catch (ParseException e) {
1154 status = buildStatusWithParseException(e);
1156 LoggingUtils.logErrorMessage(LoggingConstants.TargetNames.APPC_PROVIDER,
1157 String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
1158 this.getClass().getName());
1162 outputBuilder.setCommonHeader(input.getCommonHeader());
1163 outputBuilder.setStatus(status);
1164 RpcResult<StopApplicationOutput> result =
1165 RpcResultBuilder.<StopApplicationOutput>status(true).withResult(outputBuilder.build()).build();
1166 return Futures.immediateFuture(result);
1169 RequestHandlerOutput executeRequest(RequestHandlerInput request) {
1170 return new RequestExecutor().executeRequest(request);