)]}'
{"specs/kilo/logical-names.rst":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"dab31cb39c2ab89e4901a88adbb0f610dc524043","unresolved":false,"context_lines":[{"line_number":57,"context_line":"1) Create a \u003clogical name\u003e and associate it with a \u003cnode uuid\u003e,"},{"line_number":58,"context_line":"2) List all the \u003clogical name\u003e to \u003cnode uuid\u003e associations,"},{"line_number":59,"context_line":"3) Modify the \u003clogical name\u003e associated with a \u003cnode uuid\u003e (which has the"},{"line_number":60,"context_line":"   side-effect of deleting the previous \u003clogical name\u003e), and"},{"line_number":61,"context_line":"4) Delete the association between a \u003clogical name\u003e and a \u003cnode uuid\u003e (which"},{"line_number":62,"context_line":"   also has the side effect of deleting the \u003clogical name\u003e)."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_b16a0a7f","line":60,"updated":"2014-11-14 05:59:34.000000000","message":"Have some \u0027Unexpected indentation\u0027 in the job log, so can you run below commands in your dev env to check these doc out, thanks.\n\n  source .tox/venv/bin/activate \n  python setup.py build_sphinx","commit_id":"aa9831d2726d03681e7a15f9013c6f66705730c1"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"7aa103c51cdf2ea557e32fa0c6c78e2da56d530c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"1) Create a \u003clogical name\u003e and associate it with a \u003cnode uuid\u003e,"},{"line_number":58,"context_line":"2) List all the \u003clogical name\u003e to \u003cnode uuid\u003e associations,"},{"line_number":59,"context_line":"3) Modify the \u003clogical name\u003e associated with a \u003cnode uuid\u003e (which has the"},{"line_number":60,"context_line":"   side-effect of deleting the previous \u003clogical name\u003e), and"},{"line_number":61,"context_line":"4) Delete the association between a \u003clogical name\u003e and a \u003cnode uuid\u003e (which"},{"line_number":62,"context_line":"   also has the side effect of deleting the \u003clogical name\u003e)."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_8f4ce79f","line":60,"in_reply_to":"5a890539_b16a0a7f","updated":"2014-11-14 23:14:58.000000000","message":"Thanks Haomeng - it\u0027s my first spec submitted :)","commit_id":"aa9831d2726d03681e7a15f9013c6f66705730c1"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Operators, and other humans, that use Ironic find it awkward and error-prone"},{"line_number":25,"context_line":"to use UUIDs to refer to entities that are tracked by Ironic."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"However computers, and extremely geekly people, prefer to track things by the"},{"line_number":28,"context_line":"canonical identifier - the UUID."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"While humans are more likely to use the command-line tools, computers"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_be87b7d6","line":27,"updated":"2014-11-19 01:24:09.000000000","message":"FWIW, I\u0027m fine with a little humor in there :)","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"28f5c869d66685490268d4c3869509f1d7d16acd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Operators, and other humans, that use Ironic find it awkward and error-prone"},{"line_number":25,"context_line":"to use UUIDs to refer to entities that are tracked by Ironic."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"However computers, and extremely geekly people, prefer to track things by the"},{"line_number":28,"context_line":"canonical identifier - the UUID."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"While humans are more likely to use the command-line tools, computers"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_12cca069","line":27,"updated":"2014-11-15 00:25:52.000000000","message":"While I laughed out loud when reading, I think we may want to remove the \"and extremely geekly people,\"","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Operators, and other humans, that use Ironic find it awkward and error-prone"},{"line_number":25,"context_line":"to use UUIDs to refer to entities that are tracked by Ironic."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"However computers, and extremely geekly people, prefer to track things by the"},{"line_number":28,"context_line":"canonical identifier - the UUID."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"While humans are more likely to use the command-line tools, computers"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_6db7daf5","line":27,"in_reply_to":"5a890539_be87b7d6","updated":"2014-11-24 06:53:35.000000000","message":"I\u0027ll leave it in, now that I have PTL approval :)","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"28f5c869d66685490268d4c3869509f1d7d16acd","unresolved":false,"context_lines":[{"line_number":33,"context_line":"support logical names for nodes."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"It\u0027s useful to be able to assign semantic meaning to nodes - for example"},{"line_number":36,"context_line":"datacentre location (i.e. \u0027DC6\u0027), or node function (i.e. \u0027database\u0027) - to"},{"line_number":37,"context_line":"assist operators in managing nodes in their network. The semantic identifier"},{"line_number":38,"context_line":"of a node is analogous to the hostname for the node, and may indeed correlate."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_72bfa4aa","line":36,"updated":"2014-11-15 00:25:52.000000000","message":"nit: s/datacentre/datacenter/","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"support logical names for nodes."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"It\u0027s useful to be able to assign semantic meaning to nodes - for example"},{"line_number":36,"context_line":"datacentre location (i.e. \u0027DC6\u0027), or node function (i.e. \u0027database\u0027) - to"},{"line_number":37,"context_line":"assist operators in managing nodes in their network. The semantic identifier"},{"line_number":38,"context_line":"of a node is analogous to the hostname for the node, and may indeed correlate."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_adcc628a","line":36,"in_reply_to":"5a890539_72bfa4aa","updated":"2014-11-24 06:53:35.000000000","message":"ok, I\u0027ll adopt weird US spelling :)","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"4) Delete the association between a \u003clogical name\u003e and a \u003cnode uuid\u003e (which"},{"line_number":62,"context_line":"also has the side effect of deleting the \u003clogical name\u003e)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"This needs to be supported at the REST API and at the python-ironicclient."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In addition, we should at this time also provide an `ironic.bash_completion`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_a4a5fda2","line":64,"updated":"2014-11-18 15:33:56.000000000","message":"Why can\u0027t these be just part of the regular node GET/PATCH APIs?\n\nI hope it\u0027s not just for tab complete performance reasons. :/","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"4) Delete the association between a \u003clogical name\u003e and a \u003cnode uuid\u003e (which"},{"line_number":62,"context_line":"also has the side effect of deleting the \u003clogical name\u003e)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"This needs to be supported at the REST API and at the python-ironicclient."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In addition, we should at this time also provide an `ironic.bash_completion`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_4da93e8f","line":64,"in_reply_to":"5a890539_a4a5fda2","updated":"2014-11-24 06:53:35.000000000","message":"I guess if we are to move the association to being a field on the node object, then it probably makes sense to use the existing APIs.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":67,"context_line":"In addition, we should at this time also provide an `ironic.bash_completion`"},{"line_number":68,"context_line":"drop-in script for the BASH shell that allows tab completion in specifying"},{"line_number":69,"context_line":"nodes.  Both the current UUIDs, and the proposed logical names, should be"},{"line_number":70,"context_line":"supported."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_de6ba31d","line":70,"updated":"2014-11-19 01:24:09.000000000","message":"bash-completion of names is unrelated to the proposed change. That requires adding a prefix-search to the API, eg, GET /v1/nodes/?prefix\u003dDC6-db ... or GET /v1/nodes/?prefix\u003d9e592 which isn\u0027t discussed here. If that\u0027s not going to be treated separately, then the API changes to enable it need more fleshing out.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"In addition, we should at this time also provide an `ironic.bash_completion`"},{"line_number":68,"context_line":"drop-in script for the BASH shell that allows tab completion in specifying"},{"line_number":69,"context_line":"nodes.  Both the current UUIDs, and the proposed logical names, should be"},{"line_number":70,"context_line":"supported."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_cd9c4e6d","line":70,"in_reply_to":"5a890539_de6ba31d","updated":"2014-11-24 06:53:35.000000000","message":"Ok, I\u0027ll remove bash completion and deal with that independently.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":84,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":85,"context_line":"This change introduces the concept of a \u003clogical name\u003e to ironic so that a"},{"line_number":86,"context_line":"human readable name can be associated with nodes.  This \u003clogical name\u003e should"},{"line_number":87,"context_line":"be hostname safe, that is, the node logical name should also be usable as the"},{"line_number":88,"context_line":"hostname for the instance.  For this to be true, the following references"},{"line_number":89,"context_line":"should be used to define what is a valid \u003clogical name\u003e: [wikipedia:hostname],"},{"line_number":90,"context_line":"[RFC952] and [RFC1123]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_fe685f23","line":87,"updated":"2014-11-19 01:24:09.000000000","message":"If we\u0027re going to say \"should be\" then I think the justification should be included.\n\nFWIW, I believe APIs should be able to validate and type-check input, which this would allow us to do cleanly. So I\u0027m ++ on having _some_ specification for the logical name, and this is a reasonable one IMHO.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":85,"context_line":"This change introduces the concept of a \u003clogical name\u003e to ironic so that a"},{"line_number":86,"context_line":"human readable name can be associated with nodes.  This \u003clogical name\u003e should"},{"line_number":87,"context_line":"be hostname safe, that is, the node logical name should also be usable as the"},{"line_number":88,"context_line":"hostname for the instance.  For this to be true, the following references"},{"line_number":89,"context_line":"should be used to define what is a valid \u003clogical name\u003e: [wikipedia:hostname],"},{"line_number":90,"context_line":"[RFC952] and [RFC1123]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_24e02dcc","line":87,"updated":"2014-11-18 15:33:56.000000000","message":"Why should it be hostname safe? Ease of implementation and dealing with URLs?","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":85,"context_line":"This change introduces the concept of a \u003clogical name\u003e to ironic so that a"},{"line_number":86,"context_line":"human readable name can be associated with nodes.  This \u003clogical name\u003e should"},{"line_number":87,"context_line":"be hostname safe, that is, the node logical name should also be usable as the"},{"line_number":88,"context_line":"hostname for the instance.  For this to be true, the following references"},{"line_number":89,"context_line":"should be used to define what is a valid \u003clogical name\u003e: [wikipedia:hostname],"},{"line_number":90,"context_line":"[RFC952] and [RFC1123]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_ed002a04","line":87,"in_reply_to":"5a890539_fe685f23","updated":"2014-11-24 06:53:35.000000000","message":"I\u0027m going to leave this section as is, because I think I have addressed why, specifically, \"the node logical name should also be usable as the hostname for the instance.\"","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u003clogical name\u003e \u003d\u003d [a-z0-9]([a-z0-9\\-]{0,61}[a-z0-9]|[a-z0-9]{0,62})?"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Where do we store the association?"},{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"The association between logical-name and UUID will need to be stored in"},{"line_number":103,"context_line":"a table in the database.  Both logical-names, and UUIDs, will need to be"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_1e760b07","line":100,"updated":"2014-11-19 01:24:09.000000000","message":"I do not understand the reasoning behind using an association here, rather than just adding a column to the nodes table. Could you explain?","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u003clogical name\u003e \u003d\u003d [a-z0-9]([a-z0-9\\-]{0,61}[a-z0-9]|[a-z0-9]{0,62})?"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Where do we store the association?"},{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"The association between logical-name and UUID will need to be stored in"},{"line_number":103,"context_line":"a table in the database.  Both logical-names, and UUIDs, will need to be"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_680c283c","line":100,"in_reply_to":"5a890539_1e760b07","updated":"2014-11-24 06:53:35.000000000","message":"My reasoning was that this would ease implementation - for checking uniqueness of the logical-name across all nodes.  However as this has been raised a couple of times, I\u0027ll change this so that the logical-name is just a field on the node.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"The association between logical-name and UUID will need to be stored in"},{"line_number":103,"context_line":"a table in the database.  Both logical-names, and UUIDs, will need to be"},{"line_number":104,"context_line":"protected via a UNIQUE constraint."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Logical names and UUIDs will only be added to this new table once the"},{"line_number":107,"context_line":"association between them is made.  There will be no prep-population of UUIDs"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_3e73c716","line":104,"updated":"2014-11-19 01:24:09.000000000","message":"there is already a UNIQUE on node.uuid ... why do we need a second one on this table?","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"The association between logical-name and UUID will need to be stored in"},{"line_number":103,"context_line":"a table in the database.  Both logical-names, and UUIDs, will need to be"},{"line_number":104,"context_line":"protected via a UNIQUE constraint."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Logical names and UUIDs will only be added to this new table once the"},{"line_number":107,"context_line":"association between them is made.  There will be no prep-population of UUIDs"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_c81a7c6e","line":104,"in_reply_to":"5a890539_3e73c716","updated":"2014-11-24 06:53:35.000000000","message":"\"as above\".  Anyway, this will be removed as a result of the change in implementation.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"protected via a UNIQUE constraint."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Logical names and UUIDs will only be added to this new table once the"},{"line_number":107,"context_line":"association between them is made.  There will be no prep-population of UUIDs"},{"line_number":108,"context_line":"to the table."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"As this is a new table, no database migration is required."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_6434f549","line":107,"updated":"2014-11-18 15:33:56.000000000","message":"Nit: s/prep-population/pre-population","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"protected via a UNIQUE constraint."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Logical names and UUIDs will only be added to this new table once the"},{"line_number":107,"context_line":"association between them is made.  There will be no prep-population of UUIDs"},{"line_number":108,"context_line":"to the table."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"As this is a new table, no database migration is required."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_e8173843","line":107,"in_reply_to":"5a890539_6434f549","updated":"2014-11-24 06:53:35.000000000","message":"thanks","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"association between them is made.  There will be no prep-population of UUIDs"},{"line_number":108,"context_line":"to the table."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"As this is a new table, no database migration is required."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_a4fa5d72","line":110,"updated":"2014-11-18 15:33:56.000000000","message":"1) Why should this be a new table?\n\n2) Database migrations are still required for new tables, they\u0027re just much less painful.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"association between them is made.  There will be no prep-population of UUIDs"},{"line_number":108,"context_line":"to the table."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"As this is a new table, no database migration is required."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_282dc095","line":110,"in_reply_to":"5a890539_a4fa5d72","updated":"2014-11-24 06:53:35.000000000","message":"No longer a new table, just a new field to the node object.  This will need to be handled as part of the migration.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"The following new APIs will reflect the existing node_uuid version of this"},{"line_number":222,"context_line":"API except that they will specify logical_name instead of node_uuid in the URL:"},{"line_number":223,"context_line":"* GET /v1/nodes/(node_logical_name)"},{"line_number":224,"context_line":"* PUT /v1/nodes/(node_logical_name)/maintenance"},{"line_number":225,"context_line":"* DELETE /v1/nodes/(node_logical_name)/maintenance"},{"line_number":226,"context_line":"* GET /v1/nodes/(node_logical_name)/management/boot_device"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_5e5fb375","line":223,"updated":"2014-11-19 01:24:09.000000000","message":"First, none of these are new API end points. They are all existing endpionts. Except with a different data type as input for the node identifier.\n\nTo Jim\u0027s question -- yup. That\u0027s tricky! We will need to define the type checking order. I would suggest something like this pseudocode\n\n  if is_uuid_like(value):\n    # handle it like a UUID\n  else if is_hostname_like(value):\n    # handle it like a logical name\n  else:\n    # invalid format, raise error","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"The following new APIs will reflect the existing node_uuid version of this"},{"line_number":222,"context_line":"API except that they will specify logical_name instead of node_uuid in the URL:"},{"line_number":223,"context_line":"* GET /v1/nodes/(node_logical_name)"},{"line_number":224,"context_line":"* PUT /v1/nodes/(node_logical_name)/maintenance"},{"line_number":225,"context_line":"* DELETE /v1/nodes/(node_logical_name)/maintenance"},{"line_number":226,"context_line":"* GET /v1/nodes/(node_logical_name)/management/boot_device"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_e41e25ba","line":223,"updated":"2014-11-18 15:33:56.000000000","message":"This could get interesting; what if someone makes a \"logical name\" that is the same as a different node\u0027s UUID?","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"The following new APIs will reflect the existing node_uuid version of this"},{"line_number":222,"context_line":"API except that they will specify logical_name instead of node_uuid in the URL:"},{"line_number":223,"context_line":"* GET /v1/nodes/(node_logical_name)"},{"line_number":224,"context_line":"* PUT /v1/nodes/(node_logical_name)/maintenance"},{"line_number":225,"context_line":"* DELETE /v1/nodes/(node_logical_name)/maintenance"},{"line_number":226,"context_line":"* GET /v1/nodes/(node_logical_name)/management/boot_device"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_682348a7","line":223,"in_reply_to":"5a890539_5e5fb375","updated":"2014-11-24 06:53:35.000000000","message":"Thanks Deva.  Agree with your points.  Doc updated accordingly.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"The following new APIs will reflect the existing node_uuid version of this"},{"line_number":222,"context_line":"API except that they will specify logical_name instead of node_uuid in the URL:"},{"line_number":223,"context_line":"* GET /v1/nodes/(node_logical_name)"},{"line_number":224,"context_line":"* PUT /v1/nodes/(node_logical_name)/maintenance"},{"line_number":225,"context_line":"* DELETE /v1/nodes/(node_logical_name)/maintenance"},{"line_number":226,"context_line":"* GET /v1/nodes/(node_logical_name)/management/boot_device"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_481e8c60","line":223,"in_reply_to":"5a890539_e41e25ba","updated":"2014-11-24 06:53:35.000000000","message":"Good pickup!","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":245,"context_line":"------------------"},{"line_number":246,"context_line":"This change as specified here is wholely contained with ironic itself.  It is"},{"line_number":247,"context_line":"most probably beneficial to expose the concept of a logical name to outside"},{"line_number":248,"context_line":"ironic for use in the Nova API."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"If required, this will be addressed in an independent spec."},{"line_number":251,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_7e646f49","line":248,"updated":"2014-11-19 01:24:09.000000000","message":"Certain users will want to give \"hints\" to Nova about where to schedule their instances. In some cases, the \"hint\" is what rack to be in; that should be done via \"capabilities.\n\nIn other cases, it is actually be the specific machine to deploy to. If we reject enabling that capability in Nova (hint: it\u0027s already there anyway, but cludgy) then those users will go somewhere else, or continue to use the old --force-host or az:host:hypervisor hint methods. Since those already exist, I don\u0027t see a problem with exposing a logical name in the same way for power users.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":245,"context_line":"------------------"},{"line_number":246,"context_line":"This change as specified here is wholely contained with ironic itself.  It is"},{"line_number":247,"context_line":"most probably beneficial to expose the concept of a logical name to outside"},{"line_number":248,"context_line":"ironic for use in the Nova API."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"If required, this will be addressed in an independent spec."},{"line_number":251,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_e44c65ca","line":248,"updated":"2014-11-18 15:33:56.000000000","message":"Why? A nova user should never care about the Ironic node\u0027s UUID or logical name.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":245,"context_line":"------------------"},{"line_number":246,"context_line":"This change as specified here is wholely contained with ironic itself.  It is"},{"line_number":247,"context_line":"most probably beneficial to expose the concept of a logical name to outside"},{"line_number":248,"context_line":"ironic for use in the Nova API."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"If required, this will be addressed in an independent spec."},{"line_number":251,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_a838d0d3","line":248,"in_reply_to":"5a890539_7e646f49","updated":"2014-11-24 06:53:35.000000000","message":"Agreed.  For now this is a placeholder for potential future work - aka no further effort required here for now.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":247,"context_line":"most probably beneficial to expose the concept of a logical name to outside"},{"line_number":248,"context_line":"ironic for use in the Nova API."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"If required, this will be addressed in an independent spec."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"Security impact"},{"line_number":253,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_9e591b91","line":250,"updated":"2014-11-19 01:24:09.000000000","message":"++ separate spec, particularly since that\u0027s a Nova change.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"2. ironic list-associations"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"This command lists all associations between \u003cnode UUID\u003es and \u003clogical-name\u003es."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"3. ironic delete-association \u003clogical-name\u003e|\u003cnode UUID\u003e"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_be5ed774","line":284,"updated":"2014-11-19 01:24:09.000000000","message":"This seems really unnecessary -- since a node can only be associated to one logical name (and vise-versa) why would I want to list all (node, name) pairs? Why not just list all nodes and include their names in that output?","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"2. ironic list-associations"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"This command lists all associations between \u003cnode UUID\u003es and \u003clogical-name\u003es."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"3. ironic delete-association \u003clogical-name\u003e|\u003cnode UUID\u003e"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_e82e588b","line":284,"in_reply_to":"5a890539_be5ed774","updated":"2014-11-24 06:53:35.000000000","message":"ok.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"28f5c869d66685490268d4c3869509f1d7d16acd","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"Performance Impact"},{"line_number":302,"context_line":"------------------"},{"line_number":303,"context_line":"None"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Other deployer impact"},{"line_number":306,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_f270f4dd","line":303,"updated":"2014-11-15 00:25:52.000000000","message":"Adding a new lookup table for installations with large numbers of nodes could have some impact.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"Performance Impact"},{"line_number":302,"context_line":"------------------"},{"line_number":303,"context_line":"None"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Other deployer impact"},{"line_number":306,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_de52c367","line":303,"updated":"2014-11-19 01:24:09.000000000","message":"the impact of \"lookup string, find node UUID\" is small. Really small when compared to the sorts of things Ironic does the rest of the time.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"Performance Impact"},{"line_number":302,"context_line":"------------------"},{"line_number":303,"context_line":"None"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Other deployer impact"},{"line_number":306,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_4855acf8","line":303,"in_reply_to":"5a890539_de52c367","updated":"2014-11-24 06:53:35.000000000","message":"Since the new table is going, this isn\u0027t a concern anymore.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"aa0a2786eb6a7f728496c35ec67aebefc9894a1d","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"Performance Impact"},{"line_number":302,"context_line":"------------------"},{"line_number":303,"context_line":"None"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Other deployer impact"},{"line_number":306,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_24f10d6b","line":303,"in_reply_to":"5a890539_f270f4dd","updated":"2014-11-18 15:33:56.000000000","message":"+1","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8204fd7ab36fedd684b7a44c9f00202a3b8bdc94","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":337,"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"},{"line_number":338,"context_line":"None"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"Documentation Impact"},{"line_number":341,"context_line":"\u003d\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":2,"id":"5a890539_fe4f7fbc","line":338,"updated":"2014-11-19 01:24:09.000000000","message":"backwards compat is a thing for any API change.\n\nThis section should talk about such things as: an older client talking to a newer service (will it see the new fields?), a newer client talking to an older service (what happens if I try to update a logical name and the service hasn\u0027t been updated yet?), and the initial state after an upgrade of the service (none of the nodes have logical names at first ... are there any implications of that?)","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"1050dceb0f84c46277d3f7053978df73e341b80f","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":337,"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"},{"line_number":338,"context_line":"None"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"Documentation Impact"},{"line_number":341,"context_line":"\u003d\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":2,"id":"5a890539_685a682b","line":338,"in_reply_to":"5a890539_fe4f7fbc","updated":"2014-11-24 06:53:35.000000000","message":"Ok, will address.","commit_id":"59257c7fe6e66fd58e13ca62b99673001cd99a1a"},{"author":{"_account_id":12315,"name":"Bertie Fulton","email":"bertiefulton@yahoo.co.uk","username":"bertie.fultonsap.com"},"change_message_id":"b89d0c4a96d90e0a8cb000b612117913e94eccd9","unresolved":false,"context_lines":[{"line_number":64,"context_line":"None"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e.  We"},{"line_number":70,"context_line":"can consider a \u003clogical name\u003e as an alias for a \u003cnode uuid\u003e."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_1e69f4f8","line":67,"updated":"2014-11-25 10:28:26.000000000","message":"The work items state:\n\u00271. New database table for logical_name and node uuid association\u0027\n\nIf a new database table is to be created should it be stated explicitly in this section?","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":12315,"name":"Bertie Fulton","email":"bertiefulton@yahoo.co.uk","username":"bertie.fultonsap.com"},"change_message_id":"6bb40c28dbf469f30874a4a7303c7e32d10a1e04","unresolved":false,"context_lines":[{"line_number":64,"context_line":"None"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e.  We"},{"line_number":70,"context_line":"can consider a \u003clogical name\u003e as an alias for a \u003cnode uuid\u003e."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_61289933","line":67,"in_reply_to":"5a890539_1e69f4f8","updated":"2014-11-25 10:32:08.000000000","message":"Just read the previous reviews - ignore this comment and I\u0027ll put a comment about updating the work items in the correct place. Apologies","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f2a8203480f22b6b4296c8b33c7621be530620da","unresolved":false,"context_lines":[{"line_number":64,"context_line":"None"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e.  We"},{"line_number":70,"context_line":"can consider a \u003clogical name\u003e as an alias for a \u003cnode uuid\u003e."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_56ffc101","line":67,"in_reply_to":"5a890539_61289933","updated":"2014-11-26 05:29:19.000000000","message":"Thanks - vestigial comment on database removed.","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"393e969391a1dfbca51a03374104a08e807af8d4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e.  We"},{"line_number":70,"context_line":"can consider a \u003clogical name\u003e as an alias for a \u003cnode uuid\u003e."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"When the version of ironic that includes these changes is run against an"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_4973d74d","line":69,"updated":"2014-11-24 20:00:28.000000000","message":"Other services (nova and glance) do not require that names be unique. Is there a compelling reason to keep the 1:1 mapping of names to uuids?","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f2a8203480f22b6b4296c8b33c7621be530620da","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e.  We"},{"line_number":70,"context_line":"can consider a \u003clogical name\u003e as an alias for a \u003cnode uuid\u003e."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"When the version of ironic that includes these changes is run against an"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_d121fb9e","line":69,"in_reply_to":"5a890539_4973d74d","updated":"2014-11-26 05:29:19.000000000","message":"Thanks for the question:  The intention is to be able to use the logical name interchangeably with the node UUID, so if we allowed a non 1:1 mapping, what would the expected behaviour be?  To error?  To apply to the first node found with that node_id?  To apply to all nodes with that logical name?\n\nI think the better abstraction is to envision logical name as an alias for a node uuid, and nothing more.  \n\nI\u0027m also going to clarify that logical_name should be unique for a tenant.\n\n\n\n\nTo that end I\u0027m leaving this restriction in place unless there\u0027s other reviewer support for this change, and an identification of the expected behaviour should we allow a 1:n mapping.","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":12315,"name":"Bertie Fulton","email":"bertiefulton@yahoo.co.uk","username":"bertie.fultonsap.com"},"change_message_id":"b89d0c4a96d90e0a8cb000b612117913e94eccd9","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Nova driver impact"},{"line_number":155,"context_line":"------------------"},{"line_number":156,"context_line":"This change as specified here is wholely contained with ironic itself.  It is"},{"line_number":157,"context_line":"most probably beneficial to expose the concept of a logical name to outside"},{"line_number":158,"context_line":"ironic for use in the Nova API."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_fe1a687b","line":156,"updated":"2014-11-25 10:28:26.000000000","message":"s/wholely/wholly/","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f2a8203480f22b6b4296c8b33c7621be530620da","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Nova driver impact"},{"line_number":155,"context_line":"------------------"},{"line_number":156,"context_line":"This change as specified here is wholely contained with ironic itself.  It is"},{"line_number":157,"context_line":"most probably beneficial to expose the concept of a logical name to outside"},{"line_number":158,"context_line":"ironic for use in the Nova API."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_31323ff2","line":156,"in_reply_to":"5a890539_fe1a687b","updated":"2014-11-26 05:29:19.000000000","message":"Done","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6629b08085bdc6606d94f87b777a91308b80154e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"the detailed changes in the REST API section for an idea of the scope of"},{"line_number":177,"context_line":"change required."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Additionally a number of new sub-commands to python-ironicclient will be"},{"line_number":180,"context_line":"required to manage logical names, specifically:"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"1. ironic add-association \u003clogical-name\u003e \u003cnode UUID\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_80a75f0a","line":179,"updated":"2014-11-24 13:52:52.000000000","message":"Is there a reason to use new CLI commands for this, as opposed to\n\nironic node-update \u003cnode UUID\u003e replace logical_name\u003d\"NEW_NAME\"","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":12315,"name":"Bertie Fulton","email":"bertiefulton@yahoo.co.uk","username":"bertie.fultonsap.com"},"change_message_id":"b89d0c4a96d90e0a8cb000b612117913e94eccd9","unresolved":false,"context_lines":[{"line_number":176,"context_line":"the detailed changes in the REST API section for an idea of the scope of"},{"line_number":177,"context_line":"change required."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Additionally a number of new sub-commands to python-ironicclient will be"},{"line_number":180,"context_line":"required to manage logical names, specifically:"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"1. ironic add-association \u003clogical-name\u003e \u003cnode UUID\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_8143c540","line":179,"in_reply_to":"5a890539_80a75f0a","updated":"2014-11-25 10:28:26.000000000","message":"+1","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f2a8203480f22b6b4296c8b33c7621be530620da","unresolved":false,"context_lines":[{"line_number":176,"context_line":"the detailed changes in the REST API section for an idea of the scope of"},{"line_number":177,"context_line":"change required."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Additionally a number of new sub-commands to python-ironicclient will be"},{"line_number":180,"context_line":"required to manage logical names, specifically:"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"1. ironic add-association \u003clogical-name\u003e \u003cnode UUID\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_11ac63ec","line":179,"in_reply_to":"5a890539_8143c540","updated":"2014-11-26 05:29:19.000000000","message":"I\u0027m kind of ambivalent on this - I\u0027m happy to change this, and not introduce an additional interface to the cli.\n\nHowever my intention was to make this a first-class interface to ironic to ease operational pain.  By hiding this capability under the existing node-update subcommand, we are essentially hiding it from discovery.\n\nIf we go down this path, and if we don\u0027t provide additional documentation support for this feature, how will operators realise they can assign a logical name to their baremetal instances, and use that human-friendly version in future interactions to the admin interface?\n\n\n\n\nNow that I\u0027ve said this, two reviewers have agreed on this point, so I\u0027m removing these new subcommands from the spec :)","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":12315,"name":"Bertie Fulton","email":"bertiefulton@yahoo.co.uk","username":"bertie.fultonsap.com"},"change_message_id":"6bb40c28dbf469f30874a4a7303c7e32d10a1e04","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Work Items"},{"line_number":223,"context_line":"----------"},{"line_number":224,"context_line":"1. New database table for logical_name and node uuid association"},{"line_number":225,"context_line":"2. REST API additions and modifications"},{"line_number":226,"context_line":"3. python-ironicclient additions and modifications"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_41dc7d46","line":224,"updated":"2014-11-25 10:32:08.000000000","message":"I believe from previous reviews that there no longer is a new database table being created.","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f2a8203480f22b6b4296c8b33c7621be530620da","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Work Items"},{"line_number":223,"context_line":"----------"},{"line_number":224,"context_line":"1. New database table for logical_name and node uuid association"},{"line_number":225,"context_line":"2. REST API additions and modifications"},{"line_number":226,"context_line":"3. python-ironicclient additions and modifications"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_d17d7b6e","line":224,"in_reply_to":"5a890539_41dc7d46","updated":"2014-11-26 05:29:19.000000000","message":"Done","commit_id":"270653507d0f603c39aee112a52913d0c846e4df"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"afeffe3b0ff1a3ae676a9198aee4a561c24906f7","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Note: It is recognised that a valid \u003clogical name\u003e might also be a valid"},{"line_number":99,"context_line":"\u003cnode uuid\u003e, which could lead to confusion.  It is suggested that"},{"line_number":100,"context_line":"a \u003clogical name\u003e NOT be specified to be a \u003cnode uuid\u003e to avoid confusion"},{"line_number":101,"context_line":"and unexpected behaviour from ironic."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Search Ordering (implementation hint)"},{"line_number":104,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a890539_7a01c9ae","line":101,"updated":"2014-11-27 15:14:48.000000000","message":"also ugly, but maybe forbid names that are `is_uuid_like`?","commit_id":"24abb604c43e48ed0ffc94bc981efb4fa9e9c09c"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f6c7ed8230be3f6a34f5a4c540edfbb6c6fbf968","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Note: It is recognised that a valid \u003clogical name\u003e might also be a valid"},{"line_number":99,"context_line":"\u003cnode uuid\u003e, which could lead to confusion.  It is suggested that"},{"line_number":100,"context_line":"a \u003clogical name\u003e NOT be specified to be a \u003cnode uuid\u003e to avoid confusion"},{"line_number":101,"context_line":"and unexpected behaviour from ironic."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Search Ordering (implementation hint)"},{"line_number":104,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a890539_1366ebee","line":101,"in_reply_to":"5a890539_7a01c9ae","updated":"2014-11-28 00:21:21.000000000","message":"Thanks Dmitry - updated accordingly.","commit_id":"24abb604c43e48ed0ffc94bc981efb4fa9e9c09c"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"6bc3c525b4c060809eefa92881b77c06a8367585","unresolved":false,"context_lines":[{"line_number":120,"context_line":"\u003clogical_name\u003e."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"The following APIs will add in a new JSON body parameter named \"logical_name\":"},{"line_number":123,"context_line":"* DELETE /v1/nodes"},{"line_number":124,"context_line":"* PATCH /v1/nodes"},{"line_number":125,"context_line":"* GET /v1/nodes/validate"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5a890539_e11097ad","line":123,"updated":"2014-11-28 16:25:58.000000000","message":"Why does this need a logical_name parameter?","commit_id":"6f6bbdcc8ad56231999d4297e69c33fc4aa8c424"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"763c3b4ffccf226f1016a34f054c5d31ce78843c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"A number of existing APIs will need to be modified to support the use of"},{"line_number":124,"context_line":"\u003clogical_name\u003e."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The following APIs will add in a new JSON body parameter named \"name\":"},{"line_number":127,"context_line":"* DELETE /v1/nodes"},{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_5cc93624","line":126,"updated":"2014-12-01 14:23:50.000000000","message":"newline should go here","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f219845a336dd237026dbbae16de054f66f0a8d3","unresolved":false,"context_lines":[{"line_number":123,"context_line":"A number of existing APIs will need to be modified to support the use of"},{"line_number":124,"context_line":"\u003clogical_name\u003e."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The following APIs will add in a new JSON body parameter named \"name\":"},{"line_number":127,"context_line":"* DELETE /v1/nodes"},{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_a1dadd14","line":126,"in_reply_to":"5a890539_5cc93624","updated":"2014-12-02 00:37:12.000000000","message":"Done","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"b3bd9bd69f632b639db7712ca98087364d1888a7","unresolved":false,"context_lines":[{"line_number":124,"context_line":"\u003clogical_name\u003e."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The following APIs will add in a new JSON body parameter named \"name\":"},{"line_number":127,"context_line":"* DELETE /v1/nodes"},{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_1fd5e0e4","line":127,"updated":"2014-12-01 14:44:53.000000000","message":"Why does this need a name parameter? Wouldn\u0027t it just be DELETE /v1/nodes/\u003cname\u003e?","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f219845a336dd237026dbbae16de054f66f0a8d3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"\u003clogical_name\u003e."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The following APIs will add in a new JSON body parameter named \"name\":"},{"line_number":127,"context_line":"* DELETE /v1/nodes"},{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_e6115bb0","line":127,"in_reply_to":"5a890539_1fd5e0e4","updated":"2014-12-02 00:37:12.000000000","message":"Thanks jroll for the review.\n\n...because the current interface has a parameter node_uuid to specify which node to delete?  I think this should be consistent with the current approach by adding an optional \"name\" parameter to delete a node by logical name.","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"b3bd9bd69f632b639db7712ca98087364d1888a7","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The following APIs will add in a new JSON body parameter named \"name\":"},{"line_number":127,"context_line":"* DELETE /v1/nodes"},{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"The following APIs will add in a new response body field named \"name\":"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_bff68c8e","line":128,"updated":"2014-12-01 14:44:53.000000000","message":"Ditto, PATCH /v1/nodes/\u003cname\u003e should suffice?","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f219845a336dd237026dbbae16de054f66f0a8d3","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The following APIs will add in a new JSON body parameter named \"name\":"},{"line_number":127,"context_line":"* DELETE /v1/nodes"},{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"The following APIs will add in a new response body field named \"name\":"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_067ca7ea","line":128,"in_reply_to":"5a890539_bff68c8e","updated":"2014-12-02 00:37:12.000000000","message":"\"as above\".  I\u0027m proposing to make the interface the same as if a node_uuid was specified.","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"763c3b4ffccf226f1016a34f054c5d31ce78843c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"The following APIs will add in a new response body field named \"name\":"},{"line_number":132,"context_line":"* GET /v1/nodes"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The following APIs will reflect the existing node_uuid version of this"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_9cd39ed4","line":131,"updated":"2014-12-01 14:23:50.000000000","message":"newline should go here","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f219845a336dd237026dbbae16de054f66f0a8d3","unresolved":false,"context_lines":[{"line_number":128,"context_line":"* PATCH /v1/nodes"},{"line_number":129,"context_line":"* GET /v1/nodes/validate"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"The following APIs will add in a new response body field named \"name\":"},{"line_number":132,"context_line":"* GET /v1/nodes"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The following APIs will reflect the existing node_uuid version of this"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_012e51fa","line":131,"in_reply_to":"5a890539_9cd39ed4","updated":"2014-12-02 00:37:12.000000000","message":"Done","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"763c3b4ffccf226f1016a34f054c5d31ce78843c","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The following APIs will reflect the existing node_uuid version of this"},{"line_number":135,"context_line":"API, along with adding support to specify logical_name instead of node_uuid"},{"line_number":136,"context_line":"in the URL:"},{"line_number":137,"context_line":"* GET /v1/nodes/(node_logical_name)"},{"line_number":138,"context_line":"* PUT /v1/nodes/(node_logical_name)/maintenance"},{"line_number":139,"context_line":"* DELETE /v1/nodes/(node_logical_name)/maintenance"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_1c488eb2","line":136,"updated":"2014-12-01 14:23:50.000000000","message":"newline should go here","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"f219845a336dd237026dbbae16de054f66f0a8d3","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The following APIs will reflect the existing node_uuid version of this"},{"line_number":135,"context_line":"API, along with adding support to specify logical_name instead of node_uuid"},{"line_number":136,"context_line":"in the URL:"},{"line_number":137,"context_line":"* GET /v1/nodes/(node_logical_name)"},{"line_number":138,"context_line":"* PUT /v1/nodes/(node_logical_name)/maintenance"},{"line_number":139,"context_line":"* DELETE /v1/nodes/(node_logical_name)/maintenance"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a890539_e12a25e6","line":136,"in_reply_to":"5a890539_1c488eb2","updated":"2014-12-02 00:37:12.000000000","message":"Done","commit_id":"4274bcc43f2a7b16a4ad088a29c43739f6e3907b"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f76076ab32f57d02f0b17f17f98e37eaa3c92a69","unresolved":false,"context_lines":[{"line_number":71,"context_line":"-----------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e for"},{"line_number":74,"context_line":"a particular tenant.  We can consider a \u003clogical name\u003e as an alias for a"},{"line_number":75,"context_line":"\u003cnode uuid\u003e."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"When the version of ironic that includes these changes is run against an"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_e9bf50ce","line":74,"updated":"2014-12-02 16:57:12.000000000","message":"Does Ironic know about tenants?","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"71f09659ed19fd7e726ece7451a527ea511acb5e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"-----------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e for"},{"line_number":74,"context_line":"a particular tenant.  We can consider a \u003clogical name\u003e as an alias for a"},{"line_number":75,"context_line":"\u003cnode uuid\u003e."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"When the version of ironic that includes these changes is run against an"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_65d1b8fa","line":74,"in_reply_to":"5a890539_c918d486","updated":"2014-12-02 22:47:49.000000000","message":"Thanks Kevin - I\u0027m removing the reference to tenant in review 138565 since this is not an ironic concept.","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":9237,"name":"Kevin Fox","email":"kevin@efox.cc","username":"kfox1111"},"change_message_id":"1595bf76d922074bed6da8dc26713544d02b365e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"-----------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e for"},{"line_number":74,"context_line":"a particular tenant.  We can consider a \u003clogical name\u003e as an alias for a"},{"line_number":75,"context_line":"\u003cnode uuid\u003e."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"When the version of ironic that includes these changes is run against an"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_c918d486","line":74,"in_reply_to":"5a890539_e9bf50ce","updated":"2014-12-02 17:08:07.000000000","message":"I\u0027d think it would be 1:1 so that the people who actually care about physical hardware (admins) can go find it. The tenants will be using it via nova, and nova usually hides physical node info unless they are a cloud admin. So I don\u0027t think it would help at all to let different tenants put different names on the nodes.","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"71f09659ed19fd7e726ece7451a527ea511acb5e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"-----------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"There should be a 1:1 mapping between a \u003clogical name\u003e and a \u003cnode uuid\u003e for"},{"line_number":74,"context_line":"a particular tenant.  We can consider a \u003clogical name\u003e as an alias for a"},{"line_number":75,"context_line":"\u003cnode uuid\u003e."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"When the version of ironic that includes these changes is run against an"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_45ccbcbb","line":74,"in_reply_to":"5a890539_e9bf50ce","updated":"2014-12-02 22:47:49.000000000","message":"Thanks Ruby - this was a mea culpa from me.","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f76076ab32f57d02f0b17f17f98e37eaa3c92a69","unresolved":false,"context_lines":[{"line_number":90,"context_line":"be hostname safe, that is, the node logical name should also be usable as the"},{"line_number":91,"context_line":"hostname for the instance.  For this to be true, the following references"},{"line_number":92,"context_line":"should be used to define what is a valid \u003clogical name\u003e: [wikipedia:hostname],"},{"line_number":93,"context_line":"[RFC952] and [RFC1123]."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In simple english, what this means is that \u003clogical names\u003es can be between"},{"line_number":96,"context_line":"1 and 63 characters long, with the valid characters being [a-z0-9] and \u0027-\u0027,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_69a0c090","line":93,"updated":"2014-12-02 16:57:12.000000000","message":"(I only looked at wikipedia) Might someone want the logical name to be a FQDN hostname? Would need to allow periods.","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"71f09659ed19fd7e726ece7451a527ea511acb5e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"be hostname safe, that is, the node logical name should also be usable as the"},{"line_number":91,"context_line":"hostname for the instance.  For this to be true, the following references"},{"line_number":92,"context_line":"should be used to define what is a valid \u003clogical name\u003e: [wikipedia:hostname],"},{"line_number":93,"context_line":"[RFC952] and [RFC1123]."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In simple english, what this means is that \u003clogical names\u003es can be between"},{"line_number":96,"context_line":"1 and 63 characters long, with the valid characters being [a-z0-9] and \u0027-\u0027,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_a51c80c3","line":93,"in_reply_to":"5a890539_69a0c090","updated":"2014-12-02 22:47:49.000000000","message":"I thought about this and then steered away from it - I think just the hostname rather than FQDN will be sufficient, unless there\u0027s other voices on this matter?","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f76076ab32f57d02f0b17f17f98e37eaa3c92a69","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":224,"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"},{"line_number":225,"context_line":"None"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Documentation Impact"},{"line_number":228,"context_line":"\u003d\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":7,"id":"5a890539_69236005","line":225,"updated":"2014-12-02 16:57:12.000000000","message":"Won\u0027t a db upgrade be needed?","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"71f09659ed19fd7e726ece7451a527ea511acb5e","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":224,"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"},{"line_number":225,"context_line":"None"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Documentation Impact"},{"line_number":228,"context_line":"\u003d\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":7,"id":"5a890539_25ced02d","line":225,"in_reply_to":"5a890539_69236005","updated":"2014-12-02 22:47:49.000000000","message":"Thanks Ruby - addressed in the new review referenced above.","commit_id":"c4898add968a378e82d861afb8dfbcaf7755c9eb"}]}
