)]}'
{"tempest/clients.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b0e3565bf2d8c0fa1f39b9955be49e0f69645344","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            # Setup the service availability flag"},{"line_number":310,"context_line":"            if service \u003d\u003d \u0027identity\u0027:"},{"line_number":311,"context_line":"                configuration[service][\u0027available\u0027] \u003d True"},{"line_number":312,"context_line":"            else:"},{"line_number":313,"context_line":"                project_name \u003d self.service_to_project[service]"},{"line_number":314,"context_line":"                configuration[service][\u0027available\u0027] \u003d getattr("},{"line_number":315,"context_line":"                    services_available, project_name)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"            # Setup identity specific parameters"},{"line_number":318,"context_line":"            if service \u003d\u003d \u0027identity\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a9d85d2_200fc7e2","line":315,"range":{"start_line":312,"start_character":0,"end_line":315,"end_character":53},"updated":"2016-06-20 05:09:47.000000000","message":"this else can go in L322","commit_id":"0e68ae8b59d0cb8fbad3cefdbb8cd0089ec64522"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"f5606701cdbbdc759261fa436967d6138980799f","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            # Setup the service availability flag"},{"line_number":310,"context_line":"            if service \u003d\u003d \u0027identity\u0027:"},{"line_number":311,"context_line":"                configuration[service][\u0027available\u0027] \u003d True"},{"line_number":312,"context_line":"            else:"},{"line_number":313,"context_line":"                project_name \u003d self.service_to_project[service]"},{"line_number":314,"context_line":"                configuration[service][\u0027available\u0027] \u003d getattr("},{"line_number":315,"context_line":"                    services_available, project_name)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"            # Setup identity specific parameters"},{"line_number":318,"context_line":"            if service \u003d\u003d \u0027identity\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a9d85d2_0f1473f3","line":315,"range":{"start_line":312,"start_character":0,"end_line":315,"end_character":53},"in_reply_to":"5a9d85d2_200fc7e2","updated":"2016-06-20 08:50:10.000000000","message":"I didn\u0027t get this one.\nI could move L310-311 to L322 within the if there, but that would not win me much, since I would still need another if for this.","commit_id":"0e68ae8b59d0cb8fbad3cefdbb8cd0089ec64522"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea396e426b83adb235a8ce2cc67cfbb9f76e6548","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            region\u003dCONF.identity.region,"},{"line_number":74,"context_line":"            **(dict(self._prepare_configuration(), **self.default_params)))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Setup service clients for the core services"},{"line_number":77,"context_line":"        for _service in self.SERVICES:"},{"line_number":78,"context_line":"            # NOTE(andreaf) This provides a simple alternative to lazy"},{"line_number":79,"context_line":"            # loading. By default no client will be initialised, unless"},{"line_number":80,"context_line":"            # requested to do so."},{"line_number":81,"context_line":"            # TODO(andreaf) When clients are initialised without the right"},{"line_number":82,"context_line":"            # parameters available, the calls below will trigger a KeyError."},{"line_number":83,"context_line":"            # We should catch that and raise a better error."},{"line_number":84,"context_line":"            if self.parameters[_service][\u0027available\u0027]:"},{"line_number":85,"context_line":"                self._set_clients(_service)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # Setup other service clients"},{"line_number":88,"context_line":"        self._set_database_clients()"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_04205147","line":85,"range":{"start_line":76,"start_character":0,"end_line":85,"end_character":43},"updated":"2016-06-24 00:10:12.000000000","message":"uhmm, original code is easy to understand for me.\nand this patch doesn\u0027t make the code so well..","commit_id":"104109966207e17c90ea65ed644a9934d6adcac5"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"cc810262e92f11526b77db174756e2b6d519a4c5","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            region\u003dCONF.identity.region,"},{"line_number":74,"context_line":"            **(dict(self._prepare_configuration(), **self.default_params)))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Setup service clients for the core services"},{"line_number":77,"context_line":"        for _service in self.SERVICES:"},{"line_number":78,"context_line":"            # NOTE(andreaf) This provides a simple alternative to lazy"},{"line_number":79,"context_line":"            # loading. By default no client will be initialised, unless"},{"line_number":80,"context_line":"            # requested to do so."},{"line_number":81,"context_line":"            # TODO(andreaf) When clients are initialised without the right"},{"line_number":82,"context_line":"            # parameters available, the calls below will trigger a KeyError."},{"line_number":83,"context_line":"            # We should catch that and raise a better error."},{"line_number":84,"context_line":"            if self.parameters[_service][\u0027available\u0027]:"},{"line_number":85,"context_line":"                self._set_clients(_service)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # Setup other service clients"},{"line_number":88,"context_line":"        self._set_database_clients()"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_d6138db6","line":85,"range":{"start_line":76,"start_character":0,"end_line":85,"end_character":43},"in_reply_to":"3aaa91ec_04205147","updated":"2016-06-24 08:52:14.000000000","message":"This is not exactly as the original code - it handles service available parameters for all services, and it inits only services defined in self.SERVICES. This is needed so that in the next patches I can initialise in ServiceClients only the clients that have already been migrated there.\nOnce all clients are migrated over, I\u0027m happy to remove the for loop if that\u0027s confusing.","commit_id":"104109966207e17c90ea65ed644a9934d6adcac5"}],"tempest/lib_manager.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ef42489c4d06490e8de3e3bb96e4b3c9f07bbf7d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        It is possible to define whether a service is enabled or disabled"},{"line_number":89,"context_line":"        by setting the \u0027available\u0027 parameter. At the moment the client"},{"line_number":90,"context_line":"        manager only honours the image one, but in future it will not attempt"},{"line_number":91,"context_line":"        to setup clients for services which are not available."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        Examples:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_6b3abdce","line":91,"updated":"2016-06-17 20:45:43.000000000","message":"I\u0027m not sure I understand the point of this. I thought we were moving to lazy loading for the managers, doesn\u0027t that mean we do the client inits on getattr? Instead of requiring users to enable it explicitly as a param","commit_id":"f585b185ccac9e7841099bd4c5597e86cccd0327"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2a0e9f4300f247c2f6bfa9759c377f9f88f2a0e6","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        It is possible to define whether a service is enabled or disabled"},{"line_number":89,"context_line":"        by setting the \u0027available\u0027 parameter. At the moment the client"},{"line_number":90,"context_line":"        manager only honours the image one, but in future it will not attempt"},{"line_number":91,"context_line":"        to setup clients for services which are not available."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        Examples:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_cbbad1bf","line":91,"in_reply_to":"7aa08908_6b3abdce","updated":"2016-06-17 21:01:24.000000000","message":"This is a simple mapping of that is done today by Glance.\nIf we move to full lazy loading then we won\u0027t need this anymore, but I was trying to postpone introducing lazy loading; the first time I tried this refactor I got a push back partly because of the complexity introduced by lazy loading.\n\nA possibility could be to do lazy loading only for plugin defined clients, but I\u0027m still working on a simple a clear way of making lazy loading for all.","commit_id":"f585b185ccac9e7841099bd4c5597e86cccd0327"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b0e3565bf2d8c0fa1f39b9955be49e0f69645344","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        for service in self.SERVICES:"},{"line_number":150,"context_line":"            # Setup a few defaults"},{"line_number":151,"context_line":"            _parameters[service] \u003d dict(catalog_type\u003dservice,"},{"line_number":152,"context_line":"                                        available\u003dTrue)"},{"line_number":153,"context_line":"            if self.region:"},{"line_number":154,"context_line":"                _parameters[service][\u0027region\u0027] \u003d self.region"},{"line_number":155,"context_line":"            # Set a few reasonable defaults for identity clients"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a9d85d2_c067e323","line":152,"range":{"start_line":152,"start_character":40,"end_line":152,"end_character":54},"updated":"2016-06-20 05:09:47.000000000","message":"From pov of external usage of this class, we should default services availability to False  instead of True.\nBecause it then end up with instantiate the clients for service not being passed in kwargs. \n\nexample i do not want to create image service client so i do not pass \u0027image\u0027: {... in kwargs. But due to L152, Manager end up instantiate the image clients.","commit_id":"0e68ae8b59d0cb8fbad3cefdbb8cd0089ec64522"}]}
