)]}'
{"cinder/api/v3/views/volumes.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"bc354e63e6987cd413208b5fe7cb2b388b0b98a8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            volume_ref[\u0027volume\u0027][\u0027provider_id\u0027] \u003d volume.get(\u0027provider_id\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Add shared_targets and backend_name if min version is greater"},{"line_number":58,"context_line":"        # than or equal to VOLUME_SHARED_TARGTES."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # NOTE(jdg) Request for input!!!"},{"line_number":61,"context_line":"        # Should this be admin context only?"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_15322c11","line":58,"range":{"start_line":58,"start_character":42,"end_line":58,"end_character":48},"updated":"2017-09-26 19:33:48.000000000","message":"TARGETS","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ab3fd09a3614337398378ebb9312cfb8e762821","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            volume_ref[\u0027volume\u0027][\u0027provider_id\u0027] \u003d volume.get(\u0027provider_id\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Add shared_targets and backend_name if min version is greater"},{"line_number":58,"context_line":"        # than or equal to VOLUME_SHARED_TARGTES."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # NOTE(jdg) Request for input!!!"},{"line_number":61,"context_line":"        # Should this be admin context only?"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_714bad2a","line":58,"range":{"start_line":58,"start_character":42,"end_line":58,"end_character":48},"in_reply_to":"7f515b1d_15322c11","updated":"2017-09-28 00:31:25.000000000","message":"Done","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"bc354e63e6987cd413208b5fe7cb2b388b0b98a8","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # NOTE(jdg) Request for input!!!"},{"line_number":61,"context_line":"        # Should this be admin context only?"},{"line_number":62,"context_line":"        # If there\u0027s concern about leaking this info we\u0027ll want to"},{"line_number":63,"context_line":"        # change Nova to use an elevated context in it\u0027s call.  It"},{"line_number":64,"context_line":"        # also might be good to investigate a policy attribute for"},{"line_number":65,"context_line":"        # this if possible."},{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_e73123a4","line":63,"range":{"start_line":62,"start_character":0,"end_line":63,"end_character":62},"updated":"2017-09-26 19:33:48.000000000","message":"It isn\u0027t really a security risk to expose shared targets, is it?","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ab3fd09a3614337398378ebb9312cfb8e762821","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # NOTE(jdg) Request for input!!!"},{"line_number":61,"context_line":"        # Should this be admin context only?"},{"line_number":62,"context_line":"        # If there\u0027s concern about leaking this info we\u0027ll want to"},{"line_number":63,"context_line":"        # change Nova to use an elevated context in it\u0027s call.  It"},{"line_number":64,"context_line":"        # also might be good to investigate a policy attribute for"},{"line_number":65,"context_line":"        # this if possible."},{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_915d09eb","line":63,"range":{"start_line":62,"start_character":0,"end_line":63,"end_character":62},"in_reply_to":"7f515b1d_e73123a4","updated":"2017-09-28 00:31:25.000000000","message":"I don\u0027t think so, the one I was more concerned about was backend-name.","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"adcf1b8583c88d1e4b27dca7e9932199fb3ccd83","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"},{"line_number":67,"context_line":"            volume_ref[\u0027volume\u0027][\u0027shared_targets\u0027] \u003d ("},{"line_number":68,"context_line":"                volume.get(\u0027shared_targets\u0027))"},{"line_number":69,"context_line":"            # We\u0027re using the existing host column of the volume,"},{"line_number":70,"context_line":"            # stripping off the host name (c-vol host) and extracting"},{"line_number":71,"context_line":"            # the backend-name (handy lock string)"},{"line_number":72,"context_line":"            host_fields \u003d re.split(\u0027@|#\u0027, volume.get(\u0027host\u0027, \"\"))"},{"line_number":73,"context_line":"            volume_ref[\u0027volume\u0027][\u0027backend_name\u0027] \u003d host_fields[1]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return volume_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_d5149450","line":73,"range":{"start_line":69,"start_character":11,"end_line":73,"end_character":65},"updated":"2017-09-26 19:29:25.000000000","message":"Maybe dumb question, but why split it up? Slicing off the pool makes sense, but host@backend or i guess cluster@backend is the unique identifier right? In theory c-vol-1@lvm and c-vol2-@lvm are different storage backends (yes I know kvm doesn\u0027t really care, but for sake of argument :P)","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e39e11aa58b5f4a4f9c116bf777fd73e3761ab01","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"},{"line_number":67,"context_line":"            volume_ref[\u0027volume\u0027][\u0027shared_targets\u0027] \u003d ("},{"line_number":68,"context_line":"                volume.get(\u0027shared_targets\u0027))"},{"line_number":69,"context_line":"            # We\u0027re using the existing host column of the volume,"},{"line_number":70,"context_line":"            # stripping off the host name (c-vol host) and extracting"},{"line_number":71,"context_line":"            # the backend-name (handy lock string)"},{"line_number":72,"context_line":"            host_fields \u003d re.split(\u0027@|#\u0027, volume.get(\u0027host\u0027, \"\"))"},{"line_number":73,"context_line":"            volume_ref[\u0027volume\u0027][\u0027backend_name\u0027] \u003d host_fields[1]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return volume_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_dd503a0d","line":73,"range":{"start_line":69,"start_character":11,"end_line":73,"end_character":65},"in_reply_to":"7f515b1d_07079f84","updated":"2017-09-26 20:25:56.000000000","message":"yeah, I actually thought of that after commenting.  It\u0027s a valid use case; I can change that but I do think that would mean this should be admin viewable only.","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"12dcbe28c644f5581bbd586a1b3cf90fb599df19","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"},{"line_number":67,"context_line":"            volume_ref[\u0027volume\u0027][\u0027shared_targets\u0027] \u003d ("},{"line_number":68,"context_line":"                volume.get(\u0027shared_targets\u0027))"},{"line_number":69,"context_line":"            # We\u0027re using the existing host column of the volume,"},{"line_number":70,"context_line":"            # stripping off the host name (c-vol host) and extracting"},{"line_number":71,"context_line":"            # the backend-name (handy lock string)"},{"line_number":72,"context_line":"            host_fields \u003d re.split(\u0027@|#\u0027, volume.get(\u0027host\u0027, \"\"))"},{"line_number":73,"context_line":"            volume_ref[\u0027volume\u0027][\u0027backend_name\u0027] \u003d host_fields[1]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return volume_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_07079f84","line":73,"range":{"start_line":69,"start_character":11,"end_line":73,"end_character":65},"in_reply_to":"7f515b1d_c7286735","updated":"2017-09-26 19:40:27.000000000","message":"We might be ok in the HA situation, I\u0027m not 100% sure but last I saw they are going to end up with a hostname that is actually the cluster_id@backend_name instead of host@backend_name. So the locking still works.\n\nMy concern (maybe not a real valid case) is that two different c-vol hosts could have the same named backend, which is OK, but then their locks are not unique. We\u0027d need to include host/cluster with the backend name to get what we really want. Does that make sense?","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4b41619662d227c022f2d463f6d32d6b9585f3eb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"},{"line_number":67,"context_line":"            volume_ref[\u0027volume\u0027][\u0027shared_targets\u0027] \u003d ("},{"line_number":68,"context_line":"                volume.get(\u0027shared_targets\u0027))"},{"line_number":69,"context_line":"            # We\u0027re using the existing host column of the volume,"},{"line_number":70,"context_line":"            # stripping off the host name (c-vol host) and extracting"},{"line_number":71,"context_line":"            # the backend-name (handy lock string)"},{"line_number":72,"context_line":"            host_fields \u003d re.split(\u0027@|#\u0027, volume.get(\u0027host\u0027, \"\"))"},{"line_number":73,"context_line":"            volume_ref[\u0027volume\u0027][\u0027backend_name\u0027] \u003d host_fields[1]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return volume_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_c7286735","line":73,"range":{"start_line":69,"start_character":11,"end_line":73,"end_character":65},"in_reply_to":"7f515b1d_d5149450","updated":"2017-09-26 19:36:39.000000000","message":"Hey Patrick!  So HA Cinder services complicate that a little bit for non LVM backends I think.  You\u0027re right, while LVM is still a part of the c-vol service (some day I\u0027m going to get around to fixing that) the model of most of the other drivers in Cinder I think using just the backend-name is the right way to go.\n\nSay for example you hav H/A c-vol \u0027node-a\u0027 and \u0027node-b\u0027 but they\u0027re both configured and pointing to backend_name \"pure-storage\u0027, then your locking mechanism falls apart.  Certainly, open if this seems problematic.","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"d8dbd707c39e8cb9119a45b22f3b5d7228f17766","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"},{"line_number":67,"context_line":"            volume_ref[\u0027volume\u0027][\u0027shared_targets\u0027] \u003d ("},{"line_number":68,"context_line":"                volume.get(\u0027shared_targets\u0027))"},{"line_number":69,"context_line":"            # We\u0027re using the existing host column of the volume,"},{"line_number":70,"context_line":"            # stripping off the host name (c-vol host) and extracting"},{"line_number":71,"context_line":"            # the backend-name (handy lock string)"},{"line_number":72,"context_line":"            host_fields \u003d re.split(\u0027@|#\u0027, volume.get(\u0027host\u0027, \"\"))"},{"line_number":73,"context_line":"            volume_ref[\u0027volume\u0027][\u0027backend_name\u0027] \u003d host_fields[1]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return volume_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_87c6ef99","line":73,"range":{"start_line":69,"start_character":11,"end_line":73,"end_character":65},"in_reply_to":"7f515b1d_d5149450","updated":"2017-09-26 19:30:42.000000000","message":"hah, typo\u0027s all over... s/c-vol2-/c-vol-2/ and s/kvm/lvm/","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ab3fd09a3614337398378ebb9312cfb8e762821","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if (req_version.matches(mv.VOLUME_SHARED_TARGETS, None)):"},{"line_number":67,"context_line":"            volume_ref[\u0027volume\u0027][\u0027shared_targets\u0027] \u003d ("},{"line_number":68,"context_line":"                volume.get(\u0027shared_targets\u0027))"},{"line_number":69,"context_line":"            # We\u0027re using the existing host column of the volume,"},{"line_number":70,"context_line":"            # stripping off the host name (c-vol host) and extracting"},{"line_number":71,"context_line":"            # the backend-name (handy lock string)"},{"line_number":72,"context_line":"            host_fields \u003d re.split(\u0027@|#\u0027, volume.get(\u0027host\u0027, \"\"))"},{"line_number":73,"context_line":"            volume_ref[\u0027volume\u0027][\u0027backend_name\u0027] \u003d host_fields[1]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return volume_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_311c1511","line":73,"range":{"start_line":69,"start_character":11,"end_line":73,"end_character":65},"in_reply_to":"7f515b1d_dd503a0d","updated":"2017-09-28 00:31:25.000000000","message":"Thinking more about this and after playing with some of the options we discussed I\u0027m wondering if we\u0027re worrying about this more than we need to.  We can document that you need to use the same backend-name for your backend regardless of if you have a seperate cinder node or not.  I suppose the one problem is upgrading you don\u0027t have the luxury of changing that.\n\nI think adding a configurable backend_lock_name would be a nice follow up enhancment :)","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"}],"cinder/tests/unit/test_migrations.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"99ca5df05601f4e3a95102af40c864b60e5cf4e5","unresolved":false,"context_lines":[{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":"    def _check_112(self, engine, data):"},{"line_number":1293,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"},{"line_number":1294,"context_line":"        self.assertIsInstance(volumes.c.shared_targets.type,"},{"line_number":1295,"context_line":"                              self.BOOL_TYPE)"},{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"    def test_walk_versions(self):"},{"line_number":1298,"context_line":"        self.walk_versions(False, False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_96d3bcd5","line":1295,"range":{"start_line":1294,"start_character":0,"end_line":1295,"end_character":45},"updated":"2017-09-27 01:54:03.000000000","message":"this can be in one line","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"}],"cinder/volume/manager.py":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"adcf1b8583c88d1e4b27dca7e9932199fb3ccd83","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                                                  {\u0027status\u0027: \u0027in-use\u0027})"},{"line_number":468,"context_line":"                # All other cleanups are processed by parent class"},{"line_number":469,"context_line":"                # CleanableManager"},{"line_number":470,"context_line":"                if (volume[\u0027shared_targets\u0027] and"},{"line_number":471,"context_line":"                        self.stats.get(\u0027shared_targets\u0027, True)):"},{"line_number":472,"context_line":"                    self.db.volume_update(ctxt.elevated(),"},{"line_number":473,"context_line":"                                          volume.id,"},{"line_number":474,"context_line":"                                          {\u0027shared_targets\u0027: False})"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        except Exception:"},{"line_number":477,"context_line":"            LOG.exception(\"Error during re-export on driver init.\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_87af0fe2","line":474,"range":{"start_line":470,"start_character":15,"end_line":474,"end_character":68},"updated":"2017-09-26 19:29:25.000000000","message":"I might be missing it, but where do we add this for new volumes being created? This step gets it updated on all existing volumes at c-vol startup, but for new ones that roll in after that we need to set the field on them too somewhere?","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c21bf09a39c1825235ca854fa5056b9389f759e0","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                        self.stats.get(\u0027shared_targets\u0027, True)):"},{"line_number":472,"context_line":"                    self.db.volume_update(ctxt.elevated(),"},{"line_number":473,"context_line":"                                          volume.id,"},{"line_number":474,"context_line":"                                          {\u0027shared_targets\u0027: False})"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        except Exception:"},{"line_number":477,"context_line":"            LOG.exception(\"Error during re-export on driver init.\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_27505bd4","line":474,"range":{"start_line":474,"start_character":61,"end_line":474,"end_character":66},"updated":"2017-09-26 19:32:54.000000000","message":"I\u0027m slow - can you explain why we set it to False if it\u0027s True?","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ab3fd09a3614337398378ebb9312cfb8e762821","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                        self.stats.get(\u0027shared_targets\u0027, True)):"},{"line_number":472,"context_line":"                    self.db.volume_update(ctxt.elevated(),"},{"line_number":473,"context_line":"                                          volume.id,"},{"line_number":474,"context_line":"                                          {\u0027shared_targets\u0027: False})"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        except Exception:"},{"line_number":477,"context_line":"            LOG.exception(\"Error during re-export on driver init.\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_f1d31d37","line":474,"range":{"start_line":474,"start_character":61,"end_line":474,"end_character":66},"in_reply_to":"7f515b1d_27505bd4","updated":"2017-09-28 00:31:25.000000000","message":"Done","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4b41619662d227c022f2d463f6d32d6b9585f3eb","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                        self.stats.get(\u0027shared_targets\u0027, True)):"},{"line_number":472,"context_line":"                    self.db.volume_update(ctxt.elevated(),"},{"line_number":473,"context_line":"                                          volume.id,"},{"line_number":474,"context_line":"                                          {\u0027shared_targets\u0027: False})"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        except Exception:"},{"line_number":477,"context_line":"            LOG.exception(\"Error during re-export on driver init.\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_078b1f1f","line":474,"range":{"start_line":474,"start_character":61,"end_line":474,"end_character":66},"in_reply_to":"7f515b1d_27505bd4","updated":"2017-09-26 19:36:39.000000000","message":"That\u0027s an easy one... \"typo\" :)\n\nActually it was a random pop reviewer test.. good job, you got an A","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4b41619662d227c022f2d463f6d32d6b9585f3eb","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                                                  {\u0027status\u0027: \u0027in-use\u0027})"},{"line_number":468,"context_line":"                # All other cleanups are processed by parent class"},{"line_number":469,"context_line":"                # CleanableManager"},{"line_number":470,"context_line":"                if (volume[\u0027shared_targets\u0027] and"},{"line_number":471,"context_line":"                        self.stats.get(\u0027shared_targets\u0027, True)):"},{"line_number":472,"context_line":"                    self.db.volume_update(ctxt.elevated(),"},{"line_number":473,"context_line":"                                          volume.id,"},{"line_number":474,"context_line":"                                          {\u0027shared_targets\u0027: False})"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        except Exception:"},{"line_number":477,"context_line":"            LOG.exception(\"Error during re-export on driver init.\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_c7dd0743","line":474,"range":{"start_line":470,"start_character":15,"end_line":474,"end_character":68},"in_reply_to":"7f515b1d_87af0fe2","updated":"2017-09-26 19:36:39.000000000","message":"Awww crap!!  I knew I was forgetting something :)","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4ab3fd09a3614337398378ebb9312cfb8e762821","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                                                  {\u0027status\u0027: \u0027in-use\u0027})"},{"line_number":468,"context_line":"                # All other cleanups are processed by parent class"},{"line_number":469,"context_line":"                # CleanableManager"},{"line_number":470,"context_line":"                if (volume[\u0027shared_targets\u0027] and"},{"line_number":471,"context_line":"                        self.stats.get(\u0027shared_targets\u0027, True)):"},{"line_number":472,"context_line":"                    self.db.volume_update(ctxt.elevated(),"},{"line_number":473,"context_line":"                                          volume.id,"},{"line_number":474,"context_line":"                                          {\u0027shared_targets\u0027: False})"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        except Exception:"},{"line_number":477,"context_line":"            LOG.exception(\"Error during re-export on driver init.\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_1117d9ef","line":474,"range":{"start_line":470,"start_character":15,"end_line":474,"end_character":68},"in_reply_to":"7f515b1d_87af0fe2","updated":"2017-09-28 00:31:25.000000000","message":"Done","commit_id":"fe08df604a54bbbd2e3c899f6152a76cd1dfe474"}]}
