Fix extended plug/unplug commands
Service port configuration is not mandatory for extended plug/unplug commands. Change-Id: I31d4be9d8c91109d01c3c67103edbd15e3db03d8
This commit is contained in:
parent
1e70f233f7
commit
113ba244f8
@ -153,7 +153,6 @@ class ServiceAsProcess(service.Service):
|
|||||||
}
|
}
|
||||||
self._run_task(nodes, task, 'Unfreeze')
|
self._run_task(nodes, task, 'Unfreeze')
|
||||||
|
|
||||||
@utils.require_variables('port')
|
|
||||||
def plug(self, nodes=None, direction=None, other_port=None):
|
def plug(self, nodes=None, direction=None, other_port=None):
|
||||||
nodes = nodes if nodes is not None else self.get_nodes()
|
nodes = nodes if nodes is not None else self.get_nodes()
|
||||||
|
|
||||||
@ -161,6 +160,11 @@ class ServiceAsProcess(service.Service):
|
|||||||
port = other_port
|
port = other_port
|
||||||
else:
|
else:
|
||||||
# work with local service port
|
# work with local service port
|
||||||
|
if not self.port:
|
||||||
|
msg = '{} required for {}.{}'.format(
|
||||||
|
'port', self.__class__.__name__, 'plug')
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
port = self.port
|
port = self.port
|
||||||
direction = self.port[2] if len(self.port) > 2 else 'ingress'
|
direction = self.port[2] if len(self.port) > 2 else 'ingress'
|
||||||
|
|
||||||
@ -177,12 +181,12 @@ class ServiceAsProcess(service.Service):
|
|||||||
'jump': 'DROP',
|
'jump': 'DROP',
|
||||||
'destination_port': '%d' % port_number,
|
'destination_port': '%d' % port_number,
|
||||||
'state': 'absent',
|
'state': 'absent',
|
||||||
|
'comment': 'Added by os-faults',
|
||||||
},
|
},
|
||||||
'become': 'yes',
|
'become': 'yes',
|
||||||
}
|
}
|
||||||
self._run_task(nodes, task, message)
|
self._run_task(nodes, task, message)
|
||||||
|
|
||||||
@utils.require_variables('port')
|
|
||||||
def unplug(self, nodes=None, direction=None, other_port=None):
|
def unplug(self, nodes=None, direction=None, other_port=None):
|
||||||
nodes = nodes if nodes is not None else self.get_nodes()
|
nodes = nodes if nodes is not None else self.get_nodes()
|
||||||
|
|
||||||
@ -190,6 +194,11 @@ class ServiceAsProcess(service.Service):
|
|||||||
port = other_port
|
port = other_port
|
||||||
else:
|
else:
|
||||||
# work with local service port
|
# work with local service port
|
||||||
|
if not self.port:
|
||||||
|
msg = '{} required for {}.{}'.format(
|
||||||
|
'port', self.__class__.__name__, 'plug')
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
port = self.port
|
port = self.port
|
||||||
direction = self.port[2] if len(self.port) > 2 else 'ingress'
|
direction = self.port[2] if len(self.port) > 2 else 'ingress'
|
||||||
|
|
||||||
|
@ -89,8 +89,33 @@ class TestServiceAsProcess(unittest.TestCase):
|
|||||||
'jump': 'DROP',
|
'jump': 'DROP',
|
||||||
'destination_port': '8000',
|
'destination_port': '8000',
|
||||||
'state': 'absent',
|
'state': 'absent',
|
||||||
|
'comment': 'Added by os-faults',
|
||||||
},
|
},
|
||||||
'become': 'yes',
|
'become': 'yes',
|
||||||
}
|
}
|
||||||
self.cloud_management.execute_on_cloud.assert_called_once_with(
|
self.cloud_management.execute_on_cloud.assert_called_once_with(
|
||||||
self.hosts, expected_task)
|
self.hosts, expected_task)
|
||||||
|
|
||||||
|
def test_plug_port_is_required_in_config(self):
|
||||||
|
config = {
|
||||||
|
'grep': 'test-service',
|
||||||
|
}
|
||||||
|
service = ServiceAsProcess(
|
||||||
|
'test-service', config, mock.Mock(), mock.Mock())
|
||||||
|
node_collection = NodeCollection(
|
||||||
|
cloud_management=self.cloud_management, hosts=[])
|
||||||
|
service.get_nodes = mock.Mock(return_value=node_collection)
|
||||||
|
|
||||||
|
self.assertRaises(NotImplementedError, service.plug)
|
||||||
|
|
||||||
|
def test_unplug_port_is_required_in_config(self):
|
||||||
|
config = {
|
||||||
|
'grep': 'test-service',
|
||||||
|
}
|
||||||
|
service = ServiceAsProcess(
|
||||||
|
'test-service', config, mock.Mock(), mock.Mock())
|
||||||
|
node_collection = NodeCollection(
|
||||||
|
cloud_management=self.cloud_management, hosts=[])
|
||||||
|
service.get_nodes = mock.Mock(return_value=node_collection)
|
||||||
|
|
||||||
|
self.assertRaises(NotImplementedError, service.unplug)
|
||||||
|
Loading…
Reference in New Issue
Block a user