)]}'
{"config_tempest/services/services.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"fc64206bceb6d40151a523bdfc2d8dd3d8612e7a","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                                           self._clients.volume_client,"},{"line_number":203,"context_line":"                                           self.is_service(\"volumev3\"))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        volume.set_volume_client_api_microversion("},{"line_number":206,"context_line":"            self._conf,"},{"line_number":207,"context_line":"            self._clients.versions_client,"},{"line_number":208,"context_line":"            self.is_service(\"volumev3\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_2f45479b","line":205,"updated":"2018-07-09 09:42:08.000000000","message":"We are trying to kick out any service-specific feature from this file (and if possible from clients.py, but not now), see:\nhttps://storyboard.openstack.org/#!/story/2002787\n\nSo no new code that refers to service-specific setting should be introduced.\nThis means that a method which is specific for a single service should not exist. You can have a method which work for any service, see set_default_tempest_options() or set_versions() for example and how they are used.","commit_id":"5ddd45825e630cd90c277313462bf3112d915626"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"512b6383deb2240896f420720f9089da7e2f8828","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                                           self._clients.volume_client,"},{"line_number":203,"context_line":"                                           self.is_service(\"volumev3\"))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        volume.set_volume_client_api_microversion("},{"line_number":206,"context_line":"            self._conf,"},{"line_number":207,"context_line":"            self._clients.versions_client,"},{"line_number":208,"context_line":"            self.is_service(\"volumev3\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_e7b5337e","line":205,"in_reply_to":"5f7c97a3_2f45479b","updated":"2018-07-09 13:54:33.000000000","message":"Hi Luigi,\nI don\u0027t sure I understand you, is there an option to implement it under set_default_tempest_option(), because I need to use versions_client.\nI need min_microversion and max_microversion parameters in tempest.conf for our plugin.","commit_id":"5ddd45825e630cd90c277313462bf3112d915626"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"cc2df4330404b16266ce2ee6f31fb4523c5e873c","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                                           self._clients.volume_client,"},{"line_number":203,"context_line":"                                           self.is_service(\"volumev3\"))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        volume.set_volume_client_api_microversion("},{"line_number":206,"context_line":"            self._conf,"},{"line_number":207,"context_line":"            self._clients.versions_client,"},{"line_number":208,"context_line":"            self.is_service(\"volumev3\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_784df4c3","line":205,"in_reply_to":"5f7c97a3_baac3288","updated":"2018-07-12 09:44:39.000000000","message":"Hope it is better","commit_id":"5ddd45825e630cd90c277313462bf3112d915626"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"5da791963c2c30d5e554c82265dc1ab551e057c4","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                                           self._clients.volume_client,"},{"line_number":203,"context_line":"                                           self.is_service(\"volumev3\"))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        volume.set_volume_client_api_microversion("},{"line_number":206,"context_line":"            self._conf,"},{"line_number":207,"context_line":"            self._clients.versions_client,"},{"line_number":208,"context_line":"            self.is_service(\"volumev3\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_baac3288","line":205,"in_reply_to":"5f7c97a3_e7b5337e","updated":"2018-07-09 14:17:54.000000000","message":"I understand that you need it. What I\u0027m saying is that you can\u0027t introduce in this file a method which is specific for a certain service. Yes, there are others which are called in this file (check_volume_backup_service, check_ceilometer_service, configure_horizon) but we are trying to write the code differently, so that there are no such specific methods.\n\nIf you can set those values with one of the methods provided by the Service class (config_tempest/services/base.py, consider it like an abstract class), then it\u0027s easy. Otherwise you need to create a new a generic method (set_api_microversion?) that should be part of the interface of Service that can be overridden by children of that class. That method can then be called for all services.","commit_id":"5ddd45825e630cd90c277313462bf3112d915626"}],"config_tempest/services/volume.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"88f7d4677bb422f71cf8d824031562ed0552c00f","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class VolumeService(VersionedService):"},{"line_number":28,"context_line":"    def _get_base_version_url(self):"},{"line_number":29,"context_line":"        url \u003d urllib.parse.urlsplit(self.service_url)"},{"line_number":30,"context_line":"        new_path \u003d re.split(r\u0027(^|/)+v\\d+(\\.\\d+)?\u0027, url.path)[0]"},{"line_number":31,"context_line":"        url \u003d list(url)"},{"line_number":32,"context_line":"        url[2] \u003d new_path + \u0027/\u0027"},{"line_number":33,"context_line":"        return urllib.parse.urlunsplit(url)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def set_extensions(self):"},{"line_number":36,"context_line":"        body \u003d self.do_get(self.service_url + \u0027/extensions\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8e6933fa","line":33,"range":{"start_line":28,"start_character":0,"end_line":33,"end_character":43},"updated":"2018-08-12 12:26:45.000000000","message":"This function does the same what the following one we merged a couple days ago:\n\nhttps://github.com/openstack/python-tempestconf/blob/83e6ecb0791165305ba754e0dd116eb710fbbf2b/config_tempest/credentials.py#L68\n\nIt doesn\u0027t feel right to have two methods do the same. I\u0027d suggest to remove one of them. However, the other one would need to be moved to a \"neutral\" location in order to be accessible from Credentials and Service instances as well. \nI can\u0027t think about the best location but I see probably two best options:\n 1. move the method to a new file under config_tempest/\n 2. put the method to config_tempest/services/base.py file as a stand-alone method\nI don\u0027t know, I will discuss it on Monday with others too.","commit_id":"2961e955e063f8d7c581eff621e12fe1e027639c"}]}
