self._run(port_id=port_id)
+class PortStatusArgument(ValueArgument):
+
+ valid = ('BUILD', 'ACTIVE', 'DOWN', 'ERROR')
+
+ @property
+ def value(self):
+ return getattr(self, '_value', None)
+
+ @value.setter
+ def value(self, new_status):
+ if new_status:
+ new_status = new_status.upper()
+ if new_status in self.valid:
+ raise CLIInvalidArgument(
+ 'Invalid argument %s' % new_status, details=[
+ 'Status valid values: %s'] % ', '.join(self.valid))
+ self._value = new_status
+
+
class _port_create(_init_network, _optional_json, _port_wait):
def connect(self, network_id, device_id):
"""Wait for port to finish [ACTIVE, DOWN, BUILD, ERROR]"""
arguments = dict(
+ current_status=PortStatusArgument(
+ 'Wait while in this status', '--status'),
timeout=IntArgument(
'Wait limit in seconds (default: 60)', '--timeout', default=60)
)
'status is already %s' % (
port_id, current_status, port['status']))
- def main(self, port_id, current_status='BUILD'):
+ def main(self, port_id):
super(self.__class__, self)._run()
+ current_status = self['current_status'] or self.arguments[
+ 'current_status'].valid[0]
self._run(port_id=port_id, current_status=current_status)