acdb94aa17380ca74430ce2f64f7bc422ed75af3
[ccsdk/cds.git] /
1 #  Copyright (c) 2019 Bell Canada.
2 #
3 #  Licensed under the Apache License, Version 2.0 (the "License");
4 #  you may not use this file except in compliance with the License.
5 #  You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #  Unless required by applicable law or agreed to in writing, software
10 #  distributed under the License is distributed on an "AS IS" BASIS,
11 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #  See the License for the specific language governing permissions and
13 #  limitations under the License.
14
15 import netconf_constant
16 from java.lang import Exception as JavaException
17 from netconfclient import NetconfClient
18 from org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor import \
19   NetconfComponentFunction
20
21
22 class NetconfRpcExample(NetconfComponentFunction):
23
24   def process(self, execution_request):
25     try:
26       log = globals()[netconf_constant.SERVICE_LOG]
27       print(globals())
28       nc = NetconfClient(log, self, "netconf-connection")
29       nc.connect()
30
31       payload = "<configuration xmlns:junos=\"http://xml.juniper.net/junos/17.4R1/junos\"><system xmlns=\"http://yang.juniper.net/junos-qfx/conf/system\"><host-name operation=\"delete\"/><host-name operation=\"create\">DEMO</host-name></system></configuration>"
32
33       response = nc.lock(message_id="lock-123")
34       if not response.isSuccess():
35         log.error(response.errorMessage)
36
37       # nc.edit_config(message_id="edit-config-1", message_content=payload,edit_default_peration="none")
38       # nc.validate(message_id="validate-123")
39       # nc.discard_change(message_id="discard-123")
40       # nc.validate(message_id="validate-123")
41       # nc.commit(message_id="commit-123")
42       # nc.unlock(message_id="unlock-123")
43       # nc.disconnect()
44
45     except JavaException, err:
46       log.error("Java Exception in the script {}", err)
47     except Exception, err:
48       log.error("Python Exception in the script {}", err)
49
50   def recover(self, runtime_exception, execution_request):
51     print "Recovering calling.." + PROPERTY_BLUEPRINT_BASE_PATH
52     return None