)]}'
{"nova/tests/virt/xenapi/imageupload/test_glance.py":[{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"66bada728ad0f01c6e1e5ef40610b1cb018ea87d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        image_id \u003d \u0027fake_image_uuid\u0027"},{"line_number":54,"context_line":"        vdi_uuids \u003d [\u0027fake_vdi_uuid\u0027]"},{"line_number":55,"context_line":"        instance \u003d {\u0027uuid\u0027: \u0027blah\u0027,"},{"line_number":56,"context_line":"                    \u0027name\u0027: \u0027asdf\u0027,"},{"line_number":57,"context_line":"                    \u0027system_metadata\u0027: {\u0027image_xenapi_use_agent\u0027: \u0027true\u0027}}"},{"line_number":58,"context_line":"        instance.update(properties)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8vQ%3D","line":56,"updated":"2013-05-16 13:04:43.000000000","message":"What is this \"name\" attribute?","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4f3575b2ec38fc0a33f5147dd32d92dcaeaefbd8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        image_id \u003d \u0027fake_image_uuid\u0027"},{"line_number":54,"context_line":"        vdi_uuids \u003d [\u0027fake_vdi_uuid\u0027]"},{"line_number":55,"context_line":"        instance \u003d {\u0027uuid\u0027: \u0027blah\u0027,"},{"line_number":56,"context_line":"                    \u0027name\u0027: \u0027asdf\u0027,"},{"line_number":57,"context_line":"                    \u0027system_metadata\u0027: {\u0027image_xenapi_use_agent\u0027: \u0027true\u0027}}"},{"line_number":58,"context_line":"        instance.update(properties)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8jg%3D","line":56,"in_reply_to":"AAAAO3%2F%2F8vQ%3D","updated":"2013-05-16 14:18:58.000000000","message":"dunno how that got there, but asdf means it was probably me, will check that.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"}],"nova/virt/xenapi/agent.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"cf79bff5e7b1ed997be43b351fe620f6f96ca560","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                    \u0027configuration is not injected into the image. \u0027"},{"line_number":54,"context_line":"                    \u0027Used if compute_driver\u003dxenapi.XenAPIDriver and \u0027"},{"line_number":55,"context_line":"                    \u0027 flat_injected\u003dTrue\u0027),"},{"line_number":56,"context_line":"    cfg.BoolOpt(\u0027xenapi_disable_agent\u0027,"},{"line_number":57,"context_line":"               default\u003dFalse,"},{"line_number":58,"context_line":"               help\u003d\u0027Disable XenAPI agent. Reduces the amount of time \u0027"},{"line_number":59,"context_line":"                    \u0027it takes nova to detect that a VM has started, when \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FX7I%3D","line":56,"updated":"2013-05-13 08:31:21.000000000","message":"I think we should have some explanation on the differences between these two flags and how they interact - does disable_agent\u003dTrue mean that enabled_default is ignored?\nThe help comment for disable_agent should probably be moved to xenapi_agent_enabled_default","commit_id":"9c9699ca94e82cbe3a73b25bac3a9a57988b4c9c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"91b8092a1cfae072865e41291a1db4d6f054353d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                    \u0027configuration is not injected into the image. \u0027"},{"line_number":54,"context_line":"                    \u0027Used if compute_driver\u003dxenapi.XenAPIDriver and \u0027"},{"line_number":55,"context_line":"                    \u0027 flat_injected\u003dTrue\u0027),"},{"line_number":56,"context_line":"    cfg.BoolOpt(\u0027xenapi_disable_agent\u0027,"},{"line_number":57,"context_line":"               default\u003dFalse,"},{"line_number":58,"context_line":"               help\u003d\u0027Disable XenAPI agent. Reduces the amount of time \u0027"},{"line_number":59,"context_line":"                    \u0027it takes nova to detect that a VM has started, when \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FX1k%3D","line":56,"in_reply_to":"AAAAOn%2F%2FX7I%3D","updated":"2013-05-13 09:52:53.000000000","message":"hmm, I need to update this, yes.","commit_id":"9c9699ca94e82cbe3a73b25bac3a9a57988b4c9c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"cf79bff5e7b1ed997be43b351fe620f6f96ca560","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                    \u0027that VM does not have the agent installed\u0027),"},{"line_number":61,"context_line":"    cfg.BoolOpt(\u0027xenapi_agent_enabled_default\u0027,"},{"line_number":62,"context_line":"               default\u003dFalse,"},{"line_number":63,"context_line":"               help\u003d\u0027An image can have agent_enabled set to enable the agent. \u0027"},{"line_number":64,"context_line":"                    \u0027This flag is used when that property is not present to \u0027"},{"line_number":65,"context_line":"                    \u0027determine if we should use the xenapi agent\u0027),"},{"line_number":66,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FX7E%3D","line":63,"updated":"2013-05-13 08:31:21.000000000","message":"xenapi_agent_enabled_default not agent_enabled","commit_id":"9c9699ca94e82cbe3a73b25bac3a9a57988b4c9c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"91b8092a1cfae072865e41291a1db4d6f054353d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                    \u0027that VM does not have the agent installed\u0027),"},{"line_number":61,"context_line":"    cfg.BoolOpt(\u0027xenapi_agent_enabled_default\u0027,"},{"line_number":62,"context_line":"               default\u003dFalse,"},{"line_number":63,"context_line":"               help\u003d\u0027An image can have agent_enabled set to enable the agent. \u0027"},{"line_number":64,"context_line":"                    \u0027This flag is used when that property is not present to \u0027"},{"line_number":65,"context_line":"                    \u0027determine if we should use the xenapi agent\u0027),"},{"line_number":66,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FX1g%3D","line":63,"in_reply_to":"AAAAOn%2F%2FX7E%3D","updated":"2013-05-13 09:52:53.000000000","message":"erm, no, this is the glance key below, whatever that gets called.","commit_id":"9c9699ca94e82cbe3a73b25bac3a9a57988b4c9c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"cf79bff5e7b1ed997be43b351fe620f6f96ca560","unresolved":false,"context_lines":[{"line_number":68,"context_line":"CONF \u003d cfg.CONF"},{"line_number":69,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"AGENT_ENABLED_SM_KEY \u003d \"image_agent_enabled\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def _call_agent(session, instance, vm_ref, method, addl_args\u003dNone,"},{"line_number":74,"context_line":"                timeout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FX7c%3D","line":71,"updated":"2013-05-13 08:31:21.000000000","message":"I think \"enabled\" is wrong here - it should be \"image_agent_present\" otherwise \"enabled\" is confusing between the multiple uses","commit_id":"9c9699ca94e82cbe3a73b25bac3a9a57988b4c9c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"91b8092a1cfae072865e41291a1db4d6f054353d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"CONF \u003d cfg.CONF"},{"line_number":69,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"AGENT_ENABLED_SM_KEY \u003d \"image_agent_enabled\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def _call_agent(session, instance, vm_ref, method, addl_args\u003dNone,"},{"line_number":74,"context_line":"                timeout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FX1o%3D","line":71,"in_reply_to":"AAAAOn%2F%2FX7c%3D","updated":"2013-05-13 09:52:53.000000000","message":"Yeah, good point.","commit_id":"9c9699ca94e82cbe3a73b25bac3a9a57988b4c9c"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"ca55bc84e709839f6697c03c8eadc13d57c4ee84","unresolved":false,"context_lines":[{"line_number":67,"context_line":"CONF \u003d cfg.CONF"},{"line_number":68,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"AGENT_ENABLED_SM_KEY \u003d \"image_agent_enabled\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def _call_agent(session, instance, vm_ref, method, addl_args\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FXxU%3D","line":70,"updated":"2013-05-13 10:53:57.000000000","message":"Maybe rename it to SM_AGENT_ENABLED_KEY ?","commit_id":"d61ce14e730a42c0e89c0719dd6f2ebd8d457323"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b980f272ea6e2402b0c28457e50ddbb655c30443","unresolved":false,"context_lines":[{"line_number":67,"context_line":"CONF \u003d cfg.CONF"},{"line_number":68,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"AGENT_ENABLED_SM_KEY \u003d \"image_agent_enabled\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def _call_agent(session, instance, vm_ref, method, addl_args\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FXw4%3D","line":70,"in_reply_to":"AAAAOn%2F%2FXxU%3D","updated":"2013-05-13 11:02:00.000000000","message":"Its the system metadata key, hence SM_KEY","commit_id":"d61ce14e730a42c0e89c0719dd6f2ebd8d457323"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7b8edeb9a5bec6fa340c0897cac1581e590c6a4d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    cfg.BoolOpt(\u0027xenapi_agent_present_default\u0027,"},{"line_number":60,"context_line":"               default\u003dFalse,"},{"line_number":61,"context_line":"               help\u003d\u0027Determins if the xenapi agent should be used when an \u0027"},{"line_number":62,"context_line":"                    \u0027the image used does not contain a hint to declare if \u0027"},{"line_number":63,"context_line":"                    \u0027the agent is present or not. \u0027"},{"line_number":64,"context_line":"                    \u0027The hint is a glance property \"xenapi_agent_present\" \u0027"},{"line_number":65,"context_line":"                    \u0027that has the value \"true\" or \"false\". \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FUWg%3D","line":62,"updated":"2013-05-14 20:48:44.000000000","message":"s/Determins/Determines/ one line up.  And the end of that line and start of this one don\u0027t quite match up.","commit_id":"3de47fc3fae451424d1324ee429963369de83ccb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7b8edeb9a5bec6fa340c0897cac1581e590c6a4d","unresolved":false,"context_lines":[{"line_number":321,"context_line":"    return False"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"def is_agent_present(instance):"},{"line_number":325,"context_line":"    sys_meta \u003d instance[\"system_metadata\"]"},{"line_number":326,"context_line":"    if AGENT_PRESENT_SM_KEY not in sys_meta:"},{"line_number":327,"context_line":"        return CONF.xenapi_agent_present_default"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FUWQ%3D","line":324,"updated":"2013-05-14 20:48:44.000000000","message":"Looks like this was is_agent_enabled in earlier patches, and I think it\u0027s better that way, or maybe something like \"should_use_agent\".","commit_id":"3de47fc3fae451424d1324ee429963369de83ccb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7b8edeb9a5bec6fa340c0897cac1581e590c6a4d","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            return utils.bool_from_str(agent_present_raw)"},{"line_number":332,"context_line":"        else:"},{"line_number":333,"context_line":"            LOG.warn(_(\"Invalid \u0027agent_present\u0027 value. \""},{"line_number":334,"context_line":"                       \"Falling back to the default.\"), instance)"},{"line_number":335,"context_line":"            return CONF.xenapi_agent_present_default"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FUU4%3D","line":334,"updated":"2013-05-14 20:48:44.000000000","message":"instance may need to be a kwarg here.  I\u0027m not actually certain, but it couldn\u0027t hurt.","commit_id":"3de47fc3fae451424d1324ee429963369de83ccb"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"66bada728ad0f01c6e1e5ef40610b1cb018ea87d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               help\u003d\u0027Determines if the xenapi agent should be used when \u0027"},{"line_number":63,"context_line":"                    \u0027the image used does not contain a hint to declare if \u0027"},{"line_number":64,"context_line":"                    \u0027the agent is present or not. \u0027"},{"line_number":65,"context_line":"                    \u0027The hint is a glance property \"xenapi_use_agent\" \u0027"},{"line_number":66,"context_line":"                    \u0027that has the value \"true\" or \"false\". \u0027"},{"line_number":67,"context_line":"                    \u0027Note that waiting for the agent when it is not present \u0027"},{"line_number":68,"context_line":"                    \u0027will significantly increase server boot times.\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8vI%3D","line":65,"updated":"2013-05-16 13:04:43.000000000","message":"Let\u0027s use a constant instead of \"xenapi_use_agent\"","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"66bada728ad0f01c6e1e5ef40610b1cb018ea87d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"CONF \u003d cfg.CONF"},{"line_number":72,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# This equates to the glance property \"xenapi_use_agent\""},{"line_number":75,"context_line":"USE_AGENT_SM_KEY \u003d \"image_xenapi_use_agent\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8vE%3D","line":74,"updated":"2013-05-16 13:04:43.000000000","message":"Is this xenapi_use_agent -\u003e image_xenapi_use_agent key mapping done automatically? If so, why don\u0027t we use that mapping here to produce this value?","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4f3575b2ec38fc0a33f5147dd32d92dcaeaefbd8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"CONF \u003d cfg.CONF"},{"line_number":72,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# This equates to the glance property \"xenapi_use_agent\""},{"line_number":75,"context_line":"USE_AGENT_SM_KEY \u003d \"image_xenapi_use_agent\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8kY%3D","line":74,"in_reply_to":"AAAAO3%2F%2F8vE%3D","updated":"2013-05-16 14:18:58.000000000","message":"hmm that would be nice, I will see if that can be done easily given the dependency tree.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"66bada728ad0f01c6e1e5ef40610b1cb018ea87d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# This equates to the glance property \"xenapi_use_agent\""},{"line_number":75,"context_line":"USE_AGENT_SM_KEY \u003d \"image_xenapi_use_agent\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"def _call_agent(session, instance, vm_ref, method, addl_args\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8tk%3D","line":75,"updated":"2013-05-16 13:04:43.000000000","message":"Again, if this is renamed to SM_USE_AGENT_KEY, than it would look like:\n\nSM_USE_AGENT_KEY \u003d glance.SM_PREFIX + \"_\" + glance.USE_AGENT_KEY\n\nWhich speaks for itself.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4f3575b2ec38fc0a33f5147dd32d92dcaeaefbd8","unresolved":false,"context_lines":[{"line_number":72,"context_line":"CONF.register_opts(xenapi_agent_opts)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# This equates to the glance property \"xenapi_use_agent\""},{"line_number":75,"context_line":"USE_AGENT_SM_KEY \u003d \"image_xenapi_use_agent\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"def _call_agent(session, instance, vm_ref, method, addl_args\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8kQ%3D","line":75,"in_reply_to":"AAAAO3%2F%2F8tk%3D","updated":"2013-05-16 14:18:58.000000000","message":"The key is arbitrary to glance, so there is no just glance constant. But I see your point. I just consider it the \"SM_KEY\" for \"USE_AGENT\", I think both work.\n\nI might add \"USE_AGENT_GLANCE_KEY\" above, and use that in the glance image upload bit.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"66bada728ad0f01c6e1e5ef40610b1cb018ea87d","unresolved":false,"context_lines":[{"line_number":322,"context_line":"    return False"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"def should_use_agent(instance):"},{"line_number":326,"context_line":"    sys_meta \u003d instance[\"system_metadata\"]"},{"line_number":327,"context_line":"    if USE_AGENT_SM_KEY not in sys_meta:"},{"line_number":328,"context_line":"        return CONF.xenapi_use_agent_default"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8w4%3D","line":325,"updated":"2013-05-16 13:04:43.000000000","message":"maybe rename it to enabled_for, or something else (main thing is not to have agent in it) as the module will give it a namespace. agent.should_use_agent looks a bit weird.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4f3575b2ec38fc0a33f5147dd32d92dcaeaefbd8","unresolved":false,"context_lines":[{"line_number":322,"context_line":"    return False"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"def should_use_agent(instance):"},{"line_number":326,"context_line":"    sys_meta \u003d instance[\"system_metadata\"]"},{"line_number":327,"context_line":"    if USE_AGENT_SM_KEY not in sys_meta:"},{"line_number":328,"context_line":"        return CONF.xenapi_use_agent_default"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8kk%3D","line":325,"in_reply_to":"AAAAO3%2F%2F8w4%3D","updated":"2013-05-16 14:18:58.000000000","message":"enabled was considered too confusing with the main disable flag, I don\u0027t like present (I think laski made me notice this one), because this is only a hint, not definitive, should_use() seems to be the best compromise.\n\nI like agent.should_use() though, but currently I am changing this for every reviewer, so it would be good to establish some consensus before I change this again. Having said that, the name has improved each time, slowing ticking off different points of confusion.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"}],"nova/virt/xenapi/imageupload/glance.py":[{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"66bada728ad0f01c6e1e5ef40610b1cb018ea87d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if agent.USE_AGENT_SM_KEY in instance[\"system_metadata\"]:"},{"line_number":49,"context_line":"            properties[\"xenapi_use_agent\"] \u003d \\"},{"line_number":50,"context_line":"                instance[\"system_metadata\"][agent.USE_AGENT_SM_KEY]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        for attempt_num in xrange(1, max_attempts + 1):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8wI%3D","line":49,"updated":"2013-05-16 13:04:43.000000000","message":"As I understand, this is where image_xenapi_use_agent -\u003e xenapi_use_agent mapping is happening. Where does the xenapi_use_agent -\u003e image_xenapi_use_agent mapping happen?","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4f3575b2ec38fc0a33f5147dd32d92dcaeaefbd8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if agent.USE_AGENT_SM_KEY in instance[\"system_metadata\"]:"},{"line_number":49,"context_line":"            properties[\"xenapi_use_agent\"] \u003d \\"},{"line_number":50,"context_line":"                instance[\"system_metadata\"][agent.USE_AGENT_SM_KEY]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        for attempt_num in xrange(1, max_attempts + 1):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F8jk%3D","line":49,"in_reply_to":"AAAAO3%2F%2F8wI%3D","updated":"2013-05-16 14:18:58.000000000","message":"Its here:\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L1585\n\nI should probably extract that logic somewhere common.","commit_id":"6e35e084d487c01d68ceda9546a5177a06f2d492"}]}
