9328f94b8c8fb59cfa9c995c36fbef0d558da790
[vfc/nfvo/resmanagement.git] /
1 /*
2  * Copyright 2016 Huawei Technologies Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.onap.vfc.nfvo.resmanagement.service.dao.impl.aai;
18
19 import java.util.ArrayList;
20 import java.util.List;
21 import java.util.Map;
22
23 import org.onap.vfc.nfvo.resmanagement.common.conf.Config;
24 import org.onap.vfc.nfvo.resmanagement.common.constant.UrlConstant;
25 import org.onap.vfc.nfvo.resmanagement.common.util.RestfulUtil;
26 import org.onap.vfc.nfvo.resmanagement.common.util.request.RequestUtil;
27 import org.onap.vfc.nfvo.resmanagement.common.util.restclient.RestfulParametes;
28 import org.onap.vfc.nfvo.resmanagement.common.util.restclient.RestfulResponse;
29 import org.onap.vfc.nfvo.resmanagement.service.dao.inf.NsDao;
30 import org.onap.vfc.nfvo.resmanagement.service.entity.NsEntity;
31
32 import net.sf.json.JSONArray;
33 import net.sf.json.JSONObject;
34
35 public class NsAaiDaoImpl implements NsDao {
36
37     private static int VFC_SUCCESS_RESPONSE = 1;
38
39     private static int VFC_ERROR_RESPONSE = -1;
40
41     @Override
42     public NsEntity getNs(String id) {
43
44         RestfulParametes restfulParametes = new RestfulParametes();
45         restfulParametes.setHeaderMap(RequestUtil.getAAIHeaderMap());
46
47         RestfulResponse response =
48                 RestfulUtil.getRestfulResponse(Config.getHost() +":" + Config.getPort() + UrlConstant.CUSTOMER_URL
49                         + Config.getGlobalCustomerId() + UrlConstant.SERVICE_SUBSCRIPTION_URL + Config.getServiceType()
50                         + UrlConstant.SERVICE_INSTANCE_URL + id, restfulParametes, "get");
51
52         JSONObject jsonObject = JSONObject.fromObject(response.getResponseContent());
53         NsEntity nsEntity = NsEntity.toEntityFromAai(jsonObject);
54
55         return nsEntity;
56     }
57
58     @Override
59     public List<NsEntity> getAllNs(Map<String, Object> condition) {
60         List<NsEntity> nsEntities = new ArrayList<>();
61         RestfulParametes restfulParametes = new RestfulParametes();
62         restfulParametes.setHeaderMap(RequestUtil.getAAIHeaderMap());
63
64         RestfulResponse response =
65                 RestfulUtil.getRestfulResponse(Config.getHost() +":" + Config.getPort() + UrlConstant.CUSTOMER_URL
66                         + Config.getGlobalCustomerId() + UrlConstant.SERVICE_SUBSCRIPTION_URL + Config.getServiceType()
67                         + "/service-instances", restfulParametes, "get");
68
69         JSONObject jsonObject = JSONObject.fromObject(response.getResponseContent());
70         JSONArray jsonArray = jsonObject.getJSONArray("service-instance");
71
72         jsonArray.forEach(svcInstance -> nsEntities.add(NsEntity.toEntityFromAai((JSONObject)svcInstance)));
73         return nsEntities;
74     }
75
76     @Override
77     public int addNs(NsEntity nsEntity) {
78
79         RestfulParametes restfulParametes = new RestfulParametes();
80         restfulParametes.setHeaderMap(RequestUtil.getAAIHeaderMap());
81         restfulParametes.setRawData(nsEntity.toStringForAai());
82
83         RestfulResponse response =
84                 RestfulUtil.getRestfulResponse(Config.getHost() +":" + Config.getPort() + UrlConstant.CUSTOMER_URL
85                         + Config.getGlobalCustomerId() + UrlConstant.SERVICE_SUBSCRIPTION_URL + Config.getServiceType()
86                         + UrlConstant.SERVICE_INSTANCE_URL + nsEntity.getId(), restfulParametes, "put");
87
88         if(response.isSuccess()){
89             return VFC_SUCCESS_RESPONSE;
90         }
91         return VFC_ERROR_RESPONSE;
92     }
93
94     @Override
95     public int updateNs(NsEntity nsEntity) {
96         RestfulParametes restfulParametes = new RestfulParametes();
97         restfulParametes.setHeaderMap(RequestUtil.getAAIHeaderMap());
98         restfulParametes.put("resource-version", nsEntity.getResourceVersion());
99
100         RestfulResponse response = RestfulUtil.getRestfulResponse(
101                 Config.getHost() +":" + Config.getPort() + UrlConstant.CUSTOMER_URL + Config.getGlobalCustomerId()
102                         + UrlConstant.SERVICE_SUBSCRIPTION_URL + Config.getServiceType()
103                         + UrlConstant.SERVICE_INSTANCE_URL + nsEntity.getResourceVersion(),
104                 restfulParametes, "put");
105
106         if(response.isSuccess()){
107             return VFC_SUCCESS_RESPONSE;
108         }
109         return VFC_ERROR_RESPONSE;
110     }
111
112     @Override
113     public int deleteNsById(String id) {
114
115         NsEntity nsEntity = getNs(id);
116
117         if(nsEntity != null) {
118             RestfulParametes restfulParametes = new RestfulParametes();
119             restfulParametes.setHeaderMap(RequestUtil.getAAIHeaderMap());
120             restfulParametes.put("resource-version", nsEntity.getResourceVersion());
121
122             RestfulResponse response = RestfulUtil
123                     .getRestfulResponse(
124                             Config.getHost() +":" + Config.getPort() + UrlConstant.CUSTOMER_URL + Config.getGlobalCustomerId()
125                                     + UrlConstant.SERVICE_SUBSCRIPTION_URL + Config.getServiceType()
126                                     + UrlConstant.SERVICE_INSTANCE_URL + nsEntity.getId(),
127                             restfulParametes, "delete");
128             if(response.isSuccess()){
129                 return VFC_SUCCESS_RESPONSE;
130             }
131             return VFC_ERROR_RESPONSE;
132         }
133         return VFC_ERROR_RESPONSE;
134     }
135 }