2 * ============LICENSE_START========================================================================
\r
3 * ONAP : tr-069-adapter
\r
4 * =================================================================================================
\r
5 * Copyright (C) 2020 CommScope Inc Intellectual Property.
\r
6 * =================================================================================================
\r
7 * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
\r
8 * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
\r
9 * may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
\r
14 * either express or implied. See the License for the specific language governing permissions and
\r
15 * limitations under the License.
\r
16 * ===============LICENSE_END=======================================================================
\r
19 package org.commscope.tr069adapter.netconf.operations;
\r
21 import com.google.common.collect.Sets;
\r
23 import java.util.Optional;
\r
24 import java.util.Set;
\r
26 import org.commscope.tr069adapter.netconf.rpc.CreateSubscription;
\r
27 import org.commscope.tr069adapter.netconf.rpc.DeleteConfigOperation;
\r
28 import org.commscope.tr069adapter.netconf.rpc.GetConfigOperation;
\r
29 import org.commscope.tr069adapter.netconf.rpc.GetOperation;
\r
30 import org.commscope.tr069adapter.netconf.rpc.OperationCommit;
\r
31 import org.commscope.tr069adapter.netconf.rpc.OperationLock;
\r
32 import org.commscope.tr069adapter.netconf.rpc.OperationUnLock;
\r
33 import org.commscope.tr069adapter.netconf.rpc.SetConfigOperation;
\r
34 import org.commscope.tr069adapter.netconf.rpc.SoftwareActivateOperation;
\r
35 import org.commscope.tr069adapter.netconf.rpc.SoftwareDownloadOperation;
\r
36 import org.opendaylight.netconf.api.capability.Capability;
\r
37 import org.opendaylight.netconf.impl.SessionIdProvider;
\r
38 import org.opendaylight.netconf.mapping.api.NetconfOperation;
\r
39 import org.opendaylight.netconf.mapping.api.NetconfOperationService;
\r
40 import org.opendaylight.netconf.test.tool.operations.OperationsCreator;
\r
41 import org.opendaylight.netconf.test.tool.rpc.DataList;
\r
42 import org.slf4j.Logger;
\r
43 import org.slf4j.LoggerFactory;
\r
45 public final class CustomOperationsCreator implements OperationsCreator {
\r
46 private static final Logger logger = LoggerFactory.getLogger(CustomOperationsCreator.class);
\r
48 private String macID = null;
\r
50 private OperationService operationService;
\r
52 public CustomOperationsCreator(String macID) {
\r
57 public NetconfOperationService getNetconfOperationService(final Set<Capability> caps,
\r
58 final SessionIdProvider idProvider, final String netconfSessionIdForReporting) {
\r
59 if (null == operationService) {
\r
60 operationService = new OperationService(idProvider.getCurrentSessionId(), macID);
\r
62 return operationService;
\r
65 static class OperationService implements NetconfOperationService {
\r
67 private final long currentSessionId;
\r
68 private String macID;
\r
70 OperationService(final long currentSessionId, String macID) {
\r
71 this.currentSessionId = currentSessionId;
\r
76 public Set<NetconfOperation> getNetconfOperations() {
\r
77 final DataList storage = new DataList();
\r
78 final GetOperation oGet = new GetOperation(String.valueOf(currentSessionId), storage, macID);
\r
79 final GetConfigOperation oGetConfig =
\r
80 new GetConfigOperation(String.valueOf(currentSessionId), Optional.empty(), macID);
\r
81 final SetConfigOperation oSetConfig =
\r
82 new SetConfigOperation(String.valueOf(currentSessionId), macID);
\r
83 final DeleteConfigOperation oDelConfig =
\r
84 new DeleteConfigOperation(String.valueOf(currentSessionId), storage, macID);
\r
85 final OperationCommit oCommit = new OperationCommit(String.valueOf(currentSessionId));
\r
86 final OperationLock oLock = new OperationLock(String.valueOf(currentSessionId));
\r
87 final OperationUnLock oUnlock = new OperationUnLock(String.valueOf(currentSessionId));
\r
88 final CreateSubscription sCreateSubs =
\r
89 new CreateSubscription(String.valueOf(currentSessionId), Optional.empty(), macID);
\r
90 SoftwareDownloadOperation swDownloadOperation = new SoftwareDownloadOperation(macID);
\r
91 SoftwareActivateOperation swActivateOperation = new SoftwareActivateOperation(macID);
\r
92 return Sets.newHashSet(oGet, oGetConfig, oSetConfig, oDelConfig, oCommit, oLock, oUnlock,
\r
93 sCreateSubs, swDownloadOperation, swActivateOperation);
\r
97 public void close() {
\r
98 logger.debug("close called on CustomOperationsCreator");
\r