Merge "Add "event trait description" command"
This commit is contained in:
commit
31e71816c4
@ -131,3 +131,24 @@ class EventTraitList(command.Lister):
|
|||||||
columns = ('name', 'value', 'type')
|
columns = ('name', 'value', 'type')
|
||||||
return (columns,
|
return (columns,
|
||||||
(utils.get_item_properties(t, columns) for t in event_traits))
|
(utils.get_item_properties(t, columns) for t in event_traits))
|
||||||
|
|
||||||
|
|
||||||
|
class EventTraitDescription(command.Lister):
|
||||||
|
"""List trait info for an event type."""
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(EventTraitDescription, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'type_name',
|
||||||
|
metavar='<EVENT_TYPE>',
|
||||||
|
help='Type of the event for which traits definitions will be '
|
||||||
|
'shown.'
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
ac = self.app.client_manager.event
|
||||||
|
event_traits = ac.event_trait_description.list(parsed_args.type_name)
|
||||||
|
columns = ('name', 'type')
|
||||||
|
return (columns,
|
||||||
|
(utils.get_item_properties(t, columns) for t in event_traits))
|
||||||
|
@ -59,6 +59,8 @@ class FakeTestEventV2Client(object):
|
|||||||
self.fake_http_client)
|
self.fake_http_client)
|
||||||
self.event_type = events.EventTypeManager(self.fake_http_client)
|
self.event_type = events.EventTypeManager(self.fake_http_client)
|
||||||
self.event_trait = events.EventTraitsManager(self.fake_http_client)
|
self.event_trait = events.EventTraitsManager(self.fake_http_client)
|
||||||
|
self.event_trait_description = events.EventTraitDescriptionManager(
|
||||||
|
self.fake_http_client)
|
||||||
|
|
||||||
|
|
||||||
class FakeHTTPClient(object):
|
class FakeHTTPClient(object):
|
||||||
|
@ -54,3 +54,22 @@ class TestEventTraitsList(test_base.TestEventV2):
|
|||||||
expected_url = '/v2/event_types/%s/traits/%s' % (
|
expected_url = '/v2/event_types/%s/traits/%s' % (
|
||||||
parsed_args.type_name, parsed_args.trait_name)
|
parsed_args.type_name, parsed_args.trait_name)
|
||||||
mock_list.assert_called_once_with(expected_url)
|
mock_list.assert_called_once_with(expected_url)
|
||||||
|
|
||||||
|
|
||||||
|
@mock.patch.object(events_mgr.EventTraitDescriptionManager, '_list')
|
||||||
|
class TestEventTraitDescription(test_base.TestEventV2):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestEventTraitDescription, self).setUp()
|
||||||
|
self.cmd = events.EventTraitDescription(self.app, None)
|
||||||
|
|
||||||
|
def test_event_type_traits_description(self, mock_list):
|
||||||
|
arglist = [
|
||||||
|
'event_type1',
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('type_name', 'event_type1'),
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
self.cmd.take_action(parsed_args)
|
||||||
|
expected_url = '/v2/event_types/%s/traits/' % parsed_args.type_name
|
||||||
|
mock_list.assert_called_once_with(expected_url)
|
||||||
|
@ -28,3 +28,5 @@ class Client(object):
|
|||||||
self.event = events.EventManager(self.http_client)
|
self.event = events.EventManager(self.http_client)
|
||||||
self.event_type = events.EventTypeManager(self.http_client)
|
self.event_type = events.EventTypeManager(self.http_client)
|
||||||
self.event_trait = events.EventTraitsManager(self.http_client)
|
self.event_trait = events.EventTraitsManager(self.http_client)
|
||||||
|
self.event_trait_description = events.EventTraitDescriptionManager(
|
||||||
|
self.http_client)
|
||||||
|
@ -27,6 +27,10 @@ class EventTrait(base.Resource):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class TraitDescription(base.Resource):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class EventManager(base.ManagerWithFind):
|
class EventManager(base.ManagerWithFind):
|
||||||
resource_class = Event
|
resource_class = Event
|
||||||
|
|
||||||
@ -75,3 +79,11 @@ class EventTraitsManager(base.ManagerWithFind):
|
|||||||
def list(self, event_type, trait_name):
|
def list(self, event_type, trait_name):
|
||||||
url = '/v2/event_types/%s/traits/%s' % (event_type, trait_name)
|
url = '/v2/event_types/%s/traits/%s' % (event_type, trait_name)
|
||||||
return self._list(url)
|
return self._list(url)
|
||||||
|
|
||||||
|
|
||||||
|
class EventTraitDescriptionManager(base.ManagerWithFind):
|
||||||
|
resource_class = TraitDescription
|
||||||
|
|
||||||
|
def list(self, event_type):
|
||||||
|
url = '/v2/event_types/%s/traits/' % event_type
|
||||||
|
return self._list(url)
|
||||||
|
@ -35,6 +35,7 @@ openstack.event.v2 =
|
|||||||
event show = pankoclient.osc.v2.events:EventShow
|
event show = pankoclient.osc.v2.events:EventShow
|
||||||
event type list = pankoclient.osc.v2.events:EventTypeList
|
event type list = pankoclient.osc.v2.events:EventTypeList
|
||||||
event trait list = pankoclient.osc.v2.events:EventTraitList
|
event trait list = pankoclient.osc.v2.events:EventTraitList
|
||||||
|
event trait description = pankoclient.osc.v2.events:EventTraitDescription
|
||||||
|
|
||||||
[build_sphinx]
|
[build_sphinx]
|
||||||
source-dir = doc/source
|
source-dir = doc/source
|
||||||
|
Loading…
Reference in New Issue
Block a user