~ubuntu-branches/ubuntu/wily/heat/wily

« back to all changes in this revision

Viewing changes to heat/api/openstack/v1/events.py

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2015-10-12 21:44:47 UTC
  • mfrom: (1.1.30)
  • Revision ID: package-import@ubuntu.com-20151012214447-sasm1jdws1lj7ab8
Tags: 1:5.0.0~rc2-0ubuntu1
* New upstream release candidate for OpenStack Liberty.
* Don't clean heat.egg-info ensuring that non-py resources actually
  get installed (LP: #1505444).

Show diffs side-by-side

added added

removed removed

Lines of Context:
83
83
        self.options = options
84
84
        self.rpc_client = rpc_client.EngineClient()
85
85
 
86
 
    def _event_list(self, req, identity, filter_func=lambda e: True,
87
 
                    detail=False, filters=None, limit=None, marker=None,
88
 
                    sort_keys=None, sort_dir=None):
 
86
    def _event_list(self, req, identity, detail=False, filters=None,
 
87
                    limit=None, marker=None, sort_keys=None, sort_dir=None):
89
88
        events = self.rpc_client.list_events(req.context,
90
89
                                             identity,
91
90
                                             filters=filters,
95
94
                                             sort_dir=sort_dir)
96
95
        keys = None if detail else summary_keys
97
96
 
98
 
        return [format_event(req, e, keys) for e in events if filter_func(e)]
 
97
        return [format_event(req, e, keys) for e in events]
99
98
 
100
99
    @util.identified_stack
101
100
    def index(self, req, identity, resource_name=None):
116
115
        }
117
116
        params = util.get_allowed_params(req.params, whitelist)
118
117
        filter_params = util.get_allowed_params(req.params, filter_whitelist)
119
 
        if not filter_params:
120
 
            filter_params = None
121
 
 
122
118
        key = rpc_api.PARAM_LIMIT
123
119
        if key in params:
124
120
            try:
129
125
            params[key] = limit
130
126
 
131
127
        if resource_name is None:
132
 
            events = self._event_list(req, identity,
133
 
                                      filters=filter_params, **params)
 
128
            if not filter_params:
 
129
                filter_params = None
134
130
        else:
135
 
            res_match = lambda e: e[rpc_api.EVENT_RES_NAME] == resource_name
136
 
 
137
 
            events = self._event_list(req, identity, res_match,
138
 
                                      filters=filter_params, **params)
139
 
            if not events:
140
 
                msg = _('No events found for resource %s') % resource_name
141
 
                raise exc.HTTPNotFound(msg)
 
131
            filter_params['resource_name'] = resource_name
 
132
 
 
133
        events = self._event_list(
 
134
            req, identity, filters=filter_params, **params)
 
135
 
 
136
        if not events and resource_name is not None:
 
137
            msg = _('No events found for resource %s') % resource_name
 
138
            raise exc.HTTPNotFound(msg)
142
139
 
143
140
        return {'events': events}
144
141
 
148
145
        Gets detailed information for an event
149
146
        """
150
147
 
151
 
        def event_match(ev):
152
 
            identity = identifier.EventIdentifier(**ev[rpc_api.EVENT_ID])
153
 
            return (ev[rpc_api.EVENT_RES_NAME] == resource_name and
154
 
                    identity.event_id == event_id)
155
 
 
156
 
        events = self._event_list(req, identity, event_match, True)
 
148
        filters = {"resource_name": resource_name}
 
149
        events = self._event_list(req, identity, filters=filters, detail=True)
157
150
        if not events:
158
151
            raise exc.HTTPNotFound(_('No event %s found') % event_id)
159
152