)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"457609c16f74caa2ba1e1a938daafccd13a96d23","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We will use this object to hold the data about CPU pinning for each"},{"line_number":10,"context_line":"instance. We add the CPU pinning and topology information to each"},{"line_number":11,"context_line":"InstanceNUMACell. We weill use this information to track pinning of each"},{"line_number":12,"context_line":"instance."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ic299e474ea210c9028a046b2665c0021fb2baf06"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_1ea3d043","line":11,"updated":"2014-12-03 13:34:01.000000000","message":"s/weill/will/","commit_id":"13f3d5bb0a6821550e504ad22f16e642d554220c"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"84bac8d583c316a7a11116752fbbc62db04062ef","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We will use this object to hold the data about CPU pinning for each"},{"line_number":10,"context_line":"instance. We add the CPU pinning and topology information to each"},{"line_number":11,"context_line":"InstanceNUMACell. We weill use this information to track pinning of each"},{"line_number":12,"context_line":"instance."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ic299e474ea210c9028a046b2665c0021fb2baf06"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_590ad2d2","line":11,"in_reply_to":"5a890539_1ea3d043","updated":"2014-12-03 13:36:53.000000000","message":"Done","commit_id":"13f3d5bb0a6821550e504ad22f16e642d554220c"}],"nova/objects/instance_numa_topology.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"938e956b59f562183c9fa97c0775163dbe8664d0","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            \u0027VirtCPUTopology\u0027: [(\u00271.0\u0027, \u00271.0\u0027)],"},{"line_number":38,"context_line":"            }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self, context\u003dNone, cpuset\u003dNone, pinning\u003dNone, topology\u003dNone,"},{"line_number":41,"context_line":"                 **kwargs):"},{"line_number":42,"context_line":"        \"\"\"Create an object containing instance NUMA cell CPU pinning data"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_6b59c28d","line":40,"updated":"2014-12-01 16:34:35.000000000","message":"What about to use an helper here:\n\nhttps://review.openstack.org/#/c/137810/3/nova/objects/numa.py,cm","commit_id":"49ddd352dcda2191c5d4f06fe2fb1a0ecd88ef3a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"938e956b59f562183c9fa97c0775163dbe8664d0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                context\u003dcontext, **kwargs)"},{"line_number":56,"context_line":"        self.topology \u003d topology"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        num_threads \u003d 1"},{"line_number":59,"context_line":"        if self.topology:"},{"line_number":60,"context_line":"            num_threads \u003d self.topology.threads"},{"line_number":61,"context_line":"        if num_threads !\u003d 0 and len(cpuset) % num_threads !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_eb0132b0","line":58,"updated":"2014-12-01 16:34:35.000000000","message":"All of this logic should be handed in a method.","commit_id":"49ddd352dcda2191c5d4f06fe2fb1a0ecd88ef3a"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"0a4c7b1d86a18d2bb0aac06e734262659b6a6d88","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                context\u003dcontext, **kwargs)"},{"line_number":56,"context_line":"        self.topology \u003d topology"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        num_threads \u003d 1"},{"line_number":59,"context_line":"        if self.topology:"},{"line_number":60,"context_line":"            num_threads \u003d self.topology.threads"},{"line_number":61,"context_line":"        if num_threads !\u003d 0 and len(cpuset) % num_threads !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_c9ec7dbe","line":58,"in_reply_to":"5a890539_eb0132b0","updated":"2014-12-01 17:33:28.000000000","message":"Ok - I can factor it out","commit_id":"49ddd352dcda2191c5d4f06fe2fb1a0ecd88ef3a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"457609c16f74caa2ba1e1a938daafccd13a96d23","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova import db"},{"line_number":20,"context_line":"from nova import exception"},{"line_number":21,"context_line":"from nova.objects import base"},{"line_number":22,"context_line":"from nova.objects import fields as obj_fields"},{"line_number":23,"context_line":"from nova.virt import hardware"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_9e6ee0fe","line":22,"updated":"2014-12-03 13:34:01.000000000","message":"Any reason for this? :)","commit_id":"13f3d5bb0a6821550e504ad22f16e642d554220c"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"84bac8d583c316a7a11116752fbbc62db04062ef","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova import db"},{"line_number":20,"context_line":"from nova import exception"},{"line_number":21,"context_line":"from nova.objects import base"},{"line_number":22,"context_line":"from nova.objects import fields as obj_fields"},{"line_number":23,"context_line":"from nova.virt import hardware"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_b971f678","line":22,"in_reply_to":"5a890539_9e6ee0fe","updated":"2014-12-03 13:36:53.000000000","message":"yes - fields class attribute shadows the import in the class body so you can\u0027t do the DictProxyField assignment as a descriptor.\n\nThis should be changed in all object files really as shadowing like that is dumb and a bug really.","commit_id":"13f3d5bb0a6821550e504ad22f16e642d554220c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"457609c16f74caa2ba1e1a938daafccd13a96d23","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027pagesize\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027cpu_topology\u0027: obj_fields.ObjectField(\u0027VirtCPUTopology\u0027,"},{"line_number":38,"context_line":"                                               nullable\u003dTrue),"},{"line_number":39,"context_line":"        \u0027cpu_pinning_raw\u0027: obj_fields.DictOfNullableIntegersField("},{"line_number":40,"context_line":"            nullable\u003dTrue)"},{"line_number":41,"context_line":"        }"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_195bea22","line":39,"updated":"2014-12-03 13:34:01.000000000","message":"What about just dict of integers field? Why store the nullable stuff, if we\u0027re just storing the map of pcpu -\u003e vcpu ID?","commit_id":"13f3d5bb0a6821550e504ad22f16e642d554220c"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"84bac8d583c316a7a11116752fbbc62db04062ef","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027pagesize\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027cpu_topology\u0027: obj_fields.ObjectField(\u0027VirtCPUTopology\u0027,"},{"line_number":38,"context_line":"                                               nullable\u003dTrue),"},{"line_number":39,"context_line":"        \u0027cpu_pinning_raw\u0027: obj_fields.DictOfNullableIntegersField("},{"line_number":40,"context_line":"            nullable\u003dTrue)"},{"line_number":41,"context_line":"        }"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_19e04a25","line":39,"in_reply_to":"5a890539_195bea22","updated":"2014-12-03 13:36:53.000000000","message":"Yes that is correct - let me drop that","commit_id":"13f3d5bb0a6821550e504ad22f16e642d554220c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"22dd29e13de524edda0064926bd34fb4404029b4","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def __init__(self, **kwargs):"},{"line_number":47,"context_line":"        super(InstanceNUMACell, self).__init__(**kwargs)"},{"line_number":48,"context_line":"        if \u0027cpu_topology\u0027 not in kwargs:"},{"line_number":49,"context_line":"            self.cpu_topology \u003d None"},{"line_number":50,"context_line":"        if \u0027cpu_pinning\u0027 not in kwargs:"},{"line_number":51,"context_line":"            self.cpu_pinning \u003d None"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_f6ffc4a8","line":49,"updated":"2014-12-04 20:15:11.000000000","message":"Note that for this one you can set default\u003dNone in the field definition.","commit_id":"139529a90e6dfc60639887af77bbfab18b2638ab"}]}
