)]}'
{"nova/objects/resource_provider.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cee68b6f8c8ca205a47267f2074a9dba8d5c16df","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        if not result:"},{"line_number":900,"context_line":"            raise exception.NotFound()"},{"line_number":901,"context_line":""},{"line_number":902,"context_line":"    def create(self):"},{"line_number":903,"context_line":"        if \u0027id\u0027 in self:"},{"line_number":904,"context_line":"            raise exception.ObjectActionError(action\u003d\u0027create\u0027,"},{"line_number":905,"context_line":"                                              reason\u003d\u0027already created\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_4f5e9b46","side":"PARENT","line":902,"updated":"2017-01-19 10:59:40.000000000","message":"I keep wanting to say this should be a major version bump. But as its not remote able, I believe this is allowed.","commit_id":"d6861ff5aace2cc857f6332a54e0d4f5c8cc0d88"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"1a67e999dce4fa52d9c8bdbe046e2030e316e00a","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        if not result:"},{"line_number":900,"context_line":"            raise exception.NotFound()"},{"line_number":901,"context_line":""},{"line_number":902,"context_line":"    def create(self):"},{"line_number":903,"context_line":"        if \u0027id\u0027 in self:"},{"line_number":904,"context_line":"            raise exception.ObjectActionError(action\u003d\u0027create\u0027,"},{"line_number":905,"context_line":"                                              reason\u003d\u0027already created\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_e4bfcaa7","side":"PARENT","line":902,"in_reply_to":"5a3905b3_4f5e9b46","updated":"2017-01-23 14:14:34.000000000","message":"Yeah, I think we don\u0027t need to worry about this. We broke the rules by saying it was okay to revoke the remotability. Once that happened versioning is just housekeeping.","commit_id":"d6861ff5aace2cc857f6332a54e0d4f5c8cc0d88"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b468ec8acc76934a7d8fc8db9fc32dca6041fe27","unresolved":false,"context_lines":[{"line_number":864,"context_line":"    # Version 1.0: Initial version"},{"line_number":865,"context_line":"    # Version 1.1: Changed resource_class to allow custom strings"},{"line_number":866,"context_line":"    # Version 1.2: Turn off remotable"},{"line_number":867,"context_line":"    # Version 1.3: Removed \u0027create\u0027 method"},{"line_number":868,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_f9b696f7","line":867,"updated":"2017-03-21 23:42:05.000000000","message":"After v2 there\u0027s really no reason to version up these sorts of changes.","commit_id":"e79821903b62b17451c6e862e1ec0c41f6fd30dc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b468ec8acc76934a7d8fc8db9fc32dca6041fe27","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"                        consumer_id\u003dalloc.consumer_id,"},{"line_number":1150,"context_line":"                        used\u003dalloc.used)"},{"line_number":1151,"context_line":"                result \u003d conn.execute(ins_stmt)"},{"line_number":1152,"context_line":"                alloc.id \u003d result.lastrowid"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"            # Generation checking happens here. If the inventory for"},{"line_number":1155,"context_line":"            # this resource provider changed out from under us,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_f9adb69b","line":1152,"updated":"2017-03-21 23:42:05.000000000","message":"Does this really know to use thing.id? If so, nifty.","commit_id":"e79821903b62b17451c6e862e1ec0c41f6fd30dc"}],"nova/tests/functional/api/openstack/placement/gabbits/with-allocations.yaml":[{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"1d01a621e6a5c482333d06b4e69a0f964c69f1d0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      # required but superfluous, is present"},{"line_number":22,"context_line":"      content-type: /application/json/"},{"line_number":23,"context_line":"  response_json_paths:"},{"line_number":24,"context_line":"      $.resource_provider_generation: 4"},{"line_number":25,"context_line":"      $.usages.DISK_GB: 1000"},{"line_number":26,"context_line":"      $.usages.VCPU: 6"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- name: fail to delete resource provider"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3a461143_d5bd2a69","line":25,"range":{"start_line":24,"start_character":6,"end_line":25,"end_character":28},"updated":"2017-01-30 13:20:43.000000000","message":"Seems this change is unrelated to the patch, but meh, let it be.","commit_id":"8d77571ddd2baafbac383eec4ae9fa165f8377ee"}],"nova/tests/functional/db/test_resource_provider.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"edd4cb3197118e6ad8991f1730ad8e69833d121c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        inv_dict \u003d inv_dict or DISK_INVENTORY"},{"line_number":62,"context_line":"        disk_inv \u003d objects.Inventory(context\u003dself.context,"},{"line_number":63,"context_line":"                resource_provider\u003drp, **inv_dict)"},{"line_number":64,"context_line":"        disk_inv.create()"},{"line_number":65,"context_line":"        inv_list \u003d objects.InventoryList(objects\u003d[disk_inv])"},{"line_number":66,"context_line":"        rp.set_inventory(inv_list)"},{"line_number":67,"context_line":"        alloc \u003d objects.Allocation(self.context, resource_provider\u003drp,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_1bb63d3d","line":64,"updated":"2017-03-20 23:15:54.000000000","message":"Really, we shouldn\u0027t be using the singular inventory create() method either, but we can fix that in a future patch.","commit_id":"e79821903b62b17451c6e862e1ec0c41f6fd30dc"}],"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b468ec8acc76934a7d8fc8db9fc32dca6041fe27","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    \u0027AgentList\u0027: \u00271.0-5a7380d02c3aaf2a32fc8115ae7ca98c\u0027,"},{"line_number":1063,"context_line":"    \u0027Aggregate\u0027: \u00271.3-f315cb68906307ca2d1cca84d4753585\u0027,"},{"line_number":1064,"context_line":"    \u0027AggregateList\u0027: \u00271.2-fb6e19f3c3a3186b04eceb98b5dadbfa\u0027,"},{"line_number":1065,"context_line":"    \u0027Allocation\u0027: \u00271.3-54f99dfa9651922219c205a7fba69e2f\u0027,"},{"line_number":1066,"context_line":"    \u0027AllocationList\u0027: \u00271.2-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1067,"context_line":"    \u0027BandwidthUsage\u0027: \u00271.2-c6e4c779c7f40f2407e3d70022e3cd1c\u0027,"},{"line_number":1068,"context_line":"    \u0027BandwidthUsageList\u0027: \u00271.2-5fe7475ada6fe62413cbfcc06ec70746\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_39cd8e85","line":1065,"updated":"2017-03-21 23:42:05.000000000","message":"Note how the hash didn\u0027t change here :)","commit_id":"e79821903b62b17451c6e862e1ec0c41f6fd30dc"}]}
