summaryrefslogtreecommitdiff
path: root/tests/unittests/test_datasource/test_rbx.py
diff options
context:
space:
mode:
authorAdam Dobrawy <ad-m@users.noreply.github.com>2020-03-31 19:37:12 +0200
committerGitHub <noreply@github.com>2020-03-31 13:37:12 -0400
commited350acb7a941ef16b2f9e19b223b58901e6b431 (patch)
tree738f08e7c9881243d599a885ec26c26819258f8f /tests/unittests/test_datasource/test_rbx.py
parentd00126c167fc06d913d99cfc184bf3402cb8cf53 (diff)
downloadvyos-cloud-init-ed350acb7a941ef16b2f9e19b223b58901e6b431.tar.gz
vyos-cloud-init-ed350acb7a941ef16b2f9e19b223b58901e6b431.zip
rbxcloud: gracefully handle arping errors (#262)
Diffstat (limited to 'tests/unittests/test_datasource/test_rbx.py')
-rw-r--r--tests/unittests/test_datasource/test_rbx.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/unittests/test_datasource/test_rbx.py b/tests/unittests/test_datasource/test_rbx.py
index aabf1f18..553af62e 100644
--- a/tests/unittests/test_datasource/test_rbx.py
+++ b/tests/unittests/test_datasource/test_rbx.py
@@ -4,6 +4,7 @@ from cloudinit import helpers
from cloudinit import distros
from cloudinit.sources import DataSourceRbxCloud as ds
from cloudinit.tests.helpers import mock, CiTestCase, populate_dir
+from cloudinit import util
DS_PATH = "cloudinit.sources.DataSourceRbxCloud"
@@ -199,6 +200,35 @@ class TestRbxDataSource(CiTestCase):
m_subp.call_args_list
)
+ @mock.patch(
+ DS_PATH + '.util.subp',
+ side_effect=util.ProcessExecutionError()
+ )
+ def test_continue_on_arping_error(self, m_subp):
+ """Continue when command error"""
+ items = [
+ {
+ 'destination': '172.17.0.2',
+ 'source': '172.16.6.104'
+ },
+ {
+ 'destination': '172.17.0.2',
+ 'source': '172.16.6.104',
+ },
+ ]
+ ds.gratuitous_arp(items, self._fetch_distro('ubuntu'))
+ self.assertEqual([
+ mock.call([
+ 'arping', '-c', '2', '-S',
+ '172.16.6.104', '172.17.0.2'
+ ]),
+ mock.call([
+ 'arping', '-c', '2', '-S',
+ '172.16.6.104', '172.17.0.2'
+ ])
+ ], m_subp.call_args_list
+ )
+
def populate_cloud_metadata(path, data):
populate_dir(path, {'cloud.json': json.dumps(data)})