)]}'
{"cinder/api/contrib/volume_actions.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d3601a78f8b302c9f2a0aa05d64252f43a8b077a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        if instance_uuid and host_name:"},{"line_number":90,"context_line":"            msg \u003d _(\"Invalid request to attach volume to an \""},{"line_number":91,"context_line":"                    \"instance %(instance_uuid)s and a \""},{"line_number":92,"context_line":"                    \"host %(host_name)s on same time\") % (locals())"},{"line_number":93,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":"        elif instance_uuid is None and host_name is None:"},{"line_number":95,"context_line":"            msg \u003d _(\"Invalid request to attach volume to an invalid target\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FqhY%3D","line":92,"updated":"2013-06-25 17:58:35.000000000","message":"s/on/at/\n\nor \n\ns/on same time/simultaneously/","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        if instance_uuid and host_name:"},{"line_number":90,"context_line":"            msg \u003d _(\"Invalid request to attach volume to an \""},{"line_number":91,"context_line":"                    \"instance %(instance_uuid)s and a \""},{"line_number":92,"context_line":"                    \"host %(host_name)s on same time\") % (locals())"},{"line_number":93,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":"        elif instance_uuid is None and host_name is None:"},{"line_number":95,"context_line":"            msg \u003d _(\"Invalid request to attach volume to an invalid target\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpXI%3D","line":92,"in_reply_to":"AAAAPn%2F%2FqhY%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/common/utils.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":4,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":5,"context_line":"# Copyright 2010-2011 OpenStack LLC."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpiQ%3D","line":2,"updated":"2013-06-26 00:48:17.000000000","message":"this file seems a duplicate of what service_is_up() cinder/utils.py although it does it bit more than service_is_up().","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":4,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":5,"context_line":"# Copyright 2010-2011 OpenStack LLC."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpP4%3D","line":2,"in_reply_to":"AAAAPn%2F%2FpiQ%3D","updated":"2013-06-26 06:48:00.000000000","message":"This function and file will be removed.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/db/sqlalchemy/migrate_repo/versions/011_add_attach_host_column.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":25,"context_line":"    attach_host \u003d Column(\u0027attach_host\u0027, String(255))"},{"line_number":26,"context_line":"    volumes.create_column(attach_host)"},{"line_number":27,"context_line":"    volumes.update().values(attach_host\u003dNone).execute()"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fpf0%3D","line":25,"updated":"2013-06-26 00:48:17.000000000","message":"attached_host?","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":25,"context_line":"    attach_host \u003d Column(\u0027attach_host\u0027, String(255))"},{"line_number":26,"context_line":"    volumes.create_column(attach_host)"},{"line_number":27,"context_line":"    volumes.update().values(attach_host\u003dNone).execute()"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpVg%3D","line":25,"in_reply_to":"AAAAPn%2F%2Fpf0%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/db/sqlalchemy/migrate_repo/versions/012_sqlite_downgrade.sql":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fe6dcc3f681c55d6e5c9c9fec082bbe59bedad1e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"BEGIN TRANSACTION;"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"    CREATE TABLE volumes_v11 ("},{"line_number":4,"context_line":"\t\tcreated_at DATETIME,"},{"line_number":5,"context_line":"\t\tupdated_at DATETIME,"},{"line_number":6,"context_line":"\t\tdeleted_at DATETIME,"}],"source_content_type":"text/x-sql","patch_set":4,"id":"AAAAPn%2F%2FhbA%3D","line":3,"updated":"2013-06-28 15:45:06.000000000","message":"Need to remove the tabs, pep8/flake8 won\u0027t check the sql scripts.","commit_id":"46ba76370428e531e4b3afa274376c96351e4e95"}],"cinder/exception.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"class InvalidHost(Invalid):"},{"line_number":216,"context_line":"    message \u003d _(\"Expected a host but received %(host)s.\")"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"class NotFound(CinderException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fpec%3D","line":216,"updated":"2013-06-26 00:48:17.000000000","message":"This exception message doesn\u0027t make sense.  Based on what you are testing in cinder/volume.py for a valid host, it\u0027s better be \u0027unknown host received\u0027.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"class InvalidHost(Invalid):"},{"line_number":216,"context_line":"    message \u003d _(\"Expected a host but received %(host)s.\")"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"class NotFound(CinderException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpVI%3D","line":216,"in_reply_to":"AAAAPn%2F%2Fpec%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/tests/api/contrib/test_admin_actions.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        # cleanup"},{"line_number":353,"context_line":"        svc.stop()"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_attach_in_instance_used_volume(self):"},{"line_number":356,"context_line":"        \"\"\"Test that attaching to an in-use volume fails.\"\"\""},{"line_number":357,"context_line":"        # admin context"},{"line_number":358,"context_line":"        ctx \u003d context.RequestContext(\u0027admin\u0027, \u0027fake\u0027, True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fpe0%3D","line":355,"updated":"2013-06-26 00:48:17.000000000","message":"better change to \u0027test_attach_in_used_volume_by_instance()","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        # cleanup"},{"line_number":353,"context_line":"        svc.stop()"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_attach_in_instance_used_volume(self):"},{"line_number":356,"context_line":"        \"\"\"Test that attaching to an in-use volume fails.\"\"\""},{"line_number":357,"context_line":"        # admin context"},{"line_number":358,"context_line":"        ctx \u003d context.RequestContext(\u0027admin\u0027, \u0027fake\u0027, True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpVA%3D","line":355,"in_reply_to":"AAAAPn%2F%2Fpe0%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        # cleanup"},{"line_number":376,"context_line":"        svc.stop()"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_attach_in_host_used_volume(self):"},{"line_number":379,"context_line":"        \"\"\"Test that attaching to an in-use volume fails.\"\"\""},{"line_number":380,"context_line":"        # admin context"},{"line_number":381,"context_line":"        ctx \u003d context.RequestContext(\u0027admin\u0027, \u0027fake\u0027, True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fpew%3D","line":378,"updated":"2013-06-26 00:48:17.000000000","message":"change to \u0027test_attach_in_used_volume_by_host()\u0027","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        # cleanup"},{"line_number":376,"context_line":"        svc.stop()"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_attach_in_host_used_volume(self):"},{"line_number":379,"context_line":"        \"\"\"Test that attaching to an in-use volume fails.\"\"\""},{"line_number":380,"context_line":"        # admin context"},{"line_number":381,"context_line":"        ctx \u003d context.RequestContext(\u0027admin\u0027, \u0027fake\u0027, True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpU8%3D","line":378,"in_reply_to":"AAAAPn%2F%2Fpew%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/volume/drivers/coraid.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":414,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":415,"context_line":"        pass"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"    def attach_volume(self, context, volume, instance_uuid, host_name,"},{"line_number":418,"context_line":"                      mountpoint):"},{"line_number":419,"context_line":"        pass"},{"line_number":420,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fpfs%3D","line":417,"updated":"2013-06-26 00:48:17.000000000","message":"should just remove this empty/placeholder function.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":414,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":415,"context_line":"        pass"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"    def attach_volume(self, context, volume, instance_uuid, host_name,"},{"line_number":418,"context_line":"                      mountpoint):"},{"line_number":419,"context_line":"        pass"},{"line_number":420,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpUo%3D","line":417,"in_reply_to":"AAAAPn%2F%2Fpfs%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/volume/drivers/scality.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        pass"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def attach_volume(self, context, volume_id, instance_uuid, host_name,"},{"line_number":212,"context_line":"                      mountpoint):"},{"line_number":213,"context_line":"        \"\"\" Callback for volume attached to instance or host.\"\"\""},{"line_number":214,"context_line":"        pass"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fpfk%3D","line":212,"updated":"2013-06-26 00:48:17.000000000","message":"same comment as in coraid driver.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        pass"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def attach_volume(self, context, volume_id, instance_uuid, host_name,"},{"line_number":212,"context_line":"                      mountpoint):"},{"line_number":213,"context_line":"        \"\"\" Callback for volume attached to instance or host.\"\"\""},{"line_number":214,"context_line":"        pass"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpUY%3D","line":212,"in_reply_to":"AAAAPn%2F%2Fpfk%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"}],"cinder/volume/manager.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        @utils.synchronized(volume_id, external\u003dTrue)"},{"line_number":555,"context_line":"        def do_attach():"},{"line_number":556,"context_line":"            def _check_host(host_name):"},{"line_number":557,"context_line":"                \"\"\"Makes sure that the host exists.\"\"\""},{"line_number":558,"context_line":"                listed_hosts \u003d common_utils.list_hosts(context)"},{"line_number":559,"context_line":"                for h in listed_hosts:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpgY%3D","line":556,"updated":"2013-06-26 00:48:17.000000000","message":"So only those cinder-volume services are entitled to attach a volume? Why? I don\u0027t think this should be a limit.  For glance usage, do you expect glance host to run cinder-volume as well?","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        @utils.synchronized(volume_id, external\u003dTrue)"},{"line_number":555,"context_line":"        def do_attach():"},{"line_number":556,"context_line":"            def _check_host(host_name):"},{"line_number":557,"context_line":"                \"\"\"Makes sure that the host exists.\"\"\""},{"line_number":558,"context_line":"                listed_hosts \u003d common_utils.list_hosts(context)"},{"line_number":559,"context_line":"                for h in listed_hosts:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpQI%3D","line":556,"in_reply_to":"AAAAPn%2F%2FpgY%3D","updated":"2013-06-26 06:48:00.000000000","message":"Maybe it\u0027s an option. I agree to remove this limitation in current stage, to allow any host to require attach the volume to it. the host name will be sanitized.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"a7895ff207da1e0dc5cd74d30fce7d13634c1312","unresolved":false,"context_lines":[{"line_number":574,"context_line":"                        instance_uuid):"},{"line_number":575,"context_line":"                    msg \u003d _(\"being attached by another instance\")"},{"line_number":576,"context_line":"                    raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":577,"context_line":"                if (volume[\u0027attached_host\u0027] and volume[\u0027attached_host\u0027] !\u003d"},{"line_number":578,"context_line":"                        host_name):"},{"line_number":579,"context_line":"                    msg \u003d _(\"being attached by another host\")"},{"line_number":580,"context_line":"                    raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fo2M%3D","line":577,"updated":"2013-06-26 07:24:22.000000000","message":"I\u0027m thinking above these two checks, if they were checked to avoid being attached while attached.  I think it\u0027s better checking them in API level since all the needed information is also available there?","commit_id":"de39a5be4b9503fb49f99ca00caaccf26971c325"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"1e9c508557832f91d49f65352beeada121d38be1","unresolved":false,"context_lines":[{"line_number":574,"context_line":"                        instance_uuid):"},{"line_number":575,"context_line":"                    msg \u003d _(\"being attached by another instance\")"},{"line_number":576,"context_line":"                    raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":577,"context_line":"                if (volume[\u0027attached_host\u0027] and volume[\u0027attached_host\u0027] !\u003d"},{"line_number":578,"context_line":"                        host_name):"},{"line_number":579,"context_line":"                    msg \u003d _(\"being attached by another host\")"},{"line_number":580,"context_line":"                    raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fox4%3D","line":577,"in_reply_to":"AAAAPn%2F%2Fo2M%3D","updated":"2013-06-26 08:01:36.000000000","message":"IMO, here is OK, there is no intensive requirement to move it to API layer also.","commit_id":"de39a5be4b9503fb49f99ca00caaccf26971c325"}],"cinder/volume/rpcapi.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0cbfc8295d4aea7976254022bec4fd665c6d4a10","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                  topic\u003drpc.queue_get_for(ctxt, self.topic, host))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"},{"line_number":90,"context_line":"                      mountpoint):"},{"line_number":91,"context_line":"        return self.call(ctxt, self.make_msg(\u0027attach_volume\u0027,"},{"line_number":92,"context_line":"                                             volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":93,"context_line":"                                             instance_uuid\u003dinstance_uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpgE%3D","line":90,"updated":"2013-06-26 00:48:17.000000000","message":"Yes, please bump RPC minor version up.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d3601a78f8b302c9f2a0aa05d64252f43a8b077a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                  topic\u003drpc.queue_get_for(ctxt, self.topic, host))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"},{"line_number":90,"context_line":"                      mountpoint):"},{"line_number":91,"context_line":"        return self.call(ctxt, self.make_msg(\u0027attach_volume\u0027,"},{"line_number":92,"context_line":"                                             volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":93,"context_line":"                                             instance_uuid\u003dinstance_uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fqe8%3D","line":90,"updated":"2013-06-25 17:58:35.000000000","message":"we\u0027ll need to bump the RPC version on this change.","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                  topic\u003drpc.queue_get_for(ctxt, self.topic, host))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"},{"line_number":90,"context_line":"                      mountpoint):"},{"line_number":91,"context_line":"        return self.call(ctxt, self.make_msg(\u0027attach_volume\u0027,"},{"line_number":92,"context_line":"                                             volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":93,"context_line":"                                             instance_uuid\u003dinstance_uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpTU%3D","line":90,"in_reply_to":"AAAAPn%2F%2FpgE%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"775e5874017be2902aa8acb44b1dc65e4fc3eb33","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                  topic\u003drpc.queue_get_for(ctxt, self.topic, host))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def attach_volume(self, ctxt, volume, instance_uuid, host_name,"},{"line_number":90,"context_line":"                      mountpoint):"},{"line_number":91,"context_line":"        return self.call(ctxt, self.make_msg(\u0027attach_volume\u0027,"},{"line_number":92,"context_line":"                                             volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":93,"context_line":"                                             instance_uuid\u003dinstance_uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FpTY%3D","line":90,"in_reply_to":"AAAAPn%2F%2Fqe8%3D","updated":"2013-06-26 06:48:00.000000000","message":"Done","commit_id":"0a919bee4d49f102ac73daf1e3c8cbdbecda5211"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"a7895ff207da1e0dc5cd74d30fce7d13634c1312","unresolved":false,"context_lines":[{"line_number":41,"context_line":"              allow_reschedule arguments to create_volume()."},{"line_number":42,"context_line":"        1.5 - Add accept_transfer."},{"line_number":43,"context_line":"        1.6 - Add extend_volume."},{"line_number":44,"context_line":"        1.7 - Adds attach volume to host option to attach_volume."},{"line_number":45,"context_line":"    \u0027\u0027\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fo18%3D","line":44,"updated":"2013-06-26 07:24:22.000000000","message":"the description is confusing, how about \u0027Adds host_name parameter to attach_volume() to allow attaching to host rather than instance\u0027.","commit_id":"de39a5be4b9503fb49f99ca00caaccf26971c325"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"1e9c508557832f91d49f65352beeada121d38be1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"              allow_reschedule arguments to create_volume()."},{"line_number":42,"context_line":"        1.5 - Add accept_transfer."},{"line_number":43,"context_line":"        1.6 - Add extend_volume."},{"line_number":44,"context_line":"        1.7 - Adds attach volume to host option to attach_volume."},{"line_number":45,"context_line":"    \u0027\u0027\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FoyE%3D","line":44,"in_reply_to":"AAAAPn%2F%2Fo18%3D","updated":"2013-06-26 08:01:36.000000000","message":"Done","commit_id":"de39a5be4b9503fb49f99ca00caaccf26971c325"}]}
