2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.adapters.network;
24 import java.util.List;
27 import javax.jws.WebMethod;
28 import javax.jws.WebParam;
29 import javax.jws.WebParam.Mode;
30 import javax.jws.WebService;
31 import javax.xml.bind.annotation.XmlElement;
32 import javax.xml.ws.Holder;
34 import org.onap.so.adapters.network.exceptions.NetworkException;
35 import org.onap.so.entity.MsoRequest;
36 import org.onap.so.openstack.beans.NetworkRollback;
37 import org.onap.so.openstack.beans.NetworkStatus;
38 import org.onap.so.openstack.beans.RouteTarget;
39 import org.onap.so.openstack.beans.Subnet;
41 @WebService (name="NetworkAdapter", targetNamespace="http://org.onap.so/network")
42 public interface MsoNetworkAdapter
44 // TODO: Rename all of these to include Vlan in the service name? At least for the
45 // create and update calls, since they are specific to VLAN-based provider networks.
48 * This is the "Create Network" Web Service Endpoint definition.
51 public void createNetwork (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
52 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
53 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
54 @WebParam(name="modelCustomizationUuid") String modelCustomizationUuid,
55 @WebParam(name="networkName") @XmlElement(required=true) String networkName,
56 @WebParam(name="physicalNetworkName") String physicalNetworkName,
57 @WebParam(name="vlans") List<Integer> vlans,
58 @WebParam(name="shared") String shared,
59 @WebParam(name="external") String external,
60 @WebParam(name="failIfExists") Boolean failIfExists,
61 @WebParam(name="backout") Boolean backout,
62 @WebParam(name="subnets") List<Subnet> subnets,
63 @WebParam(name="networkParams") Map<String, String> networkParams,
64 @WebParam(name="request") MsoRequest msoRequest,
65 @WebParam(name="networkId", mode=Mode.OUT) Holder<String> networkId,
66 @WebParam(name="neutronNetworkId", mode=Mode.OUT) Holder<String> neutronNetworkId,
67 @WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap,
68 @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
69 throws NetworkException;
72 public void createNetworkContrail (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
73 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
74 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
75 @WebParam(name="modelCustomizationUuid") String modelCustomizationUuid,
76 @WebParam(name="networkName") @XmlElement(required=true) String networkName,
77 @WebParam(name="routeTargets") List<RouteTarget> routeTargets,
78 @WebParam(name="shared") String shared,
79 @WebParam(name="external") String external,
80 @WebParam(name="failIfExists") Boolean failIfExists,
81 @WebParam(name="backout") Boolean backout,
82 @WebParam(name="subnets") List<Subnet> subnets,
83 @WebParam(name="networkParams") Map<String, String> networkParams,
84 @WebParam(name="policyFqdns") List<String> policyFqdns,
85 @WebParam(name="routeTableFqdns") List<String> routeTableFqdns,
86 @WebParam(name="request") MsoRequest msoRequest,
87 @WebParam(name="networkId", mode=Mode.OUT) Holder<String> networkId,
88 @WebParam(name="neutronNetworkId", mode=Mode.OUT) Holder<String> neutronNetworkId,
89 @WebParam(name="networkFqdn", mode=Mode.OUT) Holder<String> networkFqdn,
90 @WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap,
91 @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
92 throws NetworkException;
95 * This is the "Update VLANs" Web Service Endpoint definition.
96 * This webservice replaces the set of VLANs on a network.
99 public void updateNetwork (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
100 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
101 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
102 @WebParam(name="modelCustomizationUuid") String modelCustomizationUuid,
103 @WebParam(name="networkId") @XmlElement(required=true) String networkId,
104 @WebParam(name="networkName") @XmlElement(required=true) String networkName,
105 @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
106 @WebParam(name="vlans") @XmlElement(required=true) List<Integer> vlans,
107 @WebParam(name="shared") String shared,
108 @WebParam(name="external") String external,
109 @WebParam(name="subnets") List<Subnet> subnets,
110 @WebParam(name="networkParams") Map<String,String> networkParams,
111 @WebParam(name="request") MsoRequest msoRequest,
112 @WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap,
113 @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
114 throws NetworkException;
117 public void updateNetworkContrail (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
118 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
119 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
120 @WebParam(name="modelCustomizationUuid") String modelCustomizationUuid,
121 @WebParam(name="networkId") @XmlElement(required=true) String networkId,
122 @WebParam(name="networkName") @XmlElement(required=true) String networkName,
123 @WebParam(name="routeTargets") List<RouteTarget> routeTargets,
124 @WebParam(name="shared") String shared,
125 @WebParam(name="external") String external,
126 @WebParam(name="subnets") List<Subnet> subnets,
127 @WebParam(name="networkParams") Map<String,String> networkParams,
128 @WebParam(name="policyFqdns") List<String> policyFqdns,
129 @WebParam(name="routeTableFqdns") List<String> routeTableFqdns,
130 @WebParam(name="request") MsoRequest msoRequest,
131 @WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap,
132 @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
133 throws NetworkException;
137 * This is the "Add VLAN" Web Service Endpoint definition.
138 * This webservice adds a VLAN to a network.
139 * This service assumes that PO supports querying the current vlans in real time.
140 * Otherwise, the caller must have the complete list and should use updateVlans instead.
142 public void addVlan (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
143 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
144 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
145 @WebParam(name="networkId") @XmlElement(required=true) String networkId,
146 @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
147 @WebParam(name="vlan") @XmlElement(required=true) Integer vlan,
148 @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
149 throws NetworkException;
154 * This is the "Remove VLAN" Web Service Endpoint definition.
155 * This webservice removes a VLAN from a network.
156 * This service assumes that PO supports querying the current vlans in real time.
157 * Otherwise, the caller must have the complete list and should use updateVlans instead.
159 * This service returns an indicator (noMoreVLans) if the VLAN that was removed was
160 * the last one on the network.
162 * It is not clear that Rollback will work for delete. The network can be
163 * recreated from the NetworkRollback object, but the network ID (and stack ID
164 * for Heat-based orchestration) will be different. The caller will need to know
165 * to update these identifiers in the inventory DB (A&AI).
167 public void removeVlan (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
168 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
169 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
170 @WebParam(name="networkId") @XmlElement(required=true) String networkId,
171 @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
172 @WebParam(name="vlan") @XmlElement(required=true) Integer vlan,
173 @WebParam(name="noMoreVlans", mode=Mode.OUT) Holder<Boolean> noMoreVlans,
174 @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
175 throws NetworkException;
179 * This is the "Query Network" Web Service Endpoint definition.
180 * TODO: Should this just return the NetworkInfo complete structure?
183 public void queryNetwork (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
184 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
185 @WebParam(name="networkNameOrId") @XmlElement(required=true) String networkNameOrId,
186 @WebParam(name="request") MsoRequest msoRequest,
187 @WebParam(name="networkExists", mode=Mode.OUT) Holder<Boolean> networkExists,
188 @WebParam(name="networkId", mode=Mode.OUT) Holder<String> networkId,
189 @WebParam(name="neutronNetworkId", mode=Mode.OUT) Holder<String> neutronNetworkId,
190 @WebParam(name="status", mode=Mode.OUT) Holder<NetworkStatus> status,
191 @WebParam(name="vlans", mode=Mode.OUT) Holder<List<Integer>> vlans,
192 @WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap)
193 throws NetworkException;
196 public void queryNetworkContrail (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
197 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
198 @WebParam(name="networkNameOrId") @XmlElement(required=true) String networkNameOrId,
199 @WebParam(name="request") MsoRequest msoRequest,
200 @WebParam(name="networkExists", mode=Mode.OUT) Holder<Boolean> networkExists,
201 @WebParam(name="networkId", mode=Mode.OUT) Holder<String> networkId,
202 @WebParam(name="neutronNetworkId", mode=Mode.OUT) Holder<String> neutronNetworkId,
203 @WebParam(name="status", mode=Mode.OUT) Holder<NetworkStatus> status,
204 @WebParam(name="routeTargets", mode=Mode.OUT) Holder<List<RouteTarget>> routeTargets,
205 @WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap)
206 throws NetworkException;
209 * This is the "Delete Network" Web Service endpoint definition.
212 public void deleteNetwork (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
213 @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
214 @WebParam(name="networkType") @XmlElement(required=true) String networkType,
215 @WebParam(name="modelCustomizationUuid") String modelCustomizationUuid,
216 @WebParam(name="networkId") @XmlElement(required=true) String networkId,
217 @WebParam(name="request") MsoRequest msoRequest,
218 @WebParam(name="networkDeleted", mode=Mode.OUT) Holder<Boolean> networkDeleted)
219 throws NetworkException;
222 * This is the "Rollback Network" Web Service endpoint definition.
225 public void rollbackNetwork (@WebParam(name="rollback") @XmlElement(required=true) NetworkRollback rollback)
226 throws NetworkException;
229 public void healthCheck ();