)]}'
{"cinder/tests/unit/api/contrib/test_snapshot_manage.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"087eedad8efddfd7f3ed8bdb088f307af6a2e7a9","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @mock.patch(\u0027cinder.volume.rpcapi.VolumeAPI.manage_existing_snapshot\u0027)"},{"line_number":70,"context_line":"    @mock.patch(\u0027cinder.volume.api.API.create_snapshot_in_db\u0027)"},{"line_number":71,"context_line":"    @mock.patch(\u0027cinder.db.service_get_by_args\u0027)"},{"line_number":72,"context_line":"    def test_manage_snapshot_ok(self, mock_db,"},{"line_number":73,"context_line":"                                mock_create_snapshot, mock_rpcapi):"},{"line_number":74,"context_line":"        \"\"\"Test successful manage volume execution."}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_6b62e2ae","line":71,"range":{"start_line":71,"start_character":4,"end_line":71,"end_character":48},"updated":"2016-03-02 17:07:37.000000000","message":"I think I\u0027ve found more occurrences of that string in tests, but if unit tests are passing for you, then I was probably seeing dead code.","commit_id":"096983aa9e9c16d18332ceea84a1db0c7411799e"}],"cinder/volume/api.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"e774dd425c518977276728ea09239ce9a78887ef","unresolved":false,"context_lines":[{"line_number":1525,"context_line":"            try:"},{"line_number":1526,"context_line":"                svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"},{"line_number":1527,"context_line":""},{"line_number":1528,"context_line":"                # FIXME(jdg): This probably won\u0027t work if volume_topic !default"},{"line_number":1529,"context_line":"                # it goes into taskflow so for now I\u0027m leaving it alone"},{"line_number":1530,"context_line":"                service \u003d objects.Service.get_by_host_and_topic("},{"line_number":1531,"context_line":"                    elevated, svc_host, CONF.volume_topic)"},{"line_number":1532,"context_line":"            except exception.ServiceNotFound:"},{"line_number":1533,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1534,"context_line":"                    LOG.error(_LE(\u0027Unable to find service: %(service)s for \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_d3b9487b","line":1531,"range":{"start_line":1528,"start_character":0,"end_line":1531,"end_character":58},"updated":"2016-03-02 12:46:09.000000000","message":"I believe it is safe to exchange also this occurrence, as judging from our code in cinder.cmd.* we *always* have `services.topic` column matching `services.binary`. We would however need to add disabled option to the method to ignore disabled services and keep current behavior.\n\nMoreover we use the object just to fetch AZ name, and we\u0027re not passing it into TaskFlow.","commit_id":"d2c53b5e54f0052fc92f8f26804e90ba58ca1d03"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"e774dd425c518977276728ea09239ce9a78887ef","unresolved":false,"context_lines":[{"line_number":1572,"context_line":"                                 metadata\u003dNone):"},{"line_number":1573,"context_line":"        host \u003d volume_utils.extract_host(volume[\u0027host\u0027])"},{"line_number":1574,"context_line":"        try:"},{"line_number":1575,"context_line":"            # FIXME(jdg): This probably won\u0027t work if volume_topic !default"},{"line_number":1576,"context_line":"            # it goes into taskflow so for now I\u0027m leaving it alone"},{"line_number":1577,"context_line":"            objects.Service.get_by_host_and_topic(context.elevated(), host,"},{"line_number":1578,"context_line":"                                                  CONF.volume_topic)"},{"line_number":1579,"context_line":"        except exception.ServiceNotFound:"},{"line_number":1580,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1581,"context_line":"                LOG.error(_LE(\u0027Unable to find service: %(service)s for \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_f35a8482","line":1578,"range":{"start_line":1575,"start_character":0,"end_line":1578,"end_character":68},"updated":"2016-03-02 12:46:09.000000000","message":"ditto\n\nAnd note that we\u0027re not even passing the result anywhere - this is purely to make sure requested service exists.","commit_id":"d2c53b5e54f0052fc92f8f26804e90ba58ca1d03"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"aa689619b54cff76a17eb3ea56fec21e21713e5f","unresolved":false,"context_lines":[{"line_number":1571,"context_line":"        try:"},{"line_number":1572,"context_line":"            # NOTE(jdg): We don\u0027t use this, we just make sure it\u0027s valid"},{"line_number":1573,"context_line":"            # and exists before sending off the call"},{"line_number":1574,"context_line":"            objects.Service.get_by_args("},{"line_number":1575,"context_line":"                context.elevated(), host, \u0027cinder-volume\u0027)"},{"line_number":1576,"context_line":"        except exception.ServiceNotFound:"},{"line_number":1577,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1578,"context_line":"                LOG.error(_LE(\u0027Unable to find service: %(service)s for \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_cb84d6d5","line":1575,"range":{"start_line":1574,"start_character":0,"end_line":1575,"end_character":58},"updated":"2016-03-02 17:11:55.000000000","message":"Ah, I\u0027ve mentioned it on previous patchset - this (and previous in this file) change will allow managing a volume/snap that\u0027s on disabled service. Do we want to change behavior and allow that? I thought it would be better to add disabled parameter to get_by_args and deliberately set it to False here.","commit_id":"096983aa9e9c16d18332ceea84a1db0c7411799e"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"31269233607a3a7179397c720390946911f531c2","unresolved":false,"context_lines":[{"line_number":1532,"context_line":"                                  \u0027given host: %(host)s.\u0027),"},{"line_number":1533,"context_line":"                              {\u0027service\u0027: CONF.volume_topic, \u0027host\u0027: host})"},{"line_number":1534,"context_line":"            if service.disabled:"},{"line_number":1535,"context_line":"                LOG.error(_LE(\u0027Unable to manage_existing volume on a disabled \u0027"},{"line_number":1536,"context_line":"                              \u0027service.\u0027))"},{"line_number":1537,"context_line":"                raise exception.ServiceUnavailable()"},{"line_number":1538,"context_line":""},{"line_number":1539,"context_line":"            availability_zone \u003d service.get(\u0027availability_zone\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_d29618ef","line":1536,"range":{"start_line":1535,"start_character":0,"end_line":1536,"end_character":42},"updated":"2016-03-03 10:19:03.000000000","message":"That\u0027s even better than before, thanks! :)\n\nThat\u0027s a log entry, so it\u0027s allowed before Hard StringFreeze (RC-1).","commit_id":"4147cec2744440c16c4bea7d926b61691ebda93d"}],"cinder/volume/manager.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"31269233607a3a7179397c720390946911f531c2","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                context.get_admin_context(),"},{"line_number":250,"context_line":"                svc_host,"},{"line_number":251,"context_line":"                \u0027cinder-volume\u0027)"},{"line_number":252,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":253,"context_line":"            # NOTE(jdg): This is to solve problems with unit tests"},{"line_number":254,"context_line":"            LOG.warning(_LW(\"Service not found for updating \""},{"line_number":255,"context_line":"                            \"active_backend_id, assuming default\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_d54e026e","line":252,"range":{"start_line":252,"start_character":25,"end_line":252,"end_character":43},"updated":"2016-03-03 10:19:03.000000000","message":"I hate to have a concern on this stuff again, but… Since [1] merged get_by_args() raises ServiceNotFound instead of HostBinaryNotFound.\n\n[1] https://review.openstack.org/#/c/285908/","commit_id":"4147cec2744440c16c4bea7d926b61691ebda93d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"3b7ea146bb4d8b6353c2646ef3ad0b3961edfe0a","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                context.get_admin_context(),"},{"line_number":250,"context_line":"                svc_host,"},{"line_number":251,"context_line":"                \u0027cinder-volume\u0027)"},{"line_number":252,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":253,"context_line":"            # NOTE(jdg): This is to solve problems with unit tests"},{"line_number":254,"context_line":"            LOG.warning(_LW(\"Service not found for updating \""},{"line_number":255,"context_line":"                            \"active_backend_id, assuming default\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_f6d4cb20","line":252,"range":{"start_line":252,"start_character":25,"end_line":252,"end_character":43},"in_reply_to":"7af24918_d54e026e","updated":"2016-03-03 16:44:58.000000000","message":"Done","commit_id":"4147cec2744440c16c4bea7d926b61691ebda93d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"31269233607a3a7179397c720390946911f531c2","unresolved":false,"context_lines":[{"line_number":508,"context_line":"                context.get_admin_context(),"},{"line_number":509,"context_line":"                svc_host,"},{"line_number":510,"context_line":"                \u0027cinder-volume\u0027)"},{"line_number":511,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":512,"context_line":"            # FIXME(jdg): no idea what we\u0027d do if we hit this case"},{"line_number":513,"context_line":"            LOG.warning(_LW(\"Service not found for updating \""},{"line_number":514,"context_line":"                            \"replication_status.\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_f5597e36","line":511,"range":{"start_line":511,"start_character":25,"end_line":511,"end_character":43},"updated":"2016-03-03 10:19:03.000000000","message":"Ditto.","commit_id":"4147cec2744440c16c4bea7d926b61691ebda93d"}]}
