)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ac3abddab1e942e62e6f3516dd46342556b127e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     16a48ea3 (Merge \"Proposal for cells v2 scheduling interaction\")"},{"line_number":2,"context_line":"Author:     Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2014-04-16 12:09:57 -0600"},{"line_number":4,"context_line":"Commit:     Miguel Lavalle \u003cmalavall@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-17 16:48:46 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate DNS resolution with Neutron using Nova hostname"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"ba8a016a_f98fd627","line":4,"updated":"2015-11-18 16:54:37.000000000","message":"Miguel, you shuold be a co-author too.  Maybe even the main author at this point.  ;)  I don\u0027t mind either way.  Whatever you want to do.","commit_id":"43ae1e4dd430a54ad21be85e142a1858350a6464"}],"specs/juno/internal-dns-resolution.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Nova will pass the instance name when it boots using an existing Neutron port"},{"line_number":51,"context_line":"by updating the port with the hostname field.  An implementation has already"},{"line_number":52,"context_line":"been started [#]_.  This implementation will need to be augmented in two ways:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_fcee978a","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":12},"updated":"2014-05-01 19:08:52.000000000","message":"I assume you mean the \"hostname\" and not \"name\" here, right? The user does not choose the latter and the former is actually a sanitized version of display_name. Clarity here would be good, since the actual \"name\" property is vastly misunderstood.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Nova will pass the instance name when it boots using an existing Neutron port"},{"line_number":51,"context_line":"by updating the port with the hostname field.  An implementation has already"},{"line_number":52,"context_line":"been started [#]_.  This implementation will need to be augmented in two ways:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_f68f9321","line":52,"in_reply_to":"9ad9bd40_fcee978a","updated":"2014-05-01 21:24:37.000000000","message":"Other paragraphs are very clear about this (above) and the sanitization is mentioned below..  I\u0027ll fix this paragraph.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d2b5c56f37e09f9738710a5f59ecfcd296b8356d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   than the *name* field."},{"line_number":58,"context_line":"#. Nova will recognize certain errors from the Neutron API server and retry"},{"line_number":59,"context_line":"   without *hostname* if any is received."},{"line_number":60,"context_line":"#. Nova may need a configuration variable to enable this behavior."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - Otherwise, if Neutron has not been upgraded with the hostname extension"},{"line_number":63,"context_line":"    Nova will need to make two calls for every port create, the first one that"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_01059879","line":60,"updated":"2014-05-01 18:08:22.000000000","message":"-1 on a configuration option for this. Nova already has way too many configuration options :)","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   than the *name* field."},{"line_number":58,"context_line":"#. Nova will recognize certain errors from the Neutron API server and retry"},{"line_number":59,"context_line":"   without *hostname* if any is received."},{"line_number":60,"context_line":"#. Nova may need a configuration variable to enable this behavior."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - Otherwise, if Neutron has not been upgraded with the hostname extension"},{"line_number":63,"context_line":"    Nova will need to make two calls for every port create, the first one that"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_7c89a7c9","line":60,"in_reply_to":"9ad9bd40_01059879","updated":"2014-05-01 19:08:52.000000000","message":"Agreed, although I\u0027ll say -2","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   than the *name* field."},{"line_number":58,"context_line":"#. Nova will recognize certain errors from the Neutron API server and retry"},{"line_number":59,"context_line":"   without *hostname* if any is received."},{"line_number":60,"context_line":"#. Nova may need a configuration variable to enable this behavior."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - Otherwise, if Neutron has not been upgraded with the hostname extension"},{"line_number":63,"context_line":"    Nova will need to make two calls for every port create, the first one that"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_7689c3c9","line":60,"in_reply_to":"9ad9bd40_7c89a7c9","updated":"2014-05-01 21:24:37.000000000","message":"Yeah, I\u0027m not a big fan of adding config options.  That is why I said \"may need\".  I\u0027m with you here.  I\u0027ll remove this and move the description below to \"performance impact\"","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d2b5c56f37e09f9738710a5f59ecfcd296b8356d","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - Otherwise, if Neutron has not been upgraded with the hostname extension"},{"line_number":63,"context_line":"    Nova will need to make two calls for every port create, the first one that"},{"line_number":64,"context_line":"    passes hostname and fails and then the second one without hostname."},{"line_number":65,"context_line":"  - This blueprint could be implemented without it but the errors may slow"},{"line_number":66,"context_line":"    things down or otherwise be a nuisance."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_81ca884d","line":64,"updated":"2014-05-01 18:08:22.000000000","message":"This isn\u0027t a terrible problem actually... the deployer would just upgrade their Neutron installation, so this behavior would only occur for a brief period of time during upgrade process...","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - Otherwise, if Neutron has not been upgraded with the hostname extension"},{"line_number":63,"context_line":"    Nova will need to make two calls for every port create, the first one that"},{"line_number":64,"context_line":"    passes hostname and fails and then the second one without hostname."},{"line_number":65,"context_line":"  - This blueprint could be implemented without it but the errors may slow"},{"line_number":66,"context_line":"    things down or otherwise be a nuisance."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_dcf9d34e","line":64,"in_reply_to":"9ad9bd40_81ca884d","updated":"2014-05-01 19:08:52.000000000","message":"Will neutron actually fail if you pass extra data in the request? Many parts of the Nova API wouldn\u0027t, although the direction seems to be (incorrectly, IMHO) leaning towards strict processing of those objects.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  - Otherwise, if Neutron has not been upgraded with the hostname extension"},{"line_number":63,"context_line":"    Nova will need to make two calls for every port create, the first one that"},{"line_number":64,"context_line":"    passes hostname and fails and then the second one without hostname."},{"line_number":65,"context_line":"  - This blueprint could be implemented without it but the errors may slow"},{"line_number":66,"context_line":"    things down or otherwise be a nuisance."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_d6f9af4e","line":64,"in_reply_to":"9ad9bd40_dcf9d34e","updated":"2014-05-01 21:24:37.000000000","message":"Jay, I\u0027ve experienced much longer than \"brief\" periods of time like this.  Still, maybe a config option is even more painful.\n\nDan, yes Neutron does reject the entire call.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d2b5c56f37e09f9738710a5f59ecfcd296b8356d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    operation with no hostname set.  Nova will not enforce DNS label rules on"},{"line_number":84,"context_line":"    the VM host name in the short term to avoid breaking existing Nova API"},{"line_number":85,"context_line":"    users.  Nova may choose to enforce DNS label rules on the host name in the"},{"line_number":86,"context_line":"    future but that is outside the scope of this change."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. [#] https://tools.ietf.org/html/rfc952"},{"line_number":89,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_a13cec30","line":86,"updated":"2014-05-01 18:08:22.000000000","message":"++, good thinking here.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d2b5c56f37e09f9738710a5f59ecfcd296b8356d","unresolved":false,"context_lines":[{"line_number":89,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"},{"line_number":90,"context_line":".. [#] http://tools.ietf.org/html/rfc1035"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Nova Allows Duplicate Names."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    The Nova API does not enforce that host names are unique.  Adding this"},{"line_number":95,"context_line":"    enforcement has similar complications to adding validation discussed in the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_81f8c87d","line":92,"updated":"2014-05-01 18:08:22.000000000","message":"Yes. This is the very first thing I thought about when I started reading this blueprint... good to see you\u0027ve covered this known issue.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":104,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":105,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":106,"context_line":"    hostname set."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. [#] http://tools.ietf.org/html/rfc4343"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_5c414359","line":106,"updated":"2014-05-01 19:08:52.000000000","message":"This seems rather dangerous to me actually. If we start expecting that the display_name that we give to the instance is in DNS, and we don\u0027t fail the operation if we can\u0027t satisfy that, then users have the potential to do insecure things without realizing. For example:\n\n nova boot foo\n ssh -u myuser foo.provider.com\n ### Accept host key?\n y\n ssh password for myuser@foo.provider.com: *****\n Permission denied\n ssh password for myuser@foo.provider.com: *****\n\nand thus I\u0027ve just given my password to someone who guessed the hostname that I wanted. Unless we expose the actual hostname back to the nova user somehow, we can\u0027t really blame someone for committing the above offense, IMHO, which is pretty bad.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":104,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":105,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":106,"context_line":"    hostname set."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. [#] http://tools.ietf.org/html/rfc4343"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_b677cb01","line":106,"in_reply_to":"9ad9bd40_5c414359","updated":"2014-05-01 21:24:37.000000000","message":"How many times do people need to be told to check their host keys?  This is just one obscure way of many ways people might run a man-in-the-middle attack and get a password.\n\nI don\u0027t think it is reasonable to hold the networking infrastructure responsible for this kind of carelessness.  Security models always treat the network layer as hostile and provide mechanisms like this to authenticate endpoints.\n\nAlso, your use of provider.com is not consistent with how I envision we integrate with DNS externally.  I would register the name in a domain that is under tenant control and ownership.  I would not advocate sharing a domain across tenants who are not friendly with each other.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d2b5c56f37e09f9738710a5f59ecfcd296b8356d","unresolved":false,"context_lines":[{"line_number":128,"context_line":"for not doing this are:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. That field may be used by Neutron API consumers for other purposes."},{"line_number":131,"context_line":"#. The field was not intended to carry a DNS label and therefore does validate"},{"line_number":132,"context_line":"   values as such."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_017af8f0","line":131,"updated":"2014-05-01 18:08:22.000000000","message":"s/does/does not/","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":128,"context_line":"for not doing this are:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. That field may be used by Neutron API consumers for other purposes."},{"line_number":131,"context_line":"#. The field was not intended to carry a DNS label and therefore does validate"},{"line_number":132,"context_line":"   values as such."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_160a378a","line":131,"in_reply_to":"9ad9bd40_017af8f0","updated":"2014-05-01 21:24:37.000000000","message":"Doh!  Done","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":144,"context_line":"In fact, this blueprint preserves existing behavior by not adding any new"},{"line_number":145,"context_line":"requirements on the host name.  If the name does not meet the criteria set by"},{"line_number":146,"context_line":"the Neutron API then Nova will retry the operation without the hostname and"},{"line_number":147,"context_line":"behavior will revert to how it was before."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_fc185786","line":147,"updated":"2014-05-01 19:08:52.000000000","message":"I\u0027m not sure this is a good idea (see above).\n\nI\u0027m not sure that we publish what the hostname sanitization rules are, so I wonder if we can just expose what we know neutron accepted to the user like this and still avoid a breaking API change?","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1eece54a34c689596d8ff07b89f1f73d4c52c02c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"In fact, this blueprint preserves existing behavior by not adding any new"},{"line_number":145,"context_line":"requirements on the host name.  If the name does not meet the criteria set by"},{"line_number":146,"context_line":"the Neutron API then Nova will retry the operation without the hostname and"},{"line_number":147,"context_line":"behavior will revert to how it was before."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_09f84348","line":147,"in_reply_to":"9ad9bd40_36e9fb80","updated":"2014-05-02 17:36:27.000000000","message":"My point is, I don\u0027t think that the sanitized hostname is known to be predictable right now, in which case just exposing what we get back from neutron seems non-breaking to me. And it will calm my fears above. If we tell the user what the hostname is and they still ssh to the wrong host, then that\u0027s different than us not telling them and them assuming it based on the behavior they\u0027ve seen thus far.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":144,"context_line":"In fact, this blueprint preserves existing behavior by not adding any new"},{"line_number":145,"context_line":"requirements on the host name.  If the name does not meet the criteria set by"},{"line_number":146,"context_line":"the Neutron API then Nova will retry the operation without the hostname and"},{"line_number":147,"context_line":"behavior will revert to how it was before."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_36e9fb80","line":147,"in_reply_to":"9ad9bd40_fc185786","updated":"2014-05-01 21:24:37.000000000","message":"So, change the sanitization?  I had thought about that.  A colleague of mine talked me out of it at the time.\n\nWhat do you suggest we do with a name that starts with a digit or exceeds 63 characters?  I\u0027m open to entertaining suggestions.\n\nThere is also the matter of duplicate names (with a case-insensitive comparison)","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"None"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Notifications impact"},{"line_number":155,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_3c139f67","line":152,"updated":"2014-05-01 19:08:52.000000000","message":"See above. If we do this as-is, I definitely think there is a security impact, even if it\u0027s just a disclosure in the release notes.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"None"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Notifications impact"},{"line_number":155,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_b9341cdf","line":152,"in_reply_to":"9ad9bd40_3c139f67","updated":"2014-05-01 21:24:37.000000000","message":"I don\u0027t agree that this is a significant security impact.  See my notes above.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Other end user impact"},{"line_number":160,"context_line":"---------------------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"None"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Performance Impact"},{"line_number":165,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_5c186381","line":162,"updated":"2014-05-01 19:08:52.000000000","message":"I think that at the minimum, you\u0027d expect to list \"better experience for the user\" (with more words).","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Other end user impact"},{"line_number":160,"context_line":"---------------------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"None"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Performance Impact"},{"line_number":165,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_7968d4ba","line":162,"in_reply_to":"9ad9bd40_5c186381","updated":"2014-05-01 21:24:37.000000000","message":"Fair enough.","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"954d5affaece7dfb9f91134def04fb2b7a239598","unresolved":false,"context_lines":[{"line_number":174,"context_line":"are complete."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":".. TODO Possibility of adding a new configuration option is still an open"},{"line_number":177,"context_line":"   question."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Developer impact"},{"line_number":180,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_bc06cf1e","line":177,"updated":"2014-05-01 19:08:52.000000000","message":"Not IMHO","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9a9b9c8b385c4f280ea7de5fa5e0f6e90a3f791e","unresolved":false,"context_lines":[{"line_number":174,"context_line":"are complete."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":".. TODO Possibility of adding a new configuration option is still an open"},{"line_number":177,"context_line":"   question."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Developer impact"},{"line_number":180,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_19c0a84f","line":177,"in_reply_to":"9ad9bd40_bc06cf1e","updated":"2014-05-01 21:24:37.000000000","message":"Done","commit_id":"48a80fc304101c8b5f948645ec4e6778c568fcd6"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f1b4562d48cf28b8ad1d7cb4c0d3e3bd08605429","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. header:: © 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Neutron DNS Using Nova Hostname"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_2c59acfe","line":1,"updated":"2014-05-01 21:51:20.000000000","message":"This repo is under CCA 3. can you please include the header.\n\nhttp://git.openstack.org/cgit/openstack/nova-specs/tree/specs/template.rst#n2","commit_id":"139ef78363a01fdd91a02c4af67e44aba2ad8c0c"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"53678a7eca8006d5f5466761f671463dc1bb0111","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. header:: © 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Neutron DNS Using Nova Hostname"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_19f5f6ca","line":1,"in_reply_to":"9ad9bd40_2c59acfe","updated":"2014-05-02 16:23:52.000000000","message":"Joe.  Right, I changed that in my neutron blueprints already.  I guess I missed this one.","commit_id":"139ef78363a01fdd91a02c4af67e44aba2ad8c0c"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"72fa8adcdd68681c5730a89f0cd0b37ede68d997","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   than the *name* field."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be return if Neutron has not"},{"line_number":65,"context_line":"   been upgraded to handle the hostname field."},{"line_number":66,"context_line":"#. Existing port status notifications from Neutron will be augmented to include"},{"line_number":67,"context_line":"   the *hostname* used by Neutron.  In most cases, this hostname will match the"},{"line_number":68,"context_line":"   one picked by Nova but may not if there was a problem with the hostname."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_a55fbd71","line":65,"updated":"2014-05-07 17:22:13.000000000","message":"add:  ... or if the name supplied by Nova is not valid.   In this case Neutron will assign a name and notify Nova as described below.","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"16668e73dc0b478201b37b84a2959b43ec0d542b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   than the *name* field."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be return if Neutron has not"},{"line_number":65,"context_line":"   been upgraded to handle the hostname field."},{"line_number":66,"context_line":"#. Existing port status notifications from Neutron will be augmented to include"},{"line_number":67,"context_line":"   the *hostname* used by Neutron.  In most cases, this hostname will match the"},{"line_number":68,"context_line":"   one picked by Nova but may not if there was a problem with the hostname."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_ac8f8822","line":65,"in_reply_to":"7adec928_a55fbd71","updated":"2014-05-08 18:41:40.000000000","message":"In the current design, Neutron does not produce an error that Nova will see.  I don\u0027t think this is the right place to add this.  See line 108.  I\u0027ll see if some rewrite will make this clearer.","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"72fa8adcdd68681c5730a89f0cd0b37ede68d997","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Existing port status notifications from Neutron will be augmented to include"},{"line_number":67,"context_line":"   the *hostname* used by Neutron.  In most cases, this hostname will match the"},{"line_number":68,"context_line":"   one picked by Nova but may not if there was a problem with the hostname."},{"line_number":69,"context_line":"   Nova will accept this name and use it in place of the old one."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Following is a description of scenarios where the Neutron *hostname* may be"},{"line_number":72,"context_line":"different from Nova\u0027s."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_4531990a","line":69,"updated":"2014-05-07 17:22:13.000000000","message":"So Nova will be changed to always update the hostname to match the value supplied by Neutron ?\n\nDoes this mean that a user could update the hostname property of a port at any time and make a change in Nova, and if so will that lead to an inconsistency between the value in Nova and the hostname of the GuestOS ?","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"16668e73dc0b478201b37b84a2959b43ec0d542b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Existing port status notifications from Neutron will be augmented to include"},{"line_number":67,"context_line":"   the *hostname* used by Neutron.  In most cases, this hostname will match the"},{"line_number":68,"context_line":"   one picked by Nova but may not if there was a problem with the hostname."},{"line_number":69,"context_line":"   Nova will accept this name and use it in place of the old one."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Following is a description of scenarios where the Neutron *hostname* may be"},{"line_number":72,"context_line":"different from Nova\u0027s."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_ece8b07e","line":69,"in_reply_to":"7adec928_4531990a","updated":"2014-05-08 18:41:40.000000000","message":"Phil, this is a good question.  With the current design, the answer is yes.  I\u0027m not sure how to prevent it except to possibly document it with the API.  Any ideas?","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"72fa8adcdd68681c5730a89f0cd0b37ede68d997","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    previous section."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    Additionally, Neutron will enforce that hostnames are unique using a case"},{"line_number":103,"context_line":"    insensitive comparison [#]_."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    Neutron will enforce this in port create and port update APIs using a"},{"line_number":106,"context_line":"    *first-come-first-served* policy.  The database will have a unique"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_e5f46589","line":103,"updated":"2014-05-07 17:22:13.000000000","message":"What is the scope for unique names:  Per network, Per Project, etc ?","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"16668e73dc0b478201b37b84a2959b43ec0d542b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    previous section."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    Additionally, Neutron will enforce that hostnames are unique using a case"},{"line_number":103,"context_line":"    insensitive comparison [#]_."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    Neutron will enforce this in port create and port update APIs using a"},{"line_number":106,"context_line":"    *first-come-first-served* policy.  The database will have a unique"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_0c3b1c3b","line":103,"in_reply_to":"7adec928_e5f46589","updated":"2014-05-08 18:41:40.000000000","message":"This is addressed in the Neutron blueprint (also in progress).  It is per network in the current design.  We could extend the reach of this to enforce uniqueness per domain.  Neutron will get the concept of a domain in my external-dns-blueprint where currently the domain is \"openstack.local\".  I may need to think this through a bit more but I will continue to address this in the neutron blueprint.","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"72fa8adcdd68681c5730a89f0cd0b37ede68d997","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    Neutron will enforce this in port create and port update APIs using a"},{"line_number":106,"context_line":"    *first-come-first-served* policy.  The database will have a unique"},{"line_number":107,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":108,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":109,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":110,"context_line":"    hostname set."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_c8aea0e7","line":108,"updated":"2014-05-07 17:22:13.000000000","message":"Will that DB constraint be triggered in the scope of the REST call from Nova into Neutron ?\n\nMy concern is that this overall approach relies on Nova detecting when Neutron has rejected a name - but if (for example) Neutron accepts the call and then processes it later it can\u0027t return an error to Nova","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"16668e73dc0b478201b37b84a2959b43ec0d542b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    Neutron will enforce this in port create and port update APIs using a"},{"line_number":106,"context_line":"    *first-come-first-served* policy.  The database will have a unique"},{"line_number":107,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":108,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":109,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":110,"context_line":"    hostname set."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_8c2c8cad","line":108,"in_reply_to":"7adec928_c8aea0e7","updated":"2014-05-08 18:41:40.000000000","message":"The current design is that Neutron will accept the call and inform Nova of the hostname when the port is created.  This should be before Nova boot, right?  So, Nova can still act on it before the VM boots.\n\nThis current design is a bit of a shift in direction from the previous patch set.  You might read Dan Smith\u0027s comments on previous patch sets for context.  I\u0027d like to get your point of view on the two approaches.","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"72fa8adcdd68681c5730a89f0cd0b37ede68d997","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    will be set to \"vm.example.com\"."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    In this case, Nova will pass the entire hostname to Neutron.  Neutron may"},{"line_number":122,"context_line":"    be able to make use of the full name."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Alternatives"},{"line_number":125,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_052071f6","line":122,"updated":"2014-05-07 17:22:13.000000000","message":"Seems a bit weak here on what happens in this case - can you expand on when Neutron will and won\u0027t be able to use the full name ?","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"16668e73dc0b478201b37b84a2959b43ec0d542b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    will be set to \"vm.example.com\"."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    In this case, Nova will pass the entire hostname to Neutron.  Neutron may"},{"line_number":122,"context_line":"    be able to make use of the full name."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Alternatives"},{"line_number":125,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_bf040c16","line":122,"in_reply_to":"7adec928_052071f6","updated":"2014-05-08 18:41:40.000000000","message":"Will be addressed in Neutron.  That is a bit of a WIP in Neutron but it is safe to say that Nova should just pass its hostname to Neutron and be done.","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"72fa8adcdd68681c5730a89f0cd0b37ede68d997","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"If Neutron is upgraded before Nova, there is no problem because the hostname"},{"line_number":190,"context_line":"field is not required and behavior defaults to old behavior."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"If Nova is upgraded before Neutron then Nova will see errors from the"},{"line_number":193,"context_line":"Neutron API when it tries passing the hostname field.  Once again, Nova"},{"line_number":194,"context_line":"should recognize this error and retry the operation without the hostname."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_85e8017e","line":191,"updated":"2014-05-07 17:22:13.000000000","message":"But in this case Neutron will be passing additional data in the external event - does the existing Nova handle that OK ?","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"16668e73dc0b478201b37b84a2959b43ec0d542b","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"If Neutron is upgraded before Nova, there is no problem because the hostname"},{"line_number":190,"context_line":"field is not required and behavior defaults to old behavior."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"If Nova is upgraded before Neutron then Nova will see errors from the"},{"line_number":193,"context_line":"Neutron API when it tries passing the hostname field.  Once again, Nova"},{"line_number":194,"context_line":"should recognize this error and retry the operation without the hostname."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7adec928_9f2670b9","line":191,"in_reply_to":"7adec928_85e8017e","updated":"2014-05-08 18:41:40.000000000","message":"Good question.  I will look in to this.  I believe that Nova ignores extra fields like this but I will check to be sure.  (Dan Smith\u0027s comments on an earlier patch set led me to believe this)","commit_id":"bf1679a4ef221ad01cf911bf2b02b5d2251503e3"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"d73e26ac8be82b40c18d49ef267cfc4a2ab9d7f5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   than the *name* field."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be return if Neutron has not"},{"line_number":65,"context_line":"   been upgraded to handle the hostname field."},{"line_number":66,"context_line":"#. Existing port status notifications from Neutron will be augmented to include"},{"line_number":67,"context_line":"   the *hostname* used by Neutron.  In most cases, this hostname will match the"},{"line_number":68,"context_line":"   one picked by Nova but may not if there was a problem with the hostname."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7adec928_d0c5375c","line":65,"updated":"2014-05-09 12:54:24.000000000","message":"If this is just a short term need to address the issue of Neutron not being updated before Nova then we should call that out, and have some plan to deprecate and remove the check.   Otherwise in a years time we\u0027ll be wondering why this behaviour is in there.","commit_id":"491150eecc8b23c5a22effc21b608bc6cd6c802c"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5ece9e95ee1d822357ea43167943e1796c4325f8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   than the *name* field."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be return if Neutron has not"},{"line_number":65,"context_line":"   been upgraded to handle the hostname field."},{"line_number":66,"context_line":"#. Existing port status notifications from Neutron will be augmented to include"},{"line_number":67,"context_line":"   the *hostname* used by Neutron.  In most cases, this hostname will match the"},{"line_number":68,"context_line":"   one picked by Nova but may not if there was a problem with the hostname."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7adec928_1cb178e1","line":65,"in_reply_to":"7adec928_d0c5375c","updated":"2014-05-09 18:11:29.000000000","message":"This can be done.  I will call that out here and I will ensure that the code is well-documented and a plan for deprecation is in place.","commit_id":"491150eecc8b23c5a22effc21b608bc6cd6c802c"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"d73e26ac8be82b40c18d49ef267cfc4a2ab9d7f5","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"#. That field may be used by Neutron API consumers for other purposes."},{"line_number":140,"context_line":"#. The field was not intended to carry a DNS label and therefore does not"},{"line_number":141,"context_line":"   validate values as such."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Data model impact"},{"line_number":144,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7adec928_50eda7c2","line":141,"updated":"2014-05-09 12:54:24.000000000","message":"I think the alternative of doing suitable name validation in Nova needs to be covered here - as most of the complexity in the BP seems to come from deferring that to Neutron and then having to feed the result back into Nova.\n\nYes that would mean a change in Nova that then needs to be explicity enabled, and hence configured somehow (could be an API extension so that users can detect it), and yes we have too many config values of those already - but that shouldn\u0027t mean that automatically any new config value is blocked if it can avoid a more complex change and facilitate a smooth transition.\n\nI think it would be a much better user experience if the name failed validation during create that if it gets mutated by the system without prior warning.","commit_id":"491150eecc8b23c5a22effc21b608bc6cd6c802c"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5ece9e95ee1d822357ea43167943e1796c4325f8","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"#. That field may be used by Neutron API consumers for other purposes."},{"line_number":140,"context_line":"#. The field was not intended to carry a DNS label and therefore does not"},{"line_number":141,"context_line":"   validate values as such."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Data model impact"},{"line_number":144,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7adec928_1c36d852","line":141,"in_reply_to":"7adec928_50eda7c2","updated":"2014-05-09 18:11:29.000000000","message":"I will address that alternative here.  I\u0027m still inclined to keep the current direction of the blueprint.  Let\u0027s see where the feedback takes us after I add the discussion of this alternative here.\n\nIt might be reasonable to change the hostname sanitization so that it produces a valid DNS label.  dnsmasq has been riding the line between hostnames and dns labels for years and no one has hardly noticed.  It isn\u0027t even discussed in dnsmasq man page as far as I can tell.\n\nDuplicate name detection and validation is a bigger problem.  I\u0027ve seen this in the wild.  Nova likely does not have the information necessary to check for duplicate names within the appropriate scope.  For example, I would like to check duplicate names per domain across networks, this will be difficult for Nova.  It seems right for Neutron to take on this responsibility.","commit_id":"491150eecc8b23c5a22effc21b608bc6cd6c802c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"baaa14ca7f052aff3bb3c67617f4e43b7b54befe","unresolved":false,"context_lines":[{"line_number":74,"context_line":".. NOTE An open question here is what should happen if a user updates the"},{"line_number":75,"context_line":"   hostname on the Neutron port after the VM has already booted.  This will"},{"line_number":76,"context_line":"   likely lead to an inconsistency between the hostname in the database and the"},{"line_number":77,"context_line":"   hostname in the guest os."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Following is a description of scenarios where the Neutron *hostname* may be"},{"line_number":80,"context_line":"different from Nova\u0027s."}],"source_content_type":"text/x-rst","patch_set":9,"id":"7adec928_4493144f","line":77,"updated":"2014-05-11 17:28:56.000000000","message":"There\u0027s nothing we can do about this in a virt-generic manner, nor do I think it\u0027s much of a problem. If I change the DNS entry for my running physical machine, I don\u0027t see that change immediately either. IMHO, just nuke this NOTE and replace it with something like \"ensuring that changes to running VMs are reflected immediately is not within the scope of this change\" or some similar punt.","commit_id":"57b1bc5b35735963d9a88d2d6a44151161c937ff"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b2cf1ccbba3c328117cde0d721b0ecf18b890ff2","unresolved":false,"context_lines":[{"line_number":74,"context_line":".. NOTE An open question here is what should happen if a user updates the"},{"line_number":75,"context_line":"   hostname on the Neutron port after the VM has already booted.  This will"},{"line_number":76,"context_line":"   likely lead to an inconsistency between the hostname in the database and the"},{"line_number":77,"context_line":"   hostname in the guest os."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Following is a description of scenarios where the Neutron *hostname* may be"},{"line_number":80,"context_line":"different from Nova\u0027s."}],"source_content_type":"text/x-rst","patch_set":9,"id":"7adec928_5a084491","line":77,"in_reply_to":"7adec928_4493144f","updated":"2014-05-12 19:03:40.000000000","message":"Dan, I tend to agree with you here.  I added the note to get others\u0027 feedback.  Thank you for chiming in.","commit_id":"57b1bc5b35735963d9a88d2d6a44151161c937ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"baaa14ca7f052aff3bb3c67617f4e43b7b54befe","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":117,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":118,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":119,"context_line":"    hostname set."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":".. [#] http://tools.ietf.org/html/rfc4343"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7adec928_849d1c5c","line":119,"updated":"2014-05-11 17:28:56.000000000","message":"L71-72 seem to conflict with this. It definitely seems like the desired behavior is to update Nova\u0027s hostname immediately from the result of the port create action, and not this retry-with-null approach. Can you clarify which you\u0027re actually intending to do and clear up the confusion?","commit_id":"57b1bc5b35735963d9a88d2d6a44151161c937ff"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b2cf1ccbba3c328117cde0d721b0ecf18b890ff2","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":117,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":118,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":119,"context_line":"    hostname set."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":".. [#] http://tools.ietf.org/html/rfc4343"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7adec928_daf3749d","line":119,"in_reply_to":"7adec928_849d1c5c","updated":"2014-05-12 19:03:40.000000000","message":"Dan, I meant to remove the part about returning the error.  Leaving it in was an oversight.  Thank you for pointing it out.","commit_id":"57b1bc5b35735963d9a88d2d6a44151161c937ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"baaa14ca7f052aff3bb3c67617f4e43b7b54befe","unresolved":false,"context_lines":[{"line_number":145,"context_line":"I\u0027ve seen duplicate names in the wild.  Nova likely does not have the"},{"line_number":146,"context_line":"information necessary to check for duplicate names within the appropriate"},{"line_number":147,"context_line":"scope.  For example, I would like to check duplicate names per domain across"},{"line_number":148,"context_line":"networks, this will be difficult for Nova."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Data model impact"},{"line_number":151,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7adec928_04a90c7b","line":148,"updated":"2014-05-11 17:28:56.000000000","message":"I don\u0027t think there is any worry for disruption by changing the nova alogrithm, but since it can\u0027t reliably do duplicate detection, it\u0027s not worth changing IMHO.\n\nNothing needs to change in this section necessarily, I\u0027m just commenting.","commit_id":"57b1bc5b35735963d9a88d2d6a44151161c937ff"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"28fd8d79ec9c8479d092fd7986dffe731e78dee0","unresolved":false,"context_lines":[{"line_number":59,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Nova will pass the VM name using a new *hostname* field in the port rather"},{"line_number":62,"context_line":"   than the *name* field."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be returned if Neutron has"},{"line_number":65,"context_line":"   not been upgraded to handle the hostname field.  This check will be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_07714377","line":62,"updated":"2014-05-21 12:25:02.000000000","message":"Is this only where Nova is creating the port ?\n\nIf a port without a hostname is passed into Nova will Nova still try to set the hostname ? \n\nWhat if the port hostname is set, and is different from the name Nova has been given to use - feels like that should be an error at the API layer (or Nova should adopt the name from the port)","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b690c3c65a0e2da2aadf1e0ffd18d7c1299054e8","unresolved":false,"context_lines":[{"line_number":59,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Nova will pass the VM name using a new *hostname* field in the port rather"},{"line_number":62,"context_line":"   than the *name* field."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be returned if Neutron has"},{"line_number":65,"context_line":"   not been upgraded to handle the hostname field.  This check will be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_b33b3cc7","line":62,"in_reply_to":"7adec928_07714377","updated":"2014-05-22 23:00:52.000000000","message":"Phil, this is a good question.  My plan was that it would pass on create and update.  I guess I figured when booting a VM with a name through Nova then that name should be assigned to the port whether the port existed or not and regardless of what name might have been associated with the port.  \n\nI\u0027m open to discussion here.  I will add a small clarification to my next patch set but please don\u0027t think that I consider the discussion closed.  There may be a good argument for returning an error if the hostname is already set on the port.  I\u0027ll give it some thought.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"28fd8d79ec9c8479d092fd7986dffe731e78dee0","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    Nova sanitizes the hostname to conform to rules for hostnames [#]_ [#]_."},{"line_number":93,"context_line":"    These rules are close to the rules for DNS labels [#]_.  The main"},{"line_number":94,"context_line":"    differences are that a hostname can begin with a digit and exceed 63"},{"line_number":95,"context_line":"    characters."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    The Nova API may allow a host name that does not qualify as a proper DNS"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_27363fe8","line":94,"updated":"2014-05-21 12:25:02.000000000","message":"Not clear if Nova is more or less restrictiev here - suggest changing this to something like:\n\n... are that Nova allows a hostname to begin with ...","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b690c3c65a0e2da2aadf1e0ffd18d7c1299054e8","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    Nova sanitizes the hostname to conform to rules for hostnames [#]_ [#]_."},{"line_number":93,"context_line":"    These rules are close to the rules for DNS labels [#]_.  The main"},{"line_number":94,"context_line":"    differences are that a hostname can begin with a digit and exceed 63"},{"line_number":95,"context_line":"    characters."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    The Nova API may allow a host name that does not qualify as a proper DNS"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_182b2fec","line":94,"in_reply_to":"7adec928_27363fe8","updated":"2014-05-22 23:00:52.000000000","message":"Done","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"28fd8d79ec9c8479d092fd7986dffe731e78dee0","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    The Nova API may allow a host name that does not qualify as a proper DNS"},{"line_number":98,"context_line":"    label.  The Neutron API for ports will enforce that hostnames be legal DNS"},{"line_number":99,"context_line":"    labels."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":102,"context_line":"    Neutron API will return an error.  Nova will recognize it and retry the"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_673047e9","line":99,"updated":"2014-05-21 12:25:02.000000000","message":"Not really clear how this differs from the above section on hostname validation ?","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b690c3c65a0e2da2aadf1e0ffd18d7c1299054e8","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    The Nova API may allow a host name that does not qualify as a proper DNS"},{"line_number":98,"context_line":"    label.  The Neutron API for ports will enforce that hostnames be legal DNS"},{"line_number":99,"context_line":"    labels."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":102,"context_line":"    Neutron API will return an error.  Nova will recognize it and retry the"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_f843e3ac","line":99,"in_reply_to":"7adec928_673047e9","updated":"2014-05-22 23:00:52.000000000","message":"This paragraph doesn\u0027t really add anything and is pretty much redundant.  I\u0027ll remove it.  Good catch.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"28fd8d79ec9c8479d092fd7986dffe731e78dee0","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":102,"context_line":"    Neutron API will return an error.  Nova will recognize it and retry the"},{"line_number":103,"context_line":"    operation with no hostname set.  Nova will not enforce DNS label rules on"},{"line_number":104,"context_line":"    the VM host name in the short term to avoid breaking existing Nova API"},{"line_number":105,"context_line":"    users.  Nova may choose to enforce DNS label rules on the host name in the"},{"line_number":106,"context_line":"    future but that is outside the scope of this change."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_678cc780","line":103,"updated":"2014-05-21 12:25:02.000000000","message":"Since Nova does do some validation against Neutron in its API (even though port creation isn\u0027t handled there at the moment) it feels like Nova could (with Neutron\u0027s help) still do all of the validation (Including an initial stab at duplicate names) as part of its network validation.   That would just leave a race condition if two VMs with the same name are created at the same time.  (same as we have with port quota validation now in Nova \n\nSo in addition to its own (current) check Nova would ask Neutron to validate the proposed name (as best it can at the time) when it validates the Network.   Neutron can then use its knowledge of if this is a DNS enabled network to decide what (if any) validation it would do (in effect the same checks it\u0027s going to make on  port creation).\n\nIf we still have an error when it comes to creating teh port I think Nova should just fail and put the VM into an error state (as it does for quota checks).  Otherwise how would the user know that this has happened - by swallowing the error we\u0027re making it look like the create worked.  \n\nThe case you\u0027re describing a user has defined a Neutron Network as being set up for DNS, and a user has then passed in an invalid (or if we do what validation we can ahead of port creation only a duplicate) hostname.    I think failing to create the VM in this case (ideally in the API if we can pull port creation back to there, but if not it\u0027s no different from any other port create error such as a port quota failure.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b690c3c65a0e2da2aadf1e0ffd18d7c1299054e8","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":102,"context_line":"    Neutron API will return an error.  Nova will recognize it and retry the"},{"line_number":103,"context_line":"    operation with no hostname set.  Nova will not enforce DNS label rules on"},{"line_number":104,"context_line":"    the VM host name in the short term to avoid breaking existing Nova API"},{"line_number":105,"context_line":"    users.  Nova may choose to enforce DNS label rules on the host name in the"},{"line_number":106,"context_line":"    future but that is outside the scope of this change."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_18632f1b","line":103,"in_reply_to":"7adec928_678cc780","updated":"2014-05-22 23:00:52.000000000","message":"I was pretty tired on the plane when I updated this blueprint in patch set 10.  Forgive my oversight here.  I meant to change this to match what we discussed.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"28fd8d79ec9c8479d092fd7986dffe731e78dee0","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":125,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":126,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":127,"context_line":"    hostname set."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. [#] http://tools.ietf.org/html/rfc4343"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_c70e7be5","line":127,"updated":"2014-05-21 12:25:02.000000000","message":"Or just failing to create the VM","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b690c3c65a0e2da2aadf1e0ffd18d7c1299054e8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    constraint on this new name.  If that constraint is violated then Neutron"},{"line_number":125,"context_line":"    will return an error.  Nova should handle this error in the same way that"},{"line_number":126,"context_line":"    it handles the DNS label validation error by retrying the operation without"},{"line_number":127,"context_line":"    hostname set."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. [#] http://tools.ietf.org/html/rfc4343"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_b8679b50","line":127,"in_reply_to":"7adec928_c70e7be5","updated":"2014-05-22 23:00:52.000000000","message":"Right, I missed updating this part.  Good catch.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"28fd8d79ec9c8479d092fd7986dffe731e78dee0","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    In this case, Nova will pass the entire hostname to Neutron.  Neutron may"},{"line_number":139,"context_line":"    be able to make use of the full name.  More about this is discussed in the"},{"line_number":140,"context_line":"    Neutron blueprint.  It is sufficient to say that Nova should not worry"},{"line_number":141,"context_line":"    about truncating this or doing further validation."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Alternatives"},{"line_number":144,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_67c0472b","line":141,"updated":"2014-05-21 12:25:02.000000000","message":"So are you saying there are no cases where this would return an Error to Nova ?     It more feels like any failure from this should be handled the same way as above.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b690c3c65a0e2da2aadf1e0ffd18d7c1299054e8","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    In this case, Nova will pass the entire hostname to Neutron.  Neutron may"},{"line_number":139,"context_line":"    be able to make use of the full name.  More about this is discussed in the"},{"line_number":140,"context_line":"    Neutron blueprint.  It is sufficient to say that Nova should not worry"},{"line_number":141,"context_line":"    about truncating this or doing further validation."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Alternatives"},{"line_number":144,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7adec928_38caab1a","line":141,"in_reply_to":"7adec928_67c0472b","updated":"2014-05-22 23:00:52.000000000","message":"It will be up to Neutron to return an error or not.  Initially, I don\u0027t plan to return an error.  However, if Neutron were to return an error then VM create should fail.","commit_id":"0f32b9fb5236294019bb9e000c336836902a07c1"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9496ecc2111767dd1b378c3aef864c063643ff6a","unresolved":false,"context_lines":[{"line_number":59,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Nova will pass the VM name using a new *hostname* field in the port rather"},{"line_number":62,"context_line":"   than the *name* field on create or update."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be returned if Neutron has"},{"line_number":65,"context_line":"   not been upgraded to handle the hostname field.  This check will be"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7adec928_fabaeddf","line":62,"updated":"2014-05-23 09:19:09.000000000","message":"I suggest:\n\nIf Nova is creating the port, or updating a port  where hostname is not set, then it sets hostname to the VM name.\n\nIf the port is passed into Nova with hostname set then Nova will reject that as an invalid network configuration and fail the request.\n\n(The alternative is Nova adopts the name from the port, but I think that might just get confusing to the user, and be a source of errors is a port is re-used between instances)","commit_id":"c6a9480ad548ac41461d50d36cb232f67854149f"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"680a213e13d9707455acd0df4a246b431dd167af","unresolved":false,"context_lines":[{"line_number":59,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Nova will pass the VM name using a new *hostname* field in the port rather"},{"line_number":62,"context_line":"   than the *name* field on create or update."},{"line_number":63,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":64,"context_line":"   *hostname* if it is received.  This error will be returned if Neutron has"},{"line_number":65,"context_line":"   not been upgraded to handle the hostname field.  This check will be"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5a890539_bdf12bcf","line":62,"in_reply_to":"7adec928_fabaeddf","updated":"2014-11-20 22:47:47.000000000","message":"This could prevent the easy transfer of a port between instances because the user would have to clear the hostname before Nova will accept the port.","commit_id":"c6a9480ad548ac41461d50d36cb232f67854149f"}],"specs/kilo/approved/internal-dns-resolution.rst":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c9160ba51c0b66f748cbc46446d5b9457e54f212","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/neutron-hostname-dns"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Users of an OpenStack cloud would like to look up their instances by name in an"},{"line_number":16,"context_line":"intuitive way using the Domain Name System (DNS).  They boot an instance using"},{"line_number":17,"context_line":"Nova and they give that instance an \"Instance Name\" as it is called in the"},{"line_number":18,"context_line":"Horizon interface.  That name is used as the hostname from the perspective of"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_e632245d","line":15,"updated":"2014-11-21 17:53:35.000000000","message":"YES!","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7e18d0acc5842b4627bdd06a85f60456558c7c37","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/neutron-hostname-dns"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Users of an OpenStack cloud would like to look up their instances by name in an"},{"line_number":16,"context_line":"intuitive way using the Domain Name System (DNS).  They boot an instance using"},{"line_number":17,"context_line":"Nova and they give that instance an \"Instance Name\" as it is called in the"},{"line_number":18,"context_line":"Horizon interface.  That name is used as the hostname from the perspective of"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_e4381ca2","line":15,"in_reply_to":"5a890539_e632245d","updated":"2014-12-03 20:27:22.000000000","message":"I love the excitement.  Wanna help me find someone to drive the implementation with me?","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c9160ba51c0b66f748cbc46446d5b9457e54f212","unresolved":false,"context_lines":[{"line_number":69,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":70,"context_line":"current behavior in the event that a hostname is not supplied on the port."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Nova will pass its sanitized hostname when it boots using an existing Neutron"},{"line_number":73,"context_line":"port by updating the port with the hostname field.  An implementation has"},{"line_number":74,"context_line":"already been started [#]_.  This implementation will need to be augmented in"},{"line_number":75,"context_line":"two ways:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_4624d80c","line":72,"updated":"2014-11-21 17:53:35.000000000","message":"Why the sanitized hostname? Why not the hostname I actually requested?","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7e18d0acc5842b4627bdd06a85f60456558c7c37","unresolved":false,"context_lines":[{"line_number":69,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":70,"context_line":"current behavior in the event that a hostname is not supplied on the port."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Nova will pass its sanitized hostname when it boots using an existing Neutron"},{"line_number":73,"context_line":"port by updating the port with the hostname field.  An implementation has"},{"line_number":74,"context_line":"already been started [#]_.  This implementation will need to be augmented in"},{"line_number":75,"context_line":"two ways:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_3eb79586","line":72,"in_reply_to":"5a890539_4624d80c","updated":"2014-12-03 20:27:22.000000000","message":"It may not be a valid DNS name.  L114 states that even the sanitized name may not be valid but it gets us much closer.  The requirements for a DNS label are stricter than those of a hostname.  I think any DNS label will be a valid hostname but not the other way around.","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c9160ba51c0b66f748cbc46446d5b9457e54f212","unresolved":false,"context_lines":[{"line_number":93,"context_line":"   a following release.  Adding this check will save deployers from having to"},{"line_number":94,"context_line":"   coordinate deployment of Nova and Neutron."},{"line_number":95,"context_line":"#. Neutron will validate the hostname passed to it for dns label validitity and"},{"line_number":96,"context_line":"   also for uniqueness with the scope of the configured domain name.  If it"},{"line_number":97,"context_line":"   fails then the port create will fail and the instance boot will fail."},{"line_number":98,"context_line":"   Neutron will *only* begin to fail port creations *after* it has been"},{"line_number":99,"context_line":"   upgraded with the corresponding changes *and* the user has enabled DNS"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_a6965cee","line":96,"updated":"2014-11-21 17:53:35.000000000","message":"How do I handle spinning up a replacement server? Imagine, for instance, that I have a server called \"review.openstack.org\" and one of the pieces of software on it needs to be upgraded in a manner that is best accomplished by creating a new server, installing the new version, testing that it\u0027s all good, and then swapping DNS when it\u0027s time to push the new server live. In this scenario, I want both machines to see themselves from the hostname perspective as \"review.openstack.org\" and I want reverse DNS to resolve for both IPs to review.openstack.org - but since there is an element of the DNS that I\u0027m controlling manually, forward DNS should still only have a single unique value at any given point in time.","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7e18d0acc5842b4627bdd06a85f60456558c7c37","unresolved":false,"context_lines":[{"line_number":93,"context_line":"   a following release.  Adding this check will save deployers from having to"},{"line_number":94,"context_line":"   coordinate deployment of Nova and Neutron."},{"line_number":95,"context_line":"#. Neutron will validate the hostname passed to it for dns label validitity and"},{"line_number":96,"context_line":"   also for uniqueness with the scope of the configured domain name.  If it"},{"line_number":97,"context_line":"   fails then the port create will fail and the instance boot will fail."},{"line_number":98,"context_line":"   Neutron will *only* begin to fail port creations *after* it has been"},{"line_number":99,"context_line":"   upgraded with the corresponding changes *and* the user has enabled DNS"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_9e55e91f","line":96,"in_reply_to":"5a890539_a6965cee","updated":"2014-12-03 20:27:22.000000000","message":"I suggest using a floating ip, a CNAME, or a load balancer (if more than one is active at a time).  These mechanisms give you manual control exactly where you need it.  Incidentally, I noticed that review.openstack.org (your example) does not seem to use a CNAME.  Maybe it is using a floating ip?\n\nMy second Neutron DNS blueprint [1] is about pushing data out to an external DNS system.  It actually describes how to tie a DNS name to the floating ip instead of the VM (or Neutron port) so that the name will move with the floater.  Note that this is a multi-stage project which only starts here in Nova, goes through Neutron and ends up in Designate.\n\n[1] https://review.openstack.org/#/c/88624/ (abandoned temporarily)","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c9160ba51c0b66f748cbc46446d5b9457e54f212","unresolved":false,"context_lines":[{"line_number":127,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"},{"line_number":128,"context_line":".. [#] http://tools.ietf.org/html/rfc1035"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Nova Allows Duplicate Names."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    The Nova API does not enforce that host names are unique.  Adding this"},{"line_number":133,"context_line":"    enforcement has similar complications to adding validation discussed in the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_e69ce410","line":130,"updated":"2014-11-21 17:53:35.000000000","message":"See above.","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7e18d0acc5842b4627bdd06a85f60456558c7c37","unresolved":false,"context_lines":[{"line_number":127,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"},{"line_number":128,"context_line":".. [#] http://tools.ietf.org/html/rfc1035"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Nova Allows Duplicate Names."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    The Nova API does not enforce that host names are unique.  Adding this"},{"line_number":133,"context_line":"    enforcement has similar complications to adding validation discussed in the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_24c864a7","line":130,"in_reply_to":"5a890539_e69ce410","updated":"2014-12-03 20:27:22.000000000","message":"ditto","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c9160ba51c0b66f748cbc46446d5b9457e54f212","unresolved":false,"context_lines":[{"line_number":170,"context_line":"exceeding 63 characters in length.  It would also normalize to lower-case."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Duplicate name detection could be attempted in Nova.  This is a bigger issue."},{"line_number":173,"context_line":"I\u0027ve seen duplicate names in the wild.  Nova likely does not have the"},{"line_number":174,"context_line":"information necessary to check for duplicate names within the appropriate"},{"line_number":175,"context_line":"scope.  For example, I would like to check duplicate names per domain across"},{"line_number":176,"context_line":"networks, this will be difficult for Nova."}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_265fcc42","line":173,"updated":"2014-11-21 17:53:35.000000000","message":"As above, there are valid reasons to have duplicate names. We definitely have them from time to time. That said - if there is another way that we can handle the use case above, I do not NEED the nova name to be duplicate per-se - I just need to be able to solve the use case.\n\nRelated, it would actually make client consumption libraries, such as the work I\u0027ve been doing in ansible MUCH simpler if names were unique ... so I can definitely be on board with this, as long as there is a non-crazy way to deal with server replacement (no, I don\u0027t want to append a serial number to the hostname)","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7e18d0acc5842b4627bdd06a85f60456558c7c37","unresolved":false,"context_lines":[{"line_number":170,"context_line":"exceeding 63 characters in length.  It would also normalize to lower-case."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Duplicate name detection could be attempted in Nova.  This is a bigger issue."},{"line_number":173,"context_line":"I\u0027ve seen duplicate names in the wild.  Nova likely does not have the"},{"line_number":174,"context_line":"information necessary to check for duplicate names within the appropriate"},{"line_number":175,"context_line":"scope.  For example, I would like to check duplicate names per domain across"},{"line_number":176,"context_line":"networks, this will be difficult for Nova."}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_e4d1fc57","line":173,"in_reply_to":"5a890539_265fcc42","updated":"2014-12-03 20:27:22.000000000","message":"See above.","commit_id":"7ff0574af5be59fcfb3f44b67668a3358a3acaf2"}],"specs/liberty/approved/internal-dns-resolution.rst":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f68427cee51c430ac4259f449201ad8f16d010de","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Project Priority"},{"line_number":53,"context_line":"-----------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."}],"source_content_type":"text/x-rst","patch_set":14,"id":"1aca2d91_4f1c1ec1","line":55,"updated":"2015-05-07 20:19:39.000000000","message":"This section needs updating.  My hope is that we make this a cross-project priority for Liberty and get it done!  Go DNS!","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b413ab4bd41766b10e6d428b32536821041c4fc4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Project Priority"},{"line_number":53,"context_line":"-----------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."}],"source_content_type":"text/x-rst","patch_set":14,"id":"5afe65bd_ee09eede","line":55,"in_reply_to":"1aca2d91_4f1c1ec1","updated":"2015-06-01 19:01:28.000000000","message":"Done","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"63890b4a0ea618d575c962cefa704c4ba0974b66","unresolved":false,"context_lines":[{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Proposed change"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3acd31a7_93aa88d3","line":58,"updated":"2015-05-13 10:54:11.000000000","message":"Lets just paraphrase this:\n\nNone","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3512ad333100c5b7d807d6d8c538ec257663347f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Proposed change"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a0c5dc1_020df736","line":58,"in_reply_to":"3acd31a7_93aa88d3","updated":"2015-05-13 14:48:22.000000000","message":"@John.  \"None\" may say it all to you but it doesn\u0027t communicate anything to me.  Are you saying that Nova will offer no support for this even if it is given some priority in other projects?  Your -1 on the blueprint appears to say that to me.","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"de2924a233f48a267e2d1c2af8e374d006847830","unresolved":false,"context_lines":[{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Proposed change"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a0c5dc1_3d2a5a7f","line":58,"in_reply_to":"9a0c5dc1_020df736","updated":"2015-05-13 15:05:57.000000000","message":"Carl, we haven\u0027t set priorities for Liberty yet, which means you can\u0027t fall under one of them. This is not a place for you to explain why it should be a priority, this is for you to state which already-decided priority you fall under. Since that hasn\u0027t happened yet, please put \"None\" here for now.","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b413ab4bd41766b10e6d428b32536821041c4fc4","unresolved":false,"context_lines":[{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Proposed change"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5afe65bd_6ecbbe73","line":58,"in_reply_to":"9a0c5dc1_1de8b6b3","updated":"2015-06-01 19:01:28.000000000","message":"@John Garbutt\n\nYou and I talked about this in Vancouver during this session: https://etherpad.openstack.org/p/YVR-nova-network. This spec is point number 4 in the priorities section of the etherpad. Hoping to get is approved now","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a7863d086c08c08ff7736dd5bc1b252037e5c7fa","unresolved":false,"context_lines":[{"line_number":55,"context_line":"This blueprint does not fit under one of the :ref:`kilo-priorities`.  This is a"},{"line_number":56,"context_line":"small part of a larger cross-project effort which requires Neutron and Nova to"},{"line_number":57,"context_line":"agree on names at some level.  This is the first step, so implementing this"},{"line_number":58,"context_line":"will allow getting further in the next release with Neutron and Designate."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Proposed change"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a0c5dc1_1de8b6b3","line":58,"in_reply_to":"9a0c5dc1_3d2a5a7f","updated":"2015-05-13 15:13:13.000000000","message":"Thank you, Dan.  That says something to me.","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f68427cee51c430ac4259f449201ad8f16d010de","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    exceed 63 characters."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":124,"context_line":"    Neutron API will return an error that should fail the VM create."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":".. [#] https://tools.ietf.org/html/rfc952"},{"line_number":127,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1aca2d91_4fe1be99","line":124,"updated":"2015-05-07 20:19:39.000000000","message":"But only where it has been enabled in Neutron by associating a domain.  This is to avoid disrupting existing workflows that may rely on using invalid DNS labels as hostnames.","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b413ab4bd41766b10e6d428b32536821041c4fc4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    exceed 63 characters."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":124,"context_line":"    Neutron API will return an error that should fail the VM create."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":".. [#] https://tools.ietf.org/html/rfc952"},{"line_number":127,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5afe65bd_8eca7a4e","line":124,"in_reply_to":"1aca2d91_4fe1be99","updated":"2015-06-01 19:01:28.000000000","message":"Done","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f68427cee51c430ac4259f449201ad8f16d010de","unresolved":false,"context_lines":[{"line_number":127,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"},{"line_number":128,"context_line":".. [#] http://tools.ietf.org/html/rfc1035"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Nova Allows Duplicate Names."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    The Nova API does not enforce that host names are unique.  Adding this"},{"line_number":133,"context_line":"    enforcement has similar complications to adding validation discussed in the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1aca2d91_6f4fdabd","line":130,"updated":"2015-05-07 20:19:39.000000000","message":"I\u0027m actually leaning toward dumping this and letting duplicate hostnames create duplicate A (AAAA) records.  I really don\u0027t remember what my original objection to that was in the first place.  I think it just took time to sync in.","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b413ab4bd41766b10e6d428b32536821041c4fc4","unresolved":false,"context_lines":[{"line_number":127,"context_line":".. [#] https://tools.ietf.org/html/rfc1123"},{"line_number":128,"context_line":".. [#] http://tools.ietf.org/html/rfc1035"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Nova Allows Duplicate Names."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    The Nova API does not enforce that host names are unique.  Adding this"},{"line_number":133,"context_line":"    enforcement has similar complications to adding validation discussed in the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5afe65bd_6ec73e46","line":130,"in_reply_to":"1aca2d91_6f4fdabd","updated":"2015-06-01 19:01:28.000000000","message":"Done","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"63890b4a0ea618d575c962cefa704c4ba0974b66","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"In order to for this to work end to end, we need coordinated change in Neutron."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3acd31a7_9381684d","line":297,"range":{"start_line":297,"start_character":0,"end_line":297,"end_character":70},"updated":"2015-05-13 10:54:11.000000000","message":"As I understand it, we will need this blueprint approved before we can approve this one. I am assuming thats the correct way around here?","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3512ad333100c5b7d807d6d8c538ec257663347f","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"In order to for this to work end to end, we need coordinated change in Neutron."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a0c5dc1_e7b1d590","line":297,"in_reply_to":"3acd31a7_9381684d","updated":"2015-05-13 14:48:22.000000000","message":"John which one is \"this blueprint?\"  And, which one is \"this one?\"  You\u0027re not clear here.","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b413ab4bd41766b10e6d428b32536821041c4fc4","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"In order to for this to work end to end, we need coordinated change in Neutron."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5afe65bd_0eb68adc","line":297,"in_reply_to":"9a0c5dc1_e7b1d590","updated":"2015-06-01 19:01:28.000000000","message":"@John Garbutt\nOn the Neutron side we are following a streamlined process for new features. It is based on RFE\u0027s (Requests for Enhancements) that are Launchpad bugs with the \u0027rfe\u0027 tag. The RFE for this work on the Neutron side has been approved and slated for Liberty 1: https://bugs.launchpad.net/neutron/+bug/1459030","commit_id":"40e98d72e0382d8eef3b654b431c73f1392c5d96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Neutron DNS Using Nova Hostname"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/neutron-hostname-dns"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_6add8fdf","line":11,"updated":"2015-06-08 17:40:40.000000000","message":"We generally don\u0027t add this, but I will ignore that.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Neutron DNS Using Nova Hostname"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/neutron-hostname-dns"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_1f2f3889","line":11,"in_reply_to":"3afb71cf_6add8fdf","updated":"2015-06-10 23:26:59.000000000","message":"Removed","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a583f6827be851c70f0382ebe5f58551ce6a399b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Neutron already enables DNS lookup for instances using an internal dnsmasq"},{"line_number":26,"context_line":"instance.  It generates a generic hostname based on the private IP address"},{"line_number":27,"context_line":"assigned to the system.  For example, if the instance is booted with"},{"line_number":28,"context_line":"*10.224.36.4* then the hostname generated is *host-10-224-36-4.openstacklocal.*"},{"line_number":29,"context_line":"The generated name from Neutron is not presented anywhere in the API and"},{"line_number":30,"context_line":"therefore cannot be presented in any UI either."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"5afe65bd_ee54ea21","line":28,"updated":"2015-06-03 18:40:14.000000000","message":"Good catch.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"   something that cannot be done without it."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1175211"},{"line_number":50,"context_line":".. [#] https://review.openstack.org/#/c/88624/"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Project Priority"},{"line_number":53,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_6a8b4fc4","line":50,"updated":"2015-06-08 17:40:40.000000000","message":"Possibly too much detail here, but its here now, so thats OK.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"first step, so implementing this will allow getting further with Neutron and"},{"line_number":60,"context_line":"Designate"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":".. [#] https://etherpad.openstack.org/p/YVR-nova-network"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Proposed change"},{"line_number":65,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_8aba0b6d","line":62,"updated":"2015-06-08 17:40:40.000000000","message":"As Dan mentioned, please delete this whole section and replace it with:\n\nNone\n\nThis is not a nova priority for liberty at this point.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":59,"context_line":"first step, so implementing this will allow getting further with Neutron and"},{"line_number":60,"context_line":"Designate"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":".. [#] https://etherpad.openstack.org/p/YVR-nova-network"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Proposed change"},{"line_number":65,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_3f5314e4","line":62,"in_reply_to":"3afb71cf_8aba0b6d","updated":"2015-06-10 23:26:59.000000000","message":"Done","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":62,"context_line":".. [#] https://etherpad.openstack.org/p/YVR-nova-network"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Proposed change"},{"line_number":65,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"This blueprint will reconcile the DNS name between Nova and Neutron.  Nova will"},{"line_number":68,"context_line":"pass the *hostname* to the Neutron API as part of any port create or update"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_458644ba","line":65,"updated":"2015-06-08 17:40:40.000000000","message":"This section has got a bit long really, and has too much detail really, but lets see how this goes before we try to trim it back down.\n\nWe don\u0027t need to agree all details before code review, just the big strokes.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"already been started [#]_.  This implementation will need to be augmented in"},{"line_number":79,"context_line":"two ways:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"#. Nova will pass the VM name using a new *hostname* field in the port rather"},{"line_number":84,"context_line":"   than the *name* field on create or update."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_e54bf085","line":81,"updated":"2015-06-08 17:40:40.000000000","message":"Not sure why you mention that patch here, its just a bit confusing to talk about changes to a two year old patch, rather than just starting again.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":78,"context_line":"already been started [#]_.  This implementation will need to be augmented in"},{"line_number":79,"context_line":"two ways:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":".. [#] https://review.openstack.org/#/c/36133/"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"#. Nova will pass the VM name using a new *hostname* field in the port rather"},{"line_number":84,"context_line":"   than the *name* field on create or update."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_5f95b084","line":81,"in_reply_to":"3afb71cf_e54bf085","updated":"2015-06-10 23:26:59.000000000","message":"Removed","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":110,"context_line":"   DNS and the instance hostname.  This blueprint will not do any special"},{"line_number":111,"context_line":"   handling of this case.  The user should not be managing the hostname through"},{"line_number":112,"context_line":"   both Nova and Neutron.  I don\u0027t see this as a big concern for user"},{"line_number":113,"context_line":"   experience."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Following is a description of scenarios where the Nova *hostname* may fail"},{"line_number":116,"context_line":"validation when passed to Neutron."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_a5597800","line":113,"updated":"2015-06-08 17:40:40.000000000","message":"So when the user updates the hostname in the server, we don\u0027t generally update the DNS name. Are we changing that here? I could be wrong.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":110,"context_line":"   DNS and the instance hostname.  This blueprint will not do any special"},{"line_number":111,"context_line":"   handling of this case.  The user should not be managing the hostname through"},{"line_number":112,"context_line":"   both Nova and Neutron.  I don\u0027t see this as a big concern for user"},{"line_number":113,"context_line":"   experience."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Following is a description of scenarios where the Nova *hostname* may fail"},{"line_number":116,"context_line":"validation when passed to Neutron."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_82a50fa3","line":113,"in_reply_to":"3afb71cf_a5597800","updated":"2015-06-10 23:26:59.000000000","message":"No, we are not changing it. You are correct","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    Nova sanitizes the hostname to conform to rules for hostnames [#]_ [#]_."},{"line_number":123,"context_line":"    These rules are close to the rules for DNS labels [#]_.  The main"},{"line_number":124,"context_line":"    differences are that Nova allows a hostname to begin with a digit and"},{"line_number":125,"context_line":"    exceed 63 characters."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":128,"context_line":"    Neutron API will return an error that should fail the VM create. But only"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_251c6811","line":125,"updated":"2015-06-08 17:40:40.000000000","message":"Nova has logic to truncate the name in certain ways, and use that for the DNS name / windows hostname. I think thats a similar thing here.\n\nHow does that relate to this problem?","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    Nova sanitizes the hostname to conform to rules for hostnames [#]_ [#]_."},{"line_number":123,"context_line":"    These rules are close to the rules for DNS labels [#]_.  The main"},{"line_number":124,"context_line":"    differences are that Nova allows a hostname to begin with a digit and"},{"line_number":125,"context_line":"    exceed 63 characters."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":128,"context_line":"    Neutron API will return an error that should fail the VM create. But only"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_58f7068b","line":125,"in_reply_to":"3afb71cf_251c6811","updated":"2015-06-10 23:26:59.000000000","message":"The point of this work is to reconcile the hostname and the dns name. So the name passed to neutron in the dns_label field of the port create / update should match the hostname that nova assigns to the instance","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":128,"context_line":"    Neutron API will return an error that should fail the VM create. But only"},{"line_number":129,"context_line":"    where it has been enabled in Neutron by associating a domain. This is to"},{"line_number":130,"context_line":"    avoid disrupting existing workflows that may rely on using invalid DNS"},{"line_number":131,"context_line":"    labels as hostnames."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_97034f0d","line":129,"updated":"2015-06-08 17:40:40.000000000","message":"Do you mean Neutron API will only return an error in that case?","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":128,"context_line":"    Neutron API will return an error that should fail the VM create. But only"},{"line_number":129,"context_line":"    where it has been enabled in Neutron by associating a domain. This is to"},{"line_number":130,"context_line":"    avoid disrupting existing workflows that may rely on using invalid DNS"},{"line_number":131,"context_line":"    labels as hostnames."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_15fef7ad","line":129,"in_reply_to":"3afb71cf_97034f0d","updated":"2015-06-10 23:26:59.000000000","message":"Yes, Neutron will return an error in this case. It won\u0027t try to come up with an acceptable name","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    be able to make use of the full name.  More about this is discussed in the"},{"line_number":146,"context_line":"    Neutron blueprint.  It is sufficient to say that Nova should not worry"},{"line_number":147,"context_line":"    about truncating this or doing further validation.  If Neutron does return"},{"line_number":148,"context_line":"    an error then the VM create should fail like with the other errors."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Alternatives"},{"line_number":151,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_25a108a4","line":148,"updated":"2015-06-08 17:40:40.000000000","message":"The problem is, we now don\u0027t tell the user about this.","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":205,"context_line":"REST API impact"},{"line_number":206,"context_line":"---------------"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"None"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Security impact"},{"line_number":211,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_85167c53","line":208,"updated":"2015-06-08 17:40:40.000000000","message":"Seems like we should add extra API validation so names a valid DNS names?","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":205,"context_line":"REST API impact"},{"line_number":206,"context_line":"---------------"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"None"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Security impact"},{"line_number":211,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_eea70cbb","line":208,"in_reply_to":"3afb71cf_85167c53","updated":"2015-06-10 23:26:59.000000000","message":"No, this is not necessary. The dns validation will be carried out by the Neutron API. The enables the behavior described below in the \u0027Documentation Impact\u0027 section","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":231,"context_line":"If the Nova upgrade is deployed before the corresponding Neutron upgrade then"},{"line_number":232,"context_line":"there will be a period of time where Nova will make two calls in to Neutron for"},{"line_number":233,"context_line":"every port create.  The first call will fail and then Nova will make a second"},{"line_number":234,"context_line":"call without the *hostname* field which will be expected to pass like before."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Other deployer impact"},{"line_number":237,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_65cca06a","line":234,"updated":"2015-06-08 17:40:40.000000000","message":"Can\u0027t we discover this easily, and cache that knowledge for a little while? This feels very wasteful in its current form.\n\nIf you never configure DNS, or upgrade neutron, do we always make two calls? Maybe we need away to disable this, if needed, for performance?","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":231,"context_line":"If the Nova upgrade is deployed before the corresponding Neutron upgrade then"},{"line_number":232,"context_line":"there will be a period of time where Nova will make two calls in to Neutron for"},{"line_number":233,"context_line":"every port create.  The first call will fail and then Nova will make a second"},{"line_number":234,"context_line":"call without the *hostname* field which will be expected to pass like before."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Other deployer impact"},{"line_number":237,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_efd11124","line":234,"in_reply_to":"3afb71cf_65cca06a","updated":"2015-06-10 23:26:59.000000000","message":"I think you are right. I will update the spec with a conig option to disable this behavior","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6644ec57980425115792709ecf1126d294d42d5a","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"DNS names will only be passed for new instances after this feature is enabled."},{"line_number":244,"context_line":"Nova will begin passing hostname to Neutron after an upgrade only for new"},{"line_number":245,"context_line":"instances."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"If Neutron is upgraded before Nova, there is no problem because the hostname"},{"line_number":248,"context_line":"field is not required and behavior defaults to old behavior."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_054bacb1","line":245,"updated":"2015-06-08 17:40:40.000000000","message":"Will it include the old names as well, that matches how it worked with older instances?","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"baf62e1a63a75400545037562d475b32a07ef109","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"DNS names will only be passed for new instances after this feature is enabled."},{"line_number":244,"context_line":"Nova will begin passing hostname to Neutron after an upgrade only for new"},{"line_number":245,"context_line":"instances."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"If Neutron is upgraded before Nova, there is no problem because the hostname"},{"line_number":248,"context_line":"field is not required and behavior defaults to old behavior."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3afb71cf_13f04f66","line":245,"in_reply_to":"3afb71cf_054bacb1","updated":"2015-06-10 23:26:59.000000000","message":"Yes, the old names will be generated as well by Neutron in DNS","commit_id":"037144f953d696db002401c38a0c8069ca2ebe3f"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"3832a2dd5c7f09c7b74bf5f35a5497b518282116","unresolved":false,"context_lines":[{"line_number":62,"context_line":"hostname."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":65,"context_line":"current behavior in the event that a dns_label is not supplied on the port."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Nova will pass its sanitized hostname when it boots using an existing Neutron"},{"line_number":68,"context_line":"port by updating the port with the dns_label field.  This will be augmented in"}],"source_content_type":"text/x-rst","patch_set":17,"id":"fa32b979_169c3768","line":65,"range":{"start_line":65,"start_character":37,"end_line":65,"end_character":46},"updated":"2015-06-22 06:54:55.000000000","message":"needs an update to match with the neutron conterpart.","commit_id":"e0fef0291dda1d024a2c9a39697178f8063e97d7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"5e3fb10a3124e3a180e7deecde9da854f85d0339","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    exceed 63 characters."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":116,"context_line":"    Neutron API will return an error that should fail the VM create. But only"},{"line_number":117,"context_line":"    where it has been enabled in Neutron by associating a domain. This is to"},{"line_number":118,"context_line":"    avoid disrupting existing workflows that may rely on using invalid DNS"},{"line_number":119,"context_line":"    labels as hostnames."}],"source_content_type":"text/x-rst","patch_set":17,"id":"fa32b979_79eacb75","line":116,"updated":"2015-06-18 05:11:51.000000000","message":"I thought we allowed unicode instance names now? There was certainly a push to stop arbitrarily limiting the characters allowed in hostnames.\n\nFailing the instance create seems heavy handed as well. Couldn\u0027t we just revert to the old behaviour in those cases?","commit_id":"e0fef0291dda1d024a2c9a39697178f8063e97d7"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"b4c114eebaafc49d57df58c7e0f8a1b0fb2410be","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    exceed 63 characters."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    In the event that Nova passes an illegal DNS label in creating the port,"},{"line_number":116,"context_line":"    Neutron API will return an error that should fail the VM create. But only"},{"line_number":117,"context_line":"    where it has been enabled in Neutron by associating a domain. This is to"},{"line_number":118,"context_line":"    avoid disrupting existing workflows that may rely on using invalid DNS"},{"line_number":119,"context_line":"    labels as hostnames."}],"source_content_type":"text/x-rst","patch_set":17,"id":"fa32b979_beb82b12","line":116,"in_reply_to":"fa32b979_79eacb75","updated":"2015-06-18 11:08:10.000000000","message":"Failing seems appropriate, given that the user has explicitly requested that DNS names are provisioned for their instances by configuring the DNS related properties on the Neutron network. i.e. this is \"opt in\" rather than \"opt out\".\n\nThe alternative is to silently fail to create the DNS records, which IMO is a greater evil than failing early :)","commit_id":"e0fef0291dda1d024a2c9a39697178f8063e97d7"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"774199e4e4ee592699fcfc4164d35465b876ab36","unresolved":false,"context_lines":[{"line_number":224,"context_line":"To avoid undue performance impact in situations where the Nova upgrade is"},{"line_number":225,"context_line":"deployed but Neutron is not upgraded for a significant period of time, a"},{"line_number":226,"context_line":"configuration option will be implemented to disable the behavior described in"},{"line_number":227,"context_line":"the previous paragraph."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Other deployer impact"},{"line_number":230,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"fa32b979_7fac4fa0","line":227,"updated":"2015-06-16 11:17:42.000000000","message":"Just to be clear.  The config option will disable the transmission of the dns_label from nova right?  This will mean the Neutron no longer has cause to fail.\n\nDid I understand that correctly?","commit_id":"e0fef0291dda1d024a2c9a39697178f8063e97d7"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"b4c114eebaafc49d57df58c7e0f8a1b0fb2410be","unresolved":false,"context_lines":[{"line_number":224,"context_line":"To avoid undue performance impact in situations where the Nova upgrade is"},{"line_number":225,"context_line":"deployed but Neutron is not upgraded for a significant period of time, a"},{"line_number":226,"context_line":"configuration option will be implemented to disable the behavior described in"},{"line_number":227,"context_line":"the previous paragraph."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Other deployer impact"},{"line_number":230,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"fa32b979_3e43bb14","line":227,"in_reply_to":"fa32b979_7fac4fa0","updated":"2015-06-18 11:08:10.000000000","message":"Correct, but it should be noted that leaving this off permanently likely isn\u0027t a good idea, as it would chance the API\u0027s expected behavior. e.g. if I define a DNS domain for instances on $network, as a user of the cloud, I expect to end up with the DNS name provisioned.\n\nI\u0027d argue this option should be included, and immediately deprecated for removal in 2 releases.","commit_id":"e0fef0291dda1d024a2c9a39697178f8063e97d7"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"583fe2f9e2db4480256f536bd4e40a28da1e1d28","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   are often easier to use than the IP address."},{"line_number":43,"context_line":"#. Neutron can automatically share the DNS name with an external DNS system"},{"line_number":44,"context_line":"   [#]_ such as Designate.  This isn\u0027t in the scope of this blueprint but is"},{"line_number":45,"context_line":"   something that cannot be done without it."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1175211"},{"line_number":48,"context_line":".. [#] https://review.openstack.org/#/c/88624/"}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_40a9c323","line":45,"updated":"2015-07-04 15:14:30.000000000","message":"Reverse DNS use cases?","commit_id":"012455e839c7f5c9f1b9b2287822dfecfc17fbc1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"660e7056a3a86a45d2454d90afba6047fe87bd78","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   are often easier to use than the IP address."},{"line_number":43,"context_line":"#. Neutron can automatically share the DNS name with an external DNS system"},{"line_number":44,"context_line":"   [#]_ such as Designate.  This isn\u0027t in the scope of this blueprint but is"},{"line_number":45,"context_line":"   something that cannot be done without it."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1175211"},{"line_number":48,"context_line":".. [#] https://review.openstack.org/#/c/88624/"}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_437762d4","line":45,"in_reply_to":"ba3cc151_40a9c323","updated":"2015-07-06 17:21:49.000000000","message":"This is not a concern of Nova\u0027s.  It is discussed in the Neutron spec.","commit_id":"012455e839c7f5c9f1b9b2287822dfecfc17fbc1"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"9fe7fc4d7f9852acae2c854ac10de1b6fdd650e3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   are often easier to use than the IP address."},{"line_number":43,"context_line":"#. Neutron can automatically share the DNS name with an external DNS system"},{"line_number":44,"context_line":"   [#]_ such as Designate.  This isn\u0027t in the scope of this blueprint but is"},{"line_number":45,"context_line":"   something that cannot be done without it."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1175211"},{"line_number":48,"context_line":".. [#] https://review.openstack.org/#/c/88624/"}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_55ff1534","line":45,"in_reply_to":"ba3cc151_437762d4","updated":"2015-07-06 17:38:03.000000000","message":"Works for me","commit_id":"012455e839c7f5c9f1b9b2287822dfecfc17fbc1"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"583fe2f9e2db4480256f536bd4e40a28da1e1d28","unresolved":false,"context_lines":[{"line_number":59,"context_line":"pass the *hostname* to the Neutron API as part of any port create or update"},{"line_number":60,"context_line":"using a new *dns_name* field in the Neutron API.  Neutron DHCP offers will use"},{"line_number":61,"context_line":"the instance name as hostname.  Neutron DNS will reply to queries for the new"},{"line_number":62,"context_line":"hostname."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":65,"context_line":"current behavior in the event that a dns_name is not supplied on the port."}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_60a64755","line":62,"updated":"2015-07-04 15:14:30.000000000","message":"What about reverse DNS lookup and supporting PTR records in dnsmasq, or is that out of scope?","commit_id":"012455e839c7f5c9f1b9b2287822dfecfc17fbc1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"660e7056a3a86a45d2454d90afba6047fe87bd78","unresolved":false,"context_lines":[{"line_number":59,"context_line":"pass the *hostname* to the Neutron API as part of any port create or update"},{"line_number":60,"context_line":"using a new *dns_name* field in the Neutron API.  Neutron DHCP offers will use"},{"line_number":61,"context_line":"the instance name as hostname.  Neutron DNS will reply to queries for the new"},{"line_number":62,"context_line":"hostname."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":65,"context_line":"current behavior in the event that a dns_name is not supplied on the port."}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_83b56a7f","line":62,"in_reply_to":"ba3cc151_60a64755","updated":"2015-07-06 17:21:49.000000000","message":"dnsmasq supports PTR records out of the box without any extra work.  It adds both A (or AAAA) and PTR records with the same config.","commit_id":"012455e839c7f5c9f1b9b2287822dfecfc17fbc1"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"9fe7fc4d7f9852acae2c854ac10de1b6fdd650e3","unresolved":false,"context_lines":[{"line_number":59,"context_line":"pass the *hostname* to the Neutron API as part of any port create or update"},{"line_number":60,"context_line":"using a new *dns_name* field in the Neutron API.  Neutron DHCP offers will use"},{"line_number":61,"context_line":"the instance name as hostname.  Neutron DNS will reply to queries for the new"},{"line_number":62,"context_line":"hostname."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":65,"context_line":"current behavior in the event that a dns_name is not supplied on the port."}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_759ed908","line":62,"in_reply_to":"ba3cc151_83b56a7f","updated":"2015-07-06 17:38:03.000000000","message":"Ok","commit_id":"012455e839c7f5c9f1b9b2287822dfecfc17fbc1"}],"specs/mitaka/approved/internal-dns-resolution.rst":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/neutron-hostname-dns"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Users of an OpenStack cloud would like to look up their instances by name in an"},{"line_number":14,"context_line":"intuitive way using the Domain Name System (DNS).  They boot an instance using"},{"line_number":15,"context_line":"Nova and they give that instance an \"Instance Name\" as it is called in the"},{"line_number":16,"context_line":"Horizon interface.  That name is used as the hostname from the perspective of"},{"line_number":17,"context_line":"the operating system running in the instance.  It is reasonable to expect some"},{"line_number":18,"context_line":"integration of this name with DNS."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_9dd4c020","line":18,"range":{"start_line":14,"start_character":51,"end_line":18,"end_character":34},"updated":"2015-10-20 14:57:07.000000000","message":"nit: I suggest moving all but the first sentence of this para into \"Problem description\", as that\u0027s what it is. The first sentence is an adequate summary.","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Nova and they give that instance an \"Instance Name\" as it is called in the"},{"line_number":16,"context_line":"Horizon interface.  That name is used as the hostname from the perspective of"},{"line_number":17,"context_line":"the operating system running in the instance.  It is reasonable to expect some"},{"line_number":18,"context_line":"integration of this name with DNS."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_7ac12d80","line":18,"in_reply_to":"3a29b11f_9dd4c020","updated":"2015-11-07 00:04:38.000000000","message":"Done","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"2e0f3647dd3fd304a5f136f4d1e081fcb455dc1c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Project Priority"},{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_dbcb201d","line":53,"updated":"2015-10-20 14:58:11.000000000","message":"Delete this section, it\u0027s not in the Mitaka template","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Project Priority"},{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_fa62fdac","line":53,"in_reply_to":"3a29b11f_dbcb201d","updated":"2015-11-07 00:04:38.000000000","message":"Done","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":65,"context_line":"current behavior in the event that a dns_name is not supplied on the port."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Nova will pass its sanitized hostname when it boots using an existing Neutron"},{"line_number":68,"context_line":"port by updating the port with the dns_name field.  This will be augmented in"},{"line_number":69,"context_line":"the following ways:"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_e0fd0b3b","line":67,"range":{"start_line":67,"start_character":19,"end_line":67,"end_character":37},"updated":"2015-10-20 14:57:07.000000000","message":"I\u0027d like to know more about sanitisation. EG I think Nova hostnames can contain spaces.","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":64,"context_line":"To handle existing installations, Neutron will fall back completely to the"},{"line_number":65,"context_line":"current behavior in the event that a dns_name is not supplied on the port."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Nova will pass its sanitized hostname when it boots using an existing Neutron"},{"line_number":68,"context_line":"port by updating the port with the dns_name field.  This will be augmented in"},{"line_number":69,"context_line":"the following ways:"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_c5e15a00","line":67,"in_reply_to":"3a29b11f_e0fd0b3b","updated":"2015-11-07 00:04:38.000000000","message":"There is a distinction between \"instance name\" and \"hostname\". You are absolutely right, the instance name can contain spaces. This is an example I just executed in my devstack:\n\nstack@devstack-14-04-october-28th-designate:~$ nova boot --image 56e5402b-42ee-4dd1-9cb2-352e3f4f235a --flavor 42 \u0027my vm\u0027\n\nThe result is:\n\nstack@devstack-14-04-october-28th-designate:~$ nova list\n+--------------------------------------+-------+--------+------------+-------------+-------------------------------------------------------+\n| ID                                   | Name  | Status | Task State | Power State | Networks                                              |\n+--------------------------------------+-------+--------+------------+-------------+-------------------------------------------------------+\n| c0bc2bd1-43e7-401a-903f-036b8b26b6b2 | my vm | ACTIVE | -          | Running     | private\u003d10.0.0.7, fd2d:264d:52fe:0:f816:3eff:fea7:3e4 |\n+--------------------------------------+-------+--------+------------+-------------+-------------------------------------------------------+\n\nAs you can see, the \"name\" column shows that \u0027my vm\u0027 was accepted as the instance name by Nova. \n\nHowever, if I ssh to the instance I can see that its \u0027hostname\u0027 was sanitized by Nova:\n\n$ hostname\nmy-vm\n\nThis contrast between these two instance attributes is clearly shown in the DB:\n\nmysql\u003e select display_name, hostname from instances where uuid \u003d \"c0bc2bd1-43e7-401a-903f-036b8b26b6b2\";\n\n+--------------+----------+\n\n| display_name | hostname |\n+--------------+----------+\n\n| my vm        | my-vm    |\n+--------------+----------+\n\n1 row in set (0.00 sec)\n\nIn summary, the name given by the user to the instance is sanitized to be PQDN compliant to produce the \"hostname\" attribute\n\nIn responding to your comments, I am going throuigh the whole spec again to make sure we refer to the hostname attribute","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"   a following release.  Adding this check will save deployers from having to"},{"line_number":86,"context_line":"   coordinate deployment of Nova and Neutron."},{"line_number":87,"context_line":"#. Neutron will insure the dns_name passed to it is valid as a PQDN (Partially"},{"line_number":88,"context_line":"   Qualifed Domain Name) or a FQDN (Fully Qualified Domain Name) and also for"},{"line_number":89,"context_line":"   uniqueness within the scope of the configured domain name.  If it fails,"},{"line_number":90,"context_line":"   then both the port create and the instance boot will fail. Neutron will"},{"line_number":91,"context_line":"   *only* begin to fail port creations *after* it has been upgraded with the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_c0624fad","line":88,"range":{"start_line":88,"start_character":8,"end_line":88,"end_character":11},"updated":"2015-10-20 14:57:07.000000000","message":"nit: Qualified","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":85,"context_line":"   a following release.  Adding this check will save deployers from having to"},{"line_number":86,"context_line":"   coordinate deployment of Nova and Neutron."},{"line_number":87,"context_line":"#. Neutron will insure the dns_name passed to it is valid as a PQDN (Partially"},{"line_number":88,"context_line":"   Qualifed Domain Name) or a FQDN (Fully Qualified Domain Name) and also for"},{"line_number":89,"context_line":"   uniqueness within the scope of the configured domain name.  If it fails,"},{"line_number":90,"context_line":"   then both the port create and the instance boot will fail. Neutron will"},{"line_number":91,"context_line":"   *only* begin to fail port creations *after* it has been upgraded with the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_9ab3b10a","line":88,"in_reply_to":"3a29b11f_c0624fad","updated":"2015-11-07 00:04:38.000000000","message":"Done","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"   This will avoid breaking existing work-flows that might use unacceptable DNS"},{"line_number":95,"context_line":"   names."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":".. NOTE:: If the user updates the hostname on the Neutron port after the VM has"},{"line_number":98,"context_line":"   already booted then there will be an inconsistency between the hostname in"},{"line_number":99,"context_line":"   DNS and the instance hostname.  This blueprint will not do any special"},{"line_number":100,"context_line":"   handling of this case.  The user should not be managing the hostname through"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_c0300fa1","line":97,"range":{"start_line":97,"start_character":34,"end_line":97,"end_character":42},"updated":"2015-10-20 14:57:07.000000000","message":"nit: s/hostname/dns_name/ ?","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":94,"context_line":"   This will avoid breaking existing work-flows that might use unacceptable DNS"},{"line_number":95,"context_line":"   names."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":".. NOTE:: If the user updates the hostname on the Neutron port after the VM has"},{"line_number":98,"context_line":"   already booted then there will be an inconsistency between the hostname in"},{"line_number":99,"context_line":"   DNS and the instance hostname.  This blueprint will not do any special"},{"line_number":100,"context_line":"   handling of this case.  The user should not be managing the hostname through"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_05f3e274","line":97,"in_reply_to":"3a29b11f_c0300fa1","updated":"2015-11-07 00:04:38.000000000","message":"Good catch!","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"   both Nova and Neutron.  I don\u0027t see this as a big concern for user"},{"line_number":102,"context_line":"   experience."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A FQDN or PQDN can be passed to Nava as the VM name. The Nova sanitized version"},{"line_number":105,"context_line":"will be either a FQDN or a PQDN, depending on what was specified by the user."},{"line_number":106,"context_line":"Nova will pass the entire hostname to Neutron. The following table shows the"},{"line_number":107,"context_line":"name that will be setup in DNS by Neutron from *dns_name*, with *example.com.*"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_80e1b700","line":104,"range":{"start_line":104,"start_character":32,"end_line":104,"end_character":36},"updated":"2015-10-20 14:57:07.000000000","message":"nit: Nova","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"8a347adcb203aee1bce4c6636024afa704a7562d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"   both Nova and Neutron.  I don\u0027t see this as a big concern for user"},{"line_number":102,"context_line":"   experience."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A FQDN or PQDN can be passed to Nava as the VM name. The Nova sanitized version"},{"line_number":105,"context_line":"will be either a FQDN or a PQDN, depending on what was specified by the user."},{"line_number":106,"context_line":"Nova will pass the entire hostname to Neutron. The following table shows the"},{"line_number":107,"context_line":"name that will be setup in DNS by Neutron from *dns_name*, with *example.com.*"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_80926056","line":104,"in_reply_to":"3a29b11f_80e1b700","updated":"2015-11-07 00:05:44.000000000","message":"Done","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":114,"context_line":"vm01.test1              vm01.test1.example.com."},{"line_number":115,"context_line":"vm01.test1.example.com. vm01.test1.example.com."},{"line_number":116,"context_line":"vm01.test1.other.com.   API will fail port creation or update"},{"line_number":117,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Based on above table, the rules for DNS setup generation can be summarized as"},{"line_number":120,"context_line":"follows:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_e0774b38","line":117,"updated":"2015-10-20 14:57:07.000000000","message":"so if you pass dns_name \"vm01.test1.other.com\" (no trailing .), will you get \"vm01.test1.other.com.example.com.\"? Seems an easy mistake to make.\n\nOne solution (which may not jive well with existing FQDN/PQDN syntax) would be to assume FQDN if unterminated with dot and require PQDN to have a trailing /. It\u0027s easy to verify FQDNs end with the configured domain name and warn the user.","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":114,"context_line":"vm01.test1              vm01.test1.example.com."},{"line_number":115,"context_line":"vm01.test1.example.com. vm01.test1.example.com."},{"line_number":116,"context_line":"vm01.test1.other.com.   API will fail port creation or update"},{"line_number":117,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Based on above table, the rules for DNS setup generation can be summarized as"},{"line_number":120,"context_line":"follows:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_a56c5609","line":117,"in_reply_to":"3a29b11f_e0774b38","updated":"2015-11-07 00:04:38.000000000","message":"I\u0027d rather stick to widely known FQDN / PQDN. I don\u0027t want to introduce another syntax convention just for this case","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"To avoid undue performance impact in situations where the Nova upgrade is"},{"line_number":210,"context_line":"deployed but Neutron is not upgraded for a significant period of time, a"},{"line_number":211,"context_line":"configuration option will be implemented to disable the behavior described in"},{"line_number":212,"context_line":"the previous paragraph."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Other deployer impact"},{"line_number":215,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_2079c3c8","line":212,"updated":"2015-10-20 14:57:07.000000000","message":"can we just have this behaviour configured off by default for a release? Rather than users having to notice the release note / performance impact and disable it.","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":209,"context_line":"To avoid undue performance impact in situations where the Nova upgrade is"},{"line_number":210,"context_line":"deployed but Neutron is not upgraded for a significant period of time, a"},{"line_number":211,"context_line":"configuration option will be implemented to disable the behavior described in"},{"line_number":212,"context_line":"the previous paragraph."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Other deployer impact"},{"line_number":215,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_60ddfc6f","line":212,"in_reply_to":"3a29b11f_2079c3c8","updated":"2015-11-07 00:04:38.000000000","message":"Done","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":255,"context_line":"   than *host*."},{"line_number":256,"context_line":"#. Handle expected errors by retrying without dns_name set."},{"line_number":257,"context_line":"#. Extra credit:  Move port creation up so that the API fails with a bad DNS"},{"line_number":258,"context_line":"   name."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Dependencies"},{"line_number":261,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_bb00a402","line":258,"updated":"2015-10-20 14:57:07.000000000","message":"I\u0027d prefer this was either part of the spec or not","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":255,"context_line":"   than *host*."},{"line_number":256,"context_line":"#. Handle expected errors by retrying without dns_name set."},{"line_number":257,"context_line":"#. Extra credit:  Move port creation up so that the API fails with a bad DNS"},{"line_number":258,"context_line":"   name."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Dependencies"},{"line_number":261,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_00d51042","line":258,"in_reply_to":"3a29b11f_bb00a402","updated":"2015-11-07 00:04:38.000000000","message":"Done","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c246e8ff5d1f0de1b9a58dba0a5b96a31593704a","unresolved":false,"context_lines":[{"line_number":260,"context_line":"Dependencies"},{"line_number":261,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"In order to for this to work end to end, we need coordinated change in Neutron."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3a29b11f_603c9be2","line":263,"updated":"2015-10-20 14:57:07.000000000","message":"nit: s/In order to f/F/","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"782e4d2f88ae198d62bec7bc421fcb15f05f7938","unresolved":false,"context_lines":[{"line_number":260,"context_line":"Dependencies"},{"line_number":261,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"In order to for this to work end to end, we need coordinated change in Neutron."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"da85f559_0063d0b2","line":263,"in_reply_to":"3a29b11f_603c9be2","updated":"2015-11-07 00:04:38.000000000","message":"I did more than fix the nit. I updated this section to indicate that the corresponding changes in Neutron merged during Liberty","commit_id":"fac9c352775e78b98407add6924bcc6deea17a8f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0455f65d9d2f532655cd741205aaa64788a63473","unresolved":false,"context_lines":[{"line_number":27,"context_line":"assigned to the system.  For example, if the instance is booted with"},{"line_number":28,"context_line":"*10.224.36.4* then the hostname generated is *host-10-224-36-4.openstacklocal.*"},{"line_number":29,"context_line":"The generated name from Neutron is not presented anywhere in the API and"},{"line_number":30,"context_line":"therefore cannot be presented in any UI either."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Use Cases"},{"line_number":33,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ba8a016a_f36d2dcd","line":30,"updated":"2015-11-16 18:27:03.000000000","message":"Nit: its tempting to talk about what nova-network already offers, I thought it already used the hostname.","commit_id":"310ee8c7d01cdfe9bcd515c7878f172a9a5771b6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d2c87166b2ea12235a57c8582a7bc9a1e08a73d0","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   - If an existing port is passed to Nova with dns_name set then Nova will"},{"line_number":74,"context_line":"     reject that as an invalid network configuration and fail the request."},{"line_number":75,"context_line":"     Nova will not attempt to adopt the name from the port.  This is confusing"},{"line_number":76,"context_line":"     to the user and a source of errors if a port is reused between instances."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":79,"context_line":"   *dns_name* if it is received.  This error will be returned if Neutron has"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ba8a016a_f3d0cdcb","line":76,"updated":"2015-11-16 18:27:59.000000000","message":"I am tempted to say, if they match, then its not an error?","commit_id":"310ee8c7d01cdfe9bcd515c7878f172a9a5771b6"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"348efc06995a24270fc40905793ce9ff6a8e78c3","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   - If an existing port is passed to Nova with dns_name set then Nova will"},{"line_number":74,"context_line":"     reject that as an invalid network configuration and fail the request."},{"line_number":75,"context_line":"     Nova will not attempt to adopt the name from the port.  This is confusing"},{"line_number":76,"context_line":"     to the user and a source of errors if a port is reused between instances."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. Nova will recognize an error from the Neutron API server and retry without"},{"line_number":79,"context_line":"   *dns_name* if it is received.  This error will be returned if Neutron has"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ba8a016a_a1d70522","line":76,"in_reply_to":"ba8a016a_f3d0cdcb","updated":"2015-11-17 22:50:08.000000000","message":"Yeah, I adjusted the spec to reflect this.","commit_id":"310ee8c7d01cdfe9bcd515c7878f172a9a5771b6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0455f65d9d2f532655cd741205aaa64788a63473","unresolved":false,"context_lines":[{"line_number":119,"context_line":"- If *dns_name* is a FQDN, validate that the higher level labels match the"},{"line_number":120,"context_line":"  configured domain name."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"- If *dns_name* is a PQDN, append the configured domain name to form a FQDN."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Alternatives"},{"line_number":125,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ba8a016a_f3252d5c","line":122,"updated":"2015-11-16 18:27:03.000000000","message":"This feels wrong, given how the list of top level domains is now starting to increase.\n\nI am tempted to say that we should always append the local domain name, but this also seems outside the scope of this spec, as the details are simply passed to neutron?\n\nNeed to think about how this would conflict with how cloud-init works today with setting the hostname, and interacting with DNS, I am not 100% sure about these edge cases. Have to tested them out?","commit_id":"310ee8c7d01cdfe9bcd515c7878f172a9a5771b6"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"348efc06995a24270fc40905793ce9ff6a8e78c3","unresolved":false,"context_lines":[{"line_number":119,"context_line":"- If *dns_name* is a FQDN, validate that the higher level labels match the"},{"line_number":120,"context_line":"  configured domain name."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"- If *dns_name* is a PQDN, append the configured domain name to form a FQDN."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Alternatives"},{"line_number":125,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ba8a016a_a1a5c5b5","line":122,"in_reply_to":"ba8a016a_f3252d5c","updated":"2015-11-17 22:50:08.000000000","message":"I adjusted the spec to reflect our IRC conversation. The idea is that the behavior will be consistent with cloud-init","commit_id":"310ee8c7d01cdfe9bcd515c7878f172a9a5771b6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0455f65d9d2f532655cd741205aaa64788a63473","unresolved":false,"context_lines":[{"line_number":148,"context_line":"This change will make for a better user experience in the long run.  However,"},{"line_number":149,"context_line":"this work is out of the scope of this blueprint and can be done as follow up"},{"line_number":150,"context_line":"work independently.  One possibility that should be explored is to allow"},{"line_number":151,"context_line":"updating the Neutron port with the mac address when it is known."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Send Neutron DNS name back to Nova"},{"line_number":154,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ba8a016a_13b0f1f3","line":151,"updated":"2015-11-16 18:27:03.000000000","message":"Nit: Its not done this way on purpose, its how the Nova architecture is structured. Generally try to make the API requests quick to return, and deal with everything in a worker outside of the API. Better error reporting to the end user for async failures is something we are starting to get some consensus on, but its mostly for next release.","commit_id":"310ee8c7d01cdfe9bcd515c7878f172a9a5771b6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"10f2583da172ab86159e77c9592a56c0e5352515","unresolved":false,"context_lines":[{"line_number":236,"context_line":"In order for this to work end to end, the corresponding changes in Neutron"},{"line_number":237,"context_line":"merged during the Liberty cycle."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":23,"id":"ba8a016a_1ff27d06","line":239,"updated":"2015-11-19 16:22:00.000000000","message":"Ok, corresponding Neutron spec is https://review.openstack.org/#/c/88623/ and was approved in Liberty, so good to go from that POV.","commit_id":"d85689ec81c3def8642f5ce251827593a01fc2db"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4cafeba560397dc5336de25108486b20cb15b7bb","unresolved":false,"context_lines":[{"line_number":236,"context_line":"In order for this to work end to end, the corresponding changes in Neutron"},{"line_number":237,"context_line":"merged during the Liberty cycle."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"https://blueprints.launchpad.net/neutron/+spec/internal-dns-resolution"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":23,"id":"ba8a016a_d14869ce","line":239,"in_reply_to":"ba8a016a_1ff27d06","updated":"2015-11-19 16:44:17.000000000","message":"Yes, the Neutron side spec is approved and implemented: https://review.openstack.org/#/c/200952/","commit_id":"d85689ec81c3def8642f5ce251827593a01fc2db"}]}
