diff options
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 |