BUG 8839: Revert "Make netconf utilize encrypted passwords only"
[netconf.git] / netconf / netconf-topology-singleton / src / main / java / org / opendaylight / netconf / topology / singleton / impl / utils / NetconfTopologySetup.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.netconf.topology.singleton.impl.utils;
10
11 import akka.actor.ActorSystem;
12 import io.netty.util.concurrent.EventExecutor;
13 import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
14 import org.opendaylight.controller.config.threadpool.ThreadPool;
15 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
16 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
17 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
18 import org.opendaylight.netconf.client.NetconfClientDispatcher;
19 import org.opendaylight.netconf.sal.connect.netconf.NetconfDevice;
20 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22 import scala.concurrent.duration.Duration;
23
24 public class NetconfTopologySetup {
25
26     private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
27     private final RpcProviderRegistry rpcProviderRegistry;
28     private final DataBroker dataBroker;
29     private final InstanceIdentifier<Node> instanceIdentifier;
30     private final Node node;
31     private final ScheduledThreadPool keepaliveExecutor;
32     private final ThreadPool processingExecutor;
33     private final ActorSystem actorSystem;
34     private final EventExecutor eventExecutor;
35     private final NetconfClientDispatcher netconfClientDispatcher;
36     private final String topologyId;
37     private final NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
38     private final Duration idleTimeout;
39
40     private NetconfTopologySetup(final NetconfTopologySetupBuilder builder) {
41         this.clusterSingletonServiceProvider = builder.getClusterSingletonServiceProvider();
42         this.rpcProviderRegistry = builder.getRpcProviderRegistry();
43         this.dataBroker = builder.getDataBroker();
44         this.instanceIdentifier = builder.getInstanceIdentifier();
45         this.node = builder.getNode();
46         this.keepaliveExecutor = builder.getKeepaliveExecutor();
47         this.processingExecutor = builder.getProcessingExecutor();
48         this.actorSystem = builder.getActorSystem();
49         this.eventExecutor = builder.getEventExecutor();
50         this.netconfClientDispatcher = builder.getNetconfClientDispatcher();
51         this.topologyId = builder.getTopologyId();
52         this.schemaResourceDTO = builder.getSchemaResourceDTO();
53         this.idleTimeout = builder.getIdleTimeout();
54     }
55
56     public ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
57         return clusterSingletonServiceProvider;
58     }
59
60     public RpcProviderRegistry getRpcProviderRegistry() {
61         return rpcProviderRegistry;
62     }
63
64     public DataBroker getDataBroker() {
65         return dataBroker;
66     }
67
68     public InstanceIdentifier<Node> getInstanceIdentifier() {
69         return instanceIdentifier;
70     }
71
72     public Node getNode() {
73         return node;
74     }
75
76     public ThreadPool getProcessingExecutor() {
77         return processingExecutor;
78     }
79
80     public ScheduledThreadPool getKeepaliveExecutor() {
81         return keepaliveExecutor;
82     }
83
84     public ActorSystem getActorSystem() {
85         return actorSystem;
86     }
87
88     public EventExecutor getEventExecutor() {
89         return eventExecutor;
90     }
91
92     public String getTopologyId() {
93         return topologyId;
94     }
95
96     public NetconfClientDispatcher getNetconfClientDispatcher() {
97         return netconfClientDispatcher;
98     }
99
100     public NetconfDevice.SchemaResourcesDTO getSchemaResourcesDTO() {
101         return  schemaResourceDTO;
102     }
103
104     public Duration getIdleTimeout() {
105         return idleTimeout;
106     }
107
108     public static class NetconfTopologySetupBuilder {
109
110         private ClusterSingletonServiceProvider clusterSingletonServiceProvider;
111         private RpcProviderRegistry rpcProviderRegistry;
112         private DataBroker dataBroker;
113         private InstanceIdentifier<Node> instanceIdentifier;
114         private Node node;
115         private ScheduledThreadPool keepaliveExecutor;
116         private ThreadPool processingExecutor;
117         private ActorSystem actorSystem;
118         private EventExecutor eventExecutor;
119         private String topologyId;
120         private NetconfClientDispatcher netconfClientDispatcher;
121         private NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
122         private Duration idleTimeout;
123
124         public NetconfTopologySetupBuilder(){
125         }
126
127         private ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
128             return clusterSingletonServiceProvider;
129         }
130
131         public NetconfTopologySetupBuilder setClusterSingletonServiceProvider(
132                 final ClusterSingletonServiceProvider clusterSingletonServiceProvider) {
133             this.clusterSingletonServiceProvider = clusterSingletonServiceProvider;
134             return this;
135         }
136
137         private RpcProviderRegistry getRpcProviderRegistry() {
138             return rpcProviderRegistry;
139         }
140
141         public NetconfTopologySetupBuilder setRpcProviderRegistry(final RpcProviderRegistry rpcProviderRegistry) {
142             this.rpcProviderRegistry = rpcProviderRegistry;
143             return this;
144         }
145
146         private DataBroker getDataBroker() {
147             return dataBroker;
148         }
149
150         public NetconfTopologySetupBuilder setDataBroker(final DataBroker dataBroker) {
151             this.dataBroker = dataBroker;
152             return this;
153         }
154
155         private InstanceIdentifier<Node> getInstanceIdentifier() {
156             return instanceIdentifier;
157         }
158
159         public NetconfTopologySetupBuilder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
160             this.instanceIdentifier = instanceIdentifier;
161             return this;
162         }
163
164         public Node getNode() {
165             return node;
166         }
167
168         public NetconfTopologySetupBuilder setNode(final Node node) {
169             this.node = node;
170             return this;
171         }
172
173         public NetconfTopologySetup build() {
174             return new NetconfTopologySetup(this);
175         }
176
177         private ScheduledThreadPool getKeepaliveExecutor() {
178             return keepaliveExecutor;
179         }
180
181         public NetconfTopologySetupBuilder setKeepaliveExecutor(final ScheduledThreadPool keepaliveExecutor) {
182             this.keepaliveExecutor = keepaliveExecutor;
183             return this;
184         }
185
186         private ThreadPool getProcessingExecutor() {
187             return processingExecutor;
188         }
189
190         public NetconfTopologySetupBuilder setProcessingExecutor(final ThreadPool processingExecutor) {
191             this.processingExecutor = processingExecutor;
192             return this;
193         }
194
195         private ActorSystem getActorSystem() {
196             return actorSystem;
197         }
198
199         public NetconfTopologySetupBuilder setActorSystem(final ActorSystem actorSystem) {
200             this.actorSystem = actorSystem;
201             return this;
202         }
203
204         private EventExecutor getEventExecutor() {
205             return eventExecutor;
206         }
207
208         public NetconfTopologySetupBuilder setEventExecutor(final EventExecutor eventExecutor) {
209             this.eventExecutor = eventExecutor;
210             return this;
211         }
212
213         private String getTopologyId() {
214             return topologyId;
215         }
216
217         public NetconfTopologySetupBuilder setTopologyId(final String topologyId) {
218             this.topologyId = topologyId;
219             return this;
220         }
221
222         private NetconfClientDispatcher getNetconfClientDispatcher() {
223             return netconfClientDispatcher;
224         }
225
226         public NetconfTopologySetupBuilder setNetconfClientDispatcher(final NetconfClientDispatcher clientDispatcher) {
227             this.netconfClientDispatcher = clientDispatcher;
228             return this;
229         }
230
231         public NetconfTopologySetupBuilder setSchemaResourceDTO(
232                 final NetconfDevice.SchemaResourcesDTO schemaResourceDTO) {
233             this.schemaResourceDTO = schemaResourceDTO;
234             return this;
235         }
236
237         private NetconfDevice.SchemaResourcesDTO getSchemaResourceDTO() {
238             return schemaResourceDTO;
239         }
240
241         public NetconfTopologySetupBuilder setIdleTimeout(final Duration idleTimeout) {
242             this.idleTimeout = idleTimeout;
243             return this;
244         }
245
246         private Duration getIdleTimeout() {
247             return idleTimeout;
248         }
249
250         public static NetconfTopologySetupBuilder create() {
251             return new NetconfTopologySetupBuilder();
252         }
253     }
254
255
256 }