sonar issue, Define a constant instead of duplicating this literal 79/129679/2
authorGanesh <ganesh.c@samsung.com>
Fri, 24 Jun 2022 13:24:42 +0000 (18:54 +0530)
committerGanesh <ganesh.c@samsung.com>
Fri, 24 Jun 2022 13:28:31 +0000 (18:58 +0530)
Signed-off-by: Ganesh <ganesh.c@samsung.com>
Change-Id: I4c9956215b247ff512778636fc7492fc0dc6f609
Issue-ID: CCSDK-3476

adaptors/netconf-adaptor/netconf-adaptor-bundle/src/main/java/org/onap/ccsdk/sli/adaptors/netconf/odlconnector/NetconfClientRestconfImpl.java

index 41590ed..7148671 100644 (file)
-/*-
- * ============LICENSE_START=======================================================
- * ONAP : APPC
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Copyright (C) 2017 Amdocs
- * ================================================================================
- * Modifications Copyright (C) 2019 Ericsson
- * =============================================================================
- * Licensed 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
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License 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.onap.ccsdk.sli.adaptors.netconf.odlconnector;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import java.util.Properties;
-import org.apache.http.HttpStatus;
-import org.onap.ccsdk.sli.adaptors.netconf.HttpClient;
-import org.onap.ccsdk.sli.adaptors.netconf.NetconfAdaptorConstants;
-import org.onap.ccsdk.sli.adaptors.netconf.NetconfClient;
-import org.onap.ccsdk.sli.adaptors.netconf.NetconfClientRestconf;
-import org.onap.ccsdk.sli.adaptors.netconf.NetconfConnectionDetails;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-
-public class NetconfClientRestconfImpl implements NetconfClient, NetconfClientRestconf {
-
-    private final EELFLogger logger = EELFManager.getInstance().getLogger(NetconfClientRestconfImpl.class);
-
-    private NetconfConnectionDetails connectionDetails;
-    private final String appFormat = "application/json";
-
-    public NetconfClientRestconfImpl(){
-        //constructor
-    }
-
-    //restconf client impl
-
-    @SuppressWarnings("deprecation")
-    @Override
-    public void configure(String configuration, String deviceMountPointName, String moduleName, String nodeName) throws SvcLogicException {
-
-        logger.info("Configuring device " + deviceMountPointName + " with configuration " + configuration);
-
-        int httpCode = HttpClient.putMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,
-                getModuleConfigurePath(deviceMountPointName, moduleName, nodeName), configuration, appFormat);
-
-        if (httpCode != HttpStatus.SC_OK) {
-            logger.error("Configuration request failed. throwing Exception !");
-            throw new SvcLogicException("Error configuring node :" + nodeName + ", of Module :" + moduleName +
-                    ", in device :" + deviceMountPointName);
-        }
-    }
-
-    @Override
-    public void connect(String deviceMountPointName, String payload) throws SvcLogicException{
-
-        logger.info("Connecting device " + deviceMountPointName);
-
-        int httpCode = HttpClient.postMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,
-                getConnectPath(), payload, appFormat);
-
-        if(httpCode != HttpStatus.SC_NO_CONTENT){
-            logger.error("Connect request failed with code " + httpCode + ". throwing Exception !");
-            throw new SvcLogicException("Error connecting device :" + deviceMountPointName);
-        }
-    }
-
-    @Override
-    public boolean checkConnection(String deviceMountPointName) throws SvcLogicException {
-        logger.info("Checking device " + deviceMountPointName + " connectivity");
-
-        String result = HttpClient.getMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP,
-                NetconfAdaptorConstants.CONTROLLER_PORT, getCheckConnectivityPath(deviceMountPointName), appFormat);
-
-        return result != null;
-    }
-
-    @Override
-    public void disconnect(String deviceMountPointName) throws SvcLogicException {
-        logger.info("Disconnecting " + deviceMountPointName);
-
-        int httpCode = HttpClient.deleteMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,
-                getDisconnectPath(deviceMountPointName), appFormat);
-
-        if(httpCode != HttpStatus.SC_OK){
-            logger.error("Disconnection of device " + deviceMountPointName + " failed!");
-            throw new SvcLogicException("Disconnection of device " + deviceMountPointName + " failed!");
-        }
-    }
-
-    @Override
-    public String getConfiguration(String deviceMountPointName, String moduleName, String nodeName) throws SvcLogicException{
-        logger.info("Getting configuration of device " + deviceMountPointName);
-
-        String result = HttpClient.getMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,
-                getModuleConfigurePath(deviceMountPointName, moduleName, nodeName), appFormat);
-
-        if (result == null) {
-            logger.error("Configuration request failed. throwing Exception !");
-            throw new SvcLogicException("Error getting configuration of node :" + nodeName + ", of Module :" + moduleName +
-                    ", in device :" + deviceMountPointName);
-        }
-
-        return result;
-    }
-
-    //netconf client impl
-
-    @Override
-    public void connect(NetconfConnectionDetails connectionDetails) throws SvcLogicException {
-        if(connectionDetails == null){
-            throw new SvcLogicException("Invalid connection details - null value");
-        }
-        this.connectionDetails = connectionDetails;
-        this.connect(connectionDetails.getHost(), getPayload());
-    }
-
-    @Override
-    public String exchangeMessage(String message) throws SvcLogicException {
-        // TODO implement
-        return null;
-    }
-
-    @Override
-    public void configure(String configuration) throws SvcLogicException {
-        if(connectionDetails == null){
-            throw new SvcLogicException("Invalid connection details - null value");
-        }
-
-        Properties props = connectionDetails.getAdditionalProperties();
-        if(props == null || !props.containsKey("module.name") || !props.containsKey("node.name")) {
-            throw new SvcLogicException("Invalid properties!");
-        }
-
-        String moduleName = props.getProperty("module.name");
-        String nodeName = props.getProperty("node.name");
-        String deviceMountPointName = connectionDetails.getHost();
-
-        int httpCode = HttpClient.putMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,
-                getModuleConfigurePath(deviceMountPointName, moduleName, nodeName), configuration, "application/xml");
-
-        if (httpCode != HttpStatus.SC_OK) {
-            logger.error("Configuration request failed. throwing Exception !");
-            throw new SvcLogicException("Error configuring node :" + nodeName + ", of Module :" + moduleName +
-                    ", in device :" + deviceMountPointName);
-        }
-    }
-
-    @Override
-    public String getConfiguration() throws SvcLogicException {
-        if(connectionDetails == null){
-            throw new SvcLogicException("Invalid connection details - null value");
-        }
-
-        Properties props = connectionDetails.getAdditionalProperties();
-        if(props == null || !props.containsKey("module.name") || !props.containsKey("node.name")) {
-            throw new SvcLogicException("Invalid properties!");
-        }
-
-        return this.getConfiguration(connectionDetails.getHost(), props.getProperty("module.name"),
-                props.getProperty("node.name"));
-    }
-
-    @Override
-    public void disconnect() throws SvcLogicException {
-        if(connectionDetails == null){
-            throw new SvcLogicException("Invalid connection details - null value");
-        }
-        this.disconnect(connectionDetails.getHost());
-    }
-
-    //private methods
-    private String getModuleConfigurePath(String deviceMountPointName, String moduleName, String nodeName){
-
-        String deviceSpecificPath = deviceMountPointName + "/yang-ext:mount/" + moduleName + ":" + nodeName;
-
-        return NetconfAdaptorConstants.CONFIGURE_PATH + deviceSpecificPath;
-    }
-
-    private String getConnectPath(){
-
-        return NetconfAdaptorConstants.CONNECT_PATH;
-    }
-
-    private String getCheckConnectivityPath(String deviceMountPointName) {
-        return NetconfAdaptorConstants.CHECK_CONNECTION_PATH + deviceMountPointName;
-    }
-
-    private String getDisconnectPath(String deviceMountPointName) {
-        return NetconfAdaptorConstants.DISCONNECT_PATH + deviceMountPointName;
-    }
-
-    private String getPayload() {
-        return "{\n" +
-                "    \"config:module\":\n" +
-                "        {\n" +
-                "        \"type\":\"odl-sal-netconf-connector-cfg:sal-netconf-connector\",\n" +
-                "        \"netconf-northbound-ssh\\odl-sal-netconf-connector-cfg:name\":"+connectionDetails.getHost()+",\n" +
-                "        \"odl-sal-netconf-connector-cfg:address\":"+connectionDetails.getHost()+",\n" +
-                "        \"odl-sal-netconf-connector-cfg:port\":"+connectionDetails.getPort()+",\n" +
-                "        \"odl-sal-netconf-connector-cfg:username\":"+connectionDetails.getUsername()+",\n" +
-                "        \"odl-sal-netconf-connector-cfg:password\":"+connectionDetails.getPassword()+",\n" +
-                "        \"tcp-only\":\"false\",\n" +
-                "        \"odl-sal-netconf-connector-cfg:event-executor\":\n" +
-                "            {\n" +
-                "            \"type\":\"netty:netty-event-executor\",\n" +
-                "            \"name\":\"global-event-executor\"\n" +
-                "            },\n" +
-                "        \"odl-sal-netconf-connector-cfg:binding-registry\":\n" +
-                "            {\n" +
-                "            \"type\":\"opendaylight-md-sal-binding:binding-broker-osgi-registry\",\n" +
-                "            \"name\":\"binding-osgi-broker\"\n" +
-                "            },\n" +
-                "        \"odl-sal-netconf-connector-cfg:dom-registry\":\n" +
-                "            {\n" +
-                "            \"type\":\"opendaylight-md-sal-dom:dom-broker-osgi-registry\",\n" +
-                "            \"name\":\"dom-broker\"\n" +
-                "            },\n" +
-                "        \"odl-sal-netconf-connector-cfg:client-dispatcher\":\n" +
-                "            {\n" +
-                "            \"type\":\"odl-netconf-cfg:netconf-client-dispatcher\",\n" +
-                "            \"name\":\"global-netconf-dispatcher\"\n" +
-                "            },\n" +
-                "        \"odl-sal-netconf-connector-cfg:processing-executor\":\n" +
-                "            {\n" +
-                "            \"type\":\"threadpool:threadpool\",\n" +
-                "            \"name\":\"global-netconf-processing-executor\"\n" +
-                "        }\n" +
-                "    }\n" +
-                "}";
-    }
-}
+/*-\r
+ * ============LICENSE_START=======================================================\r
+ * ONAP : APPC\r
+ * ================================================================================\r
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ * Copyright (C) 2017 Amdocs\r
+ * ================================================================================\r
+ * Modifications Copyright (C) 2019 Ericsson\r
+ * =============================================================================\r
+ * Modifications Copyright (C) 2022 Samsung Electronics\r
+ * =============================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ * ============LICENSE_END=========================================================\r
+ */\r
+\r
+package org.onap.ccsdk.sli.adaptors.netconf.odlconnector;\r
+\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
+import java.util.Properties;\r
+import org.apache.http.HttpStatus;\r
+import org.onap.ccsdk.sli.adaptors.netconf.HttpClient;\r
+import org.onap.ccsdk.sli.adaptors.netconf.NetconfAdaptorConstants;\r
+import org.onap.ccsdk.sli.adaptors.netconf.NetconfClient;\r
+import org.onap.ccsdk.sli.adaptors.netconf.NetconfClientRestconf;\r
+import org.onap.ccsdk.sli.adaptors.netconf.NetconfConnectionDetails;\r
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;\r
+\r
+public class NetconfClientRestconfImpl implements NetconfClient, NetconfClientRestconf {\r
+\r
+    private final EELFLogger logger = EELFManager.getInstance().getLogger(NetconfClientRestconfImpl.class);\r
+\r
+    private NetconfConnectionDetails connectionDetails;\r
+    private final String appFormat = "application/json";\r
+\r
+    public NetconfClientRestconfImpl(){\r
+        //constructor\r
+    }\r
+\r
+    //restconf client impl\r
+\r
+    @SuppressWarnings("deprecation")\r
+    @Override\r
+    public void configure(String configuration, String deviceMountPointName, String moduleName, String nodeName) throws SvcLogicException {\r
+\r
+        logger.info("Configuring device " + deviceMountPointName + " with configuration " + configuration);\r
+\r
+        int httpCode = HttpClient.putMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,\r
+                getModuleConfigurePath(deviceMountPointName, moduleName, nodeName), configuration, appFormat);\r
+\r
+        if (httpCode != HttpStatus.SC_OK) {\r
+            logger.error("Configuration request failed. throwing Exception !");\r
+            throw new SvcLogicException("Error configuring node :" + nodeName + ", of Module :" + moduleName +\r
+                    ", in device :" + deviceMountPointName);\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public void connect(String deviceMountPointName, String payload) throws SvcLogicException{\r
+\r
+        logger.info("Connecting device " + deviceMountPointName);\r
+\r
+        int httpCode = HttpClient.postMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,\r
+                getConnectPath(), payload, appFormat);\r
+\r
+        if(httpCode != HttpStatus.SC_NO_CONTENT){\r
+            logger.error("Connect request failed with code " + httpCode + ". throwing Exception !");\r
+            throw new SvcLogicException("Error connecting device :" + deviceMountPointName);\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public boolean checkConnection(String deviceMountPointName) throws SvcLogicException {\r
+        logger.info("Checking device " + deviceMountPointName + " connectivity");\r
+\r
+        String result = HttpClient.getMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP,\r
+                NetconfAdaptorConstants.CONTROLLER_PORT, getCheckConnectivityPath(deviceMountPointName), appFormat);\r
+\r
+        return result != null;\r
+    }\r
+\r
+    @Override\r
+    public void disconnect(String deviceMountPointName) throws SvcLogicException {\r
+        logger.info("Disconnecting " + deviceMountPointName);\r
+\r
+        int httpCode = HttpClient.deleteMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,\r
+                getDisconnectPath(deviceMountPointName), appFormat);\r
+\r
+        if(httpCode != HttpStatus.SC_OK){\r
+            logger.error("Disconnection of device " + deviceMountPointName + " failed!");\r
+            throw new SvcLogicException("Disconnection of device " + deviceMountPointName + " failed!");\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public String getConfiguration(String deviceMountPointName, String moduleName, String nodeName) throws SvcLogicException{\r
+        logger.info("Getting configuration of device " + deviceMountPointName);\r
+\r
+        String result = HttpClient.getMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,\r
+                getModuleConfigurePath(deviceMountPointName, moduleName, nodeName), appFormat);\r
+\r
+        if (result == null) {\r
+            logger.error("Configuration request failed. throwing Exception !");\r
+            throw new SvcLogicException("Error getting configuration of node :" + nodeName + ", of Module :" + moduleName +\r
+                    ", in device :" + deviceMountPointName);\r
+        }\r
+\r
+        return result;\r
+    }\r
+\r
+    //netconf client impl\r
+\r
+    @Override\r
+    public void connect(NetconfConnectionDetails connectionDetails) throws SvcLogicException {\r
+        if(connectionDetails == null){\r
+            throw new SvcLogicException("Invalid connection details - null value");\r
+        }\r
+        this.connectionDetails = connectionDetails;\r
+        this.connect(connectionDetails.getHost(), getPayload());\r
+    }\r
+\r
+    @Override\r
+    public String exchangeMessage(String message) throws SvcLogicException {\r
+        // TODO implement\r
+        return null;\r
+    }\r
+\r
+    @Override\r
+    public void configure(String configuration) throws SvcLogicException {\r
+        if(connectionDetails == null){\r
+            throw new SvcLogicException("Invalid connection details - null value");\r
+        }\r
+\r
+        Properties props = connectionDetails.getAdditionalProperties();\r
+        if(props == null || !props.containsKey("module.name") || !props.containsKey("node.name")) {\r
+            throw new SvcLogicException("Invalid properties!");\r
+        }\r
+\r
+        String moduleName = props.getProperty("module.name");\r
+        String nodeName = props.getProperty("node.name");\r
+        String deviceMountPointName = connectionDetails.getHost();\r
+\r
+        int httpCode = HttpClient.putMethod(NetconfAdaptorConstants.PROTOCOL, NetconfAdaptorConstants.CONTROLLER_IP, NetconfAdaptorConstants.CONTROLLER_PORT,\r
+                getModuleConfigurePath(deviceMountPointName, moduleName, nodeName), configuration, "application/xml");\r
+\r
+        if (httpCode != HttpStatus.SC_OK) {\r
+            logger.error("Configuration request failed. throwing Exception !");\r
+            throw new SvcLogicException("Error configuring node :" + nodeName + ", of Module :" + moduleName +\r
+                    ", in device :" + deviceMountPointName);\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public String getConfiguration() throws SvcLogicException {\r
+        if(connectionDetails == null){\r
+            throw new SvcLogicException("Invalid connection details - null value");\r
+        }\r
+\r
+        Properties props = connectionDetails.getAdditionalProperties();\r
+        if(props == null || !props.containsKey("module.name") || !props.containsKey("node.name")) {\r
+            throw new SvcLogicException("Invalid properties!");\r
+        }\r
+\r
+        return this.getConfiguration(connectionDetails.getHost(), props.getProperty("module.name"),\r
+                props.getProperty("node.name"));\r
+    }\r
+\r
+    @Override\r
+    public void disconnect() throws SvcLogicException {\r
+        if(connectionDetails == null){\r
+            throw new SvcLogicException("Invalid connection details - null value");\r
+        }\r
+        this.disconnect(connectionDetails.getHost());\r
+    }\r
+\r
+    //private methods\r
+    private String getModuleConfigurePath(String deviceMountPointName, String moduleName, String nodeName){\r
+\r
+        String deviceSpecificPath = deviceMountPointName + "/yang-ext:mount/" + moduleName + ":" + nodeName;\r
+\r
+        return NetconfAdaptorConstants.CONFIGURE_PATH + deviceSpecificPath;\r
+    }\r
+\r
+    private String getConnectPath(){\r
+\r
+        return NetconfAdaptorConstants.CONNECT_PATH;\r
+    }\r
+\r
+    private String getCheckConnectivityPath(String deviceMountPointName) {\r
+        return NetconfAdaptorConstants.CHECK_CONNECTION_PATH + deviceMountPointName;\r
+    }\r
+\r
+    private String getDisconnectPath(String deviceMountPointName) {\r
+        return NetconfAdaptorConstants.DISCONNECT_PATH + deviceMountPointName;\r
+    }\r
+\r
+    private static final String newLineConst = "            {\n";\r
+    private String getPayload() {\r
+        return "{\n" +\r
+                "    \"config:module\":\n" +\r
+                "        {\n" +\r
+                "        \"type\":\"odl-sal-netconf-connector-cfg:sal-netconf-connector\",\n" +\r
+                "        \"netconf-northbound-ssh\\odl-sal-netconf-connector-cfg:name\":"+connectionDetails.getHost()+",\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:address\":"+connectionDetails.getHost()+",\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:port\":"+connectionDetails.getPort()+",\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:username\":"+connectionDetails.getUsername()+",\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:password\":"+connectionDetails.getPassword()+",\n" +\r
+                "        \"tcp-only\":\"false\",\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:event-executor\":\n" +\r
+                newLineConst +\r
+                "            \"type\":\"netty:netty-event-executor\",\n" +\r
+                "            \"name\":\"global-event-executor\"\n" +\r
+                "            },\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:binding-registry\":\n" +\r
+                newLineConst +\r
+                "            \"type\":\"opendaylight-md-sal-binding:binding-broker-osgi-registry\",\n" +\r
+                "            \"name\":\"binding-osgi-broker\"\n" +\r
+                "            },\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:dom-registry\":\n" +\r
+                newLineConst +\r
+                "            \"type\":\"opendaylight-md-sal-dom:dom-broker-osgi-registry\",\n" +\r
+                "            \"name\":\"dom-broker\"\n" +\r
+                "            },\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:client-dispatcher\":\n" +\r
+                newLineConst +\r
+                "            \"type\":\"odl-netconf-cfg:netconf-client-dispatcher\",\n" +\r
+                "            \"name\":\"global-netconf-dispatcher\"\n" +\r
+                "            },\n" +\r
+                "        \"odl-sal-netconf-connector-cfg:processing-executor\":\n" +\r
+                newLineConst+\r
+                "            \"type\":\"threadpool:threadpool\",\n" +\r
+                "            \"name\":\"global-netconf-processing-executor\"\n" +\r
+                "        }\n" +\r
+                "    }\n" +\r
+                "}";\r
+    }\r
+}\r