)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ecbf828935580fe1a97c308d46c72c00c4103f70","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This made implementation easier, as we\u0027re simply treating multibackends"},{"line_number":12,"context_line":"as totally separated services."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"While this worked in RabbitMQ, zmq is communicating explicitely using"},{"line_number":15,"context_line":"hostnames, so appending anything to hostname in Target.server breaks"},{"line_number":16,"context_line":"communication."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5a74a57a_b0a4054b","line":14,"range":{"start_line":14,"start_character":52,"end_line":14,"end_character":63},"updated":"2016-11-29 10:13:28.000000000","message":"nit: explicitly","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c135e1deed260d6851c64225f347b9be13f0b674","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This made implementation easier, as we\u0027re simply treating multibackends"},{"line_number":12,"context_line":"as totally separated services."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"While this worked in RabbitMQ, zmq is communicating explicitely using"},{"line_number":15,"context_line":"hostnames, so appending anything to hostname in Target.server breaks"},{"line_number":16,"context_line":"communication."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5a74a57a_147e8069","line":14,"range":{"start_line":14,"start_character":52,"end_line":14,"end_character":63},"in_reply_to":"5a74a57a_b0a4054b","updated":"2016-11-29 14:18:29.000000000","message":"Done","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ecbf828935580fe1a97c308d46c72c00c4103f70","unresolved":false,"context_lines":[{"line_number":18,"context_line":"This commit modifies the messaging layer of cinder-volume to use"},{"line_number":19,"context_line":"Target.topic to distinguish backends. This is done by:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"* Making cinder-volume to listen on new RPC server, with Target.server"},{"line_number":22,"context_line":"  set to raw hostname, and topic is set to \u0027cinder-volume.host@backend\u0027."},{"line_number":23,"context_line":"  \u0027cinder-volume\u0027 prefix is added to keep compatibility with Newton\u0027s"},{"line_number":24,"context_line":"  services (we\u0027re relying on how RabbitMQ transport is implemented in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5a74a57a_1043f96c","line":21,"range":{"start_line":21,"start_character":23,"end_line":21,"end_character":25},"updated":"2016-11-29 10:13:28.000000000","message":"nit: remove to","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c135e1deed260d6851c64225f347b9be13f0b674","unresolved":false,"context_lines":[{"line_number":18,"context_line":"This commit modifies the messaging layer of cinder-volume to use"},{"line_number":19,"context_line":"Target.topic to distinguish backends. This is done by:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"* Making cinder-volume to listen on new RPC server, with Target.server"},{"line_number":22,"context_line":"  set to raw hostname, and topic is set to \u0027cinder-volume.host@backend\u0027."},{"line_number":23,"context_line":"  \u0027cinder-volume\u0027 prefix is added to keep compatibility with Newton\u0027s"},{"line_number":24,"context_line":"  services (we\u0027re relying on how RabbitMQ transport is implemented in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5a74a57a_54db987b","line":21,"range":{"start_line":21,"start_character":23,"end_line":21,"end_character":25},"in_reply_to":"5a74a57a_1043f96c","updated":"2016-11-29 14:18:29.000000000","message":"Done","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"}],"cinder/service.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ecbf828935580fe1a97c308d46c72c00c4103f70","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # TODO(dulek): Kids, don\u0027t do that at home. We\u0027re relying here on"},{"line_number":259,"context_line":"        # oslo.messaging implementation details to keep backward compatibility"},{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_8ec28683","line":261,"range":{"start_line":260,"start_character":0,"end_line":261,"end_character":46},"updated":"2016-11-29 10:13:28.000000000","message":"-1: If we should remove the note in the next release then the note is not right, we should write a permanent note instead that explains why this is necessary.","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c135e1deed260d6851c64225f347b9be13f0b674","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # TODO(dulek): Kids, don\u0027t do that at home. We\u0027re relying here on"},{"line_number":259,"context_line":"        # oslo.messaging implementation details to keep backward compatibility"},{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_4824d80b","line":261,"range":{"start_line":260,"start_character":0,"end_line":261,"end_character":46},"in_reply_to":"5a74a57a_8ec28683","updated":"2016-11-29 14:18:29.000000000","message":"Okay!","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ecbf828935580fe1a97c308d46c72c00c4103f70","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        # oslo.messaging implementation details to keep backward compatibility"},{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"},{"line_number":265,"context_line":"                                              \u0027host\u0027: self.host},"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_f3092796","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":48},"updated":"2016-11-29 10:13:28.000000000","message":"-1: AFAIK we need this regardless of the value of self.topic","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c135e1deed260d6851c64225f347b9be13f0b674","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        # oslo.messaging implementation details to keep backward compatibility"},{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"},{"line_number":265,"context_line":"                                              \u0027host\u0027: self.host},"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_f48024f9","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":48},"in_reply_to":"5a74a57a_f3092796","updated":"2016-11-29 14:18:29.000000000","message":"I don\u0027t really want to spawn a backend server for c-sch or c-bak. In those cases I don\u0027t want to change anything.","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30bc5bd6a7bc3bc1c788a3c201a3ea6ed5faf355","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        # oslo.messaging implementation details to keep backward compatibility"},{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"},{"line_number":265,"context_line":"                                              \u0027host\u0027: self.host},"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_aeb467d1","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":48},"in_reply_to":"5a74a57a_f48024f9","updated":"2016-11-30 10:08:33.000000000","message":"Yup, makes sense. :-)","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ecbf828935580fe1a97c308d46c72c00c4103f70","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"},{"line_number":265,"context_line":"                                              \u0027host\u0027: self.host},"},{"line_number":266,"context_line":"                server\u003dvol_utils.extract_host(self.host, \u0027host\u0027))"},{"line_number":267,"context_line":"            self.backend_rpcserver \u003d rpc.get_server(target, endpoints,"},{"line_number":268,"context_line":"                                                    serializer)"},{"line_number":269,"context_line":"            self.backend_rpcserver.start()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        # TODO(geguileo): In O - Remove the is_svc_upgrading_to_n part"},{"line_number":272,"context_line":"        if self.cluster and not self.is_svc_upgrading_to_n(self.binary):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_f3ccc736","line":269,"range":{"start_line":263,"start_character":0,"end_line":269,"end_character":42},"updated":"2016-11-29 10:13:28.000000000","message":"nit: We probably should be doing this in a helper method since it\u0027s the same code I\u0027m using in the A/A replication patch [1]\n\n self.backend_rpcserver \u003d self._start_rpcserver(self.host, endpoints, serializer)\n\n[1]: https://review.openstack.org/#/c/381835/21/cinder/service.py@268","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30bc5bd6a7bc3bc1c788a3c201a3ea6ed5faf355","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"},{"line_number":265,"context_line":"                                              \u0027host\u0027: self.host},"},{"line_number":266,"context_line":"                server\u003dvol_utils.extract_host(self.host, \u0027host\u0027))"},{"line_number":267,"context_line":"            self.backend_rpcserver \u003d rpc.get_server(target, endpoints,"},{"line_number":268,"context_line":"                                                    serializer)"},{"line_number":269,"context_line":"            self.backend_rpcserver.start()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        # TODO(geguileo): In O - Remove the is_svc_upgrading_to_n part"},{"line_number":272,"context_line":"        if self.cluster and not self.is_svc_upgrading_to_n(self.binary):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ee3bbf36","line":269,"range":{"start_line":263,"start_character":0,"end_line":269,"end_character":42},"in_reply_to":"5a74a57a_080e608b","updated":"2016-11-30 10:08:33.000000000","message":"Yes, they are independent, but when you know something is coming it\u0027s usually best to avoid adding things to ones backlog.\n\nIt\u0027s not a problem anyway, I\u0027ll just do it in my patch after this one merges.","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c135e1deed260d6851c64225f347b9be13f0b674","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        # with older services. Remove this note in Pike, as then it\u0027ll become"},{"line_number":261,"context_line":"        # only a Cinder implementation detail."},{"line_number":262,"context_line":"        if self.topic \u003d\u003d constants.VOLUME_TOPIC:"},{"line_number":263,"context_line":"            target \u003d messaging.Target("},{"line_number":264,"context_line":"                topic\u003d\u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.topic,"},{"line_number":265,"context_line":"                                              \u0027host\u0027: self.host},"},{"line_number":266,"context_line":"                server\u003dvol_utils.extract_host(self.host, \u0027host\u0027))"},{"line_number":267,"context_line":"            self.backend_rpcserver \u003d rpc.get_server(target, endpoints,"},{"line_number":268,"context_line":"                                                    serializer)"},{"line_number":269,"context_line":"            self.backend_rpcserver.start()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        # TODO(geguileo): In O - Remove the is_svc_upgrading_to_n part"},{"line_number":272,"context_line":"        if self.cluster and not self.is_svc_upgrading_to_n(self.binary):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_080e608b","line":269,"range":{"start_line":263,"start_character":0,"end_line":269,"end_character":42},"in_reply_to":"5a74a57a_f3ccc736","updated":"2016-11-29 14:18:29.000000000","message":"As the patches are independent it should be easier to do that refactoring once both are merged. I\u0027ve added that to my backlog.","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"}],"cinder/volume/rpcapi.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ecbf828935580fe1a97c308d46c72c00c4103f70","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    BINARY \u003d \u0027cinder-volume\u0027"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def _get_cctxt(self, host\u003dNone, version\u003dNone, **kwargs):"},{"line_number":126,"context_line":"        if host:"},{"line_number":127,"context_line":"            host \u003d utils.extract_host(host)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # TODO(dulek): If we\u0027re pinned before 3.3, we should send stuff the"},{"line_number":130,"context_line":"            # old way - addressing server\u003dhost@backend, topic\u003dcinder-volume."},{"line_number":131,"context_line":"            # Otherwise we\u0027re addressing server\u003dhost,"},{"line_number":132,"context_line":"            # topic\u003dcinder-volume.host@backend. This conditional can go away"},{"line_number":133,"context_line":"            # when we stop supporting 3.x."},{"line_number":134,"context_line":"            if self.client.can_send_version(\u00273.3\u0027):"},{"line_number":135,"context_line":"                try:"},{"line_number":136,"context_line":"                    server, _ign \u003d host.split(\u0027@\u0027)"},{"line_number":137,"context_line":"                except ValueError:"},{"line_number":138,"context_line":"                    server \u003d host"},{"line_number":139,"context_line":"                kwargs[\u0027server\u0027] \u003d server"},{"line_number":140,"context_line":"                kwargs[\u0027topic\u0027] \u003d \u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.TOPIC,"},{"line_number":141,"context_line":"                                                          \u0027host\u0027: host}"},{"line_number":142,"context_line":"            else:"},{"line_number":143,"context_line":"                kwargs[\u0027server\u0027] \u003d host"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        return super(VolumeAPI, self)._get_cctxt(version, **kwargs)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_e9285488","line":143,"range":{"start_line":126,"start_character":0,"end_line":143,"end_character":39},"updated":"2016-11-29 10:13:28.000000000","message":"-1: We should not do host.split here, we have the extract_host method for that:\n\n if host:\n     server \u003d utils.extract_host(host)\n     if self.client_can_send_version(\u00273.3\u0027):\n         kwargs[\u0027topic\u0027] \u003d \u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.TOPIC,\n                                                   \u0027host\u0027: server}\n         server \u003d utils.extract_host(server, \u0027host\u0027)\n     kwargs[\u0027server\u0027] \u003d server","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c135e1deed260d6851c64225f347b9be13f0b674","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    BINARY \u003d \u0027cinder-volume\u0027"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def _get_cctxt(self, host\u003dNone, version\u003dNone, **kwargs):"},{"line_number":126,"context_line":"        if host:"},{"line_number":127,"context_line":"            host \u003d utils.extract_host(host)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # TODO(dulek): If we\u0027re pinned before 3.3, we should send stuff the"},{"line_number":130,"context_line":"            # old way - addressing server\u003dhost@backend, topic\u003dcinder-volume."},{"line_number":131,"context_line":"            # Otherwise we\u0027re addressing server\u003dhost,"},{"line_number":132,"context_line":"            # topic\u003dcinder-volume.host@backend. This conditional can go away"},{"line_number":133,"context_line":"            # when we stop supporting 3.x."},{"line_number":134,"context_line":"            if self.client.can_send_version(\u00273.3\u0027):"},{"line_number":135,"context_line":"                try:"},{"line_number":136,"context_line":"                    server, _ign \u003d host.split(\u0027@\u0027)"},{"line_number":137,"context_line":"                except ValueError:"},{"line_number":138,"context_line":"                    server \u003d host"},{"line_number":139,"context_line":"                kwargs[\u0027server\u0027] \u003d server"},{"line_number":140,"context_line":"                kwargs[\u0027topic\u0027] \u003d \u0027%(topic)s.%(host)s\u0027 % {\u0027topic\u0027: self.TOPIC,"},{"line_number":141,"context_line":"                                                          \u0027host\u0027: host}"},{"line_number":142,"context_line":"            else:"},{"line_number":143,"context_line":"                kwargs[\u0027server\u0027] \u003d host"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        return super(VolumeAPI, self)._get_cctxt(version, **kwargs)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_e8c844aa","line":143,"range":{"start_line":126,"start_character":0,"end_line":143,"end_character":39},"in_reply_to":"5a74a57a_e9285488","updated":"2016-11-29 14:18:29.000000000","message":"Yup, thanks, that\u0027s better.","commit_id":"d588823696b1bee5569f3f5d6f9e29a9e97a1835"}]}
