2146be7ce78d4882acc73f8cc777de23400d34cc
[ccsdk/cds.git] / components / model-catalog / blueprint-model / test-blueprint / golden / Scripts / python / ConfigDeploy.py
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 common import ResolutionHelper
17 from netconfclient import NetconfClient
18 from org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor import \
19   NetconfComponentFunction
20
21
22 class ConfigDeploy(NetconfComponentFunction):
23
24   def process(self, execution_request):
25       log = globals()[netconf_constant.SERVICE_LOG]
26       print(globals())
27
28       nc = NetconfClient(log, self, "netconf-connection")
29       rr = ResolutionHelper(self)
30
31       # Get meshed template from DB
32       resolution_key = self.getDynamicProperties("resolution-key").asText()
33       payloadHostname = rr.retrieve_resolved_template_from_database(resolution_key, "hostname")
34       payloadInterface = rr.retrieve_resolved_template_from_database(resolution_key, "vfw-interface")
35
36       nc.connect()
37       nc.lock()
38       #if not response.isSuccess():
39       #  og.error(response.errorMessage)
40       nc.discard_change()
41       nc.edit_config(message_content=payloadInterface, edit_default_peration="none")
42       nc.edit_config(message_content=payloadHostname, edit_default_peration="none")
43       nc.validate()
44       nc.commit()
45       #nc.commit(confirmed = True, confirm_timeout=15)
46       nc.unlock()
47       nc.disconnect()
48
49   def recover(self, runtime_exception, execution_request):
50         log.error("Exception in the script {}", runtime_exception)
51         print self.addError(runtime_exception.cause.message)
52         return None