mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-08 14:22:46 +00:00
cliconf refactor eos, nxos fix (#43596)
* cliconf refactor eos and nxos fix Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * move nxos replace check to plugins Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * address review comment * fix shippable
This commit is contained in:
@@ -289,8 +289,8 @@ class Cliconf(CliconfBase):
|
||||
|
||||
def get_capabilities(self):
|
||||
result = {}
|
||||
result['rpc'] = self.get_base_rpc()
|
||||
result['device_info'] = self.get_device_info()
|
||||
rpc_list = ['commit', 'discard_changes', 'get_diff', 'run_commands', 'supports_sessions']
|
||||
result['rpc'] = self.get_base_rpc() + rpc_list
|
||||
result['device_info'] = self.get_device_info()
|
||||
result['device_operations'] = self.get_device_operations()
|
||||
result.update(self.get_option_values())
|
||||
|
||||
@@ -158,6 +158,9 @@ class Cliconf(CliconfBase):
|
||||
requests = []
|
||||
|
||||
if replace:
|
||||
device_info = self.get_device_info()
|
||||
if '9K' not in device_info.get('network_os_platform', ''):
|
||||
raise ConnectionError(msg=u'replace is supported only on Nexus 9K devices')
|
||||
candidate = 'config replace {0}'.format(replace)
|
||||
|
||||
if commit:
|
||||
@@ -244,8 +247,9 @@ class Cliconf(CliconfBase):
|
||||
|
||||
def get_capabilities(self):
|
||||
result = {}
|
||||
result['rpc'] = self.get_base_rpc()
|
||||
result['rpc'] = self.get_base_rpc() + ['get_diff', 'run_commands']
|
||||
result['device_info'] = self.get_device_info()
|
||||
result['device_operations'] = self.get_device_operations()
|
||||
result.update(self.get_option_values())
|
||||
|
||||
if isinstance(self._connection, NetworkCli):
|
||||
|
||||
@@ -77,7 +77,11 @@ class HttpApi(HttpApiBase):
|
||||
|
||||
operations = self.connection.get_device_operations()
|
||||
self.connection.check_edit_config_capabiltiy(operations, candidate, commit, replace, comment)
|
||||
|
||||
if replace:
|
||||
device_info = self.connection.get_device_info()
|
||||
if '9K' not in device_info.get('network_os_platform', ''):
|
||||
raise ConnectionError(msg=u'replace is supported only on Nexus 9K devices')
|
||||
candidate = 'config replace {0}'.format(replace)
|
||||
|
||||
responses = self.send_request(candidate, output='config')
|
||||
|
||||
Reference in New Issue
Block a user