)]}'
{"specs/ocata/approved/vif-network-information.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"018d4b8fa03764091a65ea43efc5a69dafc31e9f","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"For simplicity and to achieve the aim of fetching just the port and"},{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"},{"line_number":54,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_5a4ce6c7","line":51,"updated":"2016-11-02 13:04:39.000000000","message":"So there\u0027s multiple places where nova uses this information. In particular there is overlap with VIF plugging. Nova currently uses the same data model for representing the data it gets from nova - the various classes in nova/network/model.py   For the VIF plugging scenario we\u0027re switching over to using os-vif object model. The os-vif object model includes classes for representing subnets, routers, addresses, etc.\n\nSo I think there\u0027s a likely benefit to being able to use the os-vif object model for all scenarios. IOW, I think it could be desirable to use either the os_vif.objects.network.Network class or os_vif.objects.subnets.SubnetList class to provide this information from Neutron to Nova.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8eaeda560ed5cd0704b22db2227f977b608ce2df","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"For simplicity and to achieve the aim of fetching just the port and"},{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"},{"line_number":54,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_c7964fef","line":51,"in_reply_to":"ba5da102_5a4ce6c7","updated":"2016-11-02 18:42:40.000000000","message":"Honestly, this feels totally like Neutron REST API data, so should have nothing to do with os-vif.\n\nNow there could be a versioned objects used to create a REST API, but I don\u0027t think we should get into that here.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"e2e51371a986b8f4d66f38e3bdad12171c4dadb5","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"For simplicity and to achieve the aim of fetching just the port and"},{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"},{"line_number":54,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a629dbe_1ace47b4","line":51,"in_reply_to":"ba5da102_c7964fef","updated":"2016-11-08 18:24:39.000000000","message":"This is not involved with the binding, but instead involved with the description of the port (bound or unbound, really) which is why I added it as an attribute on the port itself.  I\u0027ll write up the detail that John requests.\n\nI understand the interest with versioned objects, but there ought to be a limit to when we use them and when we simply use structured data - has anyone thought about that limit and when we should use one over the other?\n\nThe structure of this data is not something that frequently changes, so the risk of not using them and having API versions is comparatively small.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8eaeda560ed5cd0704b22db2227f977b608ce2df","unresolved":false,"context_lines":[{"line_number":49,"context_line":"For simplicity and to achieve the aim of fetching just the port and"},{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"},{"line_number":54,"context_line":"------------"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_82b7e538","line":52,"updated":"2016-11-02 18:42:40.000000000","message":"So I think we need one extra level of detail here, a list of the data Nova needs from neutron.\n\nI have some of the data in this draft spec I have going:\nhttps://review.openstack.org/#/c/353982/3/specs/ocata/approved/neutron-interaction-refresh-ocata.rst@177\n\nSpecifically, ideally we have something like /ports/?device\u003d\u003cserver_uuid\u003e,full-network-details\u003dTrue that gives us:\n\n* all the ports and their details for an each instance in one call (ideally for all instances on a host, but thats just a case of specifying multiple server_uuids). it could just be we pass neutorn a list of port_uuids, if thats more efficient (i.e. make sure we have the correct DB index present).\n* mac address, any ip addresses, including floating ips, subnet masks, dns, dhcp_server, additional host routes (i.e. everything needed for cloud-init to populate the interfaces file in the instance)\n* information on any bonding or VLAN configs (eventually)\n* maybe etag or something to help with caching, so there is an efficient HEAD call we could make to see if we need to do the full call\n\nI propose we consider going a step further, and having a format that could be passed through to cloud-init in some new network.json style entry that is in metadata service and cloud-init. We can just not populate that for nova-network, given that is now deprecated, although it would technically be possible.\n\nThis should help neutron expose new details to cloud init, as required, independently of Nova. But Nova still gets to get all the info it needs for internal things and API proxies.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"e2e51371a986b8f4d66f38e3bdad12171c4dadb5","unresolved":false,"context_lines":[{"line_number":49,"context_line":"For simplicity and to achieve the aim of fetching just the port and"},{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"},{"line_number":54,"context_line":"------------"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a629dbe_3a214b4e","line":52,"in_reply_to":"ba5da102_82b7e538","updated":"2016-11-08 18:24:39.000000000","message":"I do rather like the idea that the data transits directly to cloud-init, since it makes the responsibility for the cloud-init network format exclusively that of the networking tools and removes Nova from the loop.  However, we would need to include a format version in the data if we did that, I would guess; it ties up the backward compatibility.  Perhaps:\n\n{ version-1-key: { ... },\n  version-2-key: { ... }\n} ?\n\nWe need something like this, because cloud-init currently manages versions via multiple dated files with different formats.  The key above could be the file version.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8eaeda560ed5cd0704b22db2227f977b608ce2df","unresolved":false,"context_lines":[{"line_number":120,"context_line":"   implementation than in this spec.)"},{"line_number":121,"context_line":"3. Create conditional code in the Neutron networking plugin to consume"},{"line_number":122,"context_line":"   this data iff it is available."},{"line_number":123,"context_line":"4. Confirm the tests still pass."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Dependencies"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_c719ef89","line":123,"updated":"2016-11-02 18:42:40.000000000","message":"These should really be Nova work items, for us to check off how complete a spec is on the Nova side.\n\nThis seems to be largely dependencies, which is not all bad.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"e2e51371a986b8f4d66f38e3bdad12171c4dadb5","unresolved":false,"context_lines":[{"line_number":120,"context_line":"   implementation than in this spec.)"},{"line_number":121,"context_line":"3. Create conditional code in the Neutron networking plugin to consume"},{"line_number":122,"context_line":"   this data iff it is available."},{"line_number":123,"context_line":"4. Confirm the tests still pass."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Dependencies"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a629dbe_1aeba7b1","line":123,"in_reply_to":"ba5da102_c719ef89","updated":"2016-11-08 18:24:39.000000000","message":"I sympathise, but there\u0027s a logical order here so I thought I\u0027d put the lot in.  Since this is basically for humans I don\u0027t think we need to be too strict about the format, do we?","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"018d4b8fa03764091a65ea43efc5a69dafc31e9f","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"We absolutely do *not* depend on Neutron changes for this to continue"},{"line_number":131,"context_line":"functioning correctly as the current behaviour is a fallback when"},{"line_number":132,"context_line":"Neutron doesn\u0027t support the extension."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Testing"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_babc22bc","line":132,"updated":"2016-11-02 13:04:39.000000000","message":"I understand your point here - nova will correctly degrade with older neutron, but that\u0027s not what the \"Depedancies\" section of the spec is about. We need to be listing tasks that are pre-requisites before we can implement this in Nova. \n\nThe obvious pre-requisite here is that Neutron needs to declare the data format for the extra data it is providing in its API response and provide an implementation of that. Without this it is not possible to test the Nova implementation that consumes this data correctly, and thus we can\u0027t do CI on nova changes. So merging of the neutron side of the impl is a pre-requisite for merging the nova side of the impl.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"e2e51371a986b8f4d66f38e3bdad12171c4dadb5","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"We absolutely do *not* depend on Neutron changes for this to continue"},{"line_number":131,"context_line":"functioning correctly as the current behaviour is a fallback when"},{"line_number":132,"context_line":"Neutron doesn\u0027t support the extension."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Testing"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a629dbe_fa351346","line":132,"in_reply_to":"ba5da102_2770ebdb","updated":"2016-11-08 18:24:39.000000000","message":"On the Neutron side this is an extension and a bit easier to get through.  Provided the format is documented in one place (here will do) I can refer to that with the Neutron proposal.  I\u0027ll put it here and check with Armando about what do to from Neutron.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8eaeda560ed5cd0704b22db2227f977b608ce2df","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"We absolutely do *not* depend on Neutron changes for this to continue"},{"line_number":131,"context_line":"functioning correctly as the current behaviour is a fallback when"},{"line_number":132,"context_line":"Neutron doesn\u0027t support the extension."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Testing"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_2770ebdb","line":132,"in_reply_to":"ba5da102_babc22bc","updated":"2016-11-02 18:42:40.000000000","message":"Right, we need to agree what we are looking for, and I don\u0027t see a reference to that here.","commit_id":"1ef0a598c62b9f6bb3c57f35f4ca63eff1ae9041"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Nova should check and confirm whether Neutron supports a new \u0027extended"},{"line_number":43,"context_line":"port binding\u0027 extension.  If it does, then it should expect that"},{"line_number":44,"context_line":"additional read-only attributes shall be populated on a port by"},{"line_number":45,"context_line":"Neutron describing the network information that it gets today from"},{"line_number":46,"context_line":"subnets and other Neutron objects, and use these in preference to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_fb14dc4d","line":43,"range":{"start_line":42,"start_character":63,"end_line":43,"end_character":12},"updated":"2016-11-17 19:53:44.000000000","message":"let\u0027s not call it port binding please. This is way too overloaded as a term","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Nova should check and confirm whether Neutron supports a new \u0027extended"},{"line_number":43,"context_line":"port binding\u0027 extension.  If it does, then it should expect that"},{"line_number":44,"context_line":"additional read-only attributes shall be populated on a port by"},{"line_number":45,"context_line":"Neutron describing the network information that it gets today from"},{"line_number":46,"context_line":"subnets and other Neutron objects, and use these in preference to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_c75d7a16","line":43,"range":{"start_line":42,"start_character":63,"end_line":43,"end_character":12},"in_reply_to":"7a77a97e_fb14dc4d","updated":"2016-11-17 22:28:27.000000000","message":"ok","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The data format will be adapted during development."},{"line_number":54,"context_line":"However, our anticipated starting point is that there will be an"},{"line_number":55,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":56,"context_line":"data structure, to enable future enhancement.  That data structure"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_b6051912","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":50},"updated":"2016-11-17 19:53:44.000000000","message":"mind you: you\u0027re asking for a signed blank cheque here (and I am using british spelling to please you).","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"nothing else from Neutron, multi-value attributes (e.g. addresses,"},{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The data format will be adapted during development."},{"line_number":54,"context_line":"However, our anticipated starting point is that there will be an"},{"line_number":55,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":56,"context_line":"data structure, to enable future enhancement.  That data structure"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_47a88adb","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":50},"in_reply_to":"7a77a97e_b6051912","updated":"2016-11-17 22:28:27.000000000","message":"That\u0027s true, and I agreed with John that it would be documented here today so look for the next revision.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The data format will be adapted during development."},{"line_number":54,"context_line":"However, our anticipated starting point is that there will be an"},{"line_number":55,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":56,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":57,"context_line":"will contain the following key/value pairs:"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_566045cf","line":55,"range":{"start_line":55,"start_character":48,"end_line":55,"end_character":58},"updated":"2016-11-17 19:53:44.000000000","message":"please let\u0027s stop passing unintelligible blobs back and forth.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The data format will be adapted during development."},{"line_number":54,"context_line":"However, our anticipated starting point is that there will be an"},{"line_number":55,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":56,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":57,"context_line":"will contain the following key/value pairs:"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_e7835654","line":55,"range":{"start_line":55,"start_character":48,"end_line":55,"end_character":58},"in_reply_to":"7a77a97e_566045cf","updated":"2016-11-17 22:28:27.000000000","message":"I should be clear: JSON dictionary - no unintelligible blobs intended.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ips: ["},{"line_number":60,"context_line":"       {"},{"line_number":61,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"},{"line_number":62,"context_line":"         address: [ # mandatory: must contain at least one element"},{"line_number":63,"context_line":"           ip-address # (a string)"},{"line_number":64,"context_line":"       ..."},{"line_number":65,"context_line":"         ]"},{"line_number":66,"context_line":"         routes: [ # optional: with no routes, may not be present"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_16b16d47","line":63,"range":{"start_line":61,"start_character":8,"end_line":63,"end_character":34},"updated":"2016-11-17 19:53:44.000000000","message":"this seems like it\u0027s gonna be redundant from \u0027fixed_ips\u0027","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    ips: ["},{"line_number":60,"context_line":"       {"},{"line_number":61,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"},{"line_number":62,"context_line":"         address: [ # mandatory: must contain at least one element"},{"line_number":63,"context_line":"           ip-address # (a string)"},{"line_number":64,"context_line":"       ..."},{"line_number":65,"context_line":"         ]"},{"line_number":66,"context_line":"         routes: [ # optional: with no routes, may not be present"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_a76a3e7f","line":63,"range":{"start_line":61,"start_character":8,"end_line":63,"end_character":34},"in_reply_to":"7a77a97e_16b16d47","updated":"2016-11-17 22:28:27.000000000","message":"That\u0027s probably true, but I think we should be tying routes to IPs if possible and I was going for the more general case of \u0027this has addressing\u0027 giving us opportunity to add further addresses to a single port in the future.  Happy enough either way.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":63,"context_line":"           ip-address # (a string)"},{"line_number":64,"context_line":"       ..."},{"line_number":65,"context_line":"         ]"},{"line_number":66,"context_line":"         routes: [ # optional: with no routes, may not be present"},{"line_number":67,"context_line":"           # array is 0+ elements"},{"line_number":68,"context_line":"           { destination: dest-cidr, nexthop: ip-address },"},{"line_number":69,"context_line":"           ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_f67eb168","line":66,"range":{"start_line":66,"start_character":9,"end_line":66,"end_character":15},"updated":"2016-11-17 19:53:44.000000000","message":"are these the host_routes available on the subnet object?","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"           ip-address # (a string)"},{"line_number":64,"context_line":"       ..."},{"line_number":65,"context_line":"         ]"},{"line_number":66,"context_line":"         routes: [ # optional: with no routes, may not be present"},{"line_number":67,"context_line":"           # array is 0+ elements"},{"line_number":68,"context_line":"           { destination: dest-cidr, nexthop: ip-address },"},{"line_number":69,"context_line":"           ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_477faa65","line":66,"range":{"start_line":66,"start_character":9,"end_line":66,"end_character":15},"in_reply_to":"7a77a97e_f67eb168","updated":"2016-11-17 22:28:27.000000000","message":"Yes.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e24170ddfac5a5653f8a3dd46ddcdb475b421aef","unresolved":false,"context_lines":[{"line_number":69,"context_line":"           ..."},{"line_number":70,"context_line":"       }"},{"line_number":71,"context_line":"       # ... continues, per address-type on the interface"},{"line_number":72,"context_line":"    ]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the extension,"},{"line_number":75,"context_line":"and the extension version must be confirmed when Nova chooses to use"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_e5419964","line":72,"updated":"2016-11-17 18:52:25.000000000","message":"I think we need to have the list of details we need here, to make sure we don\u0027t miss any.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":69,"context_line":"           ..."},{"line_number":70,"context_line":"       }"},{"line_number":71,"context_line":"       # ... continues, per address-type on the interface"},{"line_number":72,"context_line":"    ]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the extension,"},{"line_number":75,"context_line":"and the extension version must be confirmed when Nova chooses to use"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_679826c1","line":72,"in_reply_to":"7a77a97e_e5419964","updated":"2016-11-17 22:28:27.000000000","message":"Yep.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":71,"context_line":"       # ... continues, per address-type on the interface"},{"line_number":72,"context_line":"    ]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the extension,"},{"line_number":75,"context_line":"and the extension version must be confirmed when Nova chooses to use"},{"line_number":76,"context_line":"this datastructure."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"We have discussed that this could be in the binding information, but"},{"line_number":79,"context_line":"the addressing information is used independently of whether the port"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_d6f0d5ff","line":76,"range":{"start_line":74,"start_character":0,"end_line":76,"end_character":18},"updated":"2016-11-17 19:53:44.000000000","message":"without some agreement on how the versioning works I see this a mess.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"81edfc30df61b50ca4e40b6dbe2fb57d784a7f41","unresolved":false,"context_lines":[{"line_number":71,"context_line":"       # ... continues, per address-type on the interface"},{"line_number":72,"context_line":"    ]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the extension,"},{"line_number":75,"context_line":"and the extension version must be confirmed when Nova chooses to use"},{"line_number":76,"context_line":"this datastructure."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"We have discussed that this could be in the binding information, but"},{"line_number":79,"context_line":"the addressing information is used independently of whether the port"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_1fc3248a","line":76,"range":{"start_line":74,"start_character":0,"end_line":76,"end_character":18},"in_reply_to":"7a77a97e_c7157ae5","updated":"2016-11-18 11:59:32.000000000","message":"I think it has to follow the standard API versioning scheme, whatever that is.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":71,"context_line":"       # ... continues, per address-type on the interface"},{"line_number":72,"context_line":"    ]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the extension,"},{"line_number":75,"context_line":"and the extension version must be confirmed when Nova chooses to use"},{"line_number":76,"context_line":"this datastructure."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"We have discussed that this could be in the binding information, but"},{"line_number":79,"context_line":"the addressing information is used independently of whether the port"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_c7157ae5","line":76,"range":{"start_line":74,"start_character":0,"end_line":76,"end_character":18},"in_reply_to":"7a77a97e_d6f0d5ff","updated":"2016-11-17 22:28:27.000000000","message":"This doesn\u0027t change much from version to version in Neutron today and the current model of Neutron API versioning works well enough (in that that\u0027s what Nova relies on as it wanders the network and subnet).  So I can add an explicit statement that this is actually a method that\u0027s worked in practice and the method we should continue with.  If you have other ideas, put them down here.\n\nIn general it\u0027s more likely to be expanded than its format changed.  Per comments elsewhere, this could be a versioned object if we so pleased, but inasmuch as it\u0027s not something like os-vif talking to itself but more two unrelated components talking to each other a versioned object didn\u0027t seem appropriate.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"712af6343edb549df37a75ccb18af3f4bbf4bf55","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Alternatives"},{"line_number":85,"context_line":"------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"This is a means to improve communication between Nova and Neutron, and"},{"line_number":88,"context_line":"as such is not essential.  A valid alternative is to do nothing."},{"line_number":89,"context_line":"Other options have not been considered."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Data model impact"},{"line_number":92,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_566a0582","line":89,"range":{"start_line":87,"start_character":0,"end_line":89,"end_character":38},"updated":"2016-11-17 19:53:44.000000000","message":"I think your proposal has its merits, but I suspect we\u0027d need a bit more than \u0027we need an extension where we can load anything we want in it\u0027. More thought process is what I am asking for.\n\nBear in mind that jamming info that does not pertain the port resource creates a situation where, should that information change (e.g. the subnet host routes are modified), there is no notification mechanism to alert nova of the change, and this proposal mention nothing about that.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"81edfc30df61b50ca4e40b6dbe2fb57d784a7f41","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Alternatives"},{"line_number":85,"context_line":"------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"This is a means to improve communication between Nova and Neutron, and"},{"line_number":88,"context_line":"as such is not essential.  A valid alternative is to do nothing."},{"line_number":89,"context_line":"Other options have not been considered."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Data model impact"},{"line_number":92,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_5ffe7cae","line":89,"range":{"start_line":87,"start_character":0,"end_line":89,"end_character":38},"in_reply_to":"7a77a97e_27b2ae06","updated":"2016-11-18 11:59:32.000000000","message":"There is a call back system for floating IP changes, etc. It could be re-used for everything in this payload, which is probably a simpler way of looking at this.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"3d91f5a4b97af33c59db01079cd1f9650ff533f7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Alternatives"},{"line_number":85,"context_line":"------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"This is a means to improve communication between Nova and Neutron, and"},{"line_number":88,"context_line":"as such is not essential.  A valid alternative is to do nothing."},{"line_number":89,"context_line":"Other options have not been considered."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Data model impact"},{"line_number":92,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_27b2ae06","line":89,"range":{"start_line":87,"start_character":0,"end_line":89,"end_character":38},"in_reply_to":"7a77a97e_566a0582","updated":"2016-11-17 22:28:27.000000000","message":"But there is no notification mechanism today, is there?  I\u0027m happy to concede that it would be an appropriate thing to add but it\u0027s not the immediate focus of this change - it\u0027s certainly something worth considering for addition in the future.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"81edfc30df61b50ca4e40b6dbe2fb57d784a7f41","unresolved":false,"context_lines":[{"line_number":87,"context_line":"This is a means to improve communication between Nova and Neutron, and"},{"line_number":88,"context_line":"as such is not essential.  A valid alternative is to do nothing."},{"line_number":89,"context_line":"Other options have not been considered."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Data model impact"},{"line_number":92,"context_line":"-----------------"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_3ff1c0cd","line":90,"updated":"2016-11-18 11:59:32.000000000","message":"Might be worth adding the idea of creating an API that matches the network_info.json that cloud-init is expecting.\n\nIts worth noting that info about network bonds, etc, will be needed for ironic. I think there is a spec on that somewhere in ironic.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"81edfc30df61b50ca4e40b6dbe2fb57d784a7f41","unresolved":false,"context_lines":[{"line_number":116,"context_line":"Performance Impact"},{"line_number":117,"context_line":"------------------"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Improved startup speed when creating new VMs."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Other deployer impact"},{"line_number":122,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_9fc01452","line":119,"updated":"2016-11-18 11:59:32.000000000","message":"I would actually mention, reduced load on Neutron APIs. Well at least a reduce number of round trips to the neutron API","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e24170ddfac5a5653f8a3dd46ddcdb475b421aef","unresolved":false,"context_lines":[{"line_number":162,"context_line":"functioning correctly as the current behaviour is a fallback when"},{"line_number":163,"context_line":"Neutron doesn\u0027t support the extension."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"There is now a RFE on Neutron for the extension: https://bugs.launchpad.net/neutron/+bug/1640956"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Testing"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_c0056b11","line":165,"updated":"2016-11-17 18:52:25.000000000","message":"Our general policy is to get the dependency approved.\n\nI know its not a hard dependency due to the fallback, but we have to priorities some things.","commit_id":"99dcea478c7a3f95bfc8e382cae2af4206340e6b"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"20ba6dac8aafe7f0ece87db0d8acf4643e00a785","unresolved":false,"context_lines":[{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    ips: ["},{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a74a57a_02c3d089","line":57,"updated":"2016-11-28 16:11:23.000000000","message":"This looks good to me, provided that the data structure below is a complete specification. In reference to Armando\u0027s comment on PS2 about unintelligible blobs, I would still consider JSON an unintelligible blob if there\u0027s no specification we can reference that completely defines what it can contain.\n\nAs long as the \"...\" below indicate only the repetition of the listed elements this is fine. It shouldn\u0027t indicate the possible addition of arbitrary other elements without a spec to define the full syntax.","commit_id":"c8d7ea1d8ed1c106a66c292145fbdaf091c2cfef"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"4c1635acab5568069183d16abbb9d6e5e0a41bb1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    ips: ["},{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a74a57a_7a617104","line":57,"in_reply_to":"5a74a57a_02c3d089","updated":"2016-11-29 07:03:55.000000000","message":"I believe the below is complete, yes.  And the ... is indeed intended to mark repetition.\n\nI\u0027ll make sure to add documentation of the format in the dev docs in Neutron (which seems the most appropriate place for it since this will be a Neutron extension).  The biggest annoyance with binding is that it\u0027s hard to pin down the required fields and behaviour, I don\u0027t want to perpetuate that.","commit_id":"c8d7ea1d8ed1c106a66c292145fbdaf091c2cfef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58b5af220774d48438944dbbe04490bd10c0cbdc","unresolved":false,"context_lines":[{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    ips: ["},{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a71b18c_d5490190","line":57,"in_reply_to":"5a74a57a_7a617104","updated":"2016-12-09 01:44:43.000000000","message":"this may have been discussed some where else but why not use oslo versioned objects?\nisnt that what they were created for to define datastructures like this so we dont have to keep inventing json schema for things. if the information that was needed was ever to change they also have a mechanium to support that.","commit_id":"c8d7ea1d8ed1c106a66c292145fbdaf091c2cfef"}],"specs/pike/approved/vif-network-information.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"710015b8f55faa50273c206beb845caae2177be7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"When starting a VM, if the information was all available on the port,"},{"line_number":34,"context_line":"Nova would only have to fetch the port to get all of the information"},{"line_number":35,"context_line":"it required to start a VM.  This reduces the number of calls and also"},{"line_number":36,"context_line":"simplifies the use of Neutron, allowing Neutron constructs to change"},{"line_number":37,"context_line":"without regard to Nova\u0027s use of it."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_b880dc47","line":36,"range":{"start_line":36,"start_character":31,"end_line":36,"end_character":68},"updated":"2017-03-20 17:30:24.000000000","message":"Not sure this is really a use case per-se...","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"e1a2cbdd07135f3b5b15d5a909616c00030d213d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Nova should check and confirm whether Neutron supports a new \u0027address"},{"line_number":43,"context_line":"details\u0027 extension.  If it does, then it should expect that"},{"line_number":44,"context_line":"additional read-only attributes shall be populated on a port by"},{"line_number":45,"context_line":"Neutron describing the network information that it gets today from"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_121fbf6c","line":42,"range":{"start_line":42,"start_character":62,"end_line":42,"end_character":69},"updated":"2017-03-22 08:46:40.000000000","message":"\u0027network details\u0027 seems a bit more explanatory","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"710015b8f55faa50273c206beb845caae2177be7","unresolved":false,"context_lines":[{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"That there will be an"},{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_787d84e6","line":54,"range":{"start_line":54,"start_character":10,"end_line":54,"end_character":32},"updated":"2017-03-20 17:30:24.000000000","message":"Did you mean \u0027binding:properties\u0027? I see no \u0027binding-ip\u0027 key in the GET /ports/{id} HTTP response.","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"906dda403d69655f6b031e02d404b979217328f1","unresolved":false,"context_lines":[{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"That there will be an"},{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a3905b3_42630d42","line":54,"updated":"2017-02-06 23:11:39.000000000","message":"address-details:properties would be more consistent, or just address-details","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"711335a2599605da51477926743fd8092c91efa8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"That there will be an"},{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_d9c71a96","line":54,"range":{"start_line":54,"start_character":48,"end_line":54,"end_character":64},"updated":"2017-03-21 23:36:06.000000000","message":"i think this is fine initially but in queens or late pike it would be nice to have os-vif objects for this instead but i would not like to gate on that.\n\nwe can have a v2 extention that retrun the os-vif/ data structure but otherwise is the same and deprecate v1 in queens and remove in R as normal.","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"e1a2cbdd07135f3b5b15d5a909616c00030d213d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"routes) shall be passed as lists and nested datastructures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"That there will be an"},{"line_number":54,"context_line":"attribute \u0027binding-ip:properties\u0027, containing a dictionary based"},{"line_number":55,"context_line":"data structure, to enable future enhancement.  That data structure"},{"line_number":56,"context_line":"will contain the following key/value pairs:"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_9540f935","line":54,"range":{"start_line":54,"start_character":48,"end_line":54,"end_character":64},"in_reply_to":"1a1ced50_d9c71a96","updated":"2017-03-22 08:46:40.000000000","message":"I agree with Ian. the attribute name should be related to the extension","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"fa55894ed43f6489f91f5b3e5c9dacb97986e6b5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"},{"line_number":61,"context_line":"         address: [ # mandatory: must contain at least one element"},{"line_number":62,"context_line":"           ip-address # (a string)"},{"line_number":63,"context_line":"           ..."},{"line_number":64,"context_line":"         ]"},{"line_number":65,"context_line":"         routes: [ # optional: with no routes, may not be present"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a430d35_7f561b2b","line":62,"updated":"2017-02-07 17:47:48.000000000","message":"If we support specifying more than one address, I think it should be called \"addresses\".\n\nIf we only support one address, then maybe make it not a list.","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"18b65ed9bedccfc596845508e115f36b56c80606","unresolved":false,"context_lines":[{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"},{"line_number":61,"context_line":"         address: [ # mandatory: must contain at least one element"},{"line_number":62,"context_line":"           ip-address # (a string)"},{"line_number":63,"context_line":"           ..."},{"line_number":64,"context_line":"         ]"},{"line_number":65,"context_line":"         routes: [ # optional: with no routes, may not be present"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_4f7db9e5","line":62,"in_reply_to":"1a1ced50_dbb03246","updated":"2017-04-18 21:27:29.000000000","message":"I agree with a list of dictionaries for \u0027addresses\u0027, but for routes the keys \u0027destination\u0027 and \u0027nexthop\u0027 as shown on line 67 are more accurate than \u0027cidr\u0027 and \u0027default_gateway\u0027. A server may have many gateways, but only one of them can be the default gateway and nexthop is the more networking-ish term for a gateway.","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d783d1b0ab1ca331eafa62ca2f027cfc560b6450","unresolved":false,"context_lines":[{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"},{"line_number":61,"context_line":"         address: [ # mandatory: must contain at least one element"},{"line_number":62,"context_line":"           ip-address # (a string)"},{"line_number":63,"context_line":"           ..."},{"line_number":64,"context_line":"         ]"},{"line_number":65,"context_line":"         routes: [ # optional: with no routes, may not be present"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_38fbd648","line":62,"in_reply_to":"1a1ced50_dbb03246","updated":"2017-03-21 17:26:43.000000000","message":"Yep, I\u0027d go for that.","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"710015b8f55faa50273c206beb845caae2177be7","unresolved":false,"context_lines":[{"line_number":59,"context_line":"       {"},{"line_number":60,"context_line":"         address_type: \u0027ipv4\u0027 or \u0027ipv6\u0027,"},{"line_number":61,"context_line":"         address: [ # mandatory: must contain at least one element"},{"line_number":62,"context_line":"           ip-address # (a string)"},{"line_number":63,"context_line":"           ..."},{"line_number":64,"context_line":"         ]"},{"line_number":65,"context_line":"         routes: [ # optional: with no routes, may not be present"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_dbb03246","line":62,"in_reply_to":"1a430d35_7f561b2b","updated":"2017-03-20 17:30:24.000000000","message":"Why not have \u0027addresses\u0027 and \u0027routes\u0027 as top-level keys in the binding key?\n\nFor example, do this:\n\n \u0027binding\u0027: {\n   \u0027host_id\u0027: ...,\n   \u0027vif_type\u0027: ...,\n   \u0027vif_details\u0027: ...,\n   \u0027vnic_type\u0027: ...,\n   \u0027profile\u0027: ...,\n   \u0027addresses\u0027: [\n     {\n       \u0027type\u0027: \u0027ipv4\u0027 or \u0027ipv6\u0027,\n       \u0027address\u0027: \u003caddress\u003e\n     }, ...\n   ],\n   \u0027routes\u0027: [\n     {\n        \u0027cidr\u0027: \u003ccidr\u003e,\n        \u0027default_gateway\u0027: \u003caddress\u003e,\n     }, ...\n   ],\n   \u0027port_security_enabled\u0027: true|false\n }","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fdcab72977957c5c4dbb56178909c453c468f302","unresolved":false,"context_lines":[{"line_number":68,"context_line":"           ..."},{"line_number":69,"context_line":"       }"},{"line_number":70,"context_line":"       # ... continues, per address-type on the interface"},{"line_number":71,"context_line":"    ]"},{"line_number":72,"context_line":"    port_security_enabled: (true or false; from the network)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_44af0881","line":71,"updated":"2017-03-20 16:58:22.000000000","message":"But this doesn\u0027t seem to talk about the gateway address, or the DNS server address, and other things Nova has to extract from neutron. I think we need to complete this list from the work done here:\nhttps://github.com/openstack/nova/blob/master/nova/network/neutronv2/api.py#L2263","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"16b2f3a1135bb1690017d7c9c5a799909b9ae36e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    ]"},{"line_number":72,"context_line":"    port_security_enabled: (true or false; from the network)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This format may may be changed or extended with a new version of the"},{"line_number":75,"context_line":"extension, and the extension version must be confirmed when Nova chooses"},{"line_number":76,"context_line":"to use this datastructure.  The code within nova\u0027s networking plugin"},{"line_number":77,"context_line":"(as it is now), nova.network.neutronv2, will be the only place that"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_3cfa32be","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":19},"updated":"2017-02-21 20:53:48.000000000","message":"superfluous `may`","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"710015b8f55faa50273c206beb845caae2177be7","unresolved":false,"context_lines":[{"line_number":93,"context_line":"the addressing information is used independently of whether the port"},{"line_number":94,"context_line":"is bound or unbound, and has a different purpose (binding is low level"},{"line_number":95,"context_line":"connectivity and this is high level addressing).  As such we plan"},{"line_number":96,"context_line":"to keep the two independent."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Alternatives"},{"line_number":99,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_fb6ece94","line":96,"updated":"2017-03-20 17:30:24.000000000","message":"meh, I\u0027d just as soon keep everything in the \u0027binding\u0027 structure. This is information the host needs. \u0027binding\u0027 is stuff the host needs to know to set up the guest.","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fdcab72977957c5c4dbb56178909c453c468f302","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"This is a means to improve communication between Nova and Neutron, and"},{"line_number":102,"context_line":"as such is not essential.  A valid alternative is to do nothing."},{"line_number":103,"context_line":"Other options have not been considered."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Data model impact"},{"line_number":106,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_64efa4b0","line":103,"updated":"2017-03-20 16:58:22.000000000","message":"We spoke about a direct pass through of this information to configdrive and metadata service for cloud-init.\n\nThat would stop lots of patches ironic is having to make to return new formats of the information.\n\nI thought we were going to go down that route? Why are we not going that way here?","commit_id":"959c2f59c1ad4d014c15aefb8572c7ca64e6e8e0"}]}
