aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCherukuri, Venkatanaresh (vn166g) <vn166g@att.com>2019-02-05 09:47:55 -0500
committervenkatanaresh cherukuri <vn166g@att.com>2019-02-06 15:36:41 +0000
commit9a4387cf89f95ecdce9d135677a4b4c4c94a8b94 (patch)
tree6161456a566ebaf2caee5ff5f6ba536fa1155d4c
parent3848bf18d98c4814793eaaab3bd44c0a6522c4d0 (diff)
Blueprint Processor Python Script Components
Adding Python scripts for Netconf Executor components Change-Id: I6d84dea2e47860063a1140146aebe94d61f8d9c1 Issue-ID: CCSDK-997 Signed-off-by: Cherukuri, Venkatanaresh (vn166g) <vn166g@att.com>
-rw-r--r--components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json6
-rw-r--r--components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/DefaultGetNetConfig.py50
-rw-r--r--components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/SamplePythonComponentNode.py (renamed from components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/SamplePythonComponentNode.py)0
-rw-r--r--components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/__init__.py (renamed from components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/__init__.py)0
-rw-r--r--components/scripts/python/ccsdk_netconf/__init__.py0
-rw-r--r--components/scripts/python/ccsdk_netconf/common.py2
-rw-r--r--components/scripts/python/ccsdk_netconf/constant.py15
-rw-r--r--components/scripts/python/ccsdk_netconf/netconf_constant.py15
-rw-r--r--components/scripts/python/ccsdk_netconf/netconfclient.py56
-rw-r--r--ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/functions/netconf/executor/utils/NetconfConnectionUtils.kt32
10 files changed, 141 insertions, 35 deletions
diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json
index a3bf546d..822cc68b 100644
--- a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json
+++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json
@@ -175,7 +175,7 @@
"artifacts": {
"component-script": {
"type": "artifact-script-jython",
- "file": "Scripts/SamplePythonComponentNode.py"
+ "file": "Scripts/python/SamplePythonComponentNode.py"
}
}
},
@@ -205,7 +205,7 @@
"artifacts": {
"component-script": {
"type": "artifact-script-jython",
- "file": "Scripts/SamplePythonComponentNode.py"
+ "file": "Scripts/python/SamplePythonComponentNode.py"
}
}
},
@@ -242,7 +242,7 @@
"artifacts": {
"component-script": {
"type": "artifact-script-jython",
- "file": "Scripts/SamplePythonComponentNode.py"
+ "file": "Scripts/python/DefaultGetNetConfig.py"
}
}
},
diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/DefaultGetNetConfig.py b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/DefaultGetNetConfig.py
new file mode 100644
index 00000000..4db7c731
--- /dev/null
+++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/DefaultGetNetConfig.py
@@ -0,0 +1,50 @@
+import netconf_constant
+from netconfclient import NetconfClient
+from java.lang import Exception
+from abstract_blueprint_function import AbstractPythonComponentFunction
+from org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor import NetconfRpcService
+from org.onap.ccsdk.apps.controllerblueprints.core.utils import JacksonUtils
+from org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.interfaces import DeviceInfo
+from org.onap.ccsdk.apps.controllerblueprints.core.service import BluePrintRuntimeService
+
+
+class DefaultGetNetConfig(AbstractPythonComponentFunction):
+ def process(self, execution_request):
+ try:
+ log = globals()[netconf_constant.SERVICE_LOG]
+ print(globals())
+ #requestId = globals()[netconf_constant.PARAM_REQUEST_ID]
+ requestId = '1234'
+
+ bluePrintRuntimeService = globals()['bluePrintRuntimeService']
+
+ capabilityProperty = bluePrintRuntimeService.resolveNodeTemplateCapabilityProperties("sample-netconf-device","netconf")
+
+ log.info("capabilityProperty {}",capabilityProperty)
+ netconfService = NetconfRpcService()
+ nc = NetconfClient(log, netconfService)
+
+ nc.connect(netconfService.getNetconfDeviceInfo(capabilityProperty))
+ runningConfigTemplate = "runningconfig-template"
+
+ runningConfigMessageId = "get-config-" + requestId
+
+ deviceResponse = nc.getConfig(messageId=runningConfigMessageId,
+ filter=runningConfigTemplate)
+
+ log.info("Get Running Config Response {} ", deviceResponse.responseMessage)
+ if(deviceResponse !='null') :
+ status = deviceResponse.status
+ responseData = "{}"
+ if (deviceResponse.status != netconf_constant.STATUS_SUCCESS and deviceResponse.errorMessage != 'null'):
+ errorMessage = "Get Running Config Failure ::"+ deviceResponse.errorMessage
+
+ except Exception, err:
+ log.info("Exception in the script {}",err.getMessage())
+ status = netconf_constant.STATUS_FAILURE
+ errorMessage = "Get Running Config Failure ::"+err.getMessage()
+
+ def recover(self, runtime_exception, execution_request):
+ print "Recovering calling.." + PROPERTY_BLUEPRINT_BASE_PATH
+ return None
+
diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/SamplePythonComponentNode.py b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/SamplePythonComponentNode.py
index 0a583dc5..0a583dc5 100644
--- a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/SamplePythonComponentNode.py
+++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/SamplePythonComponentNode.py
diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/__init__.py b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/__init__.py
index e69de29b..e69de29b 100644
--- a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/__init__.py
+++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Scripts/python/__init__.py
diff --git a/components/scripts/python/ccsdk_netconf/__init__.py b/components/scripts/python/ccsdk_netconf/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/components/scripts/python/ccsdk_netconf/__init__.py
diff --git a/components/scripts/python/ccsdk_netconf/common.py b/components/scripts/python/ccsdk_netconf/common.py
new file mode 100644
index 00000000..139597f9
--- /dev/null
+++ b/components/scripts/python/ccsdk_netconf/common.py
@@ -0,0 +1,2 @@
+
+
diff --git a/components/scripts/python/ccsdk_netconf/constant.py b/components/scripts/python/ccsdk_netconf/constant.py
new file mode 100644
index 00000000..534ca9e1
--- /dev/null
+++ b/components/scripts/python/ccsdk_netconf/constant.py
@@ -0,0 +1,15 @@
+SERVICE_LOG = "log"
+SERVICE_NETCONF = "netconfService"
+SERVICE_MESSAGE = "messageService"
+
+PARAM_REQUEST_ID = "requestId"
+PARAM_ACTION = "action"
+
+STATUS_SUCCESS = "success"
+STATUS_FAILURE = "failure"
+
+CONFIG_TARGET_RUNNING = "running"
+CONFIG_TARGET_CANDIDATE = "candidate"
+CONFIG_DEFAULT_OPERATION_MERGE = "merge"
+CONFIG_DEFAULT_OPERATION_REPLACE = "replace"
+CONFIG_DEFAULT_OPERATION_NONE = "none"
diff --git a/components/scripts/python/ccsdk_netconf/netconf_constant.py b/components/scripts/python/ccsdk_netconf/netconf_constant.py
new file mode 100644
index 00000000..534ca9e1
--- /dev/null
+++ b/components/scripts/python/ccsdk_netconf/netconf_constant.py
@@ -0,0 +1,15 @@
+SERVICE_LOG = "log"
+SERVICE_NETCONF = "netconfService"
+SERVICE_MESSAGE = "messageService"
+
+PARAM_REQUEST_ID = "requestId"
+PARAM_ACTION = "action"
+
+STATUS_SUCCESS = "success"
+STATUS_FAILURE = "failure"
+
+CONFIG_TARGET_RUNNING = "running"
+CONFIG_TARGET_CANDIDATE = "candidate"
+CONFIG_DEFAULT_OPERATION_MERGE = "merge"
+CONFIG_DEFAULT_OPERATION_REPLACE = "replace"
+CONFIG_DEFAULT_OPERATION_NONE = "none"
diff --git a/components/scripts/python/ccsdk_netconf/netconfclient.py b/components/scripts/python/ccsdk_netconf/netconfclient.py
new file mode 100644
index 00000000..448e03dc
--- /dev/null
+++ b/components/scripts/python/ccsdk_netconf/netconfclient.py
@@ -0,0 +1,56 @@
+from netconf_constant import CONFIG_TARGET_RUNNING, CONFIG_DEFAULT_OPERATION_REPLACE
+
+
+
+class NetconfClient:
+
+ def __init__(self, log, nc):
+ self.log = log
+ self.nc = nc
+
+ def disconnect(self):
+ self.nc.disconnect()
+ return
+
+ def connect(self,deviceInfo):
+ self.nc.connect(deviceInfo)
+ return
+
+ def lock(self, messageId, configTarget, messageTimeout=30):
+ deviceResponse = self.nc.lock(messageId, configTarget, messageTimeout)
+ return deviceResponse
+
+ def getConfig(self, messageId, filter, configTarget=CONFIG_TARGET_RUNNING, messageTimeout=30):
+ self.log.info("in the ncclient getConfig {}",messageId)
+ self.log.info("in the ncclient getConfig {}",filter)
+ deviceResponse = self.nc.getConfig(messageId, filter, configTarget, messageTimeout)
+ return deviceResponse
+
+ def editConfig(self, messageId, messageContent, reConnect=False, wait=0, lock=False,
+ configTarget=CONFIG_TARGET_RUNNING, editDefaultOperation=CONFIG_DEFAULT_OPERATION_REPLACE,
+ deleteConfig= False, validate= False, commit=False, discardChanges =True, unlock=False,
+ preRestartWait=0, postRestartWait=0, messageTimeout=30):
+ deviceResponse = self.nc.editConfig(messageId, messageContent, reConnect, wait, lock, configTarget,
+ editDefaultOperation, deleteConfig, validate, commit, discardChanges, unlock,
+ preRestartWait, postRestartWait, messageTimeout)
+ return deviceResponse
+
+ def commit(self, messageId, message, discardChanges =True, messageTimeout=30):
+ deviceResponse = self.nc.commit(messageId, message, discardChanges, messageTimeout)
+ return deviceResponse
+
+ def unLock(self, messageId, configTarget, messageTimeout=30):
+ deviceResponse = self.nc.unLock(messageId, configTarget, messageTimeout)
+ return deviceResponse
+
+ def discardChanges(self, messageId, messageTimeout=30):
+ deviceResponse = self.nc.discardChanges(messageId, messageTimeout)
+ return deviceResponse
+
+ def close(self, messageId, force=False, messageTimeout=30):
+ deviceResponse = self.nc.close(messageId, force, messageTimeout)
+ return deviceResponse
+
+ def rpc(self, request, messageId, messageTimeout=30):
+ deviceResponse = self.nc.rpc(request, messageId, messageTimeout)
+ return deviceResponse
diff --git a/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/functions/netconf/executor/utils/NetconfConnectionUtils.kt b/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/functions/netconf/executor/utils/NetconfConnectionUtils.kt
deleted file mode 100644
index 5b4b0d41..00000000
--- a/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/functions/netconf/executor/utils/NetconfConnectionUtils.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- *
- * 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.
- */
-
-package org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.utils
-
-import org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.interfaces.DeviceInfo
-import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRuntimeService
-
-class NetconfConnectionUtils {
- companion object {
-
- fun getDeficeInfoForNodeRequirement(bluePrintRuntimeService: BluePrintRuntimeService<*>, nodeTemplateName: String,
- requirementName: String): DeviceInfo {
- val deviceInfo = DeviceInfo()
- //TODO
- return deviceInfo
- }
- }
-} \ No newline at end of file