)]}'
{"specs/liberty/approved/add-buildrequest-obj.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ee7e6be778ae4ab34481e95af96e7a114dfc3eb","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Project Priority"},{"line_number":36,"context_line":"-----------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Priorities for Liberty have not yet been decided."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_4d41110b","line":38,"updated":"2015-06-12 16:17:55.000000000","message":"They have now, and this is one.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ee7e6be778ae4ab34481e95af96e7a114dfc3eb","unresolved":false,"context_lines":[{"line_number":45,"context_line":"all additional details needed for an instance show as other fields."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"A new database table will be added to store the fields which are not in the"},{"line_number":48,"context_line":"RequestSpec."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Alternatives"},{"line_number":51,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_ad52c5db","line":48,"updated":"2015-06-12 16:17:55.000000000","message":"In the API DB, right? I see below that it is, but might be good for clarity to mention it here.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"85e9d66456680ab7b05f6c96eb6fe21701d16742","unresolved":false,"context_lines":[{"line_number":45,"context_line":"all additional details needed for an instance show as other fields."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"A new database table will be added to store the fields which are not in the"},{"line_number":48,"context_line":"RequestSpec."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Alternatives"},{"line_number":51,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_3c172153","line":48,"in_reply_to":"1af86dd1_ad52c5db","updated":"2015-06-12 18:18:33.000000000","message":"Will do.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ee7e6be778ae4ab34481e95af96e7a114dfc3eb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"BuildRequest fields.  The table will need to store things like"},{"line_number":67,"context_line":"availability_zone, power_state, task_state, uuid, key_name, metadata,"},{"line_number":68,"context_line":"security_groups, etc...  These items will be stored as a versioned dict of the"},{"line_number":69,"context_line":"fields necessary."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Once the instance has been written to a cell database this entry should be"},{"line_number":72,"context_line":"deleted as the show request can then be fulfilled from the instance table."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_4db471f1","line":69,"updated":"2015-06-12 16:17:55.000000000","message":"Does this mean a json blob of the serialized object? Presumably the table needs to have things like uuid broken out so we can query by uuid easily, right?\n\nI think it might be good to actually define what the schema looks like of what we\u0027re talking about adding.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"85e9d66456680ab7b05f6c96eb6fe21701d16742","unresolved":false,"context_lines":[{"line_number":66,"context_line":"BuildRequest fields.  The table will need to store things like"},{"line_number":67,"context_line":"availability_zone, power_state, task_state, uuid, key_name, metadata,"},{"line_number":68,"context_line":"security_groups, etc...  These items will be stored as a versioned dict of the"},{"line_number":69,"context_line":"fields necessary."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Once the instance has been written to a cell database this entry should be"},{"line_number":72,"context_line":"deleted as the show request can then be fulfilled from the instance table."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_7026ddbb","line":69,"in_reply_to":"1af86dd1_4db471f1","updated":"2015-06-12 18:18:33.000000000","message":"Fair point.  My plan was as you said, as json blob of the serialized object, with uuid and project_id broken out for querying.  I will add this explicitly.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"51366efbbc14294da321f31f3683ff7e09e8aa0b","unresolved":false,"context_lines":[{"line_number":129,"context_line":" * Add BuildRequest object"},{"line_number":130,"context_line":" * Add new table to api database"},{"line_number":131,"context_line":" * Have nova-api write BuildRequest info to this table"},{"line_number":132,"context_line":" * After scheduling write instance into cell database and cleanup this entry"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_419155f0","line":132,"updated":"2015-05-20 15:34:47.000000000","message":"Is it actually after the instance cell mapping has also been added?","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"a19cb86a5b566df965e9c5c3c8ea7b7062ae4668","unresolved":false,"context_lines":[{"line_number":129,"context_line":" * Add BuildRequest object"},{"line_number":130,"context_line":" * Add new table to api database"},{"line_number":131,"context_line":" * Have nova-api write BuildRequest info to this table"},{"line_number":132,"context_line":" * After scheduling write instance into cell database and cleanup this entry"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_13cfb3b1","line":132,"in_reply_to":"1af86dd1_70749d9b","updated":"2015-06-12 18:44:26.000000000","message":"Looking at this again this should be covered under the scheduler interaction spec.  The work will be there rather than here.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"85e9d66456680ab7b05f6c96eb6fe21701d16742","unresolved":false,"context_lines":[{"line_number":129,"context_line":" * Add BuildRequest object"},{"line_number":130,"context_line":" * Add new table to api database"},{"line_number":131,"context_line":" * Have nova-api write BuildRequest info to this table"},{"line_number":132,"context_line":" * After scheduling write instance into cell database and cleanup this entry"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_70749d9b","line":132,"in_reply_to":"7a016987_419155f0","updated":"2015-06-12 18:18:33.000000000","message":"Yes.  Add the cell_mapping then create the instance.","commit_id":"7148aa02cf1fa4a2faa8adf1633c47eddcfc8da3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"72737622638096ffb0bfc1f0033c202f9ae806de","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Dependencies"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"None"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_d70fde86","line":154,"updated":"2015-06-19 10:55:18.000000000","message":"Hum, technically you need to have the Spec persisted... :-)","commit_id":"1b970328efb6d0027fd29db2fd3c8606dc4c5939"}],"specs/liberty/approved/api-use-request-spec.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"86d02efb2efac890a4678ad47c89d168a21d480b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"A new table would be added to the \u0027nova_api\u0027 database for storing the"},{"line_number":58,"context_line":"RequestSpec."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Once the instance has been written to a cell database this entry should be"},{"line_number":61,"context_line":"deleted as the RequestSpec can be recreated from the instance and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_2260c400","line":58,"updated":"2015-04-24 16:09:50.000000000","message":"I just wonder if we should provide RequestSpec.save() before having it nested to an instance, like I said in the dependent change","commit_id":"7c3e6ee8c85c8f61598d635ac57cd9518474b087"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"70044c5bca13c732a61e760c5885108a03d47e28","unresolved":false,"context_lines":[{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"A new table would be added to the \u0027nova_api\u0027 database for storing the"},{"line_number":58,"context_line":"RequestSpec."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Once the instance has been written to a cell database this entry should be"},{"line_number":61,"context_line":"deleted as the RequestSpec can be recreated from the instance and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_e5d8cb1f","line":58,"in_reply_to":"bab921fb_2260c400","updated":"2015-04-30 19:37:05.000000000","message":"We discussed this at the last cells meeting (http://eavesdrop.openstack.org/meetings/nova_cells/2015/nova_cells.2015-04-29-21.00.html).  This spec is going to change to be more about what else we need to store for an API response beyond the request_spec which is handled in the dependent spec.","commit_id":"7c3e6ee8c85c8f61598d635ac57cd9518474b087"}],"specs/liberty/approved/cells-build-request.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d1979df4bd0e5d6e9e4781ebfa03035110bdaafd","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A new table will be added to the api database which can persist information"},{"line_number":45,"context_line":"about an instance build request until it has been scheduled and created within"},{"line_number":46,"context_line":"a cell."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_fe4ca443","line":46,"updated":"2015-04-15 11:01:58.000000000","message":"I had imagined this quite differently.\n\nThe first thing is to create the instance-cell-mapping, and it has NONE for the cell, but does have a reference to a \"build_request\" entry, as you describe below.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"38205864f14b551349285f05560c9058bc19a0ab","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A new table will be added to the api database which can persist information"},{"line_number":45,"context_line":"about an instance build request until it has been scheduled and created within"},{"line_number":46,"context_line":"a cell."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_ae03eeb7","line":46,"in_reply_to":"5aa745d1_8c960f93","updated":"2015-04-17 12:44:41.000000000","message":"I think it\u0027s really close with http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/request-spec-object.html , but it needs to be persisted.\n\nThoughts ?","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0ce9a70c1415025247f269782b719b9d88ceaa24","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A new table will be added to the api database which can persist information"},{"line_number":45,"context_line":"about an instance build request until it has been scheduled and created within"},{"line_number":46,"context_line":"a cell."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_8c960f93","line":46,"in_reply_to":"7aaa499b_fe4ca443","updated":"2015-04-15 20:50:19.000000000","message":"I would prefer that there not be an instance_mapping until there\u0027s an instance in a db somewhere.  If we want something to record a list of instances and build_requests in a single spot I would think about adding something new to handle that.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d1979df4bd0e5d6e9e4781ebfa03035110bdaafd","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The data model is open for alternatives."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_7e19b487","line":52,"updated":"2015-04-15 11:01:58.000000000","message":"So, I am a little tempted by something a little different, but fixes the same problem.\n\nConsider recording this information in the DB for delete and create instance requests:\n* request uuid - id to pass through the system\n* url\n* verb\n* time of request\n* time of returning the request\n* time of completing the action\n* object type - e.g. \"instance\"\n* object uuid - e.g. instance uuid\n* operation - e.g. create or delete\n* returned_status_code - NONE if API has not returned\n* completed - True/False\n* success - True/False\n* reference to instance fault\n* executor - e.g. api cell (for a build request), or cell7 (for a delete)\n* payload - JSON blob of the request\n\nOn a create request, we add an empty cell_mapping table entry that references one of the above \"request records\" when the cell is filled in, the request is \"complete\", the instance state is now read from the child db, we then delete the request entry in the DB, and send a notification with all the details of that request.\n\nA delete request would also make the call_mapping table None, and reference the delete request, to show the instance is in the deleting state. Once the cell_mapping is deleted, we send a notification with all the information, and we delete the record in the database. (Note this is for the final delete, soft_delete is an action owned by the child cell)\n\nFor operations like reboot, snapshot, or soft_delete, we can make the child cell \"own\" the request. So we can make an RPC call to the call \"owner\" (the nova-conductor in the specific cell?), and get back a request-id that is returned to the user in their API call? Should that request timeout, then there was an internal error, 500, and the user should retry their request. The nova-conductor just runs the current nova.compute.api.py code, in a similar way to nova-cells does today.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"17ecd0816340b7d3865938dae249a46c9bc5a768","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The data model is open for alternatives."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_e786adb8","line":52,"in_reply_to":"3ab451fb_0f6655ed","updated":"2015-04-17 17:53:51.000000000","message":"I was thinking about this later and came to the same conclusion.  We don\u0027t want to duplicate data between the cell and api, unless it\u0027s an explicit cache of data.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"740e9994ba664d7506c585f3d08d060304cdbd3e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The data model is open for alternatives."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_0f6655ed","line":52,"in_reply_to":"5aa745d1_2ceedbec","updated":"2015-04-17 16:18:53.000000000","message":"Storing things like status (post-create) gets us into the same issue we have today with cells and synchronizing state changes up the stack when they happen, right?\n\nI think we should avoid that if possible. Having a last-known-good copy of the instance that we can return *if* we\u0027re unable to contact the cell might be a thing, but we\u0027d only want to return that if the link is down, and update it every time we\u0027re successful.\n\nThe exception could be a configurable caching interval, where repeated GET requests on an instance within the interval would just return the cache instead of updating it.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0ce9a70c1415025247f269782b719b9d88ceaa24","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The data model is open for alternatives."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_2ceedbec","line":52,"in_reply_to":"7aaa499b_1972caad","updated":"2015-04-15 20:50:19.000000000","message":"This is an interesting direction, but I would rather have this discussion as part of workflows/tasks or something along those lines.  I envision a different data model for tasks and don\u0027t want to get caught up on that here.\n\nI\u0027m also against using the mapping table to indicate status of any sort.  Especially for a delete.  Even a deleted instance needs to remain mapped so that requests know where to find that instance for a GET or in case of a soft delete that\u0027s being undeleted.\n\nI\u0027m getting the sense that you would like a table in the api db that contains a minimal set of info for all instances, like their status.  That\u0027s something to consider.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ab1a6ee6114a3859d909aa5ef3c6aab9f21eda5d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The data model is open for alternatives."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_1972caad","line":52,"in_reply_to":"7aaa499b_7e19b487","updated":"2015-04-15 11:05:18.000000000","message":"Above i was imagining the nova-conductor creates an instance action record, with the request id, and information in it.\n\nIt would then make a conductor API cast to itself to process that request.\n\nIt would then return the instance action uuid back to the API, so that could be returned to the end user.\n\nOnce and instance is deleted, you would delete all the instance actions for that instance.\n\nThat way we have a record of all instance actions request, and we could start to retry them all, as required.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3521d10e52c03188973d0e8b645e614593ccc628","unresolved":false,"context_lines":[{"line_number":68,"context_line":"      `block_device_mapping`,"},{"line_number":69,"context_line":"      `metadata`,"},{"line_number":70,"context_line":"      `keypair`,"},{"line_number":71,"context_line":"      `availability_zone`,"},{"line_number":72,"context_line":"      `security_groups`,"},{"line_number":73,"context_line":"      ..."},{"line_number":74,"context_line":"    )"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_681a8819","line":71,"updated":"2015-04-17 13:30:24.000000000","message":"Hi Andrew,\n\nWhere exactly the availability zone will come in to picture, whether it will be property of cell or within cells there can be multiple availability zones?","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c7e8f19b5d3dafb565a901736b51ec424ff9a2e8","unresolved":false,"context_lines":[{"line_number":68,"context_line":"      `block_device_mapping`,"},{"line_number":69,"context_line":"      `metadata`,"},{"line_number":70,"context_line":"      `keypair`,"},{"line_number":71,"context_line":"      `availability_zone`,"},{"line_number":72,"context_line":"      `security_groups`,"},{"line_number":73,"context_line":"      ..."},{"line_number":74,"context_line":"    )"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_98de036c","line":71,"in_reply_to":"3ab451fb_681a8819","updated":"2015-04-21 14:59:53.000000000","message":"I don\u0027t know the answer to this yet.  My feeling is that there could be multiple availability zones within a cell, or that multiple cells could be within an availability zone, so that it won\u0027t be a property of a cell.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5affdc8454124ab83d6bd6ec17a67ae27a361596","unresolved":false,"context_lines":[{"line_number":68,"context_line":"      `block_device_mapping`,"},{"line_number":69,"context_line":"      `metadata`,"},{"line_number":70,"context_line":"      `keypair`,"},{"line_number":71,"context_line":"      `availability_zone`,"},{"line_number":72,"context_line":"      `security_groups`,"},{"line_number":73,"context_line":"      ..."},{"line_number":74,"context_line":"    )"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_44dc0212","line":71,"in_reply_to":"dac4157f_98de036c","updated":"2015-04-21 16:13:09.000000000","message":"Well, that\u0027s really tied to the discussion we\u0027re having on the dependent spec - and my favor goes to something orthogonal","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d1979df4bd0e5d6e9e4781ebfa03035110bdaafd","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    )"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Once the instance has been written to a cell database this entry should be"},{"line_number":77,"context_line":"deleted."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_fe73847e","line":77,"updated":"2015-04-15 11:01:58.000000000","message":"That sounds racey, I prefer the idea of having an empty cell mapping, and that points to the above record, and once the cell mapping is filled in, we delete the build_request entry?","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0ce9a70c1415025247f269782b719b9d88ceaa24","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    )"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Once the instance has been written to a cell database this entry should be"},{"line_number":77,"context_line":"deleted."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_ec8c7337","line":77,"in_reply_to":"7aaa499b_fe73847e","updated":"2015-04-15 20:50:19.000000000","message":"This could be racey but with proper handling I think we would be alright.  Like at any point in time an instance should always exist in at least one of build_request/instances and in case of duplication that could be handled by the api.\n\nI don\u0027t think the instance_mapping table is the right place to track existence of instances that aren\u0027t in an instance table yet.  So maybe there\u0027s a table missing before this is done.","commit_id":"f842eff8d8041198af02f2f77e27a86a2c5165d1"}]}
