AT&T 1712 and 1802 release code
[so.git] / bpmn / MSOCommonBPMN / src / main / java / org / openecomp / mso / client / adapter / network / NetworkAdapterClientImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.openecomp.mso.client.adapter.network;
22
23 import javax.ws.rs.core.MediaType;
24 import javax.ws.rs.core.UriBuilder;
25
26 import org.openecomp.mso.adapters.nwrest.CreateNetworkRequest;
27 import org.openecomp.mso.adapters.nwrest.CreateNetworkResponse;
28 import org.openecomp.mso.adapters.nwrest.DeleteNetworkRequest;
29 import org.openecomp.mso.adapters.nwrest.DeleteNetworkResponse;
30 import org.openecomp.mso.adapters.nwrest.QueryNetworkResponse;
31 import org.openecomp.mso.adapters.nwrest.RollbackNetworkRequest;
32 import org.openecomp.mso.adapters.nwrest.RollbackNetworkResponse;
33 import org.openecomp.mso.adapters.nwrest.UpdateNetworkRequest;
34 import org.openecomp.mso.adapters.nwrest.UpdateNetworkResponse;
35 import org.openecomp.mso.client.adapter.vnf.AdapterRestClient;
36
37 public class NetworkAdapterClientImpl implements NetworkAdapterClient {
38
39         private final NetworkAdapterRestProperties props;
40         public NetworkAdapterClientImpl() {
41                 this.props = new NetworkAdapterRestProperties();
42         }
43         @Override
44         public CreateNetworkResponse createNetwork(CreateNetworkRequest req) {
45                 return new AdapterRestClient(this.props, this.getUri("").build()).post(req,
46                                 CreateNetworkResponse.class);
47         }
48
49         @Override
50         public DeleteNetworkResponse deleteNetwork(String aaiNetworkId, DeleteNetworkRequest req) {
51                 return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).delete(req,
52                                 DeleteNetworkResponse.class);
53         }
54
55         @Override
56         public RollbackNetworkResponse rollbackNetwork(String aaiNetworkId, RollbackNetworkRequest req) {
57                 return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).delete(req,
58                                 RollbackNetworkResponse.class);
59         }
60
61         @Override
62         public QueryNetworkResponse queryNetwork(String aaiNetworkId, String cloudSiteId, String tenantId,
63                         String networkStackId, boolean skipAAI, String requestId, String serviceInstanceId) {
64                 UriBuilder builder = this.getUri("/" + aaiNetworkId);
65                 if (cloudSiteId != null) {
66                         builder.queryParam("cloudSiteId", cloudSiteId);
67                 }
68                 if (tenantId != null) {
69                         builder.queryParam("tenantId", tenantId);
70                 }
71                 if (networkStackId != null) {
72                         builder.queryParam("networkStackId", networkStackId);
73                 }
74
75                 builder.queryParam("skipAAI", skipAAI);
76
77                 if (requestId != null) {
78                         builder.queryParam("msoRequest.requestId", requestId);
79                 }
80                 if (serviceInstanceId != null) {
81                         builder.queryParam("msoRequest.serviceInstanceId", serviceInstanceId);
82                 }
83                 return new AdapterRestClient(this.props, builder.build(), MediaType.TEXT_XML, MediaType.TEXT_XML)
84                                 .get(QueryNetworkResponse.class);
85         }
86
87         @Override
88         public UpdateNetworkResponse updateNetwork(String aaiNetworkId, UpdateNetworkRequest req) {
89                 return new AdapterRestClient(this.props, this.getUri("/" + aaiNetworkId).build()).put(req,
90                                 UpdateNetworkResponse.class);
91         }
92
93         protected UriBuilder getUri(String path) {
94                 return UriBuilder.fromPath(path);
95         }
96
97 }