)]}'
{"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"2e2717e69b5b620c71a4ef3f4007dd381b8f6894","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    cleaned \u003d Column(Integer, default\u003d0)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    # Scheduler hints specified when booting the instance."},{"line_number":308,"context_line":"    scheduler_hints \u003d Column(types.JsonType())"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"class InstanceInfoCache(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Hkw%3D","line":308,"updated":"2013-12-16 16:36:18.000000000","message":"Would prefer to use a text column like \u0027extra_resources\u0027 in the ComputeNode table.  This would force json encoding/decoding on every load/save of the instance record, right?  Most uses of the instance record don\u0027t care about scheduler hints and would take an unnecessary performance hit.","commit_id":"58efb00f0f7a5e3ddaa9176bc71a3f33a7a353ea"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"848d8b1660a12235df20e4c4b87a2c35d4e52f71","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    cleaned \u003d Column(Integer, default\u003d0)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    # Scheduler hints specified when booting the instance."},{"line_number":308,"context_line":"    scheduler_hints \u003d Column(types.JsonType())"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"class InstanceInfoCache(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9D7Y%3D","line":308,"in_reply_to":"AAAATn%2F9Hkw%3D","updated":"2013-12-17 06:41:38.000000000","message":"Done","commit_id":"58efb00f0f7a5e3ddaa9176bc71a3f33a7a353ea"}],"nova/db/sqlalchemy/types.py":[{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"18c49adafcb70178387725c6ee7bd5f44f4235f9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from nova import utils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class JsonType(types.TypeDecorator):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    impl \u003d types.Unicode"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9F%2Bw%3D","line":27,"updated":"2013-12-16 21:15:41.000000000","message":"Assuming we are changing to a different type in the database, then this code wouldn\u0027t be necessary?","commit_id":"58efb00f0f7a5e3ddaa9176bc71a3f33a7a353ea"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"848d8b1660a12235df20e4c4b87a2c35d4e52f71","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from nova import utils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class JsonType(types.TypeDecorator):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    impl \u003d types.Unicode"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9EPU%3D","line":27,"in_reply_to":"AAAATn%2F9F%2Bw%3D","updated":"2013-12-17 06:41:38.000000000","message":"Done","commit_id":"58efb00f0f7a5e3ddaa9176bc71a3f33a7a353ea"}],"nova/objects/instance.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"37255e47ce38cdb55abbc27aa7dea17128961ae5","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            # NOTE(danms): Before 1.6 there was no pci_devices list"},{"line_number":217,"context_line":"            if \u0027pci_devices\u0027 in primitive:"},{"line_number":218,"context_line":"                del primitive[\u0027pci_devices\u0027]"},{"line_number":219,"context_line":"        if target_version \u003c (1, 12):"},{"line_number":220,"context_line":"            # NOTE(jay-lau-513): Before 1.12 there was no scheduler_hints"},{"line_number":221,"context_line":"            if \u0027scheduler_hints\u0027 in primitive:"},{"line_number":222,"context_line":"                del primitive[\u0027scheduler_hints\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Bw8%3D","line":219,"updated":"2013-12-17 15:00:14.000000000","message":"Can you please add a test for this backward compatibility logic?","commit_id":"8180578a67ff3bbcda5a432095d5351a6fb6fa0f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"d49061547f9c83debd21ad3b53c98e7948a20388","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            # NOTE(danms): Before 1.6 there was no pci_devices list"},{"line_number":217,"context_line":"            if \u0027pci_devices\u0027 in primitive:"},{"line_number":218,"context_line":"                del primitive[\u0027pci_devices\u0027]"},{"line_number":219,"context_line":"        if target_version \u003c (1, 12):"},{"line_number":220,"context_line":"            # NOTE(jay-lau-513): Before 1.12 there was no scheduler_hints"},{"line_number":221,"context_line":"            if \u0027scheduler_hints\u0027 in primitive:"},{"line_number":222,"context_line":"                del primitive[\u0027scheduler_hints\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8twM%3D","line":219,"in_reply_to":"AAAATn%2F9Bw8%3D","updated":"2013-12-22 02:24:16.000000000","message":"Done","commit_id":"8180578a67ff3bbcda5a432095d5351a6fb6fa0f"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a523ed7a2d20378c8d59394d024a0530fa5846fe","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        \u0027pci_devices\u0027: fields.ObjectField(\u0027PciDeviceList\u0027, nullable\u003dTrue),"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        \u0027scheduler_hints\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    obj_extra_fields \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F3os%3D","line":163,"updated":"2013-12-29 08:50:21.000000000","message":"should this not be DictOfStringsField?","commit_id":"38a1cc913f44616d38bfd4fafa806e7121882e08"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"84150ec87fb34d8013ccfdab9ce2b73a32fcec26","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        \u0027pci_devices\u0027: fields.ObjectField(\u0027PciDeviceList\u0027, nullable\u003dTrue),"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        \u0027scheduler_hints\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    obj_extra_fields \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2FtU%3D","line":163,"in_reply_to":"AAAAT3%2F%2F3os%3D","updated":"2014-01-04 10:33:24.000000000","message":"Done","commit_id":"38a1cc913f44616d38bfd4fafa806e7121882e08"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"256e7746751a108b71484ca0c6e8111ec7ade6d6","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        \u0027pci_devices\u0027: fields.ObjectField(\u0027PciDeviceList\u0027, nullable\u003dTrue),"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        \u0027scheduler_hints\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    obj_extra_fields \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2Fdo%3D","line":163,"in_reply_to":"AAAAUH%2F%2F%2FtU%3D","updated":"2014-01-04 15:31:01.000000000","message":"Gary, after second thought, it might be better to use StringField.\n\nIf use DictOfStringsField, then I may need some special steps to convert dict to string and string to dict.\n\nWhen store to DB, I need to use string, but when convert to object, I need to convert string to dict.\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/instance.py#L257\n\nIf use StringField, then I do not need such translations.","commit_id":"38a1cc913f44616d38bfd4fafa806e7121882e08"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b8bf73a54e9cf7ba75ec0350d377e56c5d591667","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        \u0027pci_devices\u0027: fields.ObjectField(\u0027PciDeviceList\u0027, nullable\u003dTrue),"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        \u0027scheduler_hints\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    obj_extra_fields \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FsGU%3D","line":163,"updated":"2014-01-09 15:42:37.000000000","message":"Shouldn\u0027t this really be a list of strings? Aren\u0027t the hints like \"foo,bar,baz\"?","commit_id":"8826e973e752612a71c7a759709f8f376c9720fe"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"2ad23507445e64dddc0a6b536ba9fd1fdfdff22b","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        \u0027pci_devices\u0027: fields.ObjectField(\u0027PciDeviceList\u0027, nullable\u003dTrue),"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        \u0027scheduler_hints\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    obj_extra_fields \u003d [\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FpgQ%3D","line":163,"in_reply_to":"AAAAUH%2F%2FsGU%3D","updated":"2014-01-10 08:23:44.000000000","message":"@Dan, the hints is in the format of \"{\u0027a\u0027: \u0027a1\u0027, \u0027b\u0027: \u0027b1\u0027}\"","commit_id":"8826e973e752612a71c7a759709f8f376c9720fe"}],"nova/tests/db/test_migrations.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a523ed7a2d20378c8d59394d024a0530fa5846fe","unresolved":false,"context_lines":[{"line_number":2705,"context_line":"        shadow_instances \u003d db_utils.get_table(engine, \u0027shadow_instances\u0027)"},{"line_number":2706,"context_line":""},{"line_number":2707,"context_line":"        def get_(table, ident):"},{"line_number":2708,"context_line":"            return table.select().\\"},{"line_number":2709,"context_line":"                where(table.c.id \u003d\u003d ident).\\"},{"line_number":2710,"context_line":"                execute().\\"},{"line_number":2711,"context_line":"                first()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F3ow%3D","line":2708,"updated":"2013-12-29 08:50:21.000000000","message":"any chance we can write this without the \\","commit_id":"38a1cc913f44616d38bfd4fafa806e7121882e08"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"84150ec87fb34d8013ccfdab9ce2b73a32fcec26","unresolved":false,"context_lines":[{"line_number":2705,"context_line":"        shadow_instances \u003d db_utils.get_table(engine, \u0027shadow_instances\u0027)"},{"line_number":2706,"context_line":""},{"line_number":2707,"context_line":"        def get_(table, ident):"},{"line_number":2708,"context_line":"            return table.select().\\"},{"line_number":2709,"context_line":"                where(table.c.id \u003d\u003d ident).\\"},{"line_number":2710,"context_line":"                execute().\\"},{"line_number":2711,"context_line":"                first()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2FtQ%3D","line":2708,"in_reply_to":"AAAAT3%2F%2F3ow%3D","updated":"2014-01-04 10:33:24.000000000","message":"Done","commit_id":"38a1cc913f44616d38bfd4fafa806e7121882e08"}],"nova/tests/objects/test_instance.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"37255e47ce38cdb55abbc27aa7dea17128961ae5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"from nova.tests.objects import test_security_group"},{"line_number":40,"context_line":"from nova import utils"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class _TestInstanceObject(object):"},{"line_number":44,"context_line":"    @property"},{"line_number":45,"context_line":"    def fake_instance(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Bwk%3D","line":42,"updated":"2013-12-17 15:00:14.000000000","message":"There should be something here to test the addition of \u0027scheduler_hints\u0027 to the instance object here, right?","commit_id":"8180578a67ff3bbcda5a432095d5351a6fb6fa0f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"d49061547f9c83debd21ad3b53c98e7948a20388","unresolved":false,"context_lines":[{"line_number":39,"context_line":"from nova.tests.objects import test_security_group"},{"line_number":40,"context_line":"from nova import utils"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class _TestInstanceObject(object):"},{"line_number":44,"context_line":"    @property"},{"line_number":45,"context_line":"    def fake_instance(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8tvU%3D","line":42,"in_reply_to":"AAAATn%2F9Bwk%3D","updated":"2013-12-22 02:24:16.000000000","message":"Done","commit_id":"8180578a67ff3bbcda5a432095d5351a6fb6fa0f"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"37255e47ce38cdb55abbc27aa7dea17128961ae5","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        fake_instance[\u0027pci_devices\u0027] \u003d []"},{"line_number":62,"context_line":"        fake_instance[\u0027user_id\u0027] \u003d self.context.user_id"},{"line_number":63,"context_line":"        fake_instance[\u0027project_id\u0027] \u003d self.context.project_id"},{"line_number":64,"context_line":"        fake_instance[\u0027scheduler_hints\u0027] \u003d \u0027{}\u0027"},{"line_number":65,"context_line":"        return fake_instance"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_datetime_deserialization(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9BwI%3D","line":64,"updated":"2013-12-17 15:00:14.000000000","message":"Is this used somewhere?","commit_id":"8180578a67ff3bbcda5a432095d5351a6fb6fa0f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"d49061547f9c83debd21ad3b53c98e7948a20388","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        fake_instance[\u0027pci_devices\u0027] \u003d []"},{"line_number":62,"context_line":"        fake_instance[\u0027user_id\u0027] \u003d self.context.user_id"},{"line_number":63,"context_line":"        fake_instance[\u0027project_id\u0027] \u003d self.context.project_id"},{"line_number":64,"context_line":"        fake_instance[\u0027scheduler_hints\u0027] \u003d \u0027{}\u0027"},{"line_number":65,"context_line":"        return fake_instance"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_datetime_deserialization(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8tvc%3D","line":64,"in_reply_to":"AAAATn%2F9BwI%3D","updated":"2013-12-22 02:24:16.000000000","message":"It is no use, have been removed in latest patch. Thanks.","commit_id":"8180578a67ff3bbcda5a432095d5351a6fb6fa0f"}]}
