)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"08cadf1f08de6f9fb5900cb32bd83ed53799ef57","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Also, adding cli tests for basic testing functionality"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I69896958495ddf57040a05ff73004662b7b28891"},{"line_number":13,"context_line":"Implements: bp climate-tempest-testing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAWH%2F%2BTyc%3D","line":13,"updated":"2014-03-27 17:48:22.000000000","message":"it does not really implements that bp, we need also other tests to do so - like scenarios, etc. So it\u0027ll be better idea to use the following:\n\nPartially implements: blueprint climate-tempest-testing","commit_id":"c5aa41cabdd495f013efd8864f796d4306a0c02e"}],"contrib/tempest/tempest/cli/climateclient.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ClientTestBase(cli.ClientTestBase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def climate(self, action, flags\u003d\u0027\u0027, params\u003d\u0027\u0027, admin\u003dTrue, fail_ok\u003dFalse):"},{"line_number":23,"context_line":"        \"\"\"Executes climate command for the given action.\"\"\""},{"line_number":24,"context_line":"        return self.cmd_with_auth("},{"line_number":25,"context_line":"            \u0027climate\u0027, action, flags, params, admin, fail_ok)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOj8%3D","line":22,"updated":"2014-03-28 09:09:32.000000000","message":"why this method is not __init__ or __new__ ?","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"d42e579b5e22950aee7d88c91b70de617d56700c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ClientTestBase(cli.ClientTestBase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def climate(self, action, flags\u003d\u0027\u0027, params\u003d\u0027\u0027, admin\u003dTrue, fail_ok\u003dFalse):"},{"line_number":23,"context_line":"        \"\"\"Executes climate command for the given action.\"\"\""},{"line_number":24,"context_line":"        return self.cmd_with_auth("},{"line_number":25,"context_line":"            \u0027climate\u0027, action, flags, params, admin, fail_ok)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOQk%3D","line":22,"in_reply_to":"AAAAWH%2F%2BOj8%3D","updated":"2014-03-28 09:59:26.000000000","message":"as it\u0027s needed for tempest plugin structure, as far as I know - Christian used Manila as an example here.","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"}],"contrib/tempest/tempest/cli/simple_read_only/test_climate.py":[{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"bc704bc446185477bcb9871b2706149de9bc6163","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"Basic, read-only tests for Climate CLI client."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Basic smoke test for the Climate CLI commands which do not require"},{"line_number":27,"context_line":"    creating or modifying stacks."},{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPug%3D","line":27,"updated":"2014-03-28 05:51:49.000000000","message":"I think is \"creating or modifying leases\"","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"Basic, read-only tests for Climate CLI client."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Basic smoke test for the Climate CLI commands which do not require"},{"line_number":27,"context_line":"    creating or modifying stacks."},{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOjU%3D","line":27,"in_reply_to":"AAAAWH%2F%2BPug%3D","updated":"2014-03-28 09:09:32.000000000","message":"+1","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @classmethod"},{"line_number":31,"context_line":"    def setUpClass(cls):"},{"line_number":32,"context_line":"        if (not CONF.service_available.climate):"},{"line_number":33,"context_line":"            msg \u003d (\"Skipping all Climate cli tests because it is \""},{"line_number":34,"context_line":"                   \"not available\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOi4%3D","line":31,"updated":"2014-03-28 09:09:32.000000000","message":"why can\u0027t it be setUp(self) ? the only place where i find use of cls is for raising Exception which can be done thanks to self.__class__. instead","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"d42e579b5e22950aee7d88c91b70de617d56700c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @classmethod"},{"line_number":31,"context_line":"    def setUpClass(cls):"},{"line_number":32,"context_line":"        if (not CONF.service_available.climate):"},{"line_number":33,"context_line":"            msg \u003d (\"Skipping all Climate cli tests because it is \""},{"line_number":34,"context_line":"                   \"not available\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOP4%3D","line":31,"in_reply_to":"AAAAWH%2F%2BOi4%3D","updated":"2014-03-28 09:59:26.000000000","message":"as it was done in Tempest for all services - it\u0027s used in it, I guess","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"}],"contrib/tempest/tempest/config_resource_reservation.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo.config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest import config"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"service_available_group \u003d cfg.OptGroup(name\u003d\"service_available\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOks%3D","line":18,"updated":"2014-03-28 09:09:32.000000000","message":"both imports can be merged on the same group, no need to place a white line between those","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"d42e579b5e22950aee7d88c91b70de617d56700c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo.config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest import config"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"service_available_group \u003d cfg.OptGroup(name\u003d\"service_available\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOOg%3D","line":18,"in_reply_to":"AAAAWH%2F%2BOks%3D","updated":"2014-03-28 09:59:26.000000000","message":"+1","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import config"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"service_available_group \u003d cfg.OptGroup(name\u003d\"service_available\","},{"line_number":22,"context_line":"                                       title\u003d\"Available OpenStack Services\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ServiceAvailableGroup \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOkE%3D","line":21,"updated":"2014-03-28 09:09:32.000000000","message":"ditto L30","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                help\u003d\"Whether or not climate is expected to be available\"),"},{"line_number":28,"context_line":"]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"resource_reservation_group \u003d cfg.OptGroup(name\u003d\u0027resource_reservation\u0027,"},{"line_number":31,"context_line":"                                          title\u003d\u0027Resource reservation service \u0027"},{"line_number":32,"context_line":"                                                \u0027options\u0027)"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOkM%3D","line":30,"updated":"2014-03-28 09:09:32.000000000","message":"no need to define a group here, you can specify whose group the Opt is coming from directly","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"bc704bc446185477bcb9871b2706149de9bc6163","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                                                \u0027options\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"ResourceReservationGroup \u003d ["},{"line_number":35,"context_line":"    cfg.BoolOpt(\"climate\","},{"line_number":36,"context_line":"                default\u003dTrue,"},{"line_number":37,"context_line":"                help\u003d\"Whether or not climate is expected to be available\"),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPss%3D","line":35,"updated":"2014-03-28 05:51:49.000000000","message":"This option is not needed here, because is in ServiceAvailableGroup","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                                                \u0027options\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"ResourceReservationGroup \u003d ["},{"line_number":35,"context_line":"    cfg.BoolOpt(\"climate\","},{"line_number":36,"context_line":"                default\u003dTrue,"},{"line_number":37,"context_line":"                help\u003d\"Whether or not climate is expected to be available\"),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOm0%3D","line":35,"updated":"2014-03-28 09:09:32.000000000","message":"duplicate","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"bc704bc446185477bcb9871b2706149de9bc6163","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               choices\u003d[\u0027public\u0027, \u0027admin\u0027, \u0027internal\u0027,"},{"line_number":41,"context_line":"                        \u0027publicURL\u0027, \u0027adminURL\u0027, \u0027internalURL\u0027],"},{"line_number":42,"context_line":"               help\u003d\"The endpoint type to use for the resource_reservation \""},{"line_number":43,"context_line":"                    \"provisioning service.\"),"},{"line_number":44,"context_line":"]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPso%3D","line":43,"updated":"2014-03-28 05:51:49.000000000","message":"I think \u0027provisioning\u0027 should be removed.","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class TempestConfigPrivateClimate(config.TempestConfigPrivate):"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # climate\u0027s config wrap over standard config"},{"line_number":50,"context_line":"    def __init__(self, parse_conf\u003dTrue):"},{"line_number":51,"context_line":"        super(TempestConfigPrivateClimate, self).__init__()"},{"line_number":52,"context_line":"        config.register_opt_group(cfg.CONF, service_available_group,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOmQ%3D","line":49,"updated":"2014-03-28 09:09:32.000000000","message":"please put this comment rather as docstring","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"bc704bc446185477bcb9871b2706149de9bc6163","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                                  ServiceAvailableGroup)"},{"line_number":54,"context_line":"        config.register_opt_group(cfg.CONF, resource_reservation_group,"},{"line_number":55,"context_line":"                                  ResourceReservationGroup)"},{"line_number":56,"context_line":"        config.register_opt_group(cfg.CONF, resource_reservation_group,"},{"line_number":57,"context_line":"                                  ResourceReservationGroup)"},{"line_number":58,"context_line":"        self.resource_reservation \u003d cfg.CONF.resource_reservation"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BPsU%3D","line":56,"updated":"2014-03-28 05:51:49.000000000","message":"This group is added twice.","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                                  ServiceAvailableGroup)"},{"line_number":54,"context_line":"        config.register_opt_group(cfg.CONF, resource_reservation_group,"},{"line_number":55,"context_line":"                                  ResourceReservationGroup)"},{"line_number":56,"context_line":"        config.register_opt_group(cfg.CONF, resource_reservation_group,"},{"line_number":57,"context_line":"                                  ResourceReservationGroup)"},{"line_number":58,"context_line":"        self.resource_reservation \u003d cfg.CONF.resource_reservation"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOmU%3D","line":56,"updated":"2014-03-28 09:09:32.000000000","message":"duplicate","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.resource_reservation \u003d cfg.CONF.resource_reservation"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"class TempestConfigProxyClimate(object):"},{"line_number":62,"context_line":"    _config \u003d None"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def __getattr__(self, attr):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOmA%3D","line":61,"updated":"2014-03-28 09:09:32.000000000","message":"please rename it to TempestClimateLazyConfig\n\nthe word \"lazy\" is what we use for defining something created only when getting an attr","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb90fd229f64b35eb37b6472c2fed1db8d42b9f9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return getattr(self._config, attr)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"CONF \u003d TempestConfigProxyClimate()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BOlQ%3D","line":71,"updated":"2014-03-28 09:09:32.000000000","message":"why do you need to have a lazy conf ?\nplease document why it\u0027s such necessary","commit_id":"7a033b0757be2e5082d6928668f558e4c07c7f4c"}]}
