)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"7192121ed027bf1d7dad0c7b7261e7aea5c0735f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Ceilometer] Add  scenario for events and traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Added CeilometerEvents.list_events scenario"},{"line_number":10,"context_line":"- Added CeilometerEvents.list_event_types scenario"},{"line_number":11,"context_line":"- Added CeilometerEvents.get_event scenario"},{"line_number":12,"context_line":"- Added CeilometerEvents.list_trait_definition scenario"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a016987_9ddfd40c","line":9,"updated":"2015-05-19 10:52:46.000000000","message":"Write it in declarative style","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"bcc440b47e2c42d0ef81dd08e17ca0d2e66ddfcd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Ceilometer] Add  scenario for events and traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Added CeilometerEvents.list_events scenario"},{"line_number":10,"context_line":"- Added CeilometerEvents.list_event_types scenario"},{"line_number":11,"context_line":"- Added CeilometerEvents.get_event scenario"},{"line_number":12,"context_line":"- Added CeilometerEvents.list_trait_definition scenario"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a016987_8024eec4","line":9,"in_reply_to":"7a016987_9ddfd40c","updated":"2015-05-20 11:50:19.000000000","message":"Done","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"d51dcf4def7cede447576347961ed9731cf79171","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Ceilometer] Add  scenario for events and traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Patch adds series of scenarios that cover events and traits Ceilometer API"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I572730d9f69e3d63b29eeedd03ddc24071ffca3d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"3afb71cf_7c44041a","line":9,"updated":"2015-06-09 16:35:40.000000000","message":"its obvious that changes adds patch(its not needed word) better add details what scenarios(name) you add with sort description maybe.","commit_id":"7d9f99ddd9ed2c1004bf00c7e3c2da394566e488"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"74e5f055417f472a636d84a57c89881605b5c195","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Ceilometer] Add  scenario for events and traits"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Patch adds series of scenarios that cover events and traits Ceilometer API"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I572730d9f69e3d63b29eeedd03ddc24071ffca3d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"3afb71cf_2019a1d7","line":9,"in_reply_to":"3afb71cf_7c44041a","updated":"2015-06-10 08:20:13.000000000","message":"Done","commit_id":"7d9f99ddd9ed2c1004bf00c7e3c2da394566e488"}],"rally-jobs/rally.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a1776c924d4a0ae645328cc511c6fd1da19fae07","unresolved":false,"context_lines":[{"line_number":273,"context_line":"      runner:"},{"line_number":274,"context_line":"        type: \"constant\""},{"line_number":275,"context_line":"        times: 10"},{"line_number":276,"context_line":"        concurrency: 1"},{"line_number":277,"context_line":"      context:"},{"line_number":278,"context_line":"        users:"},{"line_number":279,"context_line":"          tenants: 2"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a016987_703320ac","line":276,"updated":"2015-05-19 10:47:48.000000000","message":"In all this tests please make concurrency 10 because we need to test parallelization of this scenarios. Also add SLA section.","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"bcc440b47e2c42d0ef81dd08e17ca0d2e66ddfcd","unresolved":false,"context_lines":[{"line_number":273,"context_line":"      runner:"},{"line_number":274,"context_line":"        type: \"constant\""},{"line_number":275,"context_line":"        times: 10"},{"line_number":276,"context_line":"        concurrency: 1"},{"line_number":277,"context_line":"      context:"},{"line_number":278,"context_line":"        users:"},{"line_number":279,"context_line":"          tenants: 2"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a016987_a0048a49","line":276,"in_reply_to":"7a016987_703320ac","updated":"2015-05-20 11:50:19.000000000","message":"Done","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"4f13df92607b570b6db0922ed7c8bbb45ee0aab1","unresolved":false,"context_lines":[{"line_number":314,"context_line":"      context:"},{"line_number":315,"context_line":"        users:"},{"line_number":316,"context_line":"          tenants: 2"},{"line_number":317,"context_line":"          users_per_tenant: 2"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"  CeilometerEvents.create_user_and_list_event_types:"},{"line_number":320,"context_line":"    -"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3afb71cf_cd055611","line":317,"updated":"2015-06-10 14:53:48.000000000","message":"This actually doesn\u0027t check anything you should add to all samples: \n\n  sla: \n    failure_rate: \n      max: 0","commit_id":"a436d7e3b5fd9839844f8de6d716c6a33666e940"}],"rally/benchmark/scenarios/ceilometer/events.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"76d99f69c139478ea1b07add3d4dd665f7103d17","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def list_events(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all events."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all alarms using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self._user_create()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_a46d5b34","line":32,"updated":"2015-05-12 09:36:29.000000000","message":"Wrong description","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"1554615459cdf312f000276c7cb9f28b323c3dda","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def list_events(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all events."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all alarms using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self._user_create()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_bfb442d1","line":32,"in_reply_to":"9a0c5dc1_a46d5b34","updated":"2015-05-12 09:54:22.000000000","message":"Could you please clarify what is wrong with descriptions?\nThank you in advance.","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"203dcaba1c10bbca800e1abbb63f71056150376e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def list_events(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all events."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all alarms using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self._user_create()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_d58237c8","line":32,"in_reply_to":"9a0c5dc1_bfb442d1","updated":"2015-05-12 10:41:48.000000000","message":"list of all alarms? or events","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"328002e85e2f558ee3eb8cc22f71f7e659b0c888","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def list_events(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all events."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all alarms using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self._user_create()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_99f51985","line":32,"in_reply_to":"9a0c5dc1_d58237c8","updated":"2015-05-12 11:12:26.000000000","message":"Oh! Sure, thanks for catching this, will improve.\nDone","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"76d99f69c139478ea1b07add3d4dd665f7103d17","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def list_event_types(self):"},{"line_number":43,"context_line":"        \"\"\"Fetch all event types."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        This scenario fetches list of all alarms using GET /v2/event_types."},{"line_number":46,"context_line":"        \"\"\""},{"line_number":47,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":48,"context_line":"        # user in keystone"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_64776303","line":45,"updated":"2015-05-12 09:36:29.000000000","message":"Wrong description","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"328002e85e2f558ee3eb8cc22f71f7e659b0c888","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def list_event_types(self):"},{"line_number":43,"context_line":"        \"\"\"Fetch all event types."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        This scenario fetches list of all alarms using GET /v2/event_types."},{"line_number":46,"context_line":"        \"\"\""},{"line_number":47,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":48,"context_line":"        # user in keystone"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_dc249fb0","line":45,"in_reply_to":"9a0c5dc1_64776303","updated":"2015-05-12 11:12:26.000000000","message":"Done","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"76d99f69c139478ea1b07add3d4dd665f7103d17","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":55,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":56,"context_line":"    def get_event(self):"},{"line_number":57,"context_line":"        \"\"\"Fetch all event types."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        This scenario fetches list of all alarms using"},{"line_number":60,"context_line":"        GET /v2/events/\u003cmessage_id\u003e."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_a4267b14","line":57,"updated":"2015-05-12 09:36:29.000000000","message":"Wrong description.","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"328002e85e2f558ee3eb8cc22f71f7e659b0c888","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":55,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":56,"context_line":"    def get_event(self):"},{"line_number":57,"context_line":"        \"\"\"Fetch all event types."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        This scenario fetches list of all alarms using"},{"line_number":60,"context_line":"        GET /v2/events/\u003cmessage_id\u003e."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_9c3747e3","line":57,"in_reply_to":"9a0c5dc1_a4267b14","updated":"2015-05-12 11:12:26.000000000","message":"Done","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a1776c924d4a0ae645328cc511c6fd1da19fae07","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":36,"context_line":"        # user in keystone"},{"line_number":37,"context_line":"        self._user_create()"},{"line_number":38,"context_line":"        self._list_events()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_50e5c4d9","line":37,"updated":"2015-05-19 10:47:48.000000000","message":"Why we can\u0027t create users in context and then fetch list of this events?","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"a02f2d8e5f54e5574c16566aab46981efd5b9a20","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":36,"context_line":"        # user in keystone"},{"line_number":37,"context_line":"        self._user_create()"},{"line_number":38,"context_line":"        self._list_events()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5de5dcd9","line":37,"in_reply_to":"7a016987_50e5c4d9","updated":"2015-05-19 11:26:07.000000000","message":"Usually this approach (create resources by scenario) is what we need, however in this case number of resources for listing is increasing by each iteration.\n\nI think current approach is OK","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a1776c924d4a0ae645328cc511c6fd1da19fae07","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        # new user in keystone"},{"line_number":66,"context_line":"        self._user_create()"},{"line_number":67,"context_line":"        event \u003d self._list_events()[0]"},{"line_number":68,"context_line":"        self._list_events(event_id\u003devent.message_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_1dfc04b7","line":68,"updated":"2015-05-19 10:47:48.000000000","message":"There is special method for this https://github.com/openstack/python-ceilometerclient/blob/master/ceilometerclient/v2/events.py#L36 Lets use it","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"bcc440b47e2c42d0ef81dd08e17ca0d2e66ddfcd","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        # new user in keystone"},{"line_number":66,"context_line":"        self._user_create()"},{"line_number":67,"context_line":"        event \u003d self._list_events()[0]"},{"line_number":68,"context_line":"        self._list_events(event_id\u003devent.message_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_80886ec6","line":68,"in_reply_to":"7a016987_1dfc04b7","updated":"2015-05-20 11:50:19.000000000","message":"actually it is used method you\u0027ve mention inside _list_event method","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"43edbe1c017eec6905d8542baaf1632f92b95383","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def list_events(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all events."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all events using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_83a85f21","line":32,"updated":"2015-05-21 11:59:28.000000000","message":"Please mention in the docstring as well that the scenario creates a user.","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"b1b186de16c958e93bf29dd629901c18072d0430","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def list_events(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all events."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all events using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_1b6f21fd","line":32,"in_reply_to":"7a016987_83a85f21","updated":"2015-05-22 11:52:40.000000000","message":"Done","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"43edbe1c017eec6905d8542baaf1632f92b95383","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        This scenario fetches list of all events using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":36,"context_line":"        # user in keystone"},{"line_number":37,"context_line":"        self._user_create()"},{"line_number":38,"context_line":"        self._list_events()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_638e83d1","line":35,"updated":"2015-05-21 11:59:28.000000000","message":"This text is not clear for me. Also, it should be marked as \u0027NOTE\u0027:\n\n    # NOTE(idegtiarov): \u003cgood explanation of why we need a user here\u003e","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"b1b186de16c958e93bf29dd629901c18072d0430","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        This scenario fetches list of all events using GET /v2/events."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":36,"context_line":"        # user in keystone"},{"line_number":37,"context_line":"        self._user_create()"},{"line_number":38,"context_line":"        self._list_events()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_fb7a05bc","line":35,"in_reply_to":"7a016987_638e83d1","updated":"2015-05-22 11:52:40.000000000","message":"Done","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"43edbe1c017eec6905d8542baaf1632f92b95383","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":42,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":43,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":44,"context_line":"    def list_event_types(self):"},{"line_number":45,"context_line":"        \"\"\"Fetch all event types."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        This scenario fetches list of all events types using"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_63a56345","line":44,"updated":"2015-05-21 11:59:28.000000000","message":"Same comments to this scenario, to the scenario below and to the \u0027traits\u0027 scenarios","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f773d5d9c573f85482ac5ddd2039ca23cfb6883d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        # new user in keystone"},{"line_number":66,"context_line":"        self._user_create()"},{"line_number":67,"context_line":"        event \u003d self._list_events()[0]"},{"line_number":68,"context_line":"        self._list_events(event_id\u003devent.message_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_c4231357","line":68,"updated":"2015-05-20 15:56:56.000000000","message":"I\u0027m disagree with this name. Because if I\u0027m user and I want to becnhmark get() method I will open this function and there is now function which I have expected.","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"b1b186de16c958e93bf29dd629901c18072d0430","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        # new user in keystone"},{"line_number":66,"context_line":"        self._user_create()"},{"line_number":67,"context_line":"        event \u003d self._list_events()[0]"},{"line_number":68,"context_line":"        self._list_events(event_id\u003devent.message_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_1b3de1dc","line":68,"in_reply_to":"7a016987_c4231357","updated":"2015-05-22 11:52:40.000000000","message":"My point is that if I am user I will use that scenario with name \u0027get_event\u0027 and receive an expecting result. If I will have any doubts I will open internal method _list_events and find out what is happened there.\n\nBut if you strongly insist I will add one more internal _get_event method.","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"}],"rally/benchmark/scenarios/ceilometer/traits.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"76d99f69c139478ea1b07add3d4dd665f7103d17","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":28,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":29,"context_line":"    def list_traits(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all event types."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all alarms using"},{"line_number":33,"context_line":"        GET /v2/event_types/\u003cevent_type\u003e/traits."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_24ddeb14","line":30,"updated":"2015-05-12 09:36:29.000000000","message":"Wrong description?","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"328002e85e2f558ee3eb8cc22f71f7e659b0c888","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":28,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":29,"context_line":"    def list_traits(self):"},{"line_number":30,"context_line":"        \"\"\"Fetch all event types."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all alarms using"},{"line_number":33,"context_line":"        GET /v2/event_types/\u003cevent_type\u003e/traits."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_bc41eb3b","line":30,"in_reply_to":"9a0c5dc1_24ddeb14","updated":"2015-05-12 11:12:26.000000000","message":"Done","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"76d99f69c139478ea1b07add3d4dd665f7103d17","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":46,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":47,"context_line":"    def list_trait_definitions(self):"},{"line_number":48,"context_line":"        \"\"\"Fetch all event types."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This scenario fetches list of all alarms using"},{"line_number":51,"context_line":"        GET /v2/event_types/\u003cevent_type\u003e/traits."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_e4e6b3e7","line":48,"updated":"2015-05-12 09:36:29.000000000","message":"same here.","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"328002e85e2f558ee3eb8cc22f71f7e659b0c888","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":46,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":47,"context_line":"    def list_trait_definitions(self):"},{"line_number":48,"context_line":"        \"\"\"Fetch all event types."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This scenario fetches list of all alarms using"},{"line_number":51,"context_line":"        GET /v2/event_types/\u003cevent_type\u003e/traits."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0c5dc1_3c74db9a","line":48,"in_reply_to":"9a0c5dc1_e4e6b3e7","updated":"2015-05-12 11:12:26.000000000","message":"Done","commit_id":"57e251c0a270ab786227db75b295c51758c8ff3f"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"43edbe1c017eec6905d8542baaf1632f92b95383","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        \"\"\"Fetch all events traits."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all traits for certain event type and"},{"line_number":33,"context_line":"        trait name using GET /v2/event_types/\u003cevent_type\u003e/traits/\u003ctrait_name\u003e."},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":36,"context_line":"        # user in keystone"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_e346f379","line":33,"updated":"2015-05-21 11:59:28.000000000","message":"Why are then \u003cevent_type\u003e and \u003ctrait_name\u003e not the parameters of this scenario?","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"b1b186de16c958e93bf29dd629901c18072d0430","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        \"\"\"Fetch all events traits."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        This scenario fetches list of all traits for certain event type and"},{"line_number":33,"context_line":"        trait name using GET /v2/event_types/\u003cevent_type\u003e/traits/\u003ctrait_name\u003e."},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":"        # We need to create events that could be done for example we create"},{"line_number":36,"context_line":"        # user in keystone"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_c64acc54","line":33,"in_reply_to":"7a016987_e346f379","updated":"2015-05-22 11:52:40.000000000","message":"We do not need parameters in that scenarios because we have no possibilities to create new event except emit notification from other services here create_user is used, so that params cannot be used in scenarios.","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"43edbe1c017eec6905d8542baaf1632f92b95383","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":45,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":46,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":47,"context_line":"    def list_trait_definitions(self):"},{"line_number":48,"context_line":"        \"\"\"Fetch all event types."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This scenario fetches list of all traits for certain event type using"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_03390ff2","line":47,"updated":"2015-05-21 11:59:28.000000000","message":"Why is this scenario called \u0027list_trait_definitions\u0027? As far as I can see, the only difference from the scenario above is that it does not filter traits by their names. Do we actually need this scenario? Can we perhaps just modify the scenario above that it can also skip the trait_name filter depending on the parameters?","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"b1b186de16c958e93bf29dd629901c18072d0430","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":45,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":46,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":47,"context_line":"    def list_trait_definitions(self):"},{"line_number":48,"context_line":"        \"\"\"Fetch all event types."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This scenario fetches list of all traits for certain event type using"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_467b7c7b","line":47,"in_reply_to":"7a016987_03390ff2","updated":"2015-05-22 11:52:40.000000000","message":"_list_event_trait method depends on trait_name param in specific way: if it exists we have API request traits.list else trait_descriptions.list\n\nPlease take a look at ceilometer.utils","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"}],"rally/benchmark/scenarios/ceilometer/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a1776c924d4a0ae645328cc511c6fd1da19fae07","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :returns: list of events"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if event_id:"},{"line_number":131,"context_line":"            return self.admin_clients(\"ceilometer\").events.get(event_id)"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5d55dcf7","line":131,"updated":"2015-05-19 10:47:48.000000000","message":"I think it should be different method in utils for events.get and for events.list as its different methodsin client","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"bcc440b47e2c42d0ef81dd08e17ca0d2e66ddfcd","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :returns: list of events"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if event_id:"},{"line_number":131,"context_line":"            return self.admin_clients(\"ceilometer\").events.get(event_id)"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_a0b24a92","line":131,"in_reply_to":"7a016987_5d55dcf7","updated":"2015-05-20 11:50:19.000000000","message":"both of the methods return list of events and difference only that get returns list with one event, so it seems that such approach is fair enough","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a1776c924d4a0ae645328cc511c6fd1da19fae07","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        return self.admin_clients(\"ceilometer\").event_types.list()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_traits\")"},{"line_number":144,"context_line":"    def _list_event_traits(self, event_type, trait_name\u003dNone):"},{"line_number":145,"context_line":"        \"\"\"Get list of event trait."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        :returns: list of event trait"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_4b107559","line":144,"updated":"2015-05-19 10:47:48.000000000","message":"Please describe parameters in docstring","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"bcc440b47e2c42d0ef81dd08e17ca0d2e66ddfcd","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        return self.admin_clients(\"ceilometer\").event_types.list()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_traits\")"},{"line_number":144,"context_line":"    def _list_event_traits(self, event_type, trait_name\u003dNone):"},{"line_number":145,"context_line":"        \"\"\"Get list of event trait."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        :returns: list of event trait"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_60a8d220","line":144,"in_reply_to":"7a016987_4b107559","updated":"2015-05-20 11:50:19.000000000","message":"Done","commit_id":"7e11f640916148e41a8a7125c38c9e03eea3be83"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f773d5d9c573f85482ac5ddd2039ca23cfb6883d","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :returns: list of events"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if event_id:"},{"line_number":131,"context_line":"            return self.admin_clients(\"ceilometer\").events.get(event_id)"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_64e69f16","line":131,"updated":"2015-05-20 15:56:56.000000000","message":"Also I don\u0027t like this code and request for separate function for get() method. Nameing of function map the function from celiometer-pythonclient not the return value only.","commit_id":"cc2a5a08a1e6297686a9e17e784d51309342da46"}],"rally/plugins/openstack/scenarios/ceilometer/events.py":[{"author":{"_account_id":9601,"name":"Oleh Anufriiev","email":"oanufriev@mirantis.com","username":"oanufriev"},"change_message_id":"04ea4c9ff540c591dac13cdcebd0c0b50c6bda60","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"},{"line_number":30,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":31,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":32,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":33,"context_line":"    def list_events(self):"},{"line_number":34,"context_line":"        \"\"\"Fetch all events."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_a6350247","line":32,"updated":"2015-05-28 01:47:27.000000000","message":"i think keystone users have to be cleaned up too","commit_id":"165feb0405f83c6fa68cdaf0ad4fc52cd6e5e5e9"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"20c6412c9cd9ec3ad8f259a879cc208eefe9bd4c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"},{"line_number":30,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":31,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":32,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":33,"context_line":"    def list_events(self):"},{"line_number":34,"context_line":"        \"\"\"Fetch all events."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_46eac0ad","line":32,"in_reply_to":"7a016987_a6350247","updated":"2015-05-28 10:39:00.000000000","message":"Done","commit_id":"165feb0405f83c6fa68cdaf0ad4fc52cd6e5e5e9"},{"author":{"_account_id":9601,"name":"Oleh Anufriiev","email":"oanufriev@mirantis.com","username":"oanufriev"},"change_message_id":"04ea4c9ff540c591dac13cdcebd0c0b50c6bda60","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"},{"line_number":44,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":45,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":46,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":47,"context_line":"    def list_event_types(self):"},{"line_number":48,"context_line":"        \"\"\"Fetch all event types."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_463bee38","line":46,"updated":"2015-05-28 01:47:27.000000000","message":"same as above","commit_id":"165feb0405f83c6fa68cdaf0ad4fc52cd6e5e5e9"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"20c6412c9cd9ec3ad8f259a879cc208eefe9bd4c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"},{"line_number":44,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":45,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":46,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":47,"context_line":"    def list_event_types(self):"},{"line_number":48,"context_line":"        \"\"\"Fetch all event types."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_26d22401","line":46,"in_reply_to":"7a016987_463bee38","updated":"2015-05-28 10:39:00.000000000","message":"Done","commit_id":"165feb0405f83c6fa68cdaf0ad4fc52cd6e5e5e9"},{"author":{"_account_id":9601,"name":"Oleh Anufriiev","email":"oanufriev@mirantis.com","username":"oanufriev"},"change_message_id":"04ea4c9ff540c591dac13cdcebd0c0b50c6bda60","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"},{"line_number":58,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":59,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":60,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":61,"context_line":"    def get_event(self):"},{"line_number":62,"context_line":"        \"\"\"Get event."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_0645f6b1","line":60,"updated":"2015-05-28 01:47:27.000000000","message":"and here too","commit_id":"165feb0405f83c6fa68cdaf0ad4fc52cd6e5e5e9"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"20c6412c9cd9ec3ad8f259a879cc208eefe9bd4c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"},{"line_number":58,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":59,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":60,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"ceilometer\"]})"},{"line_number":61,"context_line":"    def get_event(self):"},{"line_number":62,"context_line":"        \"\"\"Get event."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_e6dbec19","line":60,"in_reply_to":"7a016987_0645f6b1","updated":"2015-05-28 10:39:00.000000000","message":"Done","commit_id":"165feb0405f83c6fa68cdaf0ad4fc52cd6e5e5e9"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        This scenario creates user to store new event and"},{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._user_create()"},{"line_number":42,"context_line":"        self._list_events()"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_4b22d253","line":40,"updated":"2015-06-08 19:22:16.000000000","message":"Don\u0027t start a function with a blank line.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        This scenario creates user to store new event and"},{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._user_create()"},{"line_number":42,"context_line":"        self._list_events()"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_a9537538","line":40,"in_reply_to":"3afb71cf_4b22d253","updated":"2015-06-09 11:52:07.000000000","message":"Done","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._user_create()"},{"line_number":42,"context_line":"        self._list_events()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_6b5c6eed","line":41,"updated":"2015-06-08 19:22:16.000000000","message":"Instead of creating a user explicitly, would it be possible to require a users context, and get events from the user creation in the context?\n\nIf that\u0027s not possible, then this should be named create_user_and_list_events(). Ditto for the other two scenarios below.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._user_create()"},{"line_number":42,"context_line":"        self._list_events()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_1b4e4c3b","line":41,"in_reply_to":"3afb71cf_16975649","updated":"2015-06-09 11:52:07.000000000","message":"If I\u0027m not mistake user context is required but without explicit Event creating their are no any data in Ceilometer.\n\nMethod were renamed.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"14dabd18b0362676317743bca0e7a17c4fcf19e2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._user_create()"},{"line_number":42,"context_line":"        self._list_events()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_16975649","line":41,"in_reply_to":"3afb71cf_6b5c6eed","updated":"2015-06-08 22:33:03.000000000","message":"I asked the same question previously. He wan\u0027t to create even for Celiometer handle.As I understand the answer for the first question - No.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"4f13df92607b570b6db0922ed7c8bbb45ee0aab1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        This scenario creates user to store new event and"},{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":"        self._user_create()"},{"line_number":41,"context_line":"        self._list_events()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_4d6726e9","line":40,"updated":"2015-06-10 14:53:48.000000000","message":"The value of these benchmarks is quite low (because they require admin access to cloud). \n\nCan we create something else that doesn\u0027t require admin access? \n\nE.g. fake empty image? Or something like that?\n\nThis comment is not blocking just suggestion","commit_id":"a436d7e3b5fd9839844f8de6d716c6a33666e940"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"829d3495d1f46fd3af7776d37f8594a97edc329e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        This scenario creates user to store new event and"},{"line_number":38,"context_line":"        fetches list of all events using GET /v2/events."},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":"        self._user_create()"},{"line_number":41,"context_line":"        self._list_events()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @validation.required_services(consts.Service.CEILOMETER,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_0ccd8930","line":40,"in_reply_to":"3afb71cf_4d6726e9","updated":"2015-06-11 09:57:50.000000000","message":"Thanks for suggestion. It seems that creation new user in keystone is the simplest way to have new event. Of course events could be created in some other way. AFAIK Ilya Tyaptin started work on possibility to create a big number of samples and events in ceilometerclient to make \"benchmark\" tests for Ceilometer become really benchmark. And it seems that after it would be done we can change source of events for events and traits scenarios.","commit_id":"a436d7e3b5fd9839844f8de6d716c6a33666e940"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"6c9b46233a53fd6f0a13f4e3709f7e6e2635cc59","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class CeilometerEvents(cutils.CeilometerScenario, kutils.KeystoneScenario):"},{"line_number":23,"context_line":"    \"\"\"Benchmark scenarios for Ceilometer Events API.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # NOTE(idegtiarov): to work with event we need to create it, there are"},{"line_number":26,"context_line":"    # no other way except emit suitable notification from one of services,"},{"line_number":27,"context_line":"    # for example create new user in keystone."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"fa32b979_24378ce4","line":25,"updated":"2015-06-16 15:13:22.000000000","message":"Is it possible to do this with non-admin user?","commit_id":"e02f27060bee247bbc706b09189c1fb840ba5dea"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"f5bb31c43685b80902f14622a3e9b30fef90f461","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class CeilometerEvents(cutils.CeilometerScenario, kutils.KeystoneScenario):"},{"line_number":23,"context_line":"    \"\"\"Benchmark scenarios for Ceilometer Events API.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # NOTE(idegtiarov): to work with event we need to create it, there are"},{"line_number":26,"context_line":"    # no other way except emit suitable notification from one of services,"},{"line_number":27,"context_line":"    # for example create new user in keystone."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"fa32b979_5eae0299","line":25,"in_reply_to":"fa32b979_24378ce4","updated":"2015-06-17 06:42:41.000000000","message":"If question is do we can create event without admin user answer yes it is possible, but nevertheless one can deal with events and traits only with admin rights. So we still need have admin user in scenarios. Actually the same question was risen earlier in comments and the answer was that now we are working on adding possibility of sending a big amount of events, after it would be ended we will change scenarios for events and traits to make them be really \"benchmark\"","commit_id":"e02f27060bee247bbc706b09189c1fb840ba5dea"}],"rally/plugins/openstack/scenarios/ceilometer/traits.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        trait name using GET /v2/event_types/\u003cevent_type\u003e/traits/\u003ctrait_name\u003e."},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        self._user_create()"},{"line_number":43,"context_line":"        event \u003d self._list_events()[0]"},{"line_number":44,"context_line":"        trait_name \u003d event.traits[0][\"name\"]"},{"line_number":45,"context_line":"        self._list_event_traits(event_type\u003devent.event_type,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_2b6f9693","line":42,"updated":"2015-06-08 19:22:16.000000000","message":"Same question/suggestion here.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        trait name using GET /v2/event_types/\u003cevent_type\u003e/traits/\u003ctrait_name\u003e."},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        self._user_create()"},{"line_number":43,"context_line":"        event \u003d self._list_events()[0]"},{"line_number":44,"context_line":"        trait_name \u003d event.traits[0][\"name\"]"},{"line_number":45,"context_line":"        self._list_event_traits(event_type\u003devent.event_type,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_9e846a5e","line":42,"in_reply_to":"3afb71cf_2b6f9693","updated":"2015-06-09 11:52:07.000000000","message":"Done","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"4f13df92607b570b6db0922ed7c8bbb45ee0aab1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":31,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":32,"context_line":"    @base.scenario(context\u003d{\"admin_cleanup\": [\"keystone\"],"},{"line_number":33,"context_line":"                            \"cleanup\": [\"ceilometer\"]})"},{"line_number":34,"context_line":"    def create_user_and_list_traits(self):"},{"line_number":35,"context_line":"        \"\"\"Fetch all events traits."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_a825685c","line":33,"updated":"2015-06-10 14:53:48.000000000","message":"hm this seem bad. I mean you can\u0027t requrest cleanup from users if you are using in benchmark only admin...","commit_id":"a436d7e3b5fd9839844f8de6d716c6a33666e940"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"829d3495d1f46fd3af7776d37f8594a97edc329e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                                  consts.Service.KEYSTONE)"},{"line_number":31,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":32,"context_line":"    @base.scenario(context\u003d{\"admin_cleanup\": [\"keystone\"],"},{"line_number":33,"context_line":"                            \"cleanup\": [\"ceilometer\"]})"},{"line_number":34,"context_line":"    def create_user_and_list_traits(self):"},{"line_number":35,"context_line":"        \"\"\"Fetch all events traits."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_0c0b49d7","line":33,"in_reply_to":"3afb71cf_a825685c","updated":"2015-06-11 09:57:50.000000000","message":"from the very beginning I have tried to use only admin_cleanup, but I got an exceptions in tests with the text: \"NoSuchCleanupResources: Missing cleanup resource managers: ceilometer\" so it seems that it requiered users cleanup for ceilometer","commit_id":"a436d7e3b5fd9839844f8de6d716c6a33666e940"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"eaae0b0c3e739e37488c3bd7713895ff3ece3d38","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @base.scenario(context\u003d{\"admin_cleanup\": [\"keystone\"],"},{"line_number":51,"context_line":"                            \"cleanup\": [\"ceilometer\"]})"},{"line_number":52,"context_line":"    def create_user_and_list_trait_descriptions(self):"},{"line_number":53,"context_line":"        \"\"\"Fetch all event types."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        This scenario creates user to store new event and"},{"line_number":56,"context_line":"        fetches list of all traits for certain event type using"}],"source_content_type":"text/x-python","patch_set":16,"id":"1af86dd1_3a35dc45","line":53,"updated":"2015-06-12 21:02:43.000000000","message":"Fetch all trait descriptions?","commit_id":"ce4a55e7722e4961e65bda00d2703aa9aa33b064"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"965db7ef5c5416147a52eb3c9e4de40ff183c56d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @base.scenario(context\u003d{\"admin_cleanup\": [\"keystone\"],"},{"line_number":51,"context_line":"                            \"cleanup\": [\"ceilometer\"]})"},{"line_number":52,"context_line":"    def create_user_and_list_trait_descriptions(self):"},{"line_number":53,"context_line":"        \"\"\"Fetch all event types."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        This scenario creates user to store new event and"},{"line_number":56,"context_line":"        fetches list of all traits for certain event type using"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa32b979_af497ad2","line":53,"in_reply_to":"1af86dd1_3a35dc45","updated":"2015-06-15 12:27:53.000000000","message":"Yes, thanks for catching.","commit_id":"ce4a55e7722e4961e65bda00d2703aa9aa33b064"}],"rally/plugins/openstack/scenarios/ceilometer/utils.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_events\")"},{"line_number":131,"context_line":"    def _get_events(self, event_id\u003dNone):"},{"line_number":132,"context_line":"        \"\"\"Get list of user\u0027s events."},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_cb06c2cd","line":130,"updated":"2015-06-08 19:22:16.000000000","message":"This timer should have a different name than the timer for _list_events().","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_events\")"},{"line_number":131,"context_line":"    def _get_events(self, event_id\u003dNone):"},{"line_number":132,"context_line":"        \"\"\"Get list of user\u0027s events."},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_1b052c45","line":130,"in_reply_to":"3afb71cf_cb06c2cd","updated":"2015-06-09 11:52:07.000000000","message":"Done","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f31568e38809f11a8987e6e9586687542b4424ba","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                                    .get_from_manager(),"},{"line_number":118,"context_line":"                                    timeout\u003dtimeout, check_interval\u003d1)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_events\")"},{"line_number":121,"context_line":"    def _list_events(self):"},{"line_number":122,"context_line":"        \"\"\"Get list of user\u0027s events."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_511adf18","line":120,"updated":"2015-06-12 07:41:05.000000000","message":"For consistence, it better merge _list_events and _get_events as _list_alarms do","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                                    .get_from_manager(),"},{"line_number":118,"context_line":"                                    timeout\u003dtimeout, check_interval\u003d1)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_events\")"},{"line_number":121,"context_line":"    def _list_events(self):"},{"line_number":122,"context_line":"        \"\"\"Get list of user\u0027s events."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_b1d593ba","line":120,"in_reply_to":"1af86dd1_511adf18","updated":"2015-06-12 09:12:05.000000000","message":"please take a look at previous comments, that method was splitted to do in explicit way.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @base.atomic_action_timer(\"ceilometer.get_events\")"},{"line_number":130,"context_line":"    def _get_events(self, event_id\u003dNone):"},{"line_number":131,"context_line":"        \"\"\"Get list of user\u0027s events."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        List event matching event_id."}],"source_content_type":"text/x-python","patch_set":14,"id":"3afb71cf_ded3855e","line":130,"updated":"2015-06-11 15:42:36.000000000","message":"This function appears to get a single event, so:\n\n* The function name should be _get_event\n* The timer name should be ceilometer.get_event\n* The docstring should not claim that it gets a list of events.\n\nAdditionally, event_id should not be an optional keyword argument.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        return self.admin_clients(\"ceilometer\").events.list()"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @base.atomic_action_timer(\"ceilometer.get_events\")"},{"line_number":130,"context_line":"    def _get_events(self, event_id\u003dNone):"},{"line_number":131,"context_line":"        \"\"\"Get list of user\u0027s events."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        List event matching event_id."}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_91b0578d","line":130,"in_reply_to":"3afb71cf_ded3855e","updated":"2015-06-12 09:12:05.000000000","message":"Done. Didn\u0027t change definition after splitting _list_events function","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f31568e38809f11a8987e6e9586687542b4424ba","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_traits\")"},{"line_number":149,"context_line":"    def _list_event_traits(self, event_type, trait_name):"},{"line_number":150,"context_line":"        \"\"\"Get list of event trait."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        :param event_type: specifies the type of event"},{"line_number":153,"context_line":"        :param trait_name: specifies trait name"}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_d1dc8f48","line":150,"updated":"2015-06-12 07:41:05.000000000","message":"s/trait/traits","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_traits\")"},{"line_number":149,"context_line":"    def _list_event_traits(self, event_type, trait_name):"},{"line_number":150,"context_line":"        \"\"\"Get list of event trait."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        :param event_type: specifies the type of event"},{"line_number":153,"context_line":"        :param trait_name: specifies trait name"}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_51589f56","line":150,"in_reply_to":"1af86dd1_d1dc8f48","updated":"2015-06-12 09:12:05.000000000","message":"Done","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_traits_descriptions\")"},{"line_number":160,"context_line":"    def _list_event_traits_descriptions(self, event_type):"},{"line_number":161,"context_line":"        \"\"\"Get list of event trait."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait"}],"source_content_type":"text/x-python","patch_set":14,"id":"3afb71cf_fe5c01f2","line":161,"updated":"2015-06-11 15:42:36.000000000","message":"How does this function differ from _list_event_traits()? The docstrings are the same.\n\nFunction name should probably be _list_event_trait_descriptions","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_traits_descriptions\")"},{"line_number":160,"context_line":"    def _list_event_traits_descriptions(self, event_type):"},{"line_number":161,"context_line":"        \"\"\"Get list of event trait."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait"}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_75db861c","line":161,"in_reply_to":"3afb71cf_fe5c01f2","updated":"2015-06-12 09:12:05.000000000","message":"I\u0027ve changed docstrings thanks for catching that.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        \"\"\"Get list of event trait."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait"},{"line_number":165,"context_line":"        \"\"\""},{"line_number":166,"context_line":"        return self.admin_clients(\"ceilometer\").trait_descriptions.list("},{"line_number":167,"context_line":"            event_type)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3afb71cf_5e6e7597","line":164,"updated":"2015-06-11 15:42:36.000000000","message":"Same with the return description.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        \"\"\"Get list of event trait."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait"},{"line_number":165,"context_line":"        \"\"\""},{"line_number":166,"context_line":"        return self.admin_clients(\"ceilometer\").trait_descriptions.list("},{"line_number":167,"context_line":"            event_type)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_55ef6ab0","line":164,"in_reply_to":"3afb71cf_5e6e7597","updated":"2015-06-12 09:12:05.000000000","message":"Done","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_trait_descriptions\")"},{"line_number":160,"context_line":"    def _list_event_trait_descriptions(self, event_type):"},{"line_number":161,"context_line":"        \"\"\"Get list of event trait names."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait names"}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_2f04977c","line":161,"updated":"2015-06-12 11:22:21.000000000","message":"s/names/descriptions/ ?","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"3f963126becfefa1a540b0f998b60b587296e3a4","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @base.atomic_action_timer(\"ceilometer.list_event_trait_descriptions\")"},{"line_number":160,"context_line":"    def _list_event_trait_descriptions(self, event_type):"},{"line_number":161,"context_line":"        \"\"\"Get list of event trait names."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait names"}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_2f31370c","line":161,"in_reply_to":"1af86dd1_2f04977c","updated":"2015-06-12 11:49:48.000000000","message":"In that case it is the same but for consistency will rename","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        \"\"\"Get list of event trait names."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        :param event_type: specifies the type of event"},{"line_number":164,"context_line":"        :returns: list of event trait names"},{"line_number":165,"context_line":"        \"\"\""},{"line_number":166,"context_line":"        return self.admin_clients(\"ceilometer\").trait_descriptions.list("},{"line_number":167,"context_line":"            event_type)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_0f09db95","line":164,"updated":"2015-06-12 11:22:21.000000000","message":"s/names/descriptions/ ?","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"}],"samples/tasks/scenarios/ceilometer/create_user_and_list_trait_description.json":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3afb71cf_9e298d3a","updated":"2015-06-11 15:42:36.000000000","message":"The filenames for this scenario should match the scenario name, e.g., create_user_and_list_trait_descriptions.json","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"1af86dd1_3b373db2","in_reply_to":"3afb71cf_9e298d3a","updated":"2015-06-12 09:12:05.000000000","message":"not clear, it is seems that filename us already the same","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1af86dd1_2f2b77ed","updated":"2015-06-12 11:22:21.000000000","message":"Filename: create_user_and_list_trait_description.json\nScenario: create_user_and_list_trait_descriptions\n\nFilename is missing an \u0027s\u0027.","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"3f963126becfefa1a540b0f998b60b587296e3a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1af86dd1_2affe502","in_reply_to":"1af86dd1_2f2b77ed","updated":"2015-06-12 11:49:48.000000000","message":"Done","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"}],"samples/tasks/scenarios/ceilometer/create_user_and_list_trait_description.yaml":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3afb71cf_5e1c3513","updated":"2015-06-11 15:42:36.000000000","message":"Same here.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1af86dd1_0f30bb55","updated":"2015-06-12 11:22:21.000000000","message":"Same.","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"3f963126becfefa1a540b0f998b60b587296e3a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1af86dd1_ea08ad2a","in_reply_to":"1af86dd1_0f30bb55","updated":"2015-06-12 11:49:48.000000000","message":"Done","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"}],"tests/unit/benchmark/scenarios/ceilometer/test_events.py":[{"author":{"_account_id":13555,"name":"Pradeep K Surisetty","username":"pradeepkumars","inactive":true},"change_message_id":"3b5c6a047e3fe064709a2e061d8e32473e7b219e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class CeilometerEventsTestCase(test.TestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def test_list_events(self):"},{"line_number":24,"context_line":"        scenario \u003d events.CeilometerEvents()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":27,"context_line":"        scenario.list_events()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_faaf6b7b","line":24,"updated":"2015-05-06 13:12:43.000000000","message":"You need to add events in tests/unit/fakes.py\n\nLike: \nself.events \u003d FakeEventManager()\n\nclass FakeEventManager(FakeManager):\n\n    def list(self):\n        return [\"fake-events\"]","commit_id":"73538b0f5d7a8c58ae1b03daae4dbf21c303178c"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"71f6a71b6204961e4e9a45873682692dedbc300e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class CeilometerEventsTestCase(test.TestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def test_list_events(self):"},{"line_number":24,"context_line":"        scenario \u003d events.CeilometerEvents()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":27,"context_line":"        scenario.list_events()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_ae777801","line":24,"in_reply_to":"1aca2d91_faaf6b7b","updated":"2015-05-06 13:36:04.000000000","message":"Sure, will do. Work in progress now. I just want to share patch with our team to research some questions. :)","commit_id":"73538b0f5d7a8c58ae1b03daae4dbf21c303178c"}],"tests/unit/fakes.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3afb71cf_3ec3b93a","updated":"2015-06-11 15:42:36.000000000","message":"None of the changes to this file are necessary; see note on test_utils.py. You should use the new clients mocking system instead.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"1af86dd1_1bd5a142","in_reply_to":"3afb71cf_3ec3b93a","updated":"2015-06-12 09:12:05.000000000","message":"Done","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"}],"tests/unit/plugins/openstack/scenarios/ceilometer/test_events.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        scenario._user_create \u003d mock.MagicMock()"},{"line_number":45,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":46,"context_line":"        scenario._get_events \u003d mock.MagicMock()"},{"line_number":47,"context_line":"        scenario._list_events()[0].message_id \u003d \"fake_id\""},{"line_number":48,"context_line":"        scenario.get_event()"},{"line_number":49,"context_line":"        scenario._user_create.assert_called_once_with()"},{"line_number":50,"context_line":"        scenario._list_events.assert_called_with()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_2bcb1674","line":47,"updated":"2015-06-08 19:22:16.000000000","message":"Less magical:\n\n    scenario._list_events.return_value \u003d [mock.Mock(message_id\u003d\"fake_id\")]","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"}],"tests/unit/plugins/openstack/scenarios/ceilometer/test_traits.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":28,"context_line":"        scenario._list_event_traits \u003d mock.MagicMock()"},{"line_number":29,"context_line":"        scenario._list_events()[0].event_type \u003d \"fake_event_type\""},{"line_number":30,"context_line":"        scenario._list_events()[0].traits \u003d [{\"name\": \"fake_trait_name\"}]"},{"line_number":31,"context_line":"        scenario.list_traits()"},{"line_number":32,"context_line":"        scenario._user_create.assert_called_once_with()"},{"line_number":33,"context_line":"        scenario._list_events.assert_called_with()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_2b92f657","line":30,"updated":"2015-06-08 19:22:16.000000000","message":"Better:\n\n    scenario._list_events.return_value \u003d [mock.Mock(event_type\u003d..., traits\u003d[...])]","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":28,"context_line":"        scenario._list_event_traits \u003d mock.MagicMock()"},{"line_number":29,"context_line":"        scenario._list_events()[0].event_type \u003d \"fake_event_type\""},{"line_number":30,"context_line":"        scenario._list_events()[0].traits \u003d [{\"name\": \"fake_trait_name\"}]"},{"line_number":31,"context_line":"        scenario.list_traits()"},{"line_number":32,"context_line":"        scenario._user_create.assert_called_once_with()"},{"line_number":33,"context_line":"        scenario._list_events.assert_called_with()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_9ed58a1d","line":30,"in_reply_to":"3afb71cf_2b92f657","updated":"2015-06-09 11:52:07.000000000","message":"Done","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        scenario._user_create \u003d mock.MagicMock()"},{"line_number":41,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":42,"context_line":"        scenario._list_event_traits_descriptions \u003d mock.MagicMock()"},{"line_number":43,"context_line":"        scenario._list_events()[0].event_type \u003d \"fake_event_type\""},{"line_number":44,"context_line":"        scenario.list_trait_descriptions()"},{"line_number":45,"context_line":"        scenario._user_create.assert_called_once_with()"},{"line_number":46,"context_line":"        scenario._list_events.assert_called_with()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_0ba17aa3","line":43,"updated":"2015-06-08 19:22:16.000000000","message":"Same here.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        scenario._user_create \u003d mock.MagicMock()"},{"line_number":41,"context_line":"        scenario._list_events \u003d mock.MagicMock()"},{"line_number":42,"context_line":"        scenario._list_event_traits_descriptions \u003d mock.MagicMock()"},{"line_number":43,"context_line":"        scenario._list_events()[0].event_type \u003d \"fake_event_type\""},{"line_number":44,"context_line":"        scenario.list_trait_descriptions()"},{"line_number":45,"context_line":"        scenario._user_create.assert_called_once_with()"},{"line_number":46,"context_line":"        scenario._list_events.assert_called_with()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_3eb7b6f6","line":43,"in_reply_to":"3afb71cf_0ba17aa3","updated":"2015-06-09 11:52:07.000000000","message":"Done","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"}],"tests/unit/plugins/openstack/scenarios/ceilometer/test_utils.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a19d923da4fd2161f6586f1c644926a2fa677ed1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.scenario.clients \u003d mock.MagicMock("},{"line_number":31,"context_line":"            return_value\u003dfakes.FakeCeilometerClient())"},{"line_number":32,"context_line":"        self.scenario.admin_clients \u003d mock.MagicMock("},{"line_number":33,"context_line":"            return_value\u003dfakes.FakeCeilometerAdminClient())"},{"line_number":34,"context_line":"        self.res_is \u003d mockpatch.Patch(BM_UTILS + \".resource_is\")"},{"line_number":35,"context_line":"        self.get_fm \u003d mockpatch.Patch(BM_UTILS + \".get_from_manager\")"},{"line_number":36,"context_line":"        self.wait_for \u003d mockpatch.Patch(CEILOMETER_UTILS +"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_2bc79646","line":33,"updated":"2015-06-08 19:22:16.000000000","message":"Creating a new fake client splits the actual and expected values across two different files. Instead, just mock out self.scenario.admin_clients with a Mock, and check for return values as appropriate. (That\u0027s what you\u0027ll need to do once https://review.openstack.org/#/c/188554/ merges anyway.) That will also let you get rid of all of the code you added in fakes.py.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"88135fee01daf80680094e01ad46477e3ee03ec8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.scenario.clients \u003d mock.MagicMock("},{"line_number":31,"context_line":"            return_value\u003dfakes.FakeCeilometerClient())"},{"line_number":32,"context_line":"        self.scenario.admin_clients \u003d mock.MagicMock("},{"line_number":33,"context_line":"            return_value\u003dfakes.FakeCeilometerAdminClient())"},{"line_number":34,"context_line":"        self.res_is \u003d mockpatch.Patch(BM_UTILS + \".resource_is\")"},{"line_number":35,"context_line":"        self.get_fm \u003d mockpatch.Patch(BM_UTILS + \".get_from_manager\")"},{"line_number":36,"context_line":"        self.wait_for \u003d mockpatch.Patch(CEILOMETER_UTILS +"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_54101159","line":33,"in_reply_to":"3afb71cf_2bc79646","updated":"2015-06-09 11:52:07.000000000","message":"in patch you\u0027d mentioned there is no any changes in fake module and it is seems that changes in it is not highly required now, but I will add it if other reviers will insist on it.","commit_id":"092ae387d40d6b48474889be1cfbd19f3a58b6f2"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"32b7e4334255a13aee52f0d10b56f2f3b2d88a59","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.scenario.clients \u003d mock.MagicMock("},{"line_number":31,"context_line":"            return_value\u003dfakes.FakeCeilometerClient())"},{"line_number":32,"context_line":"        self.scenario.admin_clients \u003d mock.MagicMock("},{"line_number":33,"context_line":"            return_value\u003dfakes.FakeCeilometerAdminClient())"},{"line_number":34,"context_line":"        self.res_is \u003d mockpatch.Patch(BM_UTILS + \".resource_is\")"},{"line_number":35,"context_line":"        self.get_fm \u003d mockpatch.Patch(BM_UTILS + \".get_from_manager\")"},{"line_number":36,"context_line":"        self.wait_for \u003d mockpatch.Patch(CEILOMETER_UTILS +"}],"source_content_type":"text/x-python","patch_set":14,"id":"3afb71cf_7e949143","line":33,"updated":"2015-06-11 15:42:36.000000000","message":"The review I linked earlier has been merged (48fb0bdf), so please don\u0027t do this; use the client mocking system that has been set up in Rally.","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"17de22d7c74bc440b8cacfc54fda6429a4a5c76d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.scenario.clients \u003d mock.MagicMock("},{"line_number":31,"context_line":"            return_value\u003dfakes.FakeCeilometerClient())"},{"line_number":32,"context_line":"        self.scenario.admin_clients \u003d mock.MagicMock("},{"line_number":33,"context_line":"            return_value\u003dfakes.FakeCeilometerAdminClient())"},{"line_number":34,"context_line":"        self.res_is \u003d mockpatch.Patch(BM_UTILS + \".resource_is\")"},{"line_number":35,"context_line":"        self.get_fm \u003d mockpatch.Patch(BM_UTILS + \".get_from_manager\")"},{"line_number":36,"context_line":"        self.wait_for \u003d mockpatch.Patch(CEILOMETER_UTILS +"}],"source_content_type":"text/x-python","patch_set":14,"id":"1af86dd1_dbcee9b3","line":33,"in_reply_to":"3afb71cf_7e949143","updated":"2015-06-12 09:12:05.000000000","message":"Done","commit_id":"a5ca184684e76e05d0bcbdfea8443fc8ddf68652"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                       \"ceilometer.set_alarm_state\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test__list_events(self):"},{"line_number":110,"context_line":"        \"\"\"Test _list_events.\"\"\""},{"line_number":111,"context_line":"        self.admin_clients(\"ceilometer\").events.list.return_value \u003d ("},{"line_number":112,"context_line":"            [\"fake-event\"])"},{"line_number":113,"context_line":"        fake_events_list \u003d self.scenario._list_events()"}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_6f4e0fc3","line":110,"updated":"2015-06-12 11:22:21.000000000","message":"Remove these docstrings.","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def test__list_events(self):"},{"line_number":110,"context_line":"        \"\"\"Test _list_events.\"\"\""},{"line_number":111,"context_line":"        self.admin_clients(\"ceilometer\").events.list.return_value \u003d ("},{"line_number":112,"context_line":"            [\"fake-event\"])"},{"line_number":113,"context_line":"        fake_events_list \u003d self.scenario._list_events()"},{"line_number":114,"context_line":"        self.assertEqual(fake_events_list, [\"fake-event\"])"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_efd0bfcb","line":112,"updated":"2015-06-12 11:22:21.000000000","message":"Setting the return value here is unnecessary; you can just do:\n\n    self.assertEqual(self.scenario._list_events(),\n                     self.admin_clients(\"ceilometer\").events.list.return_value)\n\nSame is true for the other functions as well.","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"6483ad4437592085ff1dece9de78a63b82bae4a6","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.admin_clients(\"ceilometer\").events.list.return_value \u003d ("},{"line_number":112,"context_line":"            [\"fake-event\"])"},{"line_number":113,"context_line":"        fake_events_list \u003d self.scenario._list_events()"},{"line_number":114,"context_line":"        self.assertEqual(fake_events_list, [\"fake-event\"])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test__get_events(self):"},{"line_number":117,"context_line":"        \"\"\"Test _get_events.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_6f204ff8","line":114,"updated":"2015-06-12 11:22:21.000000000","message":"Please add a _test_atomic_action_timer() call to each of these test functions.","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"3f963126becfefa1a540b0f998b60b587296e3a4","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.admin_clients(\"ceilometer\").events.list.return_value \u003d ("},{"line_number":112,"context_line":"            [\"fake-event\"])"},{"line_number":113,"context_line":"        fake_events_list \u003d self.scenario._list_events()"},{"line_number":114,"context_line":"        self.assertEqual(fake_events_list, [\"fake-event\"])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test__get_events(self):"},{"line_number":117,"context_line":"        \"\"\"Test _get_events.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"1af86dd1_aa3ab5cb","line":114,"in_reply_to":"1af86dd1_6f204ff8","updated":"2015-06-12 11:49:48.000000000","message":"Done","commit_id":"c0b43b3014eeccec5c669f31456312840f8a4427"}]}
