)]}'
{"neutron/db/qos/models.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"20164c483bfd2020dd024f37a79744b1599f6ddd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        primaryjoin\u003d\u0027QosNetworkPolicyBinding.network_id \u003d\u003d Port.network_id\u0027,"},{"line_number":60,"context_line":"        foreign_keys\u003dnetwork_id,"},{"line_number":61,"context_line":"        backref\u003dsa.orm.backref(\u0027qos_network_policy_binding\u0027, uselist\u003dFalse,"},{"line_number":62,"context_line":"                               viewonly\u003dTrue))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class QosFIPPolicyBinding(model_base.BASEV2):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_9f690c26","line":62,"updated":"2019-06-29 16:00:15.000000000","message":"I\u0027m definitely not db expert here but why this not require db schema change?","commit_id":"a7b1c497b2da0076636315c446e18820dbefc77c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0f2da74b28af5aa3c865a13dc77f2278da185d18","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        primaryjoin\u003d\u0027QosNetworkPolicyBinding.network_id \u003d\u003d Port.network_id\u0027,"},{"line_number":60,"context_line":"        foreign_keys\u003dnetwork_id,"},{"line_number":61,"context_line":"        backref\u003dsa.orm.backref(\u0027qos_network_policy_binding\u0027, uselist\u003dFalse,"},{"line_number":62,"context_line":"                               viewonly\u003dTrue))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class QosFIPPolicyBinding(model_base.BASEV2):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_c76495bb","line":62,"in_reply_to":"9fb8cfa7_9f690c26","updated":"2019-07-01 11:06:01.000000000","message":"This is not changing the DB schema but the ORM object, \"models_v2.Port\". When \"models_v2.Port\" is retrieved, a query including this primary join is done. That means, in the query returned object from the DB to Python, we\u0027ll have \"qos_network_policy_binding\"","commit_id":"a7b1c497b2da0076636315c446e18820dbefc77c"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"589227dea8eb639d852c580e3baf126794a86a73","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        primaryjoin\u003d\u0027QosNetworkPolicyBinding.network_id \u003d\u003d Port.network_id\u0027,"},{"line_number":60,"context_line":"        foreign_keys\u003dnetwork_id,"},{"line_number":61,"context_line":"        backref\u003dsa.orm.backref(\u0027qos_network_policy_binding\u0027, uselist\u003dFalse,"},{"line_number":62,"context_line":"                               viewonly\u003dTrue))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class QosFIPPolicyBinding(model_base.BASEV2):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_fd1366ff","line":62,"in_reply_to":"9fb8cfa7_c76495bb","updated":"2019-07-01 12:56:11.000000000","message":"Actually I have a question about this.  Imagine the following sequence of events:\n\n1.) On controller 1, a port is created with no QOS policy as the variable \u0027port_obj\u0027.\n\n2.) On controller 2 a request is received and actioned to add a QOS policy to the port created in step #1\n\n3.) Will subsequent references to port_obj show a QOS policy?  If not, how will port_obj reflect the update in step #2?","commit_id":"a7b1c497b2da0076636315c446e18820dbefc77c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9ce49099727b213cb8d45e52d3a4a09281a09d25","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        primaryjoin\u003d\u0027QosNetworkPolicyBinding.network_id \u003d\u003d Port.network_id\u0027,"},{"line_number":60,"context_line":"        foreign_keys\u003dnetwork_id,"},{"line_number":61,"context_line":"        backref\u003dsa.orm.backref(\u0027qos_network_policy_binding\u0027, uselist\u003dFalse,"},{"line_number":62,"context_line":"                               viewonly\u003dTrue))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class QosFIPPolicyBinding(model_base.BASEV2):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_f8f05493","line":62,"in_reply_to":"9fb8cfa7_fd1366ff","updated":"2019-07-01 13:55:24.000000000","message":"This parameter, \"qos_network_policy_binding\", is not the QoS port policy but the port network policy.\n\nIn your example, you are talking about the port QoS policy. Of course, the behavior for \"qos_policy_binding\" won\u0027t change. In your example, subsequent references to port_obj will show any \"qos_policy_id\" and \"qos_network_policy_id\" changes.\n\nThis parameter is not controller at all by any port action (we can\u0027t change a port network).\n\nDuring the port OVO instance life (should be as short as possible), this parameter should be a static view of the DB when the DB was queried.","commit_id":"a7b1c497b2da0076636315c446e18820dbefc77c"}],"neutron/objects/ports.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"958880748ad30593dd8e05f580889f61ea534dfe","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        self.obj_reset_changes([\u0027security_group_ids\u0027])"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        # extract qos policy binding"},{"line_number":471,"context_line":"        if db_obj.get(\u0027qos_policy_binding\u0027):"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d db_obj.qos_policy_binding.policy_id"},{"line_number":473,"context_line":"        if db_obj.get(\u0027qos_network_policy_binding\u0027):"},{"line_number":474,"context_line":"            self.qos_network_policy_id \u003d ("},{"line_number":475,"context_line":"                db_obj.qos_network_policy_binding.policy_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_17b0b7dc","line":472,"range":{"start_line":471,"start_character":8,"end_line":472,"end_character":68},"updated":"2019-06-28 06:42:47.000000000","message":"else:\n    self.qos_policy_id \u003d None","commit_id":"8f8a8b1d0b753af1354157ea109471e2ecc6f4b2"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"10f9e44a1538b5f81a014c5fd25a098486c9493a","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        self.obj_reset_changes([\u0027security_group_ids\u0027])"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        # extract qos policy binding"},{"line_number":471,"context_line":"        if db_obj.get(\u0027qos_policy_binding\u0027):"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d db_obj.qos_policy_binding.policy_id"},{"line_number":473,"context_line":"        if db_obj.get(\u0027qos_network_policy_binding\u0027):"},{"line_number":474,"context_line":"            self.qos_network_policy_id \u003d ("},{"line_number":475,"context_line":"                db_obj.qos_network_policy_binding.policy_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_918592af","line":472,"range":{"start_line":471,"start_character":8,"end_line":472,"end_character":68},"in_reply_to":"9fb8cfa7_17b0b7dc","updated":"2019-06-28 10:36:45.000000000","message":"Not needed. By default self.qos_policy_id is None\n\n\u0027qos_policy_id\u0027: common_types.UUIDField(nullable\u003dTrue, default\u003dNone)\n\nRef: https://review.opendev.org/#/c/667981/1/neutron/tests/unit/objects/test_ports.py@366","commit_id":"8f8a8b1d0b753af1354157ea109471e2ecc6f4b2"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"958880748ad30593dd8e05f580889f61ea534dfe","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        # extract qos policy binding"},{"line_number":471,"context_line":"        if db_obj.get(\u0027qos_policy_binding\u0027):"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d db_obj.qos_policy_binding.policy_id"},{"line_number":473,"context_line":"        if db_obj.get(\u0027qos_network_policy_binding\u0027):"},{"line_number":474,"context_line":"            self.qos_network_policy_id \u003d ("},{"line_number":475,"context_line":"                db_obj.qos_network_policy_binding.policy_id)"},{"line_number":476,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_37b37beb","line":475,"range":{"start_line":473,"start_character":8,"end_line":475,"end_character":60},"updated":"2019-06-28 06:42:47.000000000","message":"else:\n    self.qos_network_policy_id \u003d None","commit_id":"8f8a8b1d0b753af1354157ea109471e2ecc6f4b2"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"10f9e44a1538b5f81a014c5fd25a098486c9493a","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        # extract qos policy binding"},{"line_number":471,"context_line":"        if db_obj.get(\u0027qos_policy_binding\u0027):"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d db_obj.qos_policy_binding.policy_id"},{"line_number":473,"context_line":"        if db_obj.get(\u0027qos_network_policy_binding\u0027):"},{"line_number":474,"context_line":"            self.qos_network_policy_id \u003d ("},{"line_number":475,"context_line":"                db_obj.qos_network_policy_binding.policy_id)"},{"line_number":476,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_319066ed","line":475,"range":{"start_line":473,"start_character":8,"end_line":475,"end_character":60},"in_reply_to":"9fb8cfa7_37b37beb","updated":"2019-06-28 10:36:45.000000000","message":"ditto\n\nRef: https://review.opendev.org/#/c/667981/1/neutron/tests/unit/objects/test_ports.py@365","commit_id":"8f8a8b1d0b753af1354157ea109471e2ecc6f4b2"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"9616f659f1e8b82ba56288c88bd571602f68e143","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            self.qos_policy_id \u003d ("},{"line_number":469,"context_line":"                db_obj.qos_policy_binding.policy_id"},{"line_number":470,"context_line":"            )"},{"line_number":471,"context_line":"        else:"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d None"},{"line_number":473,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_9b991f6e","side":"PARENT","line":472,"range":{"start_line":471,"start_character":0,"end_line":472,"end_character":37},"updated":"2019-06-29 21:34:01.000000000","message":"Why this is removed?","commit_id":"d35dd9c9c8c1d9a2aa7e1bcf1849792d2b6b2c2a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0f2da74b28af5aa3c865a13dc77f2278da185d18","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            self.qos_policy_id \u003d ("},{"line_number":469,"context_line":"                db_obj.qos_policy_binding.policy_id"},{"line_number":470,"context_line":"            )"},{"line_number":471,"context_line":"        else:"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d None"},{"line_number":473,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_a72f213d","side":"PARENT","line":472,"range":{"start_line":471,"start_character":0,"end_line":472,"end_character":37},"in_reply_to":"9fb8cfa7_3014cae8","updated":"2019-07-01 11:06:01.000000000","message":"That\u0027s right:\n1) \"qos_policy_id\" field in the OVO is defined as:\n\u0027qos_policy_id\u0027: common_types.UUIDField(nullable\u003dTrue, default\u003dNone),\nThat means this value can be None and when the OVO is created, the value assigned is default\u003dNone\n\n2) This is tested here: https://review.opendev.org/#/c/667981/1/neutron/tests/unit/objects/test_ports.py@366","commit_id":"d35dd9c9c8c1d9a2aa7e1bcf1849792d2b6b2c2a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"03a8455b6c42c49920f71cbec165c0d009a17c67","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            self.qos_policy_id \u003d ("},{"line_number":469,"context_line":"                db_obj.qos_policy_binding.policy_id"},{"line_number":470,"context_line":"            )"},{"line_number":471,"context_line":"        else:"},{"line_number":472,"context_line":"            self.qos_policy_id \u003d None"},{"line_number":473,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_3014cae8","side":"PARENT","line":472,"range":{"start_line":471,"start_character":0,"end_line":472,"end_character":37},"in_reply_to":"9fb8cfa7_9b991f6e","updated":"2019-07-01 08:46:05.000000000","message":"I think this is the answer for the question:\nhttps://review.opendev.org/#/c/667981/1/neutron/objects/ports.py@472, but I am sure Rodolfo will come the official one :-)","commit_id":"d35dd9c9c8c1d9a2aa7e1bcf1849792d2b6b2c2a"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"9616f659f1e8b82ba56288c88bd571602f68e143","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        if db_obj.get(\u0027qos_network_policy_binding\u0027):"},{"line_number":474,"context_line":"            self.qos_network_policy_id \u003d ("},{"line_number":475,"context_line":"                db_obj.qos_network_policy_binding.policy_id)"},{"line_number":476,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":479,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_3ba4b3a5","line":476,"range":{"start_line":476,"start_character":13,"end_line":476,"end_character":30},"updated":"2019-06-29 21:34:01.000000000","message":"We need to reset \u0027qos_network_policy_id\u0027 as well.","commit_id":"a7b1c497b2da0076636315c446e18820dbefc77c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0f2da74b28af5aa3c865a13dc77f2278da185d18","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        if db_obj.get(\u0027qos_network_policy_binding\u0027):"},{"line_number":474,"context_line":"            self.qos_network_policy_id \u003d ("},{"line_number":475,"context_line":"                db_obj.qos_network_policy_binding.policy_id)"},{"line_number":476,"context_line":"        self.obj_reset_changes([\u0027qos_policy_id\u0027])"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":479,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_67e4c9e0","line":476,"range":{"start_line":476,"start_character":13,"end_line":476,"end_character":30},"in_reply_to":"9fb8cfa7_3ba4b3a5","updated":"2019-07-01 11:06:01.000000000","message":"Done","commit_id":"a7b1c497b2da0076636315c446e18820dbefc77c"}],"neutron/tests/unit/objects/test_objects.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"958880748ad30593dd8e05f580889f61ea534dfe","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \u0027NetworkRBAC\u0027: \u00271.2-192845c5ed0718e1c54fac36936fcd7d\u0027,"},{"line_number":65,"context_line":"    \u0027NetworkSegment\u0027: \u00271.0-57b7f2960971e3b95ded20cbc59244a8\u0027,"},{"line_number":66,"context_line":"    \u0027NetworkSegmentRange\u0027: \u00271.0-bdec1fffc9058ea676089b1f2f2b3cf3\u0027,"},{"line_number":67,"context_line":"    \u0027Port\u0027: \u00271.4-1b6183bccfc2cd210919a1a72faefce1\u0027,"},{"line_number":68,"context_line":"    \u0027PortBinding\u0027: \u00271.0-3306deeaa6deb01e33af06777d48d578\u0027,"},{"line_number":69,"context_line":"    \u0027PortBindingLevel\u0027: \u00271.1-50d47f63218f87581b6cd9a62db574e5\u0027,"},{"line_number":70,"context_line":"    \u0027PortDataPlaneStatus\u0027: \u00271.0-25be74bda46c749653a10357676c0ab2\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_b748cbb2","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":49},"updated":"2019-06-28 06:42:47.000000000","message":"1.5-98f35183d876c9beb188f4bf44d4d886","commit_id":"8f8a8b1d0b753af1354157ea109471e2ecc6f4b2"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"10f9e44a1538b5f81a014c5fd25a098486c9493a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \u0027NetworkRBAC\u0027: \u00271.2-192845c5ed0718e1c54fac36936fcd7d\u0027,"},{"line_number":65,"context_line":"    \u0027NetworkSegment\u0027: \u00271.0-57b7f2960971e3b95ded20cbc59244a8\u0027,"},{"line_number":66,"context_line":"    \u0027NetworkSegmentRange\u0027: \u00271.0-bdec1fffc9058ea676089b1f2f2b3cf3\u0027,"},{"line_number":67,"context_line":"    \u0027Port\u0027: \u00271.4-1b6183bccfc2cd210919a1a72faefce1\u0027,"},{"line_number":68,"context_line":"    \u0027PortBinding\u0027: \u00271.0-3306deeaa6deb01e33af06777d48d578\u0027,"},{"line_number":69,"context_line":"    \u0027PortBindingLevel\u0027: \u00271.1-50d47f63218f87581b6cd9a62db574e5\u0027,"},{"line_number":70,"context_line":"    \u0027PortDataPlaneStatus\u0027: \u00271.0-25be74bda46c749653a10357676c0ab2\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_11c3e2ee","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":49},"in_reply_to":"9fb8cfa7_b748cbb2","updated":"2019-06-28 10:36:45.000000000","message":"Thanks!","commit_id":"8f8a8b1d0b753af1354157ea109471e2ecc6f4b2"}]}
