)]}'
{"specs/ocata/secure-oslo-messaging-messages.rst":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"35bfa8575e0efb3031f4484dd43c563b5d1d1bab","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Why is this secure?"},{"line_number":123,"context_line":"-------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"We make three assumptions above; these are:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_82a7a44e","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":13},"updated":"2016-12-12 16:43:51.000000000","message":"two?","commit_id":"4659f3a2ef3a9bb44700d4f1b002423338afefa8"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"35bfa8575e0efb3031f4484dd43c563b5d1d1bab","unresolved":false,"context_lines":[{"line_number":133,"context_line":"architecture of an OpenStack system."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Should a guest be compromised, the bad actor can connect to the"},{"line_number":136,"context_line":"underlying transport (say Rabbit) but all they will be able to see are"},{"line_number":137,"context_line":"encrypted messages that they cannot decrypt."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Configuration"},{"line_number":140,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_ed568905","line":137,"range":{"start_line":136,"start_character":55,"end_line":137,"end_character":43},"updated":"2016-12-12 16:43:51.000000000","message":"Though they would be able to capture and re-inject messages, either for specific effect or DDoS attack.","commit_id":"4659f3a2ef3a9bb44700d4f1b002423338afefa8"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"35bfa8575e0efb3031f4484dd43c563b5d1d1bab","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Configuration"},{"line_number":140,"context_line":"-------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"The control plane key is stored on the control plane in a secure way"},{"line_number":143,"context_line":"and there are configuration options to tell each service where to find"},{"line_number":144,"context_line":"it."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_cd9f0db3","line":142,"range":{"start_line":142,"start_character":53,"end_line":142,"end_character":68},"updated":"2016-12-12 16:43:51.000000000","message":"This is difficult and not necessary.  If an attacker gained access to the controller, they likely wouldn\u0027t need the key to disrupt the system.","commit_id":"4659f3a2ef3a9bb44700d4f1b002423338afefa8"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"35bfa8575e0efb3031f4484dd43c563b5d1d1bab","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Database"},{"line_number":151,"context_line":"--------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"The guest key for each guest instance will be stored in the database."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Public API"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_cded4d27","line":153,"range":{"start_line":153,"start_character":46,"end_line":153,"end_character":68},"updated":"2016-12-12 16:43:51.000000000","message":"in the clear?","commit_id":"4659f3a2ef3a9bb44700d4f1b002423338afefa8"},{"author":{"_account_id":9500,"name":"Matt Fischer","email":"matt@mattfischer.com","username":"mfisch"},"change_message_id":"b09e56e8afa4d217af8863aab94834f9767bc38b","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The control plane key is constructed at system initialization"},{"line_number":107,"context_line":"time. The key is stored securely on the control plane."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"If the control plane consists of multiple machines, then the control"},{"line_number":110,"context_line":"plane services on all machines must have access to the control plane"},{"line_number":111,"context_line":"key."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_f1494832","line":108,"updated":"2016-12-15 23:08:12.000000000","message":"where is it stored?","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"34bc0bb8dd2bbe6981cbeb1196e22409a69307f8","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The control plane key is constructed at system initialization"},{"line_number":107,"context_line":"time. The key is stored securely on the control plane."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"If the control plane consists of multiple machines, then the control"},{"line_number":110,"context_line":"plane services on all machines must have access to the control plane"},{"line_number":111,"context_line":"key."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_5f502c32","line":108,"in_reply_to":"1a6eadb0_f1494832","updated":"2016-12-16 12:15:12.000000000","message":"In the config file.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9500,"name":"Matt Fischer","email":"matt@mattfischer.com","username":"mfisch"},"change_message_id":"b09e56e8afa4d217af8863aab94834f9767bc38b","unresolved":false,"context_lines":[{"line_number":109,"context_line":"If the control plane consists of multiple machines, then the control"},{"line_number":110,"context_line":"plane services on all machines must have access to the control plane"},{"line_number":111,"context_line":"key."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Getting keys to the guest instance"},{"line_number":114,"context_line":"----------------------------------"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_716458b8","line":112,"updated":"2016-12-15 23:08:12.000000000","message":"You should assume that any real deployment has \u003e 1 control node. Also whats the process to update this key? Is there one?","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"34bc0bb8dd2bbe6981cbeb1196e22409a69307f8","unresolved":false,"context_lines":[{"line_number":109,"context_line":"If the control plane consists of multiple machines, then the control"},{"line_number":110,"context_line":"plane services on all machines must have access to the control plane"},{"line_number":111,"context_line":"key."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Getting keys to the guest instance"},{"line_number":114,"context_line":"----------------------------------"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_9f3d64df","line":112,"in_reply_to":"1a6eadb0_716458b8","updated":"2016-12-16 12:15:12.000000000","message":"It will require downtime on the control plane, hard to do it without. No database instance outages will be required however.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"----------------------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"On instance launch, the guest key is created and passed to the"},{"line_number":117,"context_line":"guest as a file in the ConfigDrive. We assume that the ConfigDrive"},{"line_number":118,"context_line":"mechanism is secure."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A unique key is created for each instance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_ac78e990","line":117,"range":{"start_line":117,"start_character":23,"end_line":117,"end_character":34},"updated":"2016-12-19 17:32:06.000000000","message":"I take it you\u0027re not relying specifically on the ConfigDrive mechanism (which I understand is usually optional), but instead relying on the injected_files mechanism?","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"----------------------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"On instance launch, the guest key is created and passed to the"},{"line_number":117,"context_line":"guest as a file in the ConfigDrive. We assume that the ConfigDrive"},{"line_number":118,"context_line":"mechanism is secure."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A unique key is created for each instance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_52628cd9","line":117,"range":{"start_line":117,"start_character":23,"end_line":117,"end_character":34},"in_reply_to":"1a6eadb0_ac78e990","updated":"2016-12-19 17:38:17.000000000","message":"That is correct.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Why is this secure?"},{"line_number":123,"context_line":"-------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"We make three assumptions above; these are:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_0f72af7c","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":13},"updated":"2016-12-19 17:32:06.000000000","message":"Again, two?","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Why is this secure?"},{"line_number":123,"context_line":"-------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"We make three assumptions above; these are:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_f2a9d8e0","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":13},"in_reply_to":"1a6eadb0_0f72af7c","updated":"2016-12-19 17:38:17.000000000","message":"two, three ...","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4d5146635752ab8c9f027b271d4f8d930eb8ba1e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Why is this secure?"},{"line_number":123,"context_line":"-------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"We make three assumptions above; these are:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_548f9c22","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":13},"in_reply_to":"1a6eadb0_be82c7c6","updated":"2016-12-20 18:42:47.000000000","message":"sorry, yes I got it. I will update it; this and the other one you mention below re: config file options. Haven\u0027t yet had a chance to make the changes and submit them.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"b6a65d8fec00548bb8cccacbd191effa6189ebda","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Why is this secure?"},{"line_number":123,"context_line":"-------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"We make three assumptions above; these are:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_be82c7c6","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":13},"in_reply_to":"1a6eadb0_f2a9d8e0","updated":"2016-12-20 18:41:22.000000000","message":"So my point was that you say you are make \"three assumptions, these are\" but then only list an \"a\" and \"b\".","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"},{"line_number":129,"context_line":"(b) The transmission of the guest key to the guest is secure and is"},{"line_number":130,"context_line":"    not compromised."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"These are, meaningful and reasonable assumptions to make given the"},{"line_number":133,"context_line":"architecture of an OpenStack system."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_8ce88d18","line":130,"range":{"start_line":129,"start_character":38,"end_line":130,"end_character":19},"updated":"2016-12-19 17:32:06.000000000","message":"I don\u0027t think you mean this.  If we could assume that, we could simply assume the guest is not compromised and this whole exercise is moot.  I think the point of this feature is to limit the scope of a security breach to the single instance which was breached.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"(a) The control plane is secure, the control plane key is not"},{"line_number":128,"context_line":"    compromised, and"},{"line_number":129,"context_line":"(b) The transmission of the guest key to the guest is secure and is"},{"line_number":130,"context_line":"    not compromised."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"These are, meaningful and reasonable assumptions to make given the"},{"line_number":133,"context_line":"architecture of an OpenStack system."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_92818450","line":130,"range":{"start_line":129,"start_character":38,"end_line":130,"end_character":19},"in_reply_to":"1a6eadb0_8ce88d18","updated":"2016-12-19 17:38:17.000000000","message":"the guest may be compromised, here I\u0027m assuming that the transmission of the guest key to the guest is secure","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"These are, meaningful and reasonable assumptions to make given the"},{"line_number":133,"context_line":"architecture of an OpenStack system."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Should a guest be compromised, the bad actor can connect to the"},{"line_number":136,"context_line":"underlying transport (say Rabbit) but all they will be able to see are"},{"line_number":137,"context_line":"encrypted messages that they cannot decrypt."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_2c6f7993","line":135,"range":{"start_line":135,"start_character":18,"end_line":135,"end_character":29},"updated":"2016-12-19 17:32:06.000000000","message":"If they breached a guest, they would have both the rabbit credentials and that guest\u0027s key, and so would be able to inject commands to that guest.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"These are, meaningful and reasonable assumptions to make given the"},{"line_number":133,"context_line":"architecture of an OpenStack system."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Should a guest be compromised, the bad actor can connect to the"},{"line_number":136,"context_line":"underlying transport (say Rabbit) but all they will be able to see are"},{"line_number":137,"context_line":"encrypted messages that they cannot decrypt."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_329350a5","line":135,"range":{"start_line":135,"start_character":18,"end_line":135,"end_character":29},"in_reply_to":"1a6eadb0_2c6f7993","updated":"2016-12-19 17:38:17.000000000","message":"they would not need rabbit to inject commands to a guest that they have breached :)","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":".. code-block:: python"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    cfg.StrOpt(\u0027taskmanager_aes_cbc_key\u0027, default\u003d\u0027taskmanager_aes_cbc_key\u0027,"},{"line_number":153,"context_line":"               help\u003d\u0027OpenSSL aes_cbc key for taskmanager RPC encryption.\u0027),"},{"line_number":154,"context_line":"    cfg.StrOpt(\u0027instance_key_aes_cbc_key\u0027, default\u003d\u0027instance_key_aes_cbc_key\u0027,"},{"line_number":155,"context_line":"               help\u003d\u0027OpenSSL aes_cbc key to encrypt instance keys in DB.\u0027),"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_cfafd77b","line":152,"range":{"start_line":152,"start_character":16,"end_line":152,"end_character":39},"updated":"2016-12-19 17:32:06.000000000","message":"Do we really need to encode the choice of encryption technology into the config setting names?  What if in the future we wish to allow the user to select the encryption technology?","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"b6a65d8fec00548bb8cccacbd191effa6189ebda","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":".. code-block:: python"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    cfg.StrOpt(\u0027taskmanager_aes_cbc_key\u0027, default\u003d\u0027taskmanager_aes_cbc_key\u0027,"},{"line_number":153,"context_line":"               help\u003d\u0027OpenSSL aes_cbc key for taskmanager RPC encryption.\u0027),"},{"line_number":154,"context_line":"    cfg.StrOpt(\u0027instance_key_aes_cbc_key\u0027, default\u003d\u0027instance_key_aes_cbc_key\u0027,"},{"line_number":155,"context_line":"               help\u003d\u0027OpenSSL aes_cbc key to encrypt instance keys in DB.\u0027),"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_94abf488","line":152,"range":{"start_line":152,"start_character":16,"end_line":152,"end_character":39},"in_reply_to":"1a6eadb0_12dd7470","updated":"2016-12-20 18:41:22.000000000","message":"While consistency is good, I don\u0027t think we should strive to be consistently bad :-)","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":".. code-block:: python"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    cfg.StrOpt(\u0027taskmanager_aes_cbc_key\u0027, default\u003d\u0027taskmanager_aes_cbc_key\u0027,"},{"line_number":153,"context_line":"               help\u003d\u0027OpenSSL aes_cbc key for taskmanager RPC encryption.\u0027),"},{"line_number":154,"context_line":"    cfg.StrOpt(\u0027instance_key_aes_cbc_key\u0027, default\u003d\u0027instance_key_aes_cbc_key\u0027,"},{"line_number":155,"context_line":"               help\u003d\u0027OpenSSL aes_cbc key to encrypt instance keys in DB.\u0027),"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_12dd7470","line":152,"range":{"start_line":152,"start_character":16,"end_line":152,"end_character":39},"in_reply_to":"1a6eadb0_cfafd77b","updated":"2016-12-19 17:38:17.000000000","message":"you are correct, I was merely following the pattern setup by earlier folks who did this kind of thing.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":174,"context_line":"| deleted_at    | datetime     | YES  |     | NULL    |       |"},{"line_number":175,"context_line":"+---------------+--------------+------+-----+---------+-------+"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"The guest instance keys are encrypted and stored in the encrypted_key"},{"line_number":178,"context_line":"column. A foreign key constraint links instance_id with"},{"line_number":179,"context_line":"instances.id. A unique constraint on instance_id is placed on this"},{"line_number":180,"context_line":"table."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_6fefa3b0","line":177,"range":{"start_line":177,"start_character":4,"end_line":177,"end_character":37},"updated":"2016-12-19 17:32:06.000000000","message":"How would these be encrypted?  If with the control plane key, doesn\u0027t that mean that the control plane key couldn\u0027t be changed without updating all of the guest agent keys?  Also, since every guest instance will require a key, why not just put it on the instances table?","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":174,"context_line":"| deleted_at    | datetime     | YES  |     | NULL    |       |"},{"line_number":175,"context_line":"+---------------+--------------+------+-----+---------+-------+"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"The guest instance keys are encrypted and stored in the encrypted_key"},{"line_number":178,"context_line":"column. A foreign key constraint links instance_id with"},{"line_number":179,"context_line":"instances.id. A unique constraint on instance_id is placed on this"},{"line_number":180,"context_line":"table."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_d2c93cae","line":177,"range":{"start_line":177,"start_character":4,"end_line":177,"end_character":37},"in_reply_to":"1a6eadb0_6fefa3b0","updated":"2016-12-19 17:38:17.000000000","message":"a different key","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":203,"context_line":"------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"The internal API will remain unaffected by this change as the"},{"line_number":206,"context_line":"implementation seeks to work below the Trove code entirely."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Guest Agent"},{"line_number":209,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_aff29b6d","line":206,"updated":"2016-12-19 17:32:06.000000000","message":"This would in fact have an impact on both the internal and guest APIs as the format of the values would change, and so would cause an incompatibility.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":203,"context_line":"------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"The internal API will remain unaffected by this change as the"},{"line_number":206,"context_line":"implementation seeks to work below the Trove code entirely."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Guest Agent"},{"line_number":209,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_72bb080f","line":206,"in_reply_to":"1a6eadb0_aff29b6d","updated":"2016-12-19 17:38:17.000000000","message":"fair point","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"7cb1287874460b2750fa384e09a74d7afc662cc5","unresolved":false,"context_lines":[{"line_number":282,"context_line":"Upgrade Implications"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Minimal upgrade implications are anticipated."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"1. The control plane key will be generated and persisted on all"},{"line_number":288,"context_line":"   control plane nodes."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_ef48138a","line":285,"updated":"2016-12-19 17:32:06.000000000","message":"I suspect you will run into an issue with the Conductor.  If we wish to avoid injection attacks at the Conductor, once it was updated it would only be able to accept encrypted messages, and as a result no guest would be able to talk to it before it was upgraded.  You may not be able to upgrade the guests if they can\u0027t talk to the conductor, but I\u0027m not sure on that one.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7934a25ce72f4990ccd0c3ba318e950df247e08e","unresolved":false,"context_lines":[{"line_number":282,"context_line":"Upgrade Implications"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Minimal upgrade implications are anticipated."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"1. The control plane key will be generated and persisted on all"},{"line_number":288,"context_line":"   control plane nodes."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_f2455817","line":285,"in_reply_to":"1a6eadb0_ef48138a","updated":"2016-12-19 17:38:17.000000000","message":"code takes care of that.","commit_id":"1164428ea79214337a9a469b9ca1cff032405b01"}]}
