)]}'
{"nova/objects/instance_numa_topology.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2b2c1f064c66818ac9f3ba6998e74f43a282e5f8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027cpu_topology\u0027: obj_fields.ObjectField(\u0027VirtCPUTopology\u0027,"},{"line_number":40,"context_line":"                                               nullable\u003dTrue),"},{"line_number":41,"context_line":"        \u0027cpu_pinning_raw\u0027: obj_fields.DictOfIntegersField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        # TODO(sfinucan) - handle population with default values"},{"line_number":43,"context_line":"        \u0027cpu_policy\u0027: obj_fields.CPUAllocationPolicyField(nullable\u003dTrue),"},{"line_number":44,"context_line":"        \u0027cpu_threads_policy\u0027: obj_fields.CPUThreadAllocationPolicyField("},{"line_number":45,"context_line":"            nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_bb9f574f","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":64},"updated":"2015-11-25 12:16:08.000000000","message":"I am not sure what needs to be done here just reading the TODO tbh. fields allow for default values (although they don\u0027t work as expected most of the time).\n\nEither make it more clear as to what exactly we want to do but is not done as part of this patch... or drop this TODO.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"13d81ee11a010fd92e9fdb689a5ca3e59a8bdea9","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027cpu_topology\u0027: obj_fields.ObjectField(\u0027VirtCPUTopology\u0027,"},{"line_number":40,"context_line":"                                               nullable\u003dTrue),"},{"line_number":41,"context_line":"        \u0027cpu_pinning_raw\u0027: obj_fields.DictOfIntegersField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        # TODO(sfinucan) - handle population with default values"},{"line_number":43,"context_line":"        \u0027cpu_policy\u0027: obj_fields.CPUAllocationPolicyField(nullable\u003dTrue),"},{"line_number":44,"context_line":"        \u0027cpu_threads_policy\u0027: obj_fields.CPUThreadAllocationPolicyField("},{"line_number":45,"context_line":"            nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_8521bf4f","line":42,"in_reply_to":"9a8ffd7b_bb9f574f","updated":"2015-11-25 17:33:27.000000000","message":"I clearly meant something by this but I don\u0027t recall what. Dropped (until I remember, at least heh)","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2b2c1f064c66818ac9f3ba6998e74f43a282e5f8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                                               nullable\u003dTrue),"},{"line_number":41,"context_line":"        \u0027cpu_pinning_raw\u0027: obj_fields.DictOfIntegersField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        # TODO(sfinucan) - handle population with default values"},{"line_number":43,"context_line":"        \u0027cpu_policy\u0027: obj_fields.CPUAllocationPolicyField(nullable\u003dTrue),"},{"line_number":44,"context_line":"        \u0027cpu_threads_policy\u0027: obj_fields.CPUThreadAllocationPolicyField("},{"line_number":45,"context_line":"            nullable\u003dTrue),"},{"line_number":46,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_b6e3ee04","line":43,"range":{"start_line":43,"start_character":9,"end_line":43,"end_character":19},"updated":"2015-11-25 12:16:08.000000000","message":"I guess it makes sense to make it explicit.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9a8cd0a72589046b891260613acb2dc4b3f7f578","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            self.cpu_pinning \u003d None"},{"line_number":59,"context_line":"            self.obj_reset_changes([\u0027cpu_pinning_raw\u0027])"},{"line_number":60,"context_line":"        if \u0027cpu_policy\u0027 not in kwargs:"},{"line_number":61,"context_line":"            self.cpu_policy \u003d None"},{"line_number":62,"context_line":"            self.obj_reset_changes([\u0027cpu_policy\u0027])"},{"line_number":63,"context_line":"        if \u0027cpu_thread_policy\u0027 not in kwargs:"},{"line_number":64,"context_line":"            self.cpu_thread_policy \u003d None"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a8ffd7b_937b1c8c","line":61,"updated":"2015-11-26 10:42:36.000000000","message":"Can the field has a default value None to handle this case?","commit_id":"e994819c75ef0319ae213092edbb4d97e3031a2d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1c598bb7849a5fba190e378fab29cacc37fb744a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    # Version 1.1: Add pagesize field"},{"line_number":30,"context_line":"    # Version 1.2: Add cpu_pinning_raw and topology fields"},{"line_number":31,"context_line":"    # Version 1.3: Add cpu_policy and cpu_thread_policy fields"},{"line_number":32,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    fields \u003d {"},{"line_number":35,"context_line":"        \u0027id\u0027: obj_fields.IntegerField(),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a8ffd7b_f7905d50","line":32,"updated":"2015-12-02 10:10:46.000000000","message":"I\u0027m might be wrong here. Don\u0027t we need to support backporting the object to older versions?","commit_id":"3ecdd42241ec195042455c23ee1bdbcef7143e12"}],"nova/virt/hardware.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"79111b4128e3c509588dddcde2f183476718878e","unresolved":false,"context_lines":[{"line_number":977,"context_line":"    if flavor_threads_policy is None:"},{"line_number":978,"context_line":"        cpu_threads_policy \u003d image_threads_policy"},{"line_number":979,"context_line":"    else:"},{"line_number":980,"context_line":"        cpu_threads_policy \u003d flavor_threads_policy"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    if numa_topology:"},{"line_number":983,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_3c44f1b5","line":980,"updated":"2015-07-29 23:02:10.000000000","message":"This will result in silently ignoring thread policy conflicts between the flavor and image.  Should we maybe raise an exception as in line 965?","commit_id":"9a4a59fe1af53e56d0f05067be53bc2d59700e7b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f0e79ae3841d3fec1acc90ffe9c8cf70f7134d77","unresolved":false,"context_lines":[{"line_number":977,"context_line":"    if flavor_threads_policy is None:"},{"line_number":978,"context_line":"        cpu_threads_policy \u003d image_threads_policy"},{"line_number":979,"context_line":"    else:"},{"line_number":980,"context_line":"        cpu_threads_policy \u003d flavor_threads_policy"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    if numa_topology:"},{"line_number":983,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_030c1e3a","line":980,"in_reply_to":"3a50d1a3_3c44f1b5","updated":"2015-07-30 10:37:41.000000000","message":"Not in my opinion. The error you mentioned is raised when the image asks for \u0027shared\u0027 but the flavor limits you to \u0027dedicated\u0027. This is a conflict. However, you\u0027ll see on line 961/2 that a flavor pinning of \u0027dedicated\u0027 will result in the image pinning never being read. I\u0027ve just copied this logic.","commit_id":"9a4a59fe1af53e56d0f05067be53bc2d59700e7b"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"2881081bf0194fcedf5fbd51d0720b8c5ae6c07f","unresolved":false,"context_lines":[{"line_number":982,"context_line":"    if numa_topology:"},{"line_number":983,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"},{"line_number":984,"context_line":"        # means CPU pinning was requested"},{"line_number":985,"context_line":"        # TODO(sfinucan) Instead of using the \"magic\" described above, make use"},{"line_number":986,"context_line":"        # of the \u0027InstanceNUMACell.cpu_policy\u0027 parameter"},{"line_number":987,"context_line":"        for cell in numa_topology.cells:"},{"line_number":988,"context_line":"            cell.cpu_pinning \u003d {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_8debd112","line":985,"updated":"2015-07-28 22:30:10.000000000","message":"Which \"magic\" are we talking about here?","commit_id":"9a4a59fe1af53e56d0f05067be53bc2d59700e7b"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"bd40c16ba649aa0fc8e9550ebe29c942415f5e74","unresolved":false,"context_lines":[{"line_number":982,"context_line":"    if numa_topology:"},{"line_number":983,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"},{"line_number":984,"context_line":"        # means CPU pinning was requested"},{"line_number":985,"context_line":"        # TODO(sfinucan) Instead of using the \"magic\" described above, make use"},{"line_number":986,"context_line":"        # of the \u0027InstanceNUMACell.cpu_policy\u0027 parameter"},{"line_number":987,"context_line":"        for cell in numa_topology.cells:"},{"line_number":988,"context_line":"            cell.cpu_pinning \u003d {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_230705cb","line":985,"in_reply_to":"3a50d1a3_6ac179e3","updated":"2015-07-29 15:49:06.000000000","message":"Ah, got it. Thanks.","commit_id":"9a4a59fe1af53e56d0f05067be53bc2d59700e7b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5783acf1a372dc0b3dadf0f9b51a54a6e3b9ad2c","unresolved":false,"context_lines":[{"line_number":982,"context_line":"    if numa_topology:"},{"line_number":983,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"},{"line_number":984,"context_line":"        # means CPU pinning was requested"},{"line_number":985,"context_line":"        # TODO(sfinucan) Instead of using the \"magic\" described above, make use"},{"line_number":986,"context_line":"        # of the \u0027InstanceNUMACell.cpu_policy\u0027 parameter"},{"line_number":987,"context_line":"        for cell in numa_topology.cells:"},{"line_number":988,"context_line":"            cell.cpu_pinning \u003d {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_6ac179e3","line":985,"in_reply_to":"3a50d1a3_8debd112","updated":"2015-07-29 08:12:30.000000000","message":"Per ndipanov\u0027s note, the \"magic\" of using a non-null (but still empty and therefore meaningless) \u0027cpu_pinning\u0027 parameter to indicate that CPU pinning was requested. This commit add a \u0027cpu_policy\u0027 parameter which makes a little more sense to use, and a later commit does so.","commit_id":"9a4a59fe1af53e56d0f05067be53bc2d59700e7b"},{"author":{"_account_id":19124,"name":"Gerry Kopec","email":"gerry.kopec@windriver.com","username":"gkopec"},"change_message_id":"57efe11eea4c56e232527a63a690b15346e5ccea","unresolved":false,"context_lines":[{"line_number":994,"context_line":""},{"line_number":995,"context_line":"    flavor_threads_policy \u003d flavor.get(\u0027extra_specs\u0027, {}).get("},{"line_number":996,"context_line":"        \u0027hw:cpu_threads_policy\u0027)"},{"line_number":997,"context_line":"    image_threads_policy \u003d flavor.get(\u0027extra_specs\u0027, {}).get("},{"line_number":998,"context_line":"        \u0027hw_cpu_threads_policy\u0027)"},{"line_number":999,"context_line":"    if flavor_threads_policy is None:"},{"line_number":1000,"context_line":"        cpu_threads_policy \u003d image_threads_policy"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa80f949_4d3555d8","line":997,"updated":"2015-11-04 16:13:50.000000000","message":"Shouldn\u0027t image_threads_policy be set from image_meta.properties.","commit_id":"5659c6f487b2635515eab46fcf0686ab5ea48e17"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"71ff82ef24805fb4f69e099c2f634d261de3f47b","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"    image_threads_policy \u003d flavor.get(\u0027extra_specs\u0027, {}).get("},{"line_number":1007,"context_line":"        \u0027hw_cpu_threads_policy\u0027)"},{"line_number":1008,"context_line":"    if flavor_threads_policy is None:"},{"line_number":1009,"context_line":"        cpu_threads_policy \u003d image_threads_policy"},{"line_number":1010,"context_line":"    else:"},{"line_number":1011,"context_line":"        cpu_threads_policy \u003d flavor_threads_policy"},{"line_number":1012,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_93a9177e","line":1009,"updated":"2015-11-25 13:12:25.000000000","message":"We should to allow image_threads_policy only if flavor_threads_policy is set to \"prefer\" like that operator can completely disable that feature if flavor have nothing set or let host to choose or allow user to choose.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"13d81ee11a010fd92e9fdb689a5ca3e59a8bdea9","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"    image_threads_policy \u003d flavor.get(\u0027extra_specs\u0027, {}).get("},{"line_number":1007,"context_line":"        \u0027hw_cpu_threads_policy\u0027)"},{"line_number":1008,"context_line":"    if flavor_threads_policy is None:"},{"line_number":1009,"context_line":"        cpu_threads_policy \u003d image_threads_policy"},{"line_number":1010,"context_line":"    else:"},{"line_number":1011,"context_line":"        cpu_threads_policy \u003d flavor_threads_policy"},{"line_number":1012,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_58c09a2a","line":1009,"in_reply_to":"9a8ffd7b_93a9177e","updated":"2015-11-25 17:33:27.000000000","message":"Done","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"71ff82ef24805fb4f69e099c2f634d261de3f47b","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"    if flavor_threads_policy is None:"},{"line_number":1009,"context_line":"        cpu_threads_policy \u003d image_threads_policy"},{"line_number":1010,"context_line":"    else:"},{"line_number":1011,"context_line":"        cpu_threads_policy \u003d flavor_threads_policy"},{"line_number":1012,"context_line":""},{"line_number":1013,"context_line":"    if numa_topology:"},{"line_number":1014,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_d39f9f4e","line":1011,"updated":"2015-11-25 13:12:25.000000000","message":"If a specific thread policy has been initiated we should to verify that cpu_policy  is dedicated or raise an exception.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"13d81ee11a010fd92e9fdb689a5ca3e59a8bdea9","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"    if flavor_threads_policy is None:"},{"line_number":1009,"context_line":"        cpu_threads_policy \u003d image_threads_policy"},{"line_number":1010,"context_line":"    else:"},{"line_number":1011,"context_line":"        cpu_threads_policy \u003d flavor_threads_policy"},{"line_number":1012,"context_line":""},{"line_number":1013,"context_line":"    if numa_topology:"},{"line_number":1014,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_38c5963b","line":1011,"in_reply_to":"9a8ffd7b_d39f9f4e","updated":"2015-11-25 17:33:27.000000000","message":"We ignore the CPU thread policy if the CPU policy is not \u0027dedicated\u0027, per the spec. This is accomplished by the \u0027if requested\u0027 check above. I\u0027ve inserted a note to clarify this, however.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2b2c1f064c66818ac9f3ba6998e74f43a282e5f8","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"    if numa_topology:"},{"line_number":1014,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"},{"line_number":1015,"context_line":"        # means CPU pinning was requested"},{"line_number":1016,"context_line":"        # TODO(sfinucan) Instead of using the \"magic\" described above, make use"},{"line_number":1017,"context_line":"        # of the \u0027InstanceNUMACell.cpu_policy\u0027 parameter"},{"line_number":1018,"context_line":"        for cell in numa_topology.cells:"},{"line_number":1019,"context_line":"            cell.cpu_pinning \u003d {}"},{"line_number":1020,"context_line":"            cell.cpu_threads_policy \u003d cpu_threads_policy"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_162c3a01","line":1017,"range":{"start_line":1016,"start_character":8,"end_line":1017,"end_character":55},"updated":"2015-11-25 12:16:08.000000000","message":"so why don\u0027t you also set it here - I can appreciate that you don\u0027t want to change the code that relies on the \"magic\" above in the same commit, but not sure why you wouldn\u0027t want to set the attribute that you added.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"13d81ee11a010fd92e9fdb689a5ca3e59a8bdea9","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"        # NOTE(ndipanov) Setting the cpu_pinning attribute to a non-None value"},{"line_number":1015,"context_line":"        # means CPU pinning was requested"},{"line_number":1016,"context_line":"        # TODO(sfinucan) Instead of using the \"magic\" described above, make use"},{"line_number":1017,"context_line":"        # of the \u0027InstanceNUMACell.cpu_policy\u0027 parameter"},{"line_number":1018,"context_line":"        for cell in numa_topology.cells:"},{"line_number":1019,"context_line":"            cell.cpu_pinning \u003d {}"},{"line_number":1020,"context_line":"            cell.cpu_threads_policy \u003d cpu_threads_policy"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a8ffd7b_fb05c8c1","line":1017,"in_reply_to":"9a8ffd7b_162c3a01","updated":"2015-11-25 17:33:27.000000000","message":"I can see the benefits of doing this, but I\u0027m a big fan of the \"one change per commit\" idea. I need to do work on the parsing of the \u0027cpu_policy\u0027 field and this is best done in a separate commit. As such, I think the TODO (that\u0027s resolved shortly) is a cleaner way to accomplish this.","commit_id":"2e4fcaf2f27c2b354c5d87f0e700be7dead71673"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5950d40ecdd3262a31234a85faa448f7dfabf0f3","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"    if rt and pi !\u003d \"dedicated\":"},{"line_number":1035,"context_line":"        raise exception.RealtimeConfigurationInvalid()"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"    # if \u0027cpu_policy\u0027 is not \u0027dedicated\u0027, we ignore the \u0027cpu_thread_policy\u0027"},{"line_number":1038,"context_line":"    # flags"},{"line_number":1039,"context_line":"    if not requested:"},{"line_number":1040,"context_line":"        return numa_topology"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a8ffd7b_ffafcf27","line":1037,"updated":"2015-11-26 09:59:26.000000000","message":"As in line 1035 for realtime - if cpu_thread_policy is set and cpu_policy is not dedicated we should to raise exception to inform user that flavor provides bad configuration for cpu_thread_policy.","commit_id":"e994819c75ef0319ae213092edbb4d97e3031a2d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d1d5528617d9d52ec8a07190fbb9c61e8d011bf1","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"    if rt and pi !\u003d \"dedicated\":"},{"line_number":1035,"context_line":"        raise exception.RealtimeConfigurationInvalid()"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"    # if \u0027cpu_policy\u0027 is not \u0027dedicated\u0027, we ignore the \u0027cpu_thread_policy\u0027"},{"line_number":1038,"context_line":"    # flags"},{"line_number":1039,"context_line":"    if not requested:"},{"line_number":1040,"context_line":"        return numa_topology"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a8ffd7b_771d3661","line":1037,"in_reply_to":"9a8ffd7b_ffafcf27","updated":"2015-12-02 15:49:12.000000000","message":"Done","commit_id":"e994819c75ef0319ae213092edbb4d97e3031a2d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9a8cd0a72589046b891260613acb2dc4b3f7f578","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"    if flavor_thread_policy in [None, thread_policies.PREFER]:"},{"line_number":1046,"context_line":"        cpu_thread_policy \u003d image_thread_policy"},{"line_number":1047,"context_line":"    elif image_thread_policy and image_thread_policy !\u003d flavor_thread_policy:"},{"line_number":1048,"context_line":"        raise exception.ImageCPUThreadPolicyForbidden()"},{"line_number":1049,"context_line":"    else:"},{"line_number":1050,"context_line":"        cpu_thread_policy \u003d flavor_thread_policy"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9a8ffd7b_133acccc","line":1048,"updated":"2015-11-26 10:42:36.000000000","message":"I see that you added a test case for this branch, but I think you should cover the if and the else branches too.","commit_id":"e994819c75ef0319ae213092edbb4d97e3031a2d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d1d5528617d9d52ec8a07190fbb9c61e8d011bf1","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"    if flavor_thread_policy in [None, thread_policies.PREFER]:"},{"line_number":1046,"context_line":"        cpu_thread_policy \u003d image_thread_policy"},{"line_number":1047,"context_line":"    elif image_thread_policy and image_thread_policy !\u003d flavor_thread_policy:"},{"line_number":1048,"context_line":"        raise exception.ImageCPUThreadPolicyForbidden()"},{"line_number":1049,"context_line":"    else:"},{"line_number":1050,"context_line":"        cpu_thread_policy \u003d flavor_thread_policy"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9a8ffd7b_97221aa2","line":1048,"in_reply_to":"9a8ffd7b_133acccc","updated":"2015-12-02 15:49:12.000000000","message":"Done","commit_id":"e994819c75ef0319ae213092edbb4d97e3031a2d"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"4fd09a866d4bc3c71a8bfa45af5848b578a74079","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova import exception"},{"line_number":28,"context_line":"from nova.i18n import _"},{"line_number":29,"context_line":"from nova import objects"},{"line_number":30,"context_line":"from nova.objects.fields import CPUThreadAllocationPolicy as thread_policies"},{"line_number":31,"context_line":"from nova.objects import instance as obj_instance"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"virt_cpu_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":23,"id":"7a740942_1177e302","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":76},"updated":"2015-12-08 15:01:54.000000000","message":"I guess this is passing pep8 because of the magic patching of the module we do in objects so they are not checked. We should really only be importing modules","commit_id":"5f8a9dfc8c540439dd67167b811ac6322c694f88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7d03aad6da31e405e9c02bfe9dcfde40355d2d93","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova import exception"},{"line_number":28,"context_line":"from nova.i18n import _"},{"line_number":29,"context_line":"from nova import objects"},{"line_number":30,"context_line":"from nova.objects.fields import CPUThreadAllocationPolicy as thread_policies"},{"line_number":31,"context_line":"from nova.objects import instance as obj_instance"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"virt_cpu_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":23,"id":"7a740942_ae5af728","line":30,"in_reply_to":"7a740942_1177e302","updated":"2015-12-09 11:00:43.000000000","message":"Done","commit_id":"5f8a9dfc8c540439dd67167b811ac6322c694f88"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"747cc74ab490debb35480295ec50a053763c270e","unresolved":false,"context_lines":[{"line_number":1274,"context_line":"            # Remove when request_spec is a proper object itself!"},{"line_number":1275,"context_line":"            dict_cells \u003d instance_numa_topology.get(\u0027cells\u0027)"},{"line_number":1276,"context_line":"            if dict_cells:"},{"line_number":1277,"context_line":"                cells \u003d [objects.InstanceNUMACell("},{"line_number":1278,"context_line":"                    id\u003dcell[\u0027id\u0027],"},{"line_number":1279,"context_line":"                    cpuset\u003dset(cell[\u0027cpuset\u0027]),"},{"line_number":1280,"context_line":"                    memory\u003dcell[\u0027memory\u0027],"},{"line_number":1281,"context_line":"                    pagesize\u003dcell.get(\u0027pagesize\u0027),"},{"line_number":1282,"context_line":"                    cpu_pinning\u003dcell.get(\u0027cpu_pinning_raw\u0027))"},{"line_number":1283,"context_line":"                         for cell in dict_cells]"},{"line_number":1284,"context_line":"                instance_numa_topology \u003d objects.InstanceNUMATopology("},{"line_number":1285,"context_line":"                    cells\u003dcells)"}],"source_content_type":"text/x-python","patch_set":23,"id":"7a740942_27bf3dab","line":1282,"range":{"start_line":1277,"start_character":25,"end_line":1282,"end_character":60},"updated":"2015-12-08 15:28:55.000000000","message":"Sadly we still need to update this call as well otherwise we\u0027ll be losing this info in the scheduler :(","commit_id":"5f8a9dfc8c540439dd67167b811ac6322c694f88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7d03aad6da31e405e9c02bfe9dcfde40355d2d93","unresolved":false,"context_lines":[{"line_number":1279,"context_line":"                    cpuset\u003dset(cell[\u0027cpuset\u0027]),"},{"line_number":1280,"context_line":"                    memory\u003dcell[\u0027memory\u0027],"},{"line_number":1281,"context_line":"                    pagesize\u003dcell.get(\u0027pagesize\u0027),"},{"line_number":1282,"context_line":"                    cpu_pinning\u003dcell.get(\u0027cpu_pinning_raw\u0027))"},{"line_number":1283,"context_line":"                         for cell in dict_cells]"},{"line_number":1284,"context_line":"                instance_numa_topology \u003d objects.InstanceNUMATopology("},{"line_number":1285,"context_line":"                    cells\u003dcells)"}],"source_content_type":"text/x-python","patch_set":23,"id":"7a740942_4e403336","line":1282,"in_reply_to":"7a740942_27bf3dab","updated":"2015-12-09 11:00:43.000000000","message":"Done","commit_id":"5f8a9dfc8c540439dd67167b811ac6322c694f88"}]}
