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;
26 import javax.jws.WebMethod;
27 import javax.jws.WebParam;
28 import javax.jws.WebParam.Mode;
29 import javax.jws.WebService;
30 import javax.xml.bind.annotation.XmlElement;
31 import javax.xml.ws.Holder;
32 import org.onap.so.adapters.network.exceptions.NetworkException;
33 import org.onap.so.entity.MsoRequest;
34 import org.onap.so.openstack.beans.NetworkRollback;
35 import org.onap.so.openstack.beans.NetworkStatus;
36 import org.onap.so.openstack.beans.RouteTarget;
37 import org.onap.so.openstack.beans.Subnet;
39 @WebService(name = "NetworkAdapter", targetNamespace = "http://org.onap.so/network")
40 public interface MsoNetworkAdapter {
41 // TODO: Rename all of these to include Vlan in the service name? At least for the
42 // create and update calls, since they are specific to VLAN-based provider networks.
45 * This is the "Create Network" Web Service Endpoint definition.
48 public void createNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
49 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
50 @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
51 @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
52 @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
53 @WebParam(name = "physicalNetworkName") String physicalNetworkName,
54 @WebParam(name = "vlans") List<Integer> vlans, @WebParam(name = "shared") String shared,
55 @WebParam(name = "external") String external, @WebParam(name = "failIfExists") Boolean failIfExists,
56 @WebParam(name = "backout") Boolean backout, @WebParam(name = "subnets") List<Subnet> subnets,
57 @WebParam(name = "networkParams") Map<String, String> networkParams,
58 @WebParam(name = "request") MsoRequest msoRequest,
59 @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
60 @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
61 @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
62 @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
65 public void createNetworkContrail(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
66 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
67 @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
68 @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
69 @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
70 @WebParam(name = "routeTargets") List<RouteTarget> routeTargets, @WebParam(name = "shared") String shared,
71 @WebParam(name = "external") String external, @WebParam(name = "failIfExists") Boolean failIfExists,
72 @WebParam(name = "backout") Boolean backout, @WebParam(name = "subnets") List<Subnet> subnets,
73 @WebParam(name = "networkParams") Map<String, String> networkParams,
74 @WebParam(name = "policyFqdns") List<String> policyFqdns,
75 @WebParam(name = "routeTableFqdns") List<String> routeTableFqdns,
76 @WebParam(name = "request") MsoRequest msoRequest,
77 @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
78 @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
79 @WebParam(name = "networkFqdn", mode = Mode.OUT) Holder<String> networkFqdn,
80 @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
81 @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
84 * This is the "Update VLANs" Web Service Endpoint definition. This webservice replaces the set of VLANs on a
88 public void updateNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
89 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
90 @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
91 @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
92 @WebParam(name = "networkId") @XmlElement(required = true) String networkId,
93 @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
94 @WebParam(name = "physicalNetworkName") @XmlElement(required = true) String physicalNetworkName,
95 @WebParam(name = "vlans") @XmlElement(required = true) List<Integer> vlans,
96 @WebParam(name = "shared") String shared, @WebParam(name = "external") String external,
97 @WebParam(name = "subnets") List<Subnet> subnets,
98 @WebParam(name = "networkParams") Map<String, String> networkParams,
99 @WebParam(name = "request") MsoRequest msoRequest,
100 @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
101 @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
104 public void updateNetworkContrail(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
105 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
106 @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
107 @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
108 @WebParam(name = "networkId") @XmlElement(required = true) String networkId,
109 @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
110 @WebParam(name = "routeTargets") List<RouteTarget> routeTargets, @WebParam(name = "shared") String shared,
111 @WebParam(name = "external") String external, @WebParam(name = "subnets") List<Subnet> subnets,
112 @WebParam(name = "networkParams") Map<String, String> networkParams,
113 @WebParam(name = "policyFqdns") List<String> policyFqdns,
114 @WebParam(name = "routeTableFqdns") List<String> routeTableFqdns,
115 @WebParam(name = "request") MsoRequest msoRequest,
116 @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
117 @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
120 * TODO: This is the "Add VLAN" Web Service Endpoint definition. This webservice adds a VLAN to a network. This
121 * service assumes that PO supports querying the current vlans in real time. Otherwise, the caller must have the
122 * complete list and should use updateVlans instead.
124 * @WebMethod public void addVlan (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
125 * @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
126 * @WebParam(name="networkType") @XmlElement(required=true) String networkType,
127 * @WebParam(name="networkId") @XmlElement(required=true) String networkId,
128 * @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
129 * @WebParam(name="vlan") @XmlElement(required=true) Integer vlan,
130 * @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback ) throws NetworkException;
134 * TODO: This is the "Remove VLAN" Web Service Endpoint definition. This webservice removes a VLAN from a network.
135 * This service assumes that PO supports querying the current vlans in real time. Otherwise, the caller must have
136 * the complete list and should use updateVlans instead.
138 * This service returns an indicator (noMoreVLans) if the VLAN that was removed was the last one on the network.
140 * It is not clear that Rollback will work for delete. The network can be recreated from the NetworkRollback object,
141 * but the network ID (and stack ID for Heat-based orchestration) will be different. The caller will need to know to
142 * update these identifiers in the inventory DB (A&AI).
144 * @WebMethod public void removeVlan (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
145 * @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
146 * @WebParam(name="networkType") @XmlElement(required=true) String networkType,
147 * @WebParam(name="networkId") @XmlElement(required=true) String networkId,
148 * @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
149 * @WebParam(name="vlan") @XmlElement(required=true) Integer vlan,
150 * @WebParam(name="noMoreVlans", mode=Mode.OUT) Holder<Boolean> noMoreVlans,
151 * @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback ) throws NetworkException;
155 * This is the "Query Network" Web Service Endpoint definition. TODO: Should this just return the NetworkInfo
156 * complete structure?
159 public void queryNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
160 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
161 @WebParam(name = "networkNameOrId") @XmlElement(required = true) String networkNameOrId,
162 @WebParam(name = "request") MsoRequest msoRequest,
163 @WebParam(name = "networkExists", mode = Mode.OUT) Holder<Boolean> networkExists,
164 @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
165 @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
166 @WebParam(name = "status", mode = Mode.OUT) Holder<NetworkStatus> status,
167 @WebParam(name = "vlans", mode = Mode.OUT) Holder<List<Integer>> vlans,
168 @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap)
169 throws NetworkException;
172 public void queryNetworkContrail(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
173 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
174 @WebParam(name = "networkNameOrId") @XmlElement(required = true) String networkNameOrId,
175 @WebParam(name = "request") MsoRequest msoRequest,
176 @WebParam(name = "networkExists", mode = Mode.OUT) Holder<Boolean> networkExists,
177 @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
178 @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
179 @WebParam(name = "status", mode = Mode.OUT) Holder<NetworkStatus> status,
180 @WebParam(name = "routeTargets", mode = Mode.OUT) Holder<List<RouteTarget>> routeTargets,
181 @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap)
182 throws NetworkException;
185 * This is the "Delete Network" Web Service endpoint definition.
188 public void deleteNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
189 @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
190 @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
191 @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
192 @WebParam(name = "networkId") @XmlElement(required = true) String networkId,
193 @WebParam(name = "request") MsoRequest msoRequest,
194 @WebParam(name = "networkDeleted", mode = Mode.OUT) Holder<Boolean> networkDeleted) throws NetworkException;
197 * This is the "Rollback Network" Web Service endpoint definition.
200 public void rollbackNetwork(@WebParam(name = "rollback") @XmlElement(required = true) NetworkRollback rollback)
201 throws NetworkException;
204 public void healthCheck();