X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=mapper%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Fmapper%2Fnetconf%2FNetConfServerManager.java;fp=mapper%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Fmapper%2Fnetconf%2FNetConfServerManager.java;h=675a3eece9476e1036f03db4a8410500d50a0c73;hb=a58ada8fd244e69cf2ebe48a251fcdd4d48acec4;hp=0000000000000000000000000000000000000000;hpb=5096ffe11e0c38f2a1cc60ccba41d27c1333f22a;p=oam%2Ftr069-adapter.git diff --git a/mapper/src/main/java/org/commscope/tr069adapter/mapper/netconf/NetConfServerManager.java b/mapper/src/main/java/org/commscope/tr069adapter/mapper/netconf/NetConfServerManager.java new file mode 100644 index 0000000..675a3ee --- /dev/null +++ b/mapper/src/main/java/org/commscope/tr069adapter/mapper/netconf/NetConfServerManager.java @@ -0,0 +1,76 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : tr-069-adapter + * ================================================================================================= + * Copyright (C) 2020 CommScope Inc Intellectual Property. + * ================================================================================================= + * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License, + * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You + * may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions and + * limitations under the License. + * ===============LICENSE_END======================================================================= + */ + +package org.commscope.tr069adapter.mapper.netconf; + +import org.commscope.tr069adapter.mapper.MapperConfigProperties; +import org.commscope.tr069adapter.mapper.model.NetConfServerDetails; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +@Component +public class NetConfServerManager { + + private static final Logger LOG = LoggerFactory.getLogger(NetConfServerManager.class); + + private static String createServerSVC = "createServer"; + + @Autowired + MapperConfigProperties config; + + @Autowired + RestTemplate restTemplate; + + public NetConfServerDetails createNetconfServer(String deviceID, String enodeBName) { + + NetConfServerDetails result = null; + // handle exception + final String uri = getNetconfServerManagerRestUri() + "/" + createServerSVC; + LOG.debug("Sending create netconf server request for device id {}", deviceID); + try { + MultiValueMap uriParams = new LinkedMultiValueMap<>(); + uriParams.add("deviceId", deviceID); + uriParams.add("enodeBName", enodeBName); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + final HttpEntity> entity = new HttpEntity<>(uriParams, headers); + ResponseEntity res = + restTemplate.postForEntity(uri, entity, NetConfServerDetails.class); + result = res.getBody(); + LOG.debug("Successfully created netconf server for device id. {} , response= {}", deviceID, + result); + } catch (Exception e) { + LOG.error("Exception while creating netconf server request for device id {}", deviceID, e); + } + return result; + } + + private String getNetconfServerManagerRestUri() { + return config.getNbiServerManagerUri(); + } + +}