)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7b469428e413b654e596bafaf1372e02a0a57ff5","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This patch also ensures that if soft-affinity or soft-anti-affinity"},{"line_number":16,"context_line":"is requested and the proper Weigher is not configured then"},{"line_number":17,"context_line":"the an exception is raised with an understandable error message."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I65b7a568ee185069a7c785ee2633a0157690e3f6"},{"line_number":20,"context_line":"Implements: blueprint soft-affinity-for-server-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":56,"id":"7a740942_f6c1f84e","line":17,"updated":"2015-12-13 18:17:16.000000000","message":"s/the//","commit_id":"d3cbd121f5f25736f35ffaab74077a1bb87e086a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"b1ccaec5394735457a568f6b1e8f018ea131703d","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This patch also ensures that if soft-affinity or soft-anti-affinity"},{"line_number":16,"context_line":"is requested and the proper Weigher is not configured then"},{"line_number":17,"context_line":"the an exception is raised with an understandable error message."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I65b7a568ee185069a7c785ee2633a0157690e3f6"},{"line_number":20,"context_line":"Implements: blueprint soft-affinity-for-server-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":58,"id":"1a7b0d38_f403e974","line":17,"updated":"2015-12-22 17:25:35.000000000","message":"s/then the an/then an/","commit_id":"3906d8afcb2432c880d3169b33cad6834cd49453"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"38ec855adcc507b3c528ae1ca710e9ead1572c0d","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This patch also ensures that if soft-affinity or soft-anti-affinity"},{"line_number":16,"context_line":"is requested and the proper Weigher is not configured then"},{"line_number":17,"context_line":"the an exception is raised with an understandable error message."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I65b7a568ee185069a7c785ee2633a0157690e3f6"},{"line_number":20,"context_line":"Implements: blueprint soft-affinity-for-server-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":58,"id":"fa69d971_d1c80177","line":17,"in_reply_to":"1a7b0d38_f403e974","updated":"2015-12-31 12:09:31.000000000","message":"Done","commit_id":"3906d8afcb2432c880d3169b33cad6834cd49453"}],"nova/scheduler/utils.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"bc76738c4f21e6987c1ab78c5ce33ec7ca094655","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    except exception.InstanceGroupNotFound:"},{"line_number":310,"context_line":"        return"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    policies \u003d set((\u0027anti-affinity\u0027, \u0027affinity\u0027, \u0027soft-affinity\u0027,"},{"line_number":313,"context_line":"                    \u0027soft-anti-affinity\u0027))"},{"line_number":314,"context_line":"    if any((policy in policies) for policy in group.policies):"},{"line_number":315,"context_line":"        if not _SUPPORTS_AFFINITY and \u0027affinity\u0027 in group.policies:"},{"line_number":316,"context_line":"            msg \u003d _(\"ServerGroupAffinityFilter not configured\")"},{"line_number":317,"context_line":"            LOG.error(msg)"},{"line_number":318,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":319,"context_line":"        if not _SUPPORTS_ANTI_AFFINITY and \u0027anti-affinity\u0027 in group.policies:"},{"line_number":320,"context_line":"            msg \u003d _(\"ServerGroupAntiAffinityFilter not configured\")"},{"line_number":321,"context_line":"            LOG.error(msg)"},{"line_number":322,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":323,"context_line":"        if (not _SUPPORTS_SOFT_AFFINITY"},{"line_number":324,"context_line":"                and \u0027soft-affinity\u0027 in group.policies):"},{"line_number":325,"context_line":"            msg \u003d _(\"ServerGroupSoftAffinityWeigher not configured\")"},{"line_number":326,"context_line":"            LOG.error(msg)"},{"line_number":327,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":328,"context_line":"        if (not _SUPPORTS_SOFT_ANTI_AFFINITY"},{"line_number":329,"context_line":"                and \u0027soft-anti-affinity\u0027 in group.policies):"},{"line_number":330,"context_line":"            msg \u003d _(\"ServerGroupSoftAntiAffinityWeigher not configured\")"},{"line_number":331,"context_line":"            LOG.error(msg)"},{"line_number":332,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":333,"context_line":"        group_hosts \u003d set(group.get_hosts())"}],"source_content_type":"text/x-python","patch_set":54,"id":"7a740942_865eb710","line":330,"range":{"start_line":312,"start_character":4,"end_line":330,"end_character":72},"updated":"2015-12-04 18:25:08.000000000","message":"This stuff is probably a separate patch to adding the members field.","commit_id":"f45ba6a3faddbb24d0254c155eaede5e0f7f73ac"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b306a9a5c5de54e4ce3cc28e7071e2cab6f6dced","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    except exception.InstanceGroupNotFound:"},{"line_number":310,"context_line":"        return"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    policies \u003d set((\u0027anti-affinity\u0027, \u0027affinity\u0027, \u0027soft-affinity\u0027,"},{"line_number":313,"context_line":"                    \u0027soft-anti-affinity\u0027))"},{"line_number":314,"context_line":"    if any((policy in policies) for policy in group.policies):"},{"line_number":315,"context_line":"        if not _SUPPORTS_AFFINITY and \u0027affinity\u0027 in group.policies:"},{"line_number":316,"context_line":"            msg \u003d _(\"ServerGroupAffinityFilter not configured\")"},{"line_number":317,"context_line":"            LOG.error(msg)"},{"line_number":318,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":319,"context_line":"        if not _SUPPORTS_ANTI_AFFINITY and \u0027anti-affinity\u0027 in group.policies:"},{"line_number":320,"context_line":"            msg \u003d _(\"ServerGroupAntiAffinityFilter not configured\")"},{"line_number":321,"context_line":"            LOG.error(msg)"},{"line_number":322,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":323,"context_line":"        if (not _SUPPORTS_SOFT_AFFINITY"},{"line_number":324,"context_line":"                and \u0027soft-affinity\u0027 in group.policies):"},{"line_number":325,"context_line":"            msg \u003d _(\"ServerGroupSoftAffinityWeigher not configured\")"},{"line_number":326,"context_line":"            LOG.error(msg)"},{"line_number":327,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":328,"context_line":"        if (not _SUPPORTS_SOFT_ANTI_AFFINITY"},{"line_number":329,"context_line":"                and \u0027soft-anti-affinity\u0027 in group.policies):"},{"line_number":330,"context_line":"            msg \u003d _(\"ServerGroupSoftAntiAffinityWeigher not configured\")"},{"line_number":331,"context_line":"            LOG.error(msg)"},{"line_number":332,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":333,"context_line":"        group_hosts \u003d set(group.get_hosts())"}],"source_content_type":"text/x-python","patch_set":54,"id":"7a740942_08fcd8b6","line":330,"range":{"start_line":312,"start_character":4,"end_line":330,"end_character":72},"in_reply_to":"7a740942_12868113","updated":"2015-12-07 14:44:03.000000000","message":"I can move this 17 lines out of this patch if you insist but I think the current patch has manageable size.","commit_id":"f45ba6a3faddbb24d0254c155eaede5e0f7f73ac"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3027275901a2958586092881600a0e17f7d73864","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    except exception.InstanceGroupNotFound:"},{"line_number":310,"context_line":"        return"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    policies \u003d set((\u0027anti-affinity\u0027, \u0027affinity\u0027, \u0027soft-affinity\u0027,"},{"line_number":313,"context_line":"                    \u0027soft-anti-affinity\u0027))"},{"line_number":314,"context_line":"    if any((policy in policies) for policy in group.policies):"},{"line_number":315,"context_line":"        if not _SUPPORTS_AFFINITY and \u0027affinity\u0027 in group.policies:"},{"line_number":316,"context_line":"            msg \u003d _(\"ServerGroupAffinityFilter not configured\")"},{"line_number":317,"context_line":"            LOG.error(msg)"},{"line_number":318,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":319,"context_line":"        if not _SUPPORTS_ANTI_AFFINITY and \u0027anti-affinity\u0027 in group.policies:"},{"line_number":320,"context_line":"            msg \u003d _(\"ServerGroupAntiAffinityFilter not configured\")"},{"line_number":321,"context_line":"            LOG.error(msg)"},{"line_number":322,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":323,"context_line":"        if (not _SUPPORTS_SOFT_AFFINITY"},{"line_number":324,"context_line":"                and \u0027soft-affinity\u0027 in group.policies):"},{"line_number":325,"context_line":"            msg \u003d _(\"ServerGroupSoftAffinityWeigher not configured\")"},{"line_number":326,"context_line":"            LOG.error(msg)"},{"line_number":327,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":328,"context_line":"        if (not _SUPPORTS_SOFT_ANTI_AFFINITY"},{"line_number":329,"context_line":"                and \u0027soft-anti-affinity\u0027 in group.policies):"},{"line_number":330,"context_line":"            msg \u003d _(\"ServerGroupSoftAntiAffinityWeigher not configured\")"},{"line_number":331,"context_line":"            LOG.error(msg)"},{"line_number":332,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":333,"context_line":"        group_hosts \u003d set(group.get_hosts())"}],"source_content_type":"text/x-python","patch_set":54,"id":"7a740942_12868113","line":330,"range":{"start_line":312,"start_character":4,"end_line":330,"end_character":72},"in_reply_to":"7a740942_865eb710","updated":"2015-12-04 20:24:17.000000000","message":"Not a big deal though - only if it makes sense to you.","commit_id":"f45ba6a3faddbb24d0254c155eaede5e0f7f73ac"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"bc76738c4f21e6987c1ab78c5ce33ec7ca094655","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        filter_properties[\u0027group_updated\u0027] \u003d True"},{"line_number":355,"context_line":"        filter_properties[\u0027group_hosts\u0027] \u003d group_info.hosts"},{"line_number":356,"context_line":"        filter_properties[\u0027group_policies\u0027] \u003d group_info.policies"},{"line_number":357,"context_line":"        filter_properties[\u0027group_members\u0027] \u003d group_info.members"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"def retry_on_timeout(retries\u003d1):"}],"source_content_type":"text/x-python","patch_set":54,"id":"7a740942_065ba72f","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":63},"updated":"2015-12-04 18:25:08.000000000","message":"If we wanted to be pedantic - you can\u0027t just do this as it adds a field to an unversioned dict that gets sent over RPC.\n\nYou would have to rebase your whole set on this and probably add some more code: https://review.openstack.org/#/c/203078/35/nova/scheduler/rpcapi.py,cm\n\nIn practice it\u0027s probably not a big deal since it\u0027s purely additive and in current supported upgrade scenarios, we rool conductors and scheduler forward in a lockstep.\n\nWould defer to dansmith on this one TBH","commit_id":"f45ba6a3faddbb24d0254c155eaede5e0f7f73ac"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1c799f7937dd131f0c8a22d2c6a5c8755d3126a9","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        filter_properties[\u0027group_updated\u0027] \u003d True"},{"line_number":355,"context_line":"        filter_properties[\u0027group_hosts\u0027] \u003d group_info.hosts"},{"line_number":356,"context_line":"        filter_properties[\u0027group_policies\u0027] \u003d group_info.policies"},{"line_number":357,"context_line":"        filter_properties[\u0027group_members\u0027] \u003d group_info.members"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"def retry_on_timeout(retries\u003d1):"}],"source_content_type":"text/x-python","patch_set":54,"id":"7a740942_b7a43fa6","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":63},"in_reply_to":"7a740942_065ba72f","updated":"2015-12-04 19:56:25.000000000","message":"Yeah, I think we should rebase on top of that.","commit_id":"f45ba6a3faddbb24d0254c155eaede5e0f7f73ac"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b306a9a5c5de54e4ce3cc28e7071e2cab6f6dced","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        filter_properties[\u0027group_updated\u0027] \u003d True"},{"line_number":355,"context_line":"        filter_properties[\u0027group_hosts\u0027] \u003d group_info.hosts"},{"line_number":356,"context_line":"        filter_properties[\u0027group_policies\u0027] \u003d group_info.policies"},{"line_number":357,"context_line":"        filter_properties[\u0027group_members\u0027] \u003d group_info.members"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"def retry_on_timeout(retries\u003d1):"}],"source_content_type":"text/x-python","patch_set":54,"id":"7a740942_28a3d49e","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":63},"in_reply_to":"7a740942_b7a43fa6","updated":"2015-12-07 14:44:03.000000000","message":"I rebased the patch-set. As it is now at an end of a long chain I feel that it might jeopardize the possibility to merge it in Mitaka, as this is a non-priority bp so it can only be merged latest in Mitaka-2.","commit_id":"f45ba6a3faddbb24d0254c155eaede5e0f7f73ac"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"4b28fffb337fc2b0a994e77be250670b62cd58fb","unresolved":false,"context_lines":[{"line_number":332,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":333,"context_line":"        group_hosts \u003d set(group.get_hosts())"},{"line_number":334,"context_line":"        user_hosts \u003d set(user_group_hosts) if user_group_hosts else set()"},{"line_number":335,"context_line":"        return GroupDetails(hosts\u003duser_hosts | group_hosts,"},{"line_number":336,"context_line":"                            policies\u003dgroup.policies, members\u003dgroup.members)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def setup_instance_group(context, request_spec, filter_properties):"}],"source_content_type":"text/x-python","patch_set":55,"id":"7a740942_3970bda3","line":336,"range":{"start_line":335,"start_character":14,"end_line":336,"end_character":75},"updated":"2015-12-08 17:34:37.000000000","message":"I would not block the patch on this - but right now since we only have objects - we should really be just returning an object from this method and just sticking it on the request_spec object.\n\nUp to you if you want to do it.","commit_id":"56fa3c7e1626e2af010036488f0d74fd5ba0c92f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dd3b24afdd027eae7312b7a51d8723877e9ad62e","unresolved":false,"context_lines":[{"line_number":332,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":333,"context_line":"        group_hosts \u003d set(group.get_hosts())"},{"line_number":334,"context_line":"        user_hosts \u003d set(user_group_hosts) if user_group_hosts else set()"},{"line_number":335,"context_line":"        return GroupDetails(hosts\u003duser_hosts | group_hosts,"},{"line_number":336,"context_line":"                            policies\u003dgroup.policies, members\u003dgroup.members)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def setup_instance_group(context, request_spec, filter_properties):"}],"source_content_type":"text/x-python","patch_set":55,"id":"7a740942_8805287b","line":336,"range":{"start_line":335,"start_character":14,"end_line":336,"end_character":75},"in_reply_to":"7a740942_3970bda3","updated":"2015-12-14 08:16:23.000000000","message":"What we can do here is to return an InstanceGroup object that is then attached to the RequestSpec object. I feel that needs a separate patch. As I have to wait for the request spec patches to land before this can land I will look into the possibility to add a refactor patch to the chain as you suggested.","commit_id":"56fa3c7e1626e2af010036488f0d74fd5ba0c92f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2652ba67cd6dd20b26df6f9b0f1056fc92977fcb","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":320,"context_line":"        if (not _SUPPORTS_SOFT_ANTI_AFFINITY"},{"line_number":321,"context_line":"                and \u0027soft-anti-affinity\u0027 in group.policies):"},{"line_number":322,"context_line":"            msg \u003d _(\"ServerGroupSoftAntiAffinityWeigher not configured\")"},{"line_number":323,"context_line":"            LOG.error(msg)"},{"line_number":324,"context_line":"            raise exception.UnsupportedPolicyException(reason\u003dmsg)"},{"line_number":325,"context_line":"        group_hosts \u003d set(group.get_hosts())"}],"source_content_type":"text/x-python","patch_set":61,"id":"fa69d971_1da76350","line":322,"updated":"2016-01-04 12:17:56.000000000","message":"I wonder if we should warn about the weight_multiplyer being negative, around here? But that could be a follow up thing.","commit_id":"dc5612e0487e5ce39b66873741eef236f531f4d7"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b7cc15476d2865fb588d62a2d45e2ff57e69f879","unresolved":false,"context_lines":[{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":39,"context_line":"CONF.import_opt(\u0027scheduler_default_filters\u0027, \u0027nova.scheduler.host_manager\u0027)"},{"line_number":40,"context_line":"CONF.import_opt(\u0027scheduler_weight_classes\u0027, \u0027nova.scheduler.host_manager\u0027)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"GroupDetails \u003d collections.namedtuple(\u0027GroupDetails\u0027, [\u0027hosts\u0027, \u0027policies\u0027,"},{"line_number":43,"context_line":"                                                       \u0027members\u0027])"}],"source_content_type":"text/x-python","patch_set":64,"id":"fa69d971_f36be9ef","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":74},"updated":"2016-01-07 20:28:20.000000000","message":"These two imports are not needed and should be removed.","commit_id":"e3396e1edcac650c9ba6447033ed109c48b4099e"}],"nova/tests/unit/scheduler/test_scheduler_utils.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2ce96100999719aee6394ea8a3dbe3c6ea7ffb37","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            mock.patch.object(objects.InstanceGroup, \u0027get_hosts\u0027,"},{"line_number":312,"context_line":"                              return_value\u003d[\u0027hostA\u0027]),"},{"line_number":313,"context_line":"            mock.patch.object(objects.InstanceGroup, \u0027count_members_by_hosts\u0027,"},{"line_number":314,"context_line":"                              return_value\u003d{\u0027hostA\u0027: 1}),"},{"line_number":315,"context_line":"        ) as (get_group, get_hosts, count_members_by_hosts):"},{"line_number":316,"context_line":"            scheduler_utils._SUPPORTS_ANTI_AFFINITY \u003d None"},{"line_number":317,"context_line":"            scheduler_utils._SUPPORTS_AFFINITY \u003d None"}],"source_content_type":"text/x-python","patch_set":17,"id":"da86d52c_fc83b153","line":314,"updated":"2015-02-03 12:31:55.000000000","message":"this mock is useless, the code never execute at there.","commit_id":"746b41f8efcd5543ce840abd6ff31e6051a102a2"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"d054bdefb25c9e065847ab676abf7fa02495a0ac","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            mock.patch.object(objects.InstanceGroup, \u0027get_hosts\u0027,"},{"line_number":312,"context_line":"                              return_value\u003d[\u0027hostA\u0027]),"},{"line_number":313,"context_line":"            mock.patch.object(objects.InstanceGroup, \u0027count_members_by_hosts\u0027,"},{"line_number":314,"context_line":"                              return_value\u003d{\u0027hostA\u0027: 1}),"},{"line_number":315,"context_line":"        ) as (get_group, get_hosts, count_members_by_hosts):"},{"line_number":316,"context_line":"            scheduler_utils._SUPPORTS_ANTI_AFFINITY \u003d None"},{"line_number":317,"context_line":"            scheduler_utils._SUPPORTS_AFFINITY \u003d None"}],"source_content_type":"text/x-python","patch_set":17,"id":"da86d52c_c759b65b","line":314,"in_reply_to":"da86d52c_fc83b153","updated":"2015-02-03 13:11:55.000000000","message":"Done","commit_id":"746b41f8efcd5543ce840abd6ff31e6051a102a2"}]}
