1 # Copyright (c) 2019 Bell Canada.
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
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
22 class Rollback(NetconfComponentFunction):
24 def process(self, execution_request):
26 log = globals()[netconf_constant.SERVICE_LOG]
29 nc = NetconfClient(log, self, "netconf-connection")
30 rr = ResolutionHelper(self)
32 # rollback config on device
34 payloadHostnameRollback = rr.resolve_and_generate_message_from_template_prefix("junos-rollback-RPC")
35 nc.invoke_rpc(payloadHostnameRollback)
40 def recover(self, runtime_exception, execution_request):
41 log.error("Exception in the script {}", runtime_exception)
42 print(self.addError(runtime_exception.cause.message))