)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"7ea2402074556c0bb467c4019f27e8aaf1a5b98e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"avoid resource allocation inconsistencies this patch propose to reject"},{"line_number":16,"context_line":"such attach interface request. Rejecting such interface attach does not"},{"line_number":17,"context_line":"break existing functionality as today only the SRIOV Neutron backend"},{"line_number":18,"context_line":"supports the minimum bandwidth policy but Nova does not support"},{"line_number":19,"context_line":"interface attach with SRIOV interfaces today."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id8b5c48a6e8cf65dc0a7dc13a80a0a72684f70d9"},{"line_number":22,"context_line":"blueprint: bandwidth-resource-provider"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_c3c1d531","line":19,"range":{"start_line":18,"start_character":42,"end_line":19,"end_character":45},"updated":"2018-06-15 07:13:25.000000000","message":"thanks for explanation, good to know. : )","commit_id":"dd21cfaaab85279e344242e913bcf80e017feba0"}],"nova/compute/api.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"7ea2402074556c0bb467c4019f27e8aaf1a5b98e","unresolved":false,"context_lines":[{"line_number":4128,"context_line":"        self._record_action_start("},{"line_number":4129,"context_line":"            context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4130,"context_line":""},{"line_number":4131,"context_line":"        if port_id:"},{"line_number":4132,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4133,"context_line":"            if port.get(\u0027resource_request\u0027, None):"},{"line_number":4134,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8333ddc4","line":4131,"range":{"start_line":4131,"start_character":8,"end_line":4131,"end_character":19},"updated":"2018-06-15 07:13:25.000000000","message":"This only process the case that we attach interface with port_id, right?\n\nWhat would be happened if we only pass the network_id, and this network was associated with a QoS policy? the port would be created by default and inherit the policy from network, and then attach to vm.\n\nFurther more, If we don\u0027t pass the `network_id` and `port_id`, we will create the interface from default network, if this default  network has qos policy, the auto-created port will also have same qos policy.\n\nSo, it seems we also need reject port_id in these two cases.","commit_id":"dd21cfaaab85279e344242e913bcf80e017feba0"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ad136b4773e71d46e4ea1a3f765db55e85418ac9","unresolved":false,"context_lines":[{"line_number":4128,"context_line":"        self._record_action_start("},{"line_number":4129,"context_line":"            context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4130,"context_line":""},{"line_number":4131,"context_line":"        if port_id:"},{"line_number":4132,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4133,"context_line":"            if port.get(\u0027resource_request\u0027, None):"},{"line_number":4134,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_633d608d","line":4131,"range":{"start_line":4131,"start_character":8,"end_line":4131,"end_character":19},"in_reply_to":"5f7c97a3_8333ddc4","updated":"2018-06-15 07:26:39.000000000","message":"Sorry, I found your follow patch in https://review.openstack.org/#/c/570079/3/nova/network/neutronv2/api.py@443\n\nthe port would be check after port auto-created.\n\nPls ignore last comments.","commit_id":"dd21cfaaab85279e344242e913bcf80e017feba0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":4372,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"},{"line_number":4373,"context_line":"                                    vm_states.STOPPED],"},{"line_number":4374,"context_line":"                          task_state\u003d[None])"},{"line_number":4375,"context_line":"    def attach_interface(self, context, instance, network_id, port_id,"},{"line_number":4376,"context_line":"                         requested_ip, tag\u003dNone):"},{"line_number":4377,"context_line":"        \"\"\"Use hotplug to add an network adapter to an instance.\"\"\""},{"line_number":4378,"context_line":"        self._record_action_start("}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_f2ffd064","line":4375,"range":{"start_line":4375,"start_character":50,"end_line":4375,"end_character":60},"updated":"2019-01-22 20:32:04.000000000","message":"Is it possible that the network has the QoS policy on it and if nova-compute tries to create a port on that network it will have the QoS policy attached and thus we have the same issue?","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a7fa16ace52b60a80361996d8425e9b827254b51","unresolved":false,"context_lines":[{"line_number":4372,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"},{"line_number":4373,"context_line":"                                    vm_states.STOPPED],"},{"line_number":4374,"context_line":"                          task_state\u003d[None])"},{"line_number":4375,"context_line":"    def attach_interface(self, context, instance, network_id, port_id,"},{"line_number":4376,"context_line":"                         requested_ip, tag\u003dNone):"},{"line_number":4377,"context_line":"        \"\"\"Use hotplug to add an network adapter to an instance.\"\"\""},{"line_number":4378,"context_line":"        self._record_action_start("}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_c18d0e32","line":4375,"range":{"start_line":4375,"start_character":50,"end_line":4375,"end_character":60},"in_reply_to":"9fdfeff1_f2ffd064","updated":"2019-01-23 13:47:02.000000000","message":"Yes it is possible that the network provided here has QoS attached and therefore the port nova creates in the provided network will have resource request. \n\nThe proposed solution is to wait until nova creates the port, and check if the port has resource request. Of course this happens later in the nova-compute service, but it is an RPC call, so the interfaceAttach API request still can be rejected properly to the end user.\n\nThis solution is implemented in the next patch in this series [1]. There is additional benefits of [1] as it also covers the case when a server is booted with a network_id where the network has QoS policy.\n\n[1] https://review.openstack.org/#/c/570079/17/nova/network/neutronv2/api.py@511","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":4378,"context_line":"        self._record_action_start("},{"line_number":4379,"context_line":"            context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4380,"context_line":""},{"line_number":4381,"context_line":"        if port_id:"},{"line_number":4382,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4383,"context_line":"            if port[\u0027port\u0027].get(\u0027resource_request\u0027, None):"},{"line_number":4384,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_32dd5814","line":4381,"updated":"2019-01-22 20:32:04.000000000","message":"A comment about what this check is for would be nice.","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0b66316aafe440f327e585e55a4a5a81d959cc86","unresolved":false,"context_lines":[{"line_number":4378,"context_line":"        self._record_action_start("},{"line_number":4379,"context_line":"            context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4380,"context_line":""},{"line_number":4381,"context_line":"        if port_id:"},{"line_number":4382,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4383,"context_line":"            if port[\u0027port\u0027].get(\u0027resource_request\u0027, None):"},{"line_number":4384,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_a3c6b699","line":4381,"in_reply_to":"9fdfeff1_32dd5814","updated":"2019-01-24 16:25:57.000000000","message":"Done","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":4380,"context_line":""},{"line_number":4381,"context_line":"        if port_id:"},{"line_number":4382,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4383,"context_line":"            if port[\u0027port\u0027].get(\u0027resource_request\u0027, None):"},{"line_number":4384,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("},{"line_number":4385,"context_line":"                    instance_uuid\u003dinstance.uuid)"},{"line_number":4386,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_d23bac35","line":4383,"range":{"start_line":4383,"start_character":50,"end_line":4383,"end_character":56},"updated":"2019-01-22 20:32:04.000000000","message":"nit: this is redundant since None is the default","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0b66316aafe440f327e585e55a4a5a81d959cc86","unresolved":false,"context_lines":[{"line_number":4380,"context_line":""},{"line_number":4381,"context_line":"        if port_id:"},{"line_number":4382,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4383,"context_line":"            if port[\u0027port\u0027].get(\u0027resource_request\u0027, None):"},{"line_number":4384,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("},{"line_number":4385,"context_line":"                    instance_uuid\u003dinstance.uuid)"},{"line_number":4386,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_c3c17a82","line":4383,"range":{"start_line":4383,"start_character":50,"end_line":4383,"end_character":56},"in_reply_to":"9fdfeff1_d23bac35","updated":"2019-01-24 16:25:57.000000000","message":"Done","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c0b50ed75dd27c94588eba1824ff21f8f76164eb","unresolved":false,"context_lines":[{"line_number":4383,"context_line":"        # need resource allocation manipulation in placement but might also"},{"line_number":4384,"context_line":"        # need a new scheduling if resource on this host is not available."},{"line_number":4385,"context_line":"        if port_id:"},{"line_number":4386,"context_line":"            port \u003d self.network_api.show_port(context, port_id)"},{"line_number":4387,"context_line":"            if port[\u0027port\u0027].get(\u0027resource_request\u0027):"},{"line_number":4388,"context_line":"                raise exception.AttachInterfaceWithQoSPolicyNotSupported("},{"line_number":4389,"context_line":"                    instance_uuid\u003dinstance.uuid)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_e0dd8742","line":4386,"updated":"2019-01-25 05:13:01.000000000","message":"Note to self: if this raises NotFound, it\u0027s handled in the API already:\n\nhttps://github.com/openstack/nova/blob/9419c3e05499e55beda93d664197a7b0f0011ff7/nova/api/openstack/compute/attach_interfaces.py#L146","commit_id":"bd6f33070bbcd1901535c9ff8febfae6b32221cc"}],"nova/exception.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"7ea2402074556c0bb467c4019f27e8aaf1a5b98e","unresolved":false,"context_lines":[{"line_number":2103,"context_line":""},{"line_number":2104,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2105,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2106,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2107,"context_line":""},{"line_number":2108,"context_line":""},{"line_number":2109,"context_line":"class InstanceDiagnosticsNotSupported(Invalid):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4324e560","line":2106,"range":{"start_line":2106,"start_character":28,"end_line":2106,"end_character":41},"updated":"2018-06-15 07:13:25.000000000","message":"Sorry, I trend to expose the \"port_id\" rather than \"instance_uuid\" in this exception message, because it sounds like the instance with this specific instance uuid doesn\u0027t support attach. \n\nBut the fact is, now, all instances don\u0027t support to attach the interface with Qos policy, so maybe we give a port id to user is more reasonable.","commit_id":"dd21cfaaab85279e344242e913bcf80e017feba0"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f10e6bf3a950c45267ad0ead2beaf8bc9ecaa155","unresolved":false,"context_lines":[{"line_number":2103,"context_line":""},{"line_number":2104,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2105,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2106,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2107,"context_line":""},{"line_number":2108,"context_line":""},{"line_number":2109,"context_line":"class InstanceDiagnosticsNotSupported(Invalid):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_c629e289","line":2106,"range":{"start_line":2106,"start_character":28,"end_line":2106,"end_character":41},"in_reply_to":"5f7c97a3_4324e560","updated":"2018-06-15 08:01:05.000000000","message":"I tend to say instance_uuid is better.","commit_id":"dd21cfaaab85279e344242e913bcf80e017feba0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2147,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2148,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_f2e6f0e8","line":2146,"range":{"start_line":2146,"start_character":47,"end_line":2146,"end_character":74},"updated":"2019-01-22 20:32:04.000000000","message":"OK and this will be handled already in the REST API controller code as a 400:\n\nhttps://github.com/openstack/nova/blob/31956108e6e785407bdcc31dbc8ba99e6a28c96d/nova/api/openstack/compute/attach_interfaces.py#L138","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf12f8d30ad175a5a1b1db8cec5383a721f5b06b","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2147,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2148,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_a131ea0d","line":2146,"range":{"start_line":2146,"start_character":47,"end_line":2146,"end_character":74},"in_reply_to":"9fdfeff1_014476b6","updated":"2019-01-23 13:56:03.000000000","message":"Hmm, I didn\u0027t think about that, but I would think we\u0027d have a microversion for attaching these types of ports - we did for attaching multiattach capable volumes too. The move case is a bit fuzzier. For multiattach, we had move working before create/attach so it wasn\u0027t a problem there, but we of course hit bugs in the resize code after multiattach landed, so it\u0027s not like it was all perfect, and we fixed those as bugs, not as new features.","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bb5bc789ae91c89331dee99293d180f166523a55","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2147,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2148,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_c9877061","line":2146,"range":{"start_line":2146,"start_character":47,"end_line":2146,"end_character":74},"in_reply_to":"9fdfeff1_a131ea0d","updated":"2019-01-23 16:22:15.000000000","message":"As far as I see multiattach was added to the nova API in a single microversion (2.60). Still I\u0027m OK to add the attach support later as a new microversion as it might be added much further in the future than create/delete/move. \n\nBut I\u0027m not sure what HTTP error code would be then good to signal here that this support will be added with such a new microversion. \n\nRight now every reject patch in the bandwidth series defaults to 400 if I\u0027m not mistaken so at least it is consistent.","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4bb25d40f209abfa4ab3f5b872ad63db2476dac0","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2147,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2148,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_b94fd532","line":2146,"range":{"start_line":2146,"start_character":47,"end_line":2146,"end_character":74},"in_reply_to":"9fdfeff1_c9877061","updated":"2019-01-23 21:18:46.000000000","message":"I think this is OK to extend AttachInterfaceNotSupported which is translated to a 400 - it\u0027s then consistent with the error you get today when trying to attach a port to a server that does not support it (like ironic, or sr-iov ports).","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a7fa16ace52b60a80361996d8425e9b827254b51","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"class AttachInterfaceWithQoSPolicyNotSupported(AttachInterfaceNotSupported):"},{"line_number":2147,"context_line":"    msg_fmt \u003d _(\"Attaching interfaces with QoS policy is not supported for \""},{"line_number":2148,"context_line":"                \"instance %(instance_uuid)s.\")"},{"line_number":2149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_014476b6","line":2146,"range":{"start_line":2146,"start_character":47,"end_line":2146,"end_character":74},"in_reply_to":"9fdfeff1_f2e6f0e8","updated":"2019-01-23 13:47:02.000000000","message":"Yes, it is a 400 now. I\u0027m not sure it is OK to have 400 or shall I go with 403 as Dan suggested on the ML.","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"}],"releasenotes/notes/reject-interface-attach-with-port-resource-request-17473ddc5a989a2a.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"other:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    The ``POST /servers/{server_id}/os-interface`` request will be rejected"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9fdfeff1_321478a0","line":2,"updated":"2019-01-22 20:32:04.000000000","message":"nit: remove the blank line","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0b66316aafe440f327e585e55a4a5a81d959cc86","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"other:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    The ``POST /servers/{server_id}/os-interface`` request will be rejected"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9fdfeff1_c3465a22","line":2,"in_reply_to":"9fdfeff1_321478a0","updated":"2019-01-24 16:25:57.000000000","message":"Done","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"other:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    The ``POST /servers/{server_id}/os-interface`` request will be rejected"},{"line_number":6,"context_line":"    with HTTP 400 if  the Neutron port referenced in the request body has"},{"line_number":7,"context_line":"    resource request as Nova currently cannot support such operation. For"},{"line_number":8,"context_line":"    example a Neutron port has resource request if a QoS minimum bandwidth"},{"line_number":9,"context_line":"    rule is attached to that port in Neutron."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9fdfeff1_b26ce836","line":6,"range":{"start_line":6,"start_character":20,"end_line":6,"end_character":22},"updated":"2019-01-22 20:32:04.000000000","message":"one too many spaces","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0b66316aafe440f327e585e55a4a5a81d959cc86","unresolved":false,"context_lines":[{"line_number":3,"context_line":"other:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    The ``POST /servers/{server_id}/os-interface`` request will be rejected"},{"line_number":6,"context_line":"    with HTTP 400 if  the Neutron port referenced in the request body has"},{"line_number":7,"context_line":"    resource request as Nova currently cannot support such operation. For"},{"line_number":8,"context_line":"    example a Neutron port has resource request if a QoS minimum bandwidth"},{"line_number":9,"context_line":"    rule is attached to that port in Neutron."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9fdfeff1_63552ec6","line":6,"range":{"start_line":6,"start_character":20,"end_line":6,"end_character":22},"in_reply_to":"9fdfeff1_b26ce836","updated":"2019-01-24 16:25:57.000000000","message":"Done","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f5a4e2239dd8cf927c4f08cac197a59c550d30f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    The ``POST /servers/{server_id}/os-interface`` request will be rejected"},{"line_number":6,"context_line":"    with HTTP 400 if  the Neutron port referenced in the request body has"},{"line_number":7,"context_line":"    resource request as Nova currently cannot support such operation. For"},{"line_number":8,"context_line":"    example a Neutron port has resource request if a QoS minimum bandwidth"},{"line_number":9,"context_line":"    rule is attached to that port in Neutron."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9fdfeff1_9273e415","line":8,"range":{"start_line":8,"start_character":53,"end_line":8,"end_character":74},"updated":"2019-01-22 20:32:04.000000000","message":"nit: could link to the neutron docs for this:\n\nhttps://docs.openstack.org/neutron/latest/admin/config-qos.html","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0b66316aafe440f327e585e55a4a5a81d959cc86","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    The ``POST /servers/{server_id}/os-interface`` request will be rejected"},{"line_number":6,"context_line":"    with HTTP 400 if  the Neutron port referenced in the request body has"},{"line_number":7,"context_line":"    resource request as Nova currently cannot support such operation. For"},{"line_number":8,"context_line":"    example a Neutron port has resource request if a QoS minimum bandwidth"},{"line_number":9,"context_line":"    rule is attached to that port in Neutron."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9fdfeff1_23bde6d7","line":8,"range":{"start_line":8,"start_character":53,"end_line":8,"end_character":74},"in_reply_to":"9fdfeff1_9273e415","updated":"2019-01-24 16:25:57.000000000","message":"Done","commit_id":"3c267c1d0ea3280386ebff1daef68dbadb97f585"}]}
