)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"cf882cea948d70667bb0c63ae0bda01b10ee4da6","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"* Removed hardcoded values for swift services"},{"line_number":13,"context_line":"* Use Member role for the swiftoperator role as"},{"line_number":14,"context_line":"  SwiftOperator was by default not present in that."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Story: 2001253"},{"line_number":17,"context_line":"Task: 5783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5f7c97a3_cb4ab025","line":14,"updated":"2018-05-29 14:25:11.000000000","message":"in that \u003d\u003d where?","commit_id":"9e528b12affbe1ee93dbbaf7e8a61a5cc4dee17b"}],"config_tempest/clients.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"823f18ea27e3f16b0d93234bdeb8d3ca13bcebfb","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            self.identity_region,"},{"line_number":121,"context_line":"            **default_params)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.accounts \u003d account_client.AccountClient("},{"line_number":124,"context_line":"            self.auth_provider,"},{"line_number":125,"context_line":"            conf.get_defaulted(\u0027object-storage\u0027, \u0027catalog_type\u0027),"},{"line_number":126,"context_line":"            self.identity_region,"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_1a5f0276","line":123,"updated":"2018-06-18 16:20:34.000000000","message":"isn\u0027t this name (\"accounts\") a bit generic, if it\u0027s something specific to object-storage?","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"b9d44ae598b02720c130ac6f459171c71e9ce7e0","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            self.identity_region,"},{"line_number":121,"context_line":"            **default_params)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.accounts \u003d account_client.AccountClient("},{"line_number":124,"context_line":"            self.auth_provider,"},{"line_number":125,"context_line":"            conf.get_defaulted(\u0027object-storage\u0027, \u0027catalog_type\u0027),"},{"line_number":126,"context_line":"            self.identity_region,"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_152595ae","line":123,"in_reply_to":"5f7c97a3_1a5f0276","updated":"2018-06-18 16:24:45.000000000","message":"No, just object-storage use account for some roles stuff","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"}],"config_tempest/services/base.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9a30c0ef3ca880f5a792bb145458d2f32a49b613","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":79,"context_line":"        pass"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def check_service_status(self, conf):"},{"line_number":82,"context_line":"        return self.service_status"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"class VersionedService(Service):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_5b090993","line":82,"range":{"start_line":81,"start_character":35,"end_line":82,"end_character":34},"updated":"2018-06-05 21:17:35.000000000","message":"unused parameter conf or undefined service_status variable","commit_id":"1434213d98b56e6e995260784a53a2a289473b08"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"14676f111d9f634efb9027599db810a69c8aebb6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":79,"context_line":"        pass"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def check_service_status(self, conf):"},{"line_number":82,"context_line":"        return self.service_status"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"class VersionedService(Service):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_dae42ae3","line":82,"range":{"start_line":81,"start_character":35,"end_line":82,"end_character":34},"in_reply_to":"5f7c97a3_5b090993","updated":"2018-06-06 07:56:18.000000000","message":"Later on this will be used in all services to check the service status and used for setting the conf.","commit_id":"1434213d98b56e6e995260784a53a2a289473b08"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"54ee5b53414888a3756bc702b0c695915d52d46a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":79,"context_line":"        pass"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def check_service_status(self, conf):"},{"line_number":82,"context_line":"        return self.service_status"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_b8db3e4d","line":81,"updated":"2018-06-08 07:24:19.000000000","message":"is this something that will be available in all the services? I\u0027m not seeing self.service_status declared here.","commit_id":"8118e193b502c066c5f397c520c6d54fd800d7b3"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"f15c089771430435f7e63a54fc7c8409a590047f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":79,"context_line":"        pass"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def check_service_status(self):"},{"line_number":82,"context_line":"        pass"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_ba0af275","line":81,"updated":"2018-06-13 09:06:26.000000000","message":"If you\u0027re using this only for swift, no point to have it here.","commit_id":"2fe602af337dd8747582c62252ca9adb3ec54498"}],"config_tempest/services/object_storage.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"cf882cea948d70667bb0c63ae0bda01b10ee4da6","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class ObjectStorageService(Service):"},{"line_number":23,"context_line":"    def set_extensions(self, service_status):"},{"line_number":24,"context_line":"        if not service_status:"},{"line_number":25,"context_line":"            self.extensions \u003d []"},{"line_number":26,"context_line":"        elif \u0027v3\u0027 not in self.service_url:  # it\u0027s not a v3 url"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_2b71e4a8","line":23,"updated":"2018-05-29 14:25:11.000000000","message":"I noticed now that the signature of set_extensions for ObjectStorageService is not the same as the other services; could we use this change to make sure that the signature is the same, either by not passing any parameter (and setting it from somewhere else, like a property) or always passing it to all set_extensions() methods?","commit_id":"9e528b12affbe1ee93dbbaf7e8a61a5cc4dee17b"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"cf882cea948d70667bb0c63ae0bda01b10ee4da6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            swift_version \u003d re.findall(r\u0027v\\d\u0027, self.service_url)"},{"line_number":41,"context_line":"            if len(swift_version) \u003e 0:"},{"line_number":42,"context_line":"                swift_url \u003d re.split(r\u0027v\\d\u0027, self.service_url)[0]"},{"line_number":43,"context_line":"                body \u003d self.do_get(swift_url + \u0027healthcheck\u0027)"},{"line_number":44,"context_line":"                if body \u003d\u003d \u0027OK\u0027:"},{"line_number":45,"context_line":"                    return True"},{"line_number":46,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_0b3d088d","line":43,"updated":"2018-05-29 14:25:11.000000000","message":"does ceph implement healthcheck?","commit_id":"9e528b12affbe1ee93dbbaf7e8a61a5cc4dee17b"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"cf882cea948d70667bb0c63ae0bda01b10ee4da6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                swift_url \u003d re.split(r\u0027v\\d\u0027, self.service_url)[0]"},{"line_number":43,"context_line":"                body \u003d self.do_get(swift_url + \u0027healthcheck\u0027)"},{"line_number":44,"context_line":"                if body \u003d\u003d \u0027OK\u0027:"},{"line_number":45,"context_line":"                    return True"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                return False"},{"line_number":48,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_0bc8a8a5","line":45,"updated":"2018-05-29 14:25:11.000000000","message":"No else for this body: just change it to return body \u003d\u003d \u0027OK\u0027, or whatever other equivalent statement","commit_id":"9e528b12affbe1ee93dbbaf7e8a61a5cc4dee17b"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"fe3a6d9d741ea74f6019602113d96d660829f8de","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            if len(swift_version) \u003e 0:"},{"line_number":42,"context_line":"                swift_url \u003d re.split(r\u0027v\\d\u0027, self.service_url)[0]"},{"line_number":43,"context_line":"                body \u003d self.do_get(swift_url + \u0027healthcheck\u0027)"},{"line_number":44,"context_line":"                return body"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_16b20395","line":44,"updated":"2018-05-30 08:21:53.000000000","message":"In this case you have a mixed return type (the struct of body, or a boolean (False), and one branch is missing.","commit_id":"09ae92e2a6e5880066fc4bf04e6f14b0cdb5c2d0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f65882239629c515b4e0f132b1d8a599895ff56c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            if len(swift_version) \u003e 0:"},{"line_number":42,"context_line":"                swift_url \u003d re.split(r\u0027v\\d\u0027, self.service_url)[0]"},{"line_number":43,"context_line":"                body \u003d self.do_get(swift_url + \u0027healthcheck\u0027)"},{"line_number":44,"context_line":"                return body"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_94be0b63","line":44,"in_reply_to":"5f7c97a3_16b20395","updated":"2018-06-01 12:37:19.000000000","message":"Done","commit_id":"09ae92e2a6e5880066fc4bf04e6f14b0cdb5c2d0"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9a30c0ef3ca880f5a792bb145458d2f32a49b613","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ObjectStorageService(Service):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def __init__(self, name, service_url, token, disable_ssl_validation,"},{"line_number":26,"context_line":"                 client\u003dNone):"},{"line_number":27,"context_line":"        super(ObjectStorageService, self).__init__(name, service_url, token,"},{"line_number":28,"context_line":"                                                   disable_ssl_validation,"},{"line_number":29,"context_line":"                                                   client)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def set_extensions(self):"},{"line_number":32,"context_line":"        if not self.check_service_status(self.conf):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_3bb68dde","line":29,"range":{"start_line":25,"start_character":0,"end_line":29,"end_character":58},"updated":"2018-06-05 21:17:35.000000000","message":"Why did you override __init__ without adding any additional code to it? Also it has the same parameters as the inherited init from Service.","commit_id":"1434213d98b56e6e995260784a53a2a289473b08"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"c005e6d665298618573a759e8539f8131dda7966","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ObjectStorageService(Service):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def __init__(self, name, service_url, token, disable_ssl_validation,"},{"line_number":26,"context_line":"                 client\u003dNone):"},{"line_number":27,"context_line":"        super(ObjectStorageService, self).__init__(name, service_url, token,"},{"line_number":28,"context_line":"                                                   disable_ssl_validation,"},{"line_number":29,"context_line":"                                                   client)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def set_extensions(self):"},{"line_number":32,"context_line":"        if not self.check_service_status(self.conf):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_1ac5c20a","line":29,"range":{"start_line":25,"start_character":0,"end_line":29,"end_character":58},"in_reply_to":"5f7c97a3_3bb68dde","updated":"2018-06-06 16:05:31.000000000","message":"Done","commit_id":"1434213d98b56e6e995260784a53a2a289473b08"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"54ee5b53414888a3756bc702b0c695915d52d46a","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ObjectStorageService(Service):"},{"line_number":24,"context_line":"    def set_extensions(self):"},{"line_number":25,"context_line":"        if not self.check_service_status(self.conf):"},{"line_number":26,"context_line":"            self.extensions \u003d []"},{"line_number":27,"context_line":"            self.conf.set(\u0027object-storage-feature-enabled\u0027,"},{"line_number":28,"context_line":"                          \u0027discoverability\u0027,"},{"line_number":29,"context_line":"                          \u0027False\u0027)"},{"line_number":30,"context_line":"        elif \u0027v3\u0027 not in self.service_url:  # it\u0027s not a v3 url"},{"line_number":31,"context_line":"            body \u003d self.do_get(self.service_url, top_level\u003dTrue,"},{"line_number":32,"context_line":"                               top_level_path\u003d\"info\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_38ef2eea","line":29,"range":{"start_line":25,"start_character":8,"end_line":29,"end_character":34},"updated":"2018-06-08 07:24:19.000000000","message":"move this to set_default_tempest_options","commit_id":"8118e193b502c066c5f397c520c6d54fd800d7b3"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"4b2aa55723c5f3b80ffd57e8f488baaee042b7e1","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Use healthcheck api to check the service status"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        if conf.get_bool_value(conf.get_defaulted(\u0027service_available\u0027,"},{"line_number":55,"context_line":"                                                  \u0027swift\u0027)):"},{"line_number":56,"context_line":"            # Turning http://.../v1/foobar into http://.../"},{"line_number":57,"context_line":"            self.client.skip_path()"}],"source_content_type":"text/x-python","patch_set":18,"id":"5f7c97a3_c185bfae","line":54,"updated":"2018-06-11 09:25:25.000000000","message":"why does this method reads the default values? I think that this method should always try the detection. Unless the discoverability property is set to false, but discoverability is not checked here even if it should.","commit_id":"a36d5d6cde3189e8c9ff1fcfcda864d4c7617790"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"4b2aa55723c5f3b80ffd57e8f488baaee042b7e1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                resp, _ \u003d self.client.get(\"healthcheck\", {})"},{"line_number":60,"context_line":"                return resp[\u0027status\u0027] \u003d\u003d \u0027200\u0027"},{"line_number":61,"context_line":"            except Exception:"},{"line_number":62,"context_line":"                conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"},{"line_number":63,"context_line":"                return False"},{"line_number":64,"context_line":"        else:"},{"line_number":65,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":18,"id":"5f7c97a3_21bef364","line":62,"updated":"2018-06-11 09:25:25.000000000","message":"I think that it\u0027s not the responsibility of *check*_service_status to set the status. check_service_status is called by the code which then sets the status.","commit_id":"a36d5d6cde3189e8c9ff1fcfcda864d4c7617790"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"4b2aa55723c5f3b80ffd57e8f488baaee042b7e1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":68,"context_line":"        if not self.check_service_status(conf):"},{"line_number":69,"context_line":"            self.conf.set(\u0027object-storage-feature-enabled\u0027,"},{"line_number":70,"context_line":"                          \u0027discoverability\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5f7c97a3_6155cb1d","line":70,"updated":"2018-06-11 09:25:25.000000000","message":"no need to set discoverability to False here.\nIf discoverability is set to False (as input), the service will be set as unavailabile.\nIf discoverability is set to True, check_service_status will return whether the service is available or not; if it\u0027s not available, the value of discoverability does not matter, as the tests will be skipped; if it\u0027s available, everything is awesome.","commit_id":"a36d5d6cde3189e8c9ff1fcfcda864d4c7617790"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"585e7cf75827c618b1682e7ad978e45e2fbd4d10","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        # Turning http://.../v1/foobar into http://.../"},{"line_number":55,"context_line":"        self.client.skip_path()"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            resp, _ \u003d self.client.get(\"healthcheck\", {})"},{"line_number":58,"context_line":"            return resp[\u0027status\u0027] \u003d\u003d \u0027200\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_522ad9e6","line":55,"updated":"2018-06-11 15:20:48.000000000","message":"but discoverability should be checked here: no discovery if discoverability is false (see my previous comment).\n\nOtherwise this method may return even if discoverability is set to false, and then the value of services.foo will be true.","commit_id":"2fe602af337dd8747582c62252ca9adb3ec54498"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"585e7cf75827c618b1682e7ad978e45e2fbd4d10","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":63,"context_line":"        if not conf.get_bool_value(conf.get(\u0027object-storage-feature-enabled\u0027,"},{"line_number":64,"context_line":"                                            \u0027discoverability\u0027)):"},{"line_number":65,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_72cb551d","line":65,"updated":"2018-06-11 15:20:48.000000000","message":"False is the default value anyway, do we need to set it? If the previous function is changed to return False when discoverability is False, then this method is useless.","commit_id":"2fe602af337dd8747582c62252ca9adb3ec54498"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"f15c089771430435f7e63a54fc7c8409a590047f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":63,"context_line":"        if not conf.get_bool_value(conf.get(\u0027object-storage-feature-enabled\u0027,"},{"line_number":64,"context_line":"                                            \u0027discoverability\u0027)):"},{"line_number":65,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_5a407ea2","line":65,"in_reply_to":"5f7c97a3_72cb551d","updated":"2018-06-13 09:06:26.000000000","message":"Agree here, if the False is the default, what\u0027s the point?","commit_id":"2fe602af337dd8747582c62252ca9adb3ec54498"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0a60a43acbe6d040de93c30bcb067d9499763c4","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ObjectStorageService(Service):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def __init__(self, name, service_url, token, disable_ssl_validation,"},{"line_number":26,"context_line":"                 client\u003dNone):"},{"line_number":27,"context_line":"        super(ObjectStorageService, self).__init__(name, service_url, token,"},{"line_number":28,"context_line":"                                                   disable_ssl_validation,"},{"line_number":29,"context_line":"                                                   client)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def set_extensions(self):"},{"line_number":32,"context_line":"        if not self.check_service_status(self.conf):"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_97032d10","line":29,"range":{"start_line":25,"start_character":0,"end_line":29,"end_character":58},"updated":"2018-06-14 14:34:08.000000000","message":"we have you overridden the init when there are no extra features, parameters ...","commit_id":"e07c8d9fd1cb07ff1fb858d0596cf33bf5e1eb86"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"65175af509c33820ba1e46cbaca5c830987dc488","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def check_service_status(self, conf):"},{"line_number":55,"context_line":"        \"\"\"Use healthcheck api to check the service status"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        # Check for swift discoverability if it is False"},{"line_number":59,"context_line":"        # check_service_status returns False"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f7c97a3_6c44681a","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":0},"updated":"2018-06-15 14:05:15.000000000","message":"Let\u0027s keep the doc pattern here, please add:\n:type conf: TempestConf object","commit_id":"d6618a25897b5f06254ff363f55fe38b4fe5254f"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"65175af509c33820ba1e46cbaca5c830987dc488","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":77,"context_line":"        \"\"\"Set default values for swift"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        \"\"\""},{"line_number":80,"context_line":"        swift_status \u003d self.check_service_status(conf)"},{"line_number":81,"context_line":"        # Set roles based on service status"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f7c97a3_0c5134da","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":0},"updated":"2018-06-15 14:05:15.000000000","message":"doc pattern:\n:type conf: TempestConf object","commit_id":"d6618a25897b5f06254ff363f55fe38b4fe5254f"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"823f18ea27e3f16b0d93234bdeb8d3ca13bcebfb","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ObjectStorageService(Service):"},{"line_number":25,"context_line":"    def set_extensions(self):"},{"line_number":26,"context_line":"        if \u0027v3\u0027 not in self.service_url:  # it\u0027s not a v3 url"},{"line_number":27,"context_line":"            try:"},{"line_number":28,"context_line":"                body \u003d self.do_get(self.service_url, top_level\u003dTrue,"},{"line_number":29,"context_line":"                                   top_level_path\u003d\"info\")"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_9ad792c1","line":26,"updated":"2018-06-18 16:20:34.000000000","message":"isn\u0027t this again a possible issue when the URL is a v3 URL but it has no \u0027v3\u0027 as suffix?","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"b9d44ae598b02720c130ac6f459171c71e9ce7e0","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ObjectStorageService(Service):"},{"line_number":25,"context_line":"    def set_extensions(self):"},{"line_number":26,"context_line":"        if \u0027v3\u0027 not in self.service_url:  # it\u0027s not a v3 url"},{"line_number":27,"context_line":"            try:"},{"line_number":28,"context_line":"                body \u003d self.do_get(self.service_url, top_level\u003dTrue,"},{"line_number":29,"context_line":"                                   top_level_path\u003d\"info\")"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_f50a591e","line":26,"in_reply_to":"5f7c97a3_9ad792c1","updated":"2018-06-18 16:24:45.000000000","message":"We are setting the v3 in service_url if doesn\u0027t exist, so if there\u0027s no v3 here, it\u0027s because it\u0027s not a v3","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"823f18ea27e3f16b0d93234bdeb8d3ca13bcebfb","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        swift_status \u003d self.check_service_status(conf)"},{"line_number":87,"context_line":"        # Set roles based on service status"},{"line_number":88,"context_line":"        if swift_status and self.list_create_roles(conf, self.client.roles):"},{"line_number":89,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027True\u0027)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_baab6e1c","line":89,"updated":"2018-06-18 16:20:34.000000000","message":"I\u0027m not sure that service_available should be set there. \n\nIs the value set here value considered later, when set_service_availability is called? Otherwise it\u0027s pointless here.","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"66e092bbdc779e9e66c73ede3a180ec164607169","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if swift_status:"},{"line_number":89,"context_line":"            self.list_create_roles(conf, self.client.roles)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_55454db3","line":91,"updated":"2018-06-18 16:53:28.000000000","message":"same point about setting the default here","commit_id":"4545ca1ce4ce9179e1ef63aa264c9a274ee5fcc6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"6f35988b5a2ff36f95d33cadf0d4eb8319434244","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if swift_status:"},{"line_number":89,"context_line":"            self.list_create_roles(conf, self.client.roles)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_fabd4f03","line":91,"in_reply_to":"5f7c97a3_3fd179cd","updated":"2018-06-19 10:32:17.000000000","message":"After set_default_tempest_options is called a set_service_availability method is called after that:\n\nhttps://github.com/openstack/python-tempestconf/blob/master/config_tempest/services/services.py#L226","commit_id":"4545ca1ce4ce9179e1ef63aa264c9a274ee5fcc6"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a13f1fb152eb31ed6b15845d1ca9fae86a24ccc5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if swift_status:"},{"line_number":89,"context_line":"            self.list_create_roles(conf, self.client.roles)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_91068685","line":91,"in_reply_to":"5f7c97a3_55454db3","updated":"2018-06-19 08:59:08.000000000","message":"Done","commit_id":"4545ca1ce4ce9179e1ef63aa264c9a274ee5fcc6"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"6d97068c03d8d777432bbe1faceb7e268d115ddf","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if swift_status:"},{"line_number":89,"context_line":"            self.list_create_roles(conf, self.client.roles)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_9f320df2","line":91,"in_reply_to":"5f7c97a3_55454db3","updated":"2018-06-19 09:47:28.000000000","message":"The default is True","commit_id":"4545ca1ce4ce9179e1ef63aa264c9a274ee5fcc6"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"07aded4e6d002db940b80bdaaf0df69e4da2d288","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if swift_status:"},{"line_number":89,"context_line":"            self.list_create_roles(conf, self.client.roles)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_ff38e1cb","line":91,"in_reply_to":"5f7c97a3_9f320df2","updated":"2018-06-19 09:50:39.000000000","message":"That\u0027s not the point: the point is \"does it make sense to set service_available to False here, if this value is ignored when all the values of service_available will be set later\"?\nI think that this is not the right place to set this value, because it will be overridden.","commit_id":"4545ca1ce4ce9179e1ef63aa264c9a274ee5fcc6"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"613c1780fa3fb2d0cc9035ac4da2cb441d5f6dca","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if swift_status:"},{"line_number":89,"context_line":"            self.list_create_roles(conf, self.client.roles)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            conf.set(\u0027service_available\u0027, \u0027swift\u0027, \u0027False\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_3fd179cd","line":91,"in_reply_to":"5f7c97a3_ff38e1cb","updated":"2018-06-19 10:21:10.000000000","message":"When will be set later? We are no longer set swift to false manually in the script. It won\u0027t be overriden","commit_id":"4545ca1ce4ce9179e1ef63aa264c9a274ee5fcc6"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"48a383a42d52e1e2c51be270c9cdb731febc9a46","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                return False"},{"line_number":74,"context_line":"        except ConfigParser.NoSectionError:"},{"line_number":75,"context_line":"            # Turning http://.../v1/foobar into http://.../"},{"line_number":76,"context_line":"            self.client.accounts.skip_path()"},{"line_number":77,"context_line":"            resp, _ \u003d self.client.accounts.get(\"healthcheck\", {})"},{"line_number":78,"context_line":"            return resp[\u0027status\u0027] \u003d\u003d \u0027200\u0027"},{"line_number":79,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":41,"id":"5f7c97a3_c2338a11","line":76,"updated":"2018-07-17 15:29:53.000000000","message":"this is causing the discoverability issue with ceph/rgw\n\na typical swift endpoint looks like:\n\n  http://controller:8080/v1\n\nremoving /v1/ causes the http GET requests go to the root (/)\n\nfor ceph/rgw the endpoint is different:\n\n  http://controller:8080/swift/v1\n\nnote the /swift/ prefix, which rgw uses to distinguish  swift requests from the /s3/ endpoint\n\nin this scenario skip_path causes the http GET requests go to the root (/) while the info and healthcheck urls are available under the /swift/ prefix\n\none simple workaround could be to remove this line and use ../healthcheck in line 77\n\nsimilarily, the tests which use skip_path in tempest itself should be updated (apparently only three):\n\n * https://github.com/openstack/tempest/blob/master/tempest/lib/services/object_storage/capabilities_client.py\n\n * https://github.com/openstack/tempest/blob/master/tempest/api/object_storage/test_healthcheck.py\n\n * https://github.com/openstack/tempest/blob/master/tempest/api/object_storage/test_crossdomain.py","commit_id":"f5bfc213511185ec933192b17a1a34c7d7aff5bf"}],"config_tempest/services/services.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9a30c0ef3ca880f5a792bb145458d2f32a49b613","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            # discover extensions of the service"},{"line_number":61,"context_line":"            # FIXME(chkumar246): use check_service_status for all services"},{"line_number":62,"context_line":"            if name \u003d\u003d \u0027object-store\u0027:"},{"line_number":63,"context_line":"                service.conf \u003d self._conf"},{"line_number":64,"context_line":"            service.set_extensions()"},{"line_number":65,"context_line":"            # discover versions of the service"},{"line_number":66,"context_line":"            service.set_versions()"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_bb3cdd30","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":41},"updated":"2018-06-05 21:17:35.000000000","message":"I don\u0027t like it, but let\u0027s first see, what check_service_status method is supposed to do, see my other comments.","commit_id":"1434213d98b56e6e995260784a53a2a289473b08"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"54ee5b53414888a3756bc702b0c695915d52d46a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            # discover extensions of the service"},{"line_number":61,"context_line":"            # FIXME(chkumar246): use check_service_status for all services"},{"line_number":62,"context_line":"            if name \u003d\u003d \u0027object-store\u0027:"},{"line_number":63,"context_line":"                service.conf \u003d self._conf"},{"line_number":64,"context_line":"            service.set_extensions()"},{"line_number":65,"context_line":"            # discover versions of the service"},{"line_number":66,"context_line":"            service.set_versions()"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_18bef2d3","line":63,"updated":"2018-06-08 07:24:19.000000000","message":"this is not needed if you use set_default_tempest_options","commit_id":"8118e193b502c066c5f397c520c6d54fd800d7b3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b65609a65c728824a84b57bff6ba6a1b094eb5f7","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        object_storage \u003d self.get_service(\u0027object-store\u0027)"},{"line_number":202,"context_line":"        swift_default \u003d object_storage.check_service_status(self._conf)"},{"line_number":203,"context_line":"        if self.is_service(\u0027object-store\u0027) and swift_default:"},{"line_number":204,"context_line":"            object_storage \u003d self.get_service(\u0027object-store\u0027)"},{"line_number":205,"context_line":"            object_storage.list_create_roles(self._conf, self._clients.roles)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        ceilometer.check_ceilometer_service(self._conf,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_31a89b76","line":204,"range":{"start_line":204,"start_character":12,"end_line":204,"end_character":61},"updated":"2018-06-08 22:41:49.000000000","message":"this should be removed now, it\u0027s duplicate, because object_storage is already defined on line 201","commit_id":"fe60bf4c614ef693de4e03a201244a0cd85233fc"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"f15c089771430435f7e63a54fc7c8409a590047f","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        # query the config for swift availability and get the current value"},{"line_number":200,"context_line":"        # in case, it was overridden in CLI"},{"line_number":201,"context_line":"        object_storage \u003d self.get_service(\u0027object-store\u0027)"},{"line_number":202,"context_line":"        swift_status \u003d object_storage.check_service_status()"},{"line_number":203,"context_line":"        if self.is_service(\u0027object-store\u0027) and swift_status:"},{"line_number":204,"context_line":"            object_storage.list_create_roles(self._conf, self._clients.roles)"},{"line_number":205,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_5ad2befe","line":202,"updated":"2018-06-13 09:06:26.000000000","message":"I\u0027m not seeing a point to have check_service_status on the base class since you\u0027re using it only for swift_status, it should be between lines 53-68 if that\u0027s your intention.","commit_id":"2fe602af337dd8747582c62252ca9adb3ec54498"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"585e7cf75827c618b1682e7ad978e45e2fbd4d10","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            # ceilometer is still transitioning from metering to telemetry"},{"line_number":215,"context_line":"            if service \u003d\u003d \u0027telemetry\u0027 and self.is_service(\u0027metering\u0027):"},{"line_number":216,"context_line":"                service \u003d \u0027metering\u0027"},{"line_number":217,"context_line":"            available \u003d str(self.is_service(service))"},{"line_number":218,"context_line":"            if service \u003d\u003d \u0027object-store\u0027:"},{"line_number":219,"context_line":"                available \u003d str(swift_status)"},{"line_number":220,"context_line":"            self._conf.set(\u0027service_available\u0027, codename, available)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_12e221d5","line":217,"updated":"2018-06-11 15:20:48.000000000","message":"start to think about a way how to remove this \"if\".\n\nMaybe it could be simply \n\navailable \u003d str(self.is_service(service) and self.get_service(service).check_service_status())\n\nand in that case the defaut value of check_service_status should be True.\n\nOr something else totally different.","commit_id":"2fe602af337dd8747582c62252ca9adb3ec54498"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"2a9132aa9dd83c9cdddf337c8499d6db9025b90a","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        # query the config for swift availability and get the current value"},{"line_number":200,"context_line":"        # in case, it was overridden in CLI"},{"line_number":201,"context_line":"        object_storage \u003d self.get_service(\u0027object-store\u0027)"},{"line_number":202,"context_line":"        swift_status \u003d object_storage.check_service_status(self._conf)"},{"line_number":203,"context_line":"        print(swift_status)"},{"line_number":204,"context_line":"        if swift_status:"},{"line_number":205,"context_line":"            object_storage.list_create_roles(self._conf, self._clients.roles)"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_09515e0e","line":202,"updated":"2018-06-13 12:17:26.000000000","message":"If check_service_status are not between lines 54 to 68 and are only being called by object_storage, there\u0027s no point to have it in services/base.py","commit_id":"6ed8dab42ebe5cb5569326887595bf9312fde3dd"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"2a9132aa9dd83c9cdddf337c8499d6db9025b90a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        # in case, it was overridden in CLI"},{"line_number":201,"context_line":"        object_storage \u003d self.get_service(\u0027object-store\u0027)"},{"line_number":202,"context_line":"        swift_status \u003d object_storage.check_service_status(self._conf)"},{"line_number":203,"context_line":"        print(swift_status)"},{"line_number":204,"context_line":"        if swift_status:"},{"line_number":205,"context_line":"            object_storage.list_create_roles(self._conf, self._clients.roles)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_6941f238","line":203,"updated":"2018-06-13 12:17:26.000000000","message":"PRINT?!?!?!?!?!","commit_id":"6ed8dab42ebe5cb5569326887595bf9312fde3dd"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"2a9132aa9dd83c9cdddf337c8499d6db9025b90a","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        object_storage \u003d self.get_service(\u0027object-store\u0027)"},{"line_number":202,"context_line":"        swift_status \u003d object_storage.check_service_status(self._conf)"},{"line_number":203,"context_line":"        print(swift_status)"},{"line_number":204,"context_line":"        if swift_status:"},{"line_number":205,"context_line":"            object_storage.list_create_roles(self._conf, self._clients.roles)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        ceilometer.check_ceilometer_service(self._conf,"},{"line_number":208,"context_line":"                                            self._clients.service_client)"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_a96ceacf","line":205,"range":{"start_line":204,"start_character":8,"end_line":205,"end_character":77},"updated":"2018-06-13 12:17:26.000000000","message":"This logic should be in the object_storage and called by set_default_tempest_options, not here","commit_id":"6ed8dab42ebe5cb5569326887595bf9312fde3dd"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"823f18ea27e3f16b0d93234bdeb8d3ca13bcebfb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self._clients \u003d clients"},{"line_number":41,"context_line":"        self._conf \u003d conf"},{"line_number":42,"context_line":"        self._creds \u003d creds"},{"line_number":43,"context_line":"        swift_discover \u003d conf.get_defaulted(\u0027object-storage-feature-enabled\u0027,"},{"line_number":44,"context_line":"                                            \u0027discoverability\u0027)"},{"line_number":45,"context_line":"        self._object_store_discovery \u003d conf.get_bool_value(swift_discover)"},{"line_number":46,"context_line":"        self._ssl_validation \u003d creds.disable_ssl_certificate_validation"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_da698af8","line":43,"updated":"2018-06-18 16:20:34.000000000","message":"is this variable still needed here?","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"823f18ea27e3f16b0d93234bdeb8d3ca13bcebfb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self._creds \u003d creds"},{"line_number":43,"context_line":"        swift_discover \u003d conf.get_defaulted(\u0027object-storage-feature-enabled\u0027,"},{"line_number":44,"context_line":"                                            \u0027discoverability\u0027)"},{"line_number":45,"context_line":"        self._object_store_discovery \u003d conf.get_bool_value(swift_discover)"},{"line_number":46,"context_line":"        self._ssl_validation \u003d creds.disable_ssl_certificate_validation"},{"line_number":47,"context_line":"        self._region \u003d clients.identity_region"},{"line_number":48,"context_line":"        self._services \u003d []"}],"source_content_type":"text/x-python","patch_set":31,"id":"5f7c97a3_3a4e7e96","line":45,"updated":"2018-06-18 16:20:34.000000000","message":"same for this","commit_id":"a8ce6633311d413c244d4c40c1701264e9bcc30c"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"07aded4e6d002db940b80bdaaf0df69e4da2d288","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            if service \u003d\u003d \u0027telemetry\u0027 and self.is_service(\u0027metering\u0027):"},{"line_number":209,"context_line":"                service \u003d \u0027metering\u0027"},{"line_number":210,"context_line":"            available \u003d str(self.is_service(service))"},{"line_number":211,"context_line":"            if service \u003d\u003d \u0027object-store\u0027:"},{"line_number":212,"context_line":"                available \u003d str("},{"line_number":213,"context_line":"                    self.get_service(service).check_service_status("},{"line_number":214,"context_line":"                        self._conf))"}],"source_content_type":"text/x-python","patch_set":33,"id":"5f7c97a3_ff61c1d5","line":211,"updated":"2018-06-19 09:50:39.000000000","message":"why this was added? Can we aboid doing a special branch code for this?\nI think I already asked this in some past comment.","commit_id":"ed84ac7a06cc96af9fdd16b5aa6c4ed7b719ae96"}],"config_tempest/tests/base.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b65609a65c728824a84b57bff6ba6a1b094eb5f7","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    )"},{"line_number":214,"context_line":"    FAKE_ACCOUNTS \u003d ("},{"line_number":215,"context_line":"        {"},{"line_number":216,"context_line":"            \u0027status\u0027: \u0027200\u0027,"},{"line_number":217,"context_line":"            u\u0027content-length\u0027: \u00272\u0027,"},{"line_number":218,"context_line":"            \u0027content-location\u0027: \u0027http://192.168.122.120:8080/healthcheck\u0027,"},{"line_number":219,"context_line":"            u\u0027connection\u0027: \u0027close\u0027,"},{"line_number":220,"context_line":"            u\u0027x-trans-id\u0027: \u0027txec03483c96cd4958a5c6b-005b17c346\u0027,"},{"line_number":221,"context_line":"            u\u0027date\u0027: \u0027Wed, 06 Jun 2018 11:19:34 GMT\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_b1ad8b85","line":218,"range":{"start_line":216,"start_character":11,"end_line":218,"end_character":30},"updated":"2018-06-08 22:41:49.000000000","message":"just wondering why status and content-location are not defined as unicode? Is it expected, or just copy-paste mistake?","commit_id":"fe60bf4c614ef693de4e03a201244a0cd85233fc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a7390b9b23c1cbe72269297fc510da60e0a31c8e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    )"},{"line_number":214,"context_line":"    FAKE_ACCOUNTS \u003d ("},{"line_number":215,"context_line":"        {"},{"line_number":216,"context_line":"            \u0027status\u0027: \u0027200\u0027,"},{"line_number":217,"context_line":"            u\u0027content-length\u0027: \u00272\u0027,"},{"line_number":218,"context_line":"            \u0027content-location\u0027: \u0027http://192.168.122.120:8080/healthcheck\u0027,"},{"line_number":219,"context_line":"            u\u0027connection\u0027: \u0027close\u0027,"},{"line_number":220,"context_line":"            u\u0027x-trans-id\u0027: \u0027txec03483c96cd4958a5c6b-005b17c346\u0027,"},{"line_number":221,"context_line":"            u\u0027date\u0027: \u0027Wed, 06 Jun 2018 11:19:34 GMT\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_15853907","line":218,"range":{"start_line":216,"start_character":11,"end_line":218,"end_character":30},"in_reply_to":"5f7c97a3_b1ad8b85","updated":"2018-06-11 05:39:20.000000000","message":"yup, it is expected from the response","commit_id":"fe60bf4c614ef693de4e03a201244a0cd85233fc"}],"config_tempest/tests/services/test_object_storage.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9a30c0ef3ca880f5a792bb145458d2f32a49b613","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                                            disable_ssl_validation\u003dFalse)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_set_get_extensions(self):"},{"line_number":33,"context_line":"        expected_resp \u003d [\u0027formpost\u0027, \u0027ratelimit\u0027,"},{"line_number":34,"context_line":"                         \u0027methods\u0027, \u0027account_quotas\u0027]"},{"line_number":35,"context_line":"        self._fake_service_do_get_method(self.FAKE_STORAGE_EXTENSIONS)"},{"line_number":36,"context_line":"        self.Service.set_extensions(object_store_discovery\u003dTrue)"},{"line_number":37,"context_line":"        self.assertItemsEqual(self.Service.extensions, expected_resp)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_fb25755d","side":"PARENT","line":34,"range":{"start_line":33,"start_character":8,"end_line":34,"end_character":53},"updated":"2018-06-05 21:17:35.000000000","message":"why did you remove this? If you want to test with empty extention list, just create a new test called like test_set_get_extensions_empty or something like that.","commit_id":"00dfc13ca58ea9970c621c958a08ca8fdee5ad59"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0a60a43acbe6d040de93c30bcb067d9499763c4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                                            disable_ssl_validation\u003dFalse)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_set_get_extensions(self):"},{"line_number":33,"context_line":"        expected_resp \u003d [\u0027formpost\u0027, \u0027ratelimit\u0027,"},{"line_number":34,"context_line":"                         \u0027methods\u0027, \u0027account_quotas\u0027]"},{"line_number":35,"context_line":"        self._fake_service_do_get_method(self.FAKE_STORAGE_EXTENSIONS)"},{"line_number":36,"context_line":"        self.Service.set_extensions(object_store_discovery\u003dTrue)"},{"line_number":37,"context_line":"        self.assertItemsEqual(self.Service.extensions, expected_resp)"},{"line_number":38,"context_line":"        self.assertItemsEqual(self.Service.get_extensions(), expected_resp)"},{"line_number":39,"context_line":"        self.Service.set_extensions()"},{"line_number":40,"context_line":"        self.assertItemsEqual(self.Service.extensions, [])"},{"line_number":41,"context_line":"        self.assertItemsEqual(self.Service.get_extensions(), [])"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_127acb75","side":"PARENT","line":38,"range":{"start_line":33,"start_character":7,"end_line":38,"end_character":75},"updated":"2018-06-14 14:34:08.000000000","message":"Why is this test changed, or more like deleted?","commit_id":"b8f5b257286c1ffde4e2d8646aae7533d9e2c060"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0a60a43acbe6d040de93c30bcb067d9499763c4","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from config_tempest import constants as C"},{"line_number":20,"context_line":"from config_tempest.services.object_storage import ObjectStorageService"},{"line_number":21,"context_line":"from config_tempest.tempest_conf import TempestConf"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_f2362fe7","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":0},"updated":"2018-06-14 14:34:08.000000000","message":"extra line","commit_id":"e07c8d9fd1cb07ff1fb858d0596cf33bf5e1eb86"}],"etc/default-overrides.conf":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9a30c0ef3ca880f5a792bb145458d2f32a49b613","unresolved":false,"context_lines":[{"line_number":81,"context_line":"operator_role\u003dMember"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"# User role that has reseller admin (string value)"},{"line_number":84,"context_line":"#reseller_admin_role\u003dResellerAdmin $$$ DEPLOY"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"[data-processing]"},{"line_number":87,"context_line":""}],"source_content_type":"text/plain","patch_set":10,"id":"5f7c97a3_b0ee3cb2","line":84,"range":{"start_line":84,"start_character":0,"end_line":84,"end_character":45},"updated":"2018-06-05 21:17:35.000000000","message":"I don\u0027t understand, why do we need an option, which is commented?","commit_id":"1434213d98b56e6e995260784a53a2a289473b08"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0a60a43acbe6d040de93c30bcb067d9499763c4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"# creating containers (string value)"},{"line_number":69,"context_line":"operator_role\u003dMember"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"# User role that has reseller admin (string value)"},{"line_number":72,"context_line":"#reseller_admin_role\u003dResellerAdmin $$$ DEPLOY"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"[data-processing]"},{"line_number":75,"context_line":""}],"source_content_type":"text/plain","patch_set":24,"id":"5f7c97a3_d2ae93e5","line":72,"range":{"start_line":71,"start_character":0,"end_line":72,"end_character":45},"updated":"2018-06-14 14:34:08.000000000","message":"why do we need an option in defaults-overrides.conf which is commented? It doesn\u0027t much matter, because the file is removed in the dependent patch.","commit_id":"e07c8d9fd1cb07ff1fb858d0596cf33bf5e1eb86"}]}
