Fix rollback option in cli_config module (#44834)

* Fix rollback option in cli_config module

* Update rollback flag in cliconf plugins
* Add rollback api for junos cliconf plugin

* Update doc

* Update doc
This commit is contained in:
Ganesh Nalawade 2018-08-29 21:00:11 +05:30 committed by GitHub
commit eb9c75caad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 67 additions and 13 deletions

View file

@ -307,6 +307,15 @@ class CliconfBase(AnsiblePlugin):
"""
return self._connection.method_not_found("discard_changes is not supported by network_os %s" % self._play_context.network_os)
def rollback(self, rollback_id, commit=True):
"""
:param rollback_id: The commit id to which configuration should be rollbacked
:param commit: Flag to indicate if changes should be committed or not
:return: Returns diff between before and after change.
"""
pass
def copy_file(self, source=None, destination=None, proto='scp', timeout=30):
"""Copies file over scp/sftp to remote device

View file

@ -268,7 +268,7 @@ class Cliconf(CliconfBase):
return {
'supports_diff_replace': True,
'supports_commit': True if self.supports_sessions else False,
'supports_rollback': True if self.supports_sessions else False,
'supports_rollback': False,
'supports_defaults': False,
'supports_onbox_diff': True if self.supports_sessions else False,
'supports_commit_comment': False,

View file

@ -188,7 +188,7 @@ class Cliconf(CliconfBase):
return {
'supports_diff_replace': False,
'supports_commit': True,
'supports_rollback': True,
'supports_rollback': False,
'supports_defaults': False,
'supports_onbox_diff': True,
'supports_commit_comment': True,

View file

@ -174,6 +174,17 @@ class Cliconf(CliconfBase):
return resp
@configure
def rollback(self, rollback_id, commit=True):
resp = {}
self.send_command('rollback %s' % int(rollback_id))
resp['diff'] = self.compare_configuration()
if commit:
self.commit()
else:
self.discard_changes()
return resp
def get_diff(self, rollback_id=None):
diff = {'config_diff': None}
response = self.compare_configuration(rollback_id=rollback_id)