)]}'
{"specs/juno/device-manager-service-plugin.rst":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"service plugins largely *operate independently* of each other. But they still"},{"line_number":36,"context_line":"may want to place their logical resources in the *same* devices. These devices,"},{"line_number":37,"context_line":"especially virtual machine devices, have limited processing capacity. The"},{"line_number":38,"context_line":"currently uncoordinated logical resource placement can result in that a device"},{"line_number":39,"context_line":"is requested to handle more than it is capable of."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"With the above in mind this blueprint introduces a new device manager service"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_54e665b5","line":38,"updated":"2014-05-02 22:30:47.000000000","message":"can result in requests for resources that exceed the device capabilities.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":35,"context_line":"service plugins largely *operate independently* of each other. But they still"},{"line_number":36,"context_line":"may want to place their logical resources in the *same* devices. These devices,"},{"line_number":37,"context_line":"especially virtual machine devices, have limited processing capacity. The"},{"line_number":38,"context_line":"currently uncoordinated logical resource placement can result in that a device"},{"line_number":39,"context_line":"is requested to handle more than it is capable of."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"With the above in mind this blueprint introduces a new device manager service"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_2bbb1773","line":38,"in_reply_to":"9ad9bd40_54e665b5","updated":"2014-05-14 02:34:40.000000000","message":"Will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"currently uncoordinated logical resource placement can result in that a device"},{"line_number":39,"context_line":"is requested to handle more than it is capable of."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"With the above in mind this blueprint introduces a new device manager service"},{"line_number":42,"context_line":"plugin. Its responsibility is to:"},{"line_number":43,"context_line":"1. manage devices that are capable of hosting Neutron services [*]_"},{"line_number":44,"context_line":"2. control the allocation of processing capacity in such devices"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_34ac8135","line":41,"updated":"2014-05-02 22:30:47.000000000","message":"The following is not part of the problem definition, but rather the proposed solution. Consider integrating into the Proposed change section.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":38,"context_line":"currently uncoordinated logical resource placement can result in that a device"},{"line_number":39,"context_line":"is requested to handle more than it is capable of."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"With the above in mind this blueprint introduces a new device manager service"},{"line_number":42,"context_line":"plugin. Its responsibility is to:"},{"line_number":43,"context_line":"1. manage devices that are capable of hosting Neutron services [*]_"},{"line_number":44,"context_line":"2. control the allocation of processing capacity in such devices"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_0bb81b75","line":41,"in_reply_to":"9ad9bd40_34ac8135","updated":"2014-05-14 02:34:40.000000000","message":"Ok will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":54,"context_line":"   plugin. The Nova VMs (a.k.a. service VMs) used to host logical resources of"},{"line_number":55,"context_line":"   Neutron services ARE subject to lifecycle management by the Neutron device"},{"line_number":56,"context_line":"   manager service. However, that lifecycle management uses Nova\u0027s regular REST"},{"line_number":57,"context_line":"   API to perform its tasks."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Proposed change"},{"line_number":60,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_b787c0d6","line":57,"updated":"2014-05-02 06:01:39.000000000","message":"The above is very well written. When the independent project is created, I\u0027d like to steal this.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"   plugin. The Nova VMs (a.k.a. service VMs) used to host logical resources of"},{"line_number":55,"context_line":"   Neutron services ARE subject to lifecycle management by the Neutron device"},{"line_number":56,"context_line":"   manager service. However, that lifecycle management uses Nova\u0027s regular REST"},{"line_number":57,"context_line":"   API to perform its tasks."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Proposed change"},{"line_number":60,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_ebc04fe2","line":57,"in_reply_to":"9ad9bd40_b787c0d6","updated":"2014-05-14 02:34:40.000000000","message":"Sure.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"**Service plugins:** Manage the lifecycle of their respective service\u0027s logical"},{"line_number":66,"context_line":"resources and scheduling of those logical resources to hosting devices including"},{"line_number":67,"context_line":"maintaining that logical resource to (hosting) device binding."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Device manager service plugin:** Manage the lifecycle of (hosting) devices and"},{"line_number":70,"context_line":"scheduling of those hosting devices to a configuration agent including"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_f7686823","line":67,"updated":"2014-05-02 06:01:39.000000000","message":"Does this mean a driver for each service?\ne.g. a new driver for lbaas, router...\n\nWho tracks which service instances are in which device?\nIt seems that device manager service plugin doesn\u0027t. Correct?\nSlotAllocation?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"**Service plugins:** Manage the lifecycle of their respective service\u0027s logical"},{"line_number":66,"context_line":"resources and scheduling of those logical resources to hosting devices including"},{"line_number":67,"context_line":"maintaining that logical resource to (hosting) device binding."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Device manager service plugin:** Manage the lifecycle of (hosting) devices and"},{"line_number":70,"context_line":"scheduling of those hosting devices to a configuration agent including"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_6b78bf2b","line":67,"in_reply_to":"9ad9bd40_f7686823","updated":"2014-05-14 02:34:40.000000000","message":"Right, each service is responsible for tracking which device its resources resides in.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"resources and scheduling of those logical resources to hosting devices including"},{"line_number":67,"context_line":"maintaining that logical resource to (hosting) device binding."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Device manager service plugin:** Manage the lifecycle of (hosting) devices and"},{"line_number":70,"context_line":"scheduling of those hosting devices to a configuration agent including"},{"line_number":71,"context_line":"maintaining that hosting device to configuration agent binding."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_28197879","line":69,"updated":"2014-05-02 22:30:47.000000000","message":"May want to just summarize about the major features, like lifecyle management and slot concept.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"resources and scheduling of those logical resources to hosting devices including"},{"line_number":67,"context_line":"maintaining that logical resource to (hosting) device binding."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"**Device manager service plugin:** Manage the lifecycle of (hosting) devices and"},{"line_number":70,"context_line":"scheduling of those hosting devices to a configuration agent including"},{"line_number":71,"context_line":"maintaining that hosting device to configuration agent binding."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_4bb1438e","line":69,"in_reply_to":"9ad9bd40_28197879","updated":"2014-05-14 02:34:40.000000000","message":"Ok, will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":73,"context_line":"**Configuration agent(s):** Interacting with hosting devices on behalf of and by"},{"line_number":74,"context_line":"instruction from device manager service plugin and the other service plugins."},{"line_number":75,"context_line":"This includes applying configurations inside the devices, and monitoring the"},{"line_number":76,"context_line":"health of the devices."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"- Introduction of new type of service pluging: *device manager* service plugin."},{"line_number":79,"context_line":"- Introduction of ``hosting_device_template`` resource that can be CRUD."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_975b9c86","line":76,"updated":"2014-05-02 06:01:39.000000000","message":"Is the use of configuration agent mandatory?\nI think, it should be up to service provider.\nMost service provider would choose to use the agent, though.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":73,"context_line":"**Configuration agent(s):** Interacting with hosting devices on behalf of and by"},{"line_number":74,"context_line":"instruction from device manager service plugin and the other service plugins."},{"line_number":75,"context_line":"This includes applying configurations inside the devices, and monitoring the"},{"line_number":76,"context_line":"health of the devices."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"- Introduction of new type of service pluging: *device manager* service plugin."},{"line_number":79,"context_line":"- Introduction of ``hosting_device_template`` resource that can be CRUD."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_ab72c746","line":76,"in_reply_to":"9ad9bd40_975b9c86","updated":"2014-05-14 02:34:40.000000000","message":"No, it is not mandatory. Our router service plugin makes use of it though.\nAnd Cisco drivers for VPN and FW are planned to use it.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    # template enabled if True"},{"line_number":113,"context_line":"    enabled \u003d sa.Column(sa.Boolean, nullable\u003dFalse, default\u003dTrue)"},{"line_number":114,"context_line":"    # \u0027host_category\u0027 can be \u0027VM\u0027, \u0027Hardware\u0027, \u0027NetworkNode\u0027"},{"line_number":115,"context_line":"    host_category \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":116,"context_line":"    # list of service types hosting devices based on this template support"},{"line_number":117,"context_line":"    service_types \u003d sa.Column(sa.String(255))"},{"line_number":118,"context_line":"    # the image name or uuid in Glance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_174f8cbe","line":115,"updated":"2014-05-02 06:01:39.000000000","message":"Is this conceptually same to device_driver column?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    # template enabled if True"},{"line_number":113,"context_line":"    enabled \u003d sa.Column(sa.Boolean, nullable\u003dFalse, default\u003dTrue)"},{"line_number":114,"context_line":"    # \u0027host_category\u0027 can be \u0027VM\u0027, \u0027Hardware\u0027, \u0027NetworkNode\u0027"},{"line_number":115,"context_line":"    host_category \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":116,"context_line":"    # list of service types hosting devices based on this template support"},{"line_number":117,"context_line":"    service_types \u003d sa.Column(sa.String(255))"},{"line_number":118,"context_line":"    # the image name or uuid in Glance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_eb93ef4c","line":115,"in_reply_to":"9ad9bd40_174f8cbe","updated":"2014-05-14 02:34:40.000000000","message":"No, we basically use this attribute to differentiate between device types that can be created on demand (VM) and those that cannot (Hardware and NetworkNode).","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    # template enabled if True"},{"line_number":113,"context_line":"    enabled \u003d sa.Column(sa.Boolean, nullable\u003dFalse, default\u003dTrue)"},{"line_number":114,"context_line":"    # \u0027host_category\u0027 can be \u0027VM\u0027, \u0027Hardware\u0027, \u0027NetworkNode\u0027"},{"line_number":115,"context_line":"    host_category \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":116,"context_line":"    # list of service types hosting devices based on this template support"},{"line_number":117,"context_line":"    service_types \u003d sa.Column(sa.String(255))"},{"line_number":118,"context_line":"    # the image name or uuid in Glance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_6fa63455","line":115,"in_reply_to":"9ad9bd40_174f8cbe","updated":"2014-05-02 22:30:47.000000000","message":"Should this be an enum, or do you perceive it as having many more  types? Size large?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    # template enabled if True"},{"line_number":113,"context_line":"    enabled \u003d sa.Column(sa.Boolean, nullable\u003dFalse, default\u003dTrue)"},{"line_number":114,"context_line":"    # \u0027host_category\u0027 can be \u0027VM\u0027, \u0027Hardware\u0027, \u0027NetworkNode\u0027"},{"line_number":115,"context_line":"    host_category \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":116,"context_line":"    # list of service types hosting devices based on this template support"},{"line_number":117,"context_line":"    service_types \u003d sa.Column(sa.String(255))"},{"line_number":118,"context_line":"    # the image name or uuid in Glance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_cbbd536a","line":115,"in_reply_to":"9ad9bd40_6fa63455","updated":"2014-05-14 02:34:40.000000000","message":"Currently we don\u0027t foresee a large number of categories.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    # the image name or uuid in Glance"},{"line_number":119,"context_line":"    image \u003d sa.Column(sa.String(255))"},{"line_number":120,"context_line":"    # the VM flavor or uuid in Nova"},{"line_number":121,"context_line":"    flavor \u003d sa.Column(sa.String(255))"},{"line_number":122,"context_line":"    # id of default credentials (if any) for devices created from this template"},{"line_number":123,"context_line":"    default_credentials_id \u003d sa.Column(sa.String(36),"},{"line_number":124,"context_line":"                                       sa.ForeignKey(\u0027devicecredentials.id\u0027))"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_e97350af","line":121,"updated":"2014-05-08 07:43:07.000000000","message":"those parameter for nova client should be more generic because not only virtual device(VM), but also physical device would be managed","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    # the image name or uuid in Glance"},{"line_number":119,"context_line":"    image \u003d sa.Column(sa.String(255))"},{"line_number":120,"context_line":"    # the VM flavor or uuid in Nova"},{"line_number":121,"context_line":"    flavor \u003d sa.Column(sa.String(255))"},{"line_number":122,"context_line":"    # id of default credentials (if any) for devices created from this template"},{"line_number":123,"context_line":"    default_credentials_id \u003d sa.Column(sa.String(36),"},{"line_number":124,"context_line":"                                       sa.ForeignKey(\u0027devicecredentials.id\u0027))"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_4ba4e3a5","line":121,"in_reply_to":"7adec928_e97350af","updated":"2014-05-14 02:34:40.000000000","message":"Yes. For now, we just leave it empty when it does not apply.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                                       sa.ForeignKey(\u0027devicecredentials.id\u0027))"},{"line_number":125,"context_line":"    #TODO(bobmel): Evolve to support multiple mechanisms and protocol ports"},{"line_number":126,"context_line":"    # \u0027configuration_mechanism\u0027 indicates how configurations are made"},{"line_number":127,"context_line":"    configuration_mechanism \u003d sa.Column(sa.String(255))"},{"line_number":128,"context_line":"    # \u0027protocol_port\u0027 is udp/tcp port of hosting device. May be empty."},{"line_number":129,"context_line":"    protocol_port \u003d sa.Column(sa.Integer)"},{"line_number":130,"context_line":"    # Typical time (in seconds) needed for hosting device (created"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_374ad0ac","line":127,"updated":"2014-05-02 06:01:39.000000000","message":"Is this conceptually same to plugging_driver?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                                       sa.ForeignKey(\u0027devicecredentials.id\u0027))"},{"line_number":125,"context_line":"    #TODO(bobmel): Evolve to support multiple mechanisms and protocol ports"},{"line_number":126,"context_line":"    # \u0027configuration_mechanism\u0027 indicates how configurations are made"},{"line_number":127,"context_line":"    configuration_mechanism \u003d sa.Column(sa.String(255))"},{"line_number":128,"context_line":"    # \u0027protocol_port\u0027 is udp/tcp port of hosting device. May be empty."},{"line_number":129,"context_line":"    protocol_port \u003d sa.Column(sa.Integer)"},{"line_number":130,"context_line":"    # Typical time (in seconds) needed for hosting device (created"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_cbb713d7","line":127,"in_reply_to":"9ad9bd40_374ad0ac","updated":"2014-05-14 02:34:40.000000000","message":"No, we use it to indicate what mechanism (~protocol) is used to apply configurations inside the VM (e.g., Netconf)","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    # \u0027configuration_mechanism\u0027 indicates how configurations are made"},{"line_number":127,"context_line":"    configuration_mechanism \u003d sa.Column(sa.String(255))"},{"line_number":128,"context_line":"    # \u0027protocol_port\u0027 is udp/tcp port of hosting device. May be empty."},{"line_number":129,"context_line":"    protocol_port \u003d sa.Column(sa.Integer)"},{"line_number":130,"context_line":"    # Typical time (in seconds) needed for hosting device (created"},{"line_number":131,"context_line":"    # from this template) to boot into operational state."},{"line_number":132,"context_line":"    booting_time \u003d sa.Column(sa.Integer, default\u003d0)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_899bacc8","line":129,"updated":"2014-05-08 07:43:07.000000000","message":"those address should be more generic because other transport could be used","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    # \u0027configuration_mechanism\u0027 indicates how configurations are made"},{"line_number":127,"context_line":"    configuration_mechanism \u003d sa.Column(sa.String(255))"},{"line_number":128,"context_line":"    # \u0027protocol_port\u0027 is udp/tcp port of hosting device. May be empty."},{"line_number":129,"context_line":"    protocol_port \u003d sa.Column(sa.Integer)"},{"line_number":130,"context_line":"    # Typical time (in seconds) needed for hosting device (created"},{"line_number":131,"context_line":"    # from this template) to boot into operational state."},{"line_number":132,"context_line":"    booting_time \u003d sa.Column(sa.Integer, default\u003d0)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_aba64751","line":129,"in_reply_to":"7adec928_899bacc8","updated":"2014-05-14 02:34:40.000000000","message":"This is primarily geared towards the use cases where configurations are made remotely via management networking interface.\n\nYou\u0027re right it won\u0027t support the RPC proxy approach you describe in your slides.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    # from this template) to boot into operational state."},{"line_number":132,"context_line":"    booting_time \u003d sa.Column(sa.Integer, default\u003d0)"},{"line_number":133,"context_line":"    # abstract metric specifying capacity to host logical resources"},{"line_number":134,"context_line":"    slot_capacity \u003d sa.Column(sa.Integer, nullable\u003dFalse, autoincrement\u003dFalse)"},{"line_number":135,"context_line":"    # desired number of slots to keep available at all times"},{"line_number":136,"context_line":"    desired_slots_free \u003d sa.Column(sa.Integer, nullable\u003dFalse, default\u003d0,"},{"line_number":137,"context_line":"                                   autoincrement\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_29ac58ed","line":134,"updated":"2014-05-08 07:43:07.000000000","message":"I guess the terminology \"slot\" comes from SR-IOV VF.\nBut is one dimensional scale enough for generic service case?\nMore generic way to scale would be needed","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    # from this template) to boot into operational state."},{"line_number":132,"context_line":"    booting_time \u003d sa.Column(sa.Integer, default\u003d0)"},{"line_number":133,"context_line":"    # abstract metric specifying capacity to host logical resources"},{"line_number":134,"context_line":"    slot_capacity \u003d sa.Column(sa.Integer, nullable\u003dFalse, autoincrement\u003dFalse)"},{"line_number":135,"context_line":"    # desired number of slots to keep available at all times"},{"line_number":136,"context_line":"    desired_slots_free \u003d sa.Column(sa.Integer, nullable\u003dFalse, default\u003d0,"},{"line_number":137,"context_line":"                                   autoincrement\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_8b942be3","line":134,"in_reply_to":"7adec928_29ac58ed","updated":"2014-05-14 02:34:40.000000000","message":"More elaborate schemes are definitely possible. We choose to use this as it is simple to implement, and enables a service independent way to express processing needs.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    slot_capacity \u003d sa.Column(sa.Integer, nullable\u003dFalse, autoincrement\u003dFalse)"},{"line_number":135,"context_line":"    # desired number of slots to keep available at all times"},{"line_number":136,"context_line":"    desired_slots_free \u003d sa.Column(sa.Integer, nullable\u003dFalse, default\u003d0,"},{"line_number":137,"context_line":"                                   autoincrement\u003dFalse)"},{"line_number":138,"context_line":"    # \u0027tenant_bound\u0027 is a (possibly empty) string of \u0027:\u0027-separated tenant ids"},{"line_number":139,"context_line":"    # representing the only tenants allowed to own/place resources on"},{"line_number":140,"context_line":"    # hosting devices created using this template. If string is empty all"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_77cb781e","line":137,"updated":"2014-05-02 06:01:39.000000000","message":"Is this sort of hard/soft limit?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    slot_capacity \u003d sa.Column(sa.Integer, nullable\u003dFalse, autoincrement\u003dFalse)"},{"line_number":135,"context_line":"    # desired number of slots to keep available at all times"},{"line_number":136,"context_line":"    desired_slots_free \u003d sa.Column(sa.Integer, nullable\u003dFalse, default\u003d0,"},{"line_number":137,"context_line":"                                   autoincrement\u003dFalse)"},{"line_number":138,"context_line":"    # \u0027tenant_bound\u0027 is a (possibly empty) string of \u0027:\u0027-separated tenant ids"},{"line_number":139,"context_line":"    # representing the only tenants allowed to own/place resources on"},{"line_number":140,"context_line":"    # hosting devices created using this template. If string is empty all"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_2ba4f755","line":137,"in_reply_to":"9ad9bd40_77cb781e","updated":"2014-05-14 02:34:40.000000000","message":"\"Softish\". Actual slots free are approximately this value.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    tenant_bound \u003d sa.Column(sa.String(512))"},{"line_number":143,"context_line":"    # module to be used as plugging driver for logical resources"},{"line_number":144,"context_line":"    # hosted inside hosting devices created using this template"},{"line_number":145,"context_line":"    device_driver \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":146,"context_line":"    # module to be used as hosting device driver when creating"},{"line_number":147,"context_line":"    # hosting devices using his template"},{"line_number":148,"context_line":"    plugging_driver \u003d sa.Column(sa.String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_c941340d","line":145,"updated":"2014-05-08 07:43:07.000000000","message":"So far I assume the following 4 type driver would be needed\n- driver to manage hosting device. i.e. bring up/down nova\n- driver to provide transport to hosting device\n- driver to config hosting device which use the above transport\n  and create/delete service in hosting device\n- driver to provide transport to service: default would be one that uses config agent\n- driver to config service: driver for each service i.e. LBaaS, FWaaS..","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    tenant_bound \u003d sa.Column(sa.String(512))"},{"line_number":143,"context_line":"    # module to be used as plugging driver for logical resources"},{"line_number":144,"context_line":"    # hosted inside hosting devices created using this template"},{"line_number":145,"context_line":"    device_driver \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":146,"context_line":"    # module to be used as hosting device driver when creating"},{"line_number":147,"context_line":"    # hosting devices using his template"},{"line_number":148,"context_line":"    plugging_driver \u003d sa.Column(sa.String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_0b6f3bfe","line":145,"in_reply_to":"7adec928_c941340d","updated":"2014-05-14 02:34:40.000000000","message":"Actually, the piece that that talks to Nova is not a loadable driver.\n\nI see now that the comments in the code snippets for the device_driver and the plugging_driver are mixed up. They should be change places with each other. I will fix.\n\nDriver to apply configurations for a service inside the device is not held in this table. The service has to handle that.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe75bc4d18348cdc223b941eac4f1a2297160f99","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    device_id \u003d sa.Column(sa.String(255))"},{"line_number":166,"context_line":"    admin_state_up \u003d sa.Column(sa.Boolean, nullable\u003dFalse, default\u003dTrue)"},{"line_number":167,"context_line":"    # \u0027management_port_id\u0027 is the Neutron Port used for management interface"},{"line_number":168,"context_line":"    management_port_id \u003d sa.Column(sa.String(36),"},{"line_number":169,"context_line":"                                   sa.ForeignKey(\u0027ports.id\u0027,"},{"line_number":170,"context_line":"                                                 ondelete\u003d\"SET NULL\"))"},{"line_number":171,"context_line":"    management_port \u003d orm.relationship(models_v2.Port)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_f7d6a8c2","line":168,"updated":"2014-05-02 06:01:39.000000000","message":"How is this port instantiated? vif driver?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    device_id \u003d sa.Column(sa.String(255))"},{"line_number":166,"context_line":"    admin_state_up \u003d sa.Column(sa.Boolean, nullable\u003dFalse, default\u003dTrue)"},{"line_number":167,"context_line":"    # \u0027management_port_id\u0027 is the Neutron Port used for management interface"},{"line_number":168,"context_line":"    management_port_id \u003d sa.Column(sa.String(36),"},{"line_number":169,"context_line":"                                   sa.ForeignKey(\u0027ports.id\u0027,"},{"line_number":170,"context_line":"                                                 ondelete\u003d\"SET NULL\"))"},{"line_number":171,"context_line":"    management_port \u003d orm.relationship(models_v2.Port)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_6b227f02","line":168,"in_reply_to":"9ad9bd40_f7d6a8c2","updated":"2014-05-14 02:34:40.000000000","message":"Neutron port is created and Nova is asked to plug VM vif to that vif using the novaclient.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    # manually unregistered in the device manager and deleted in Nova."},{"line_number":190,"context_line":"    auto_delete \u003d sa.Column(sa.Boolean, default\u003dFalse, nullable\u003dFalse)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":" class DeviceCredential(model_base.BASEV2, models_v2.HasId):"},{"line_number":193,"context_line":"    \"\"\"Represents credentials to control Cisco devices.\"\"\""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    name \u003d sa.Column(sa.String(255))"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_a96308b0","line":192,"updated":"2014-05-08 07:43:07.000000000","message":"Storing credential in DB?\nIs this security issue?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    description \u003d sa.Column(sa.String(255))"},{"line_number":197,"context_line":"    user_name \u003d sa.Column(sa.String(255))"},{"line_number":198,"context_line":"    password \u003d sa.Column(sa.String(255))"},{"line_number":199,"context_line":"    type \u003d sa.Column(sa.String(255))"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":" class SlotAllocation(model_base.BASEV2):"},{"line_number":202,"context_line":"    \"\"\"Tracks allocation of slots in hosting devices.\"\"\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_352b9195","line":199,"updated":"2014-05-02 22:30:47.000000000","message":"nit: maybe a more descriptive name?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    description \u003d sa.Column(sa.String(255))"},{"line_number":197,"context_line":"    user_name \u003d sa.Column(sa.String(255))"},{"line_number":198,"context_line":"    password \u003d sa.Column(sa.String(255))"},{"line_number":199,"context_line":"    type \u003d sa.Column(sa.String(255))"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":" class SlotAllocation(model_base.BASEV2):"},{"line_number":202,"context_line":"    \"\"\"Tracks allocation of slots in hosting devices.\"\"\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_8b218bfd","line":199,"in_reply_to":"9ad9bd40_352b9195","updated":"2014-05-14 02:34:40.000000000","message":"Will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"Security impact"},{"line_number":343,"context_line":"---------------"},{"line_number":344,"context_line":"None."},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"Notifications impact"},{"line_number":347,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_6969008b","line":344,"updated":"2014-05-08 07:43:07.000000000","message":"Storing credential in DB would be controvertial","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    def hosting_devices_assigned_to_cfg_agent(self, context, ids, host)"},{"line_number":357,"context_line":"    def hosting_devices_removed(self, context, hosting_data, deconfigure, host)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"The function names is indicative of their purpose."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"The config agent to resource manager service plugin RPC callbacks consists"},{"line_number":362,"context_line":"of the following functions::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_c9ddb444","line":359,"updated":"2014-05-08 07:43:07.000000000","message":"When configuration of service is changed, which is RPC notification used?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    def hosting_devices_assigned_to_cfg_agent(self, context, ids, host)"},{"line_number":357,"context_line":"    def hosting_devices_removed(self, context, hosting_data, deconfigure, host)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"The function names is indicative of their purpose."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"The config agent to resource manager service plugin RPC callbacks consists"},{"line_number":362,"context_line":"of the following functions::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_eb7dafe8","line":359,"in_reply_to":"7adec928_c9ddb444","updated":"2014-05-14 02:34:40.000000000","message":"The service uses its own RPC notification.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":375,"context_line":"hosting device templates and hosting devices:"},{"line_number":376,"context_line":"``cisco-hosting-device-template-\u003c`` *operation* ``\u003e``,"},{"line_number":377,"context_line":"``cisco-hosting-device-\u003c`` *operation* ``\u003e``, where *operation* \u003d"},{"line_number":378,"context_line":"``[create, show, list update, delete]``"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Performance Impact"},{"line_number":381,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_4a4f9ebd","line":378,"updated":"2014-05-02 22:30:47.000000000","message":"Horizon impact?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":375,"context_line":"hosting device templates and hosting devices:"},{"line_number":376,"context_line":"``cisco-hosting-device-template-\u003c`` *operation* ``\u003e``,"},{"line_number":377,"context_line":"``cisco-hosting-device-\u003c`` *operation* ``\u003e``, where *operation* \u003d"},{"line_number":378,"context_line":"``[create, show, list update, delete]``"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Performance Impact"},{"line_number":381,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_eb992f20","line":378,"in_reply_to":"9ad9bd40_4a4f9ebd","updated":"2014-05-14 02:34:40.000000000","message":"Horizon support would be nice but is nothing we\u0027ve worked on.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":397,"context_line":"that this blueprint in parts have similarities with the service VM framework"},{"line_number":398,"context_line":"effort and its blueprints [3]_. This is no coincidence as there has been some"},{"line_number":399,"context_line":"exchange of thoughts between the two efforts even though they have so far"},{"line_number":400,"context_line":"progressed in parallell. There are therefore at this point in time also"},{"line_number":401,"context_line":"differences, largely in implemenation details. This is partially also due to the"},{"line_number":402,"context_line":"fact that the efforts have focused on different use cases (LBaaS and routing)."},{"line_number":403,"context_line":"The legacy of those services along with various other constraints have also led"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_2aac1a35","line":400,"updated":"2014-05-02 22:30:47.000000000","message":"parallell -\u003e parallel.\n\nShould this discussion be under Alternatives section?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"For hosting devices in the ‘Hardware’ category the life cycle management is very"},{"line_number":515,"context_line":"limited. It involves only some rudimentary fault management whereby the status"},{"line_number":516,"context_line":"of a hardware-based hosting device is set to reflect an error state."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"For hosting devices in the ‘VM’ category (basically service VMs) the life cycle"},{"line_number":519,"context_line":"management performed by the Hosting device manager is more comprehensive."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_c9821400","line":516,"updated":"2014-05-08 07:43:07.000000000","message":"Would power management also be supported?\nIt depends on the hardware capability, though.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"For hosting devices in the ‘Hardware’ category the life cycle management is very"},{"line_number":515,"context_line":"limited. It involves only some rudimentary fault management whereby the status"},{"line_number":516,"context_line":"of a hardware-based hosting device is set to reflect an error state."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"For hosting devices in the ‘VM’ category (basically service VMs) the life cycle"},{"line_number":519,"context_line":"management performed by the Hosting device manager is more comprehensive."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_2b5f9773","line":516,"in_reply_to":"7adec928_c9821400","updated":"2014-05-14 02:34:40.000000000","message":"It could although we\u0027ve not taken steps in that direction. Our thinking has been that comprehensive device management is best kept outside the scope of the device manager. An external system is probably better suited for that. A device manager plugin in Neutron could interface such an external system.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":552,"context_line":""},{"line_number":553,"context_line":"While the Hosting device driver API currently only contains functions to create"},{"line_number":554,"context_line":"and delete files to injected into service VM hosting devices via Nova’s"},{"line_number":555,"context_line":"configdrive features, more can be added in the future as need arise."},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"A hosting device driver should implement all functions in the API but make"},{"line_number":558,"context_line":"non-applicable ones perform no operations. Hence, hosting devices in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_49c44440","line":555,"updated":"2014-05-08 07:43:07.000000000","message":"This is just static one which is called right before spining up VM.\nWhat do you think about dynamic config change after VM booting?\nWhat communication channel do you have in mind?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":552,"context_line":""},{"line_number":553,"context_line":"While the Hosting device driver API currently only contains functions to create"},{"line_number":554,"context_line":"and delete files to injected into service VM hosting devices via Nova’s"},{"line_number":555,"context_line":"configdrive features, more can be added in the future as need arise."},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"A hosting device driver should implement all functions in the API but make"},{"line_number":558,"context_line":"non-applicable ones perform no operations. Hence, hosting devices in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_6bd7dfbf","line":555,"in_reply_to":"7adec928_49c44440","updated":"2014-05-14 02:34:40.000000000","message":"Yes, to inject any \"bootstrap\" configuration, in particular to bring up the management interface. \nAfter booting? You mean like if the management VIF stop working for some reason, and to then have a way of applying configs? Well, possibly.\n\nFor dynamic config changes we use the management VIF (given that it function properly).","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":613,"context_line":"  resource (e.g.,        .  VIF that trunks networks    VIF dedicated to Logical"},{"line_number":614,"context_line":"  Neutron Router).       .                              port"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"The current approach taken is to introduce the notion of *hosting ports*. The"},{"line_number":617,"context_line":"logical port must be mapped to its hosting port. In the plugging driver API this"},{"line_number":618,"context_line":"is done by the following function::"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_a872e8aa","line":616,"updated":"2014-05-02 22:30:47.000000000","message":"taken -\u003e proposed?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":613,"context_line":"  resource (e.g.,        .  VIF that trunks networks    VIF dedicated to Logical"},{"line_number":614,"context_line":"  Neutron Router).       .                              port"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"The current approach taken is to introduce the notion of *hosting ports*. The"},{"line_number":617,"context_line":"logical port must be mapped to its hosting port. In the plugging driver API this"},{"line_number":618,"context_line":"is done by the following function::"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_8be6ebb2","line":616,"in_reply_to":"9ad9bd40_a872e8aa","updated":"2014-05-14 02:34:40.000000000","message":"Can change that. \"taken\" was used since the current code uses this.\n\nThe hosting port essentially corresponds to external port in the service insertion framework.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":623,"context_line":"This function can be viewed as a scheduler of the logical ports. We allow the"},{"line_number":624,"context_line":"hosting port to be the same Neutron port that represents the logical port. This"},{"line_number":625,"context_line":"makes the logical port/hosting port construct applicable to additional use cases"},{"line_number":626,"context_line":"like the important ones listed in Figure 5. The binding between logical port and"},{"line_number":627,"context_line":"hosting port is stored in the ‘hostedhostingportbindings’ table."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Scheduling the logical port is not enough. L2 configuration in the (virtual"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_a965c846","line":626,"updated":"2014-05-08 07:43:07.000000000","message":"is \"Figure 5\" the above one?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":623,"context_line":"This function can be viewed as a scheduler of the logical ports. We allow the"},{"line_number":624,"context_line":"hosting port to be the same Neutron port that represents the logical port. This"},{"line_number":625,"context_line":"makes the logical port/hosting port construct applicable to additional use cases"},{"line_number":626,"context_line":"like the important ones listed in Figure 5. The binding between logical port and"},{"line_number":627,"context_line":"hosting port is stored in the ‘hostedhostingportbindings’ table."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Scheduling the logical port is not enough. L2 configuration in the (virtual"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_ebf20f6e","line":626,"in_reply_to":"7adec928_a965c846","updated":"2014-05-14 02:34:40.000000000","message":"Below. Will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"8e17a774d71f18152820989c0add809d57e11197","unresolved":false,"context_lines":[{"line_number":624,"context_line":"hosting port to be the same Neutron port that represents the logical port. This"},{"line_number":625,"context_line":"makes the logical port/hosting port construct applicable to additional use cases"},{"line_number":626,"context_line":"like the important ones listed in Figure 5. The binding between logical port and"},{"line_number":627,"context_line":"hosting port is stored in the ‘hostedhostingportbindings’ table."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Scheduling the logical port is not enough. L2 configuration in the (virtual"},{"line_number":630,"context_line":"and/or physical) switch infrastructure is needed for that logical port. This is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_49fc443f","line":627,"updated":"2014-05-08 07:43:07.000000000","message":"Is neutron port corresponding to logical/hosting port created?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":624,"context_line":"hosting port to be the same Neutron port that represents the logical port. This"},{"line_number":625,"context_line":"makes the logical port/hosting port construct applicable to additional use cases"},{"line_number":626,"context_line":"like the important ones listed in Figure 5. The binding between logical port and"},{"line_number":627,"context_line":"hosting port is stored in the ‘hostedhostingportbindings’ table."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Scheduling the logical port is not enough. L2 configuration in the (virtual"},{"line_number":630,"context_line":"and/or physical) switch infrastructure is needed for that logical port. This is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_2bedd78b","line":627,"in_reply_to":"7adec928_49fc443f","updated":"2014-05-14 02:34:40.000000000","message":"logical port \u003d Neutron port  used by service instance interface\nhosting port is essentially the external port in the service insertion framework proposal.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":685,"context_line":"Other examples, in particular logical resources hosted in ‘Hardware’ category"},{"line_number":686,"context_line":"devices, have been found to be compatible with the plugging driver API. This"},{"line_number":687,"context_line":"indicates that it is a promising abstraction albeit changes to it are not"},{"line_number":688,"context_line":"unlikely as new types of hosting devices or Neutron constructs are introduced."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"The reader may note that a final crucial step is needed to make an attachment"},{"line_number":691,"context_line":"operational and that is configurations inside the hosting device. However,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_08baf422","line":688,"updated":"2014-05-02 22:30:47.000000000","message":"not unlikely -\u003e likely","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":685,"context_line":"Other examples, in particular logical resources hosted in ‘Hardware’ category"},{"line_number":686,"context_line":"devices, have been found to be compatible with the plugging driver API. This"},{"line_number":687,"context_line":"indicates that it is a promising abstraction albeit changes to it are not"},{"line_number":688,"context_line":"unlikely as new types of hosting devices or Neutron constructs are introduced."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"The reader may note that a final crucial step is needed to make an attachment"},{"line_number":691,"context_line":"operational and that is configurations inside the hosting device. However,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_4b030342","line":688,"in_reply_to":"9ad9bd40_08baf422","updated":"2014-05-14 02:34:40.000000000","message":"Will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":734,"context_line":""},{"line_number":735,"context_line":"Dependencies"},{"line_number":736,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":737,"context_line":"Devstack and Neutron client must and will be updated to support this plugin."},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"Testing"},{"line_number":740,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_288c187f","line":737,"updated":"2014-05-02 22:30:47.000000000","message":"must and will -\u003e must\n\nDependency on config agent blueprint?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":734,"context_line":""},{"line_number":735,"context_line":"Dependencies"},{"line_number":736,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":737,"context_line":"Devstack and Neutron client must and will be updated to support this plugin."},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"Testing"},{"line_number":740,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_8bfd0b3d","line":737,"in_reply_to":"9ad9bd40_288c187f","updated":"2014-05-14 02:34:40.000000000","message":"Yes, will add reference to it.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"383c4a910fb9567b4a3391a856e057220791314d","unresolved":false,"context_lines":[{"line_number":743,"context_line":""},{"line_number":744,"context_line":"Documentation Impact"},{"line_number":745,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":746,"context_line":"Will require new documentation in Cisco sections."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"References"},{"line_number":749,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad9bd40_e8d87081","line":746,"updated":"2014-05-02 22:30:47.000000000","message":"in Cisco section?","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"e930e068e32c8b6977ed860d17c026f386d8afcf","unresolved":false,"context_lines":[{"line_number":743,"context_line":""},{"line_number":744,"context_line":"Documentation Impact"},{"line_number":745,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":746,"context_line":"Will require new documentation in Cisco sections."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"References"},{"line_number":749,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7adec928_6bfeff39","line":746,"in_reply_to":"9ad9bd40_e8d87081","updated":"2014-05-14 02:34:40.000000000","message":"Will fix.","commit_id":"06b0a626758298e277a563f347a861f4e26794f0"}]}
