)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b435bca45d0ab829daf8b46ef20787906f68b312","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support tagging Neutron ports on creation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds support for tagging ports on creation and bulk creation"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I3148a568664588eb2f529138f984859570c0fca1"},{"line_number":12,"context_line":"Related-Bug: #1815933"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_a6b9a1ed","line":9,"updated":"2020-08-30 08:53:52.000000000","message":"I don\u0027t see where OSC allows bulk creation.","commit_id":"ac7c255746b3fd37cd49d46737b279f88b640205"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"8fc4488a36809c68feace9ceaf39807a61935ecb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support tagging Neutron ports on creation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds support for tagging ports on creation and bulk creation"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I3148a568664588eb2f529138f984859570c0fca1"},{"line_number":12,"context_line":"Related-Bug: #1815933"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_9649cf61","line":9,"in_reply_to":"9f560f44_a6b9a1ed","updated":"2020-09-04 12:32:49.000000000","message":"Changed","commit_id":"ac7c255746b3fd37cd49d46737b279f88b640205"}],"openstackclient/network/v2/port.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"e3d3a049a85a5455f0d09808da1508b2c70b86fa","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        if parsed_args.no_tag:"},{"line_number":460,"context_line":"            attrs[\u0027tags\u0027] \u003d set()"},{"line_number":461,"context_line":"        elif parsed_args.tags:"},{"line_number":462,"context_line":"            attrs[\u0027tags\u0027] \u003d parsed_args.tags"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        with common.check_missing_extension_if_error("},{"line_number":465,"context_line":"                self.app.client_manager.network, attrs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_3eefc11e","line":462,"updated":"2020-04-28 10:03:58.000000000","message":"1) IIRC the --tag and --no-tag parameters have semantics (at least for update) to edit the current set of tags on the client side. So during update the client gets the current tags, resets the current set to empty if it sees --no-tags then adds the tags listed in (possible multiple) --tag. That means it accepts a parameter list with both --no-tag and --tag in it.\n\nWhile all this does not make much sense for create, it still may be good to at least accept the --no-tag --tag combination for syntactic uniformity. Practically that would be an if-if instead of an if-elif.\n\nhttps://opendev.org/openstack/osc-lib/src/branch/master/osc_lib/utils/tags.py#L144-L145\n\n2) Let\u0027s be consistent with the types and turn parsed_args.tags into a set. It\u0027s a list right now, isn\u0027t it?","commit_id":"48bda628c26f4aa0775584323aa926b4ad27c94a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"781ea6ab7e9c6a685cc33d66ef6c296472be7aaa","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        if parsed_args.no_tag:"},{"line_number":460,"context_line":"            attrs[\u0027tags\u0027] \u003d set()"},{"line_number":461,"context_line":"        elif parsed_args.tags:"},{"line_number":462,"context_line":"            attrs[\u0027tags\u0027] \u003d parsed_args.tags"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        with common.check_missing_extension_if_error("},{"line_number":465,"context_line":"                self.app.client_manager.network, attrs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_f3866765","line":462,"in_reply_to":"1f493fa4_3eefc11e","updated":"2020-08-19 11:50:19.000000000","message":"\u003e 1) IIRC the --tag and --no-tag parameters have semantics (at least\n \u003e for update) to edit the current set of tags on the client side. So\n \u003e during update the client gets the current tags, resets the current\n \u003e set to empty if it sees --no-tags then adds the tags listed in\n \u003e (possible multiple) --tag. That means it accepts a parameter list\n \u003e with both --no-tag and --tag in it.\n \u003e \n \u003e While all this does not make much sense for create, it still may be\n \u003e good to at least accept the --no-tag --tag combination for\n \u003e syntactic uniformity. Practically that would be an if-if instead of\n \u003e an if-elif.\n\n+1 for the if-if statement.\n\n \u003e https://opendev.org/openstack/osc-lib/src/branch/master/osc_lib/utils/tags.py#L144-L145\n \u003e \n \u003e 2) Let\u0027s be consistent with the types and turn parsed_args.tags\n \u003e into a set. It\u0027s a list right now, isn\u0027t it?\n\nI agree that it could be worth to stay consistent here.","commit_id":"48bda628c26f4aa0775584323aa926b4ad27c94a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"147f7fb7d8b7c3d1caf6739f750396f10a7526be","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        if parsed_args.no_tag:"},{"line_number":460,"context_line":"            attrs[\u0027tags\u0027] \u003d set()"},{"line_number":461,"context_line":"        elif parsed_args.tags:"},{"line_number":462,"context_line":"            attrs[\u0027tags\u0027] \u003d parsed_args.tags"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        with common.check_missing_extension_if_error("},{"line_number":465,"context_line":"                self.app.client_manager.network, attrs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_b9662050","line":462,"in_reply_to":"9f560f44_f3866765","updated":"2020-08-26 10:36:26.000000000","message":"I agree with You. It\u0027s changed now.","commit_id":"48bda628c26f4aa0775584323aa926b4ad27c94a"}],"openstackclient/tests/unit/network/v2/test_port.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b435bca45d0ab829daf8b46ef20787906f68b312","unresolved":false,"context_lines":[{"line_number":562,"context_line":"            \u0027name\u0027: \u0027test-port\u0027,"},{"line_number":563,"context_line":"        }"},{"line_number":564,"context_line":"        if add_tags:"},{"line_number":565,"context_line":"            args[\u0027tags\u0027] \u003d list(set([\u0027red\u0027, \u0027blue\u0027]))"},{"line_number":566,"context_line":"        else:"},{"line_number":567,"context_line":"            args[\u0027tags\u0027] \u003d []"},{"line_number":568,"context_line":"        self.network.create_port.assert_called_once_with(**args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_06f32de9","line":565,"range":{"start_line":565,"start_character":27,"end_line":565,"end_character":36},"updated":"2020-08-30 08:53:52.000000000","message":"This seems redundant since the original list doesn\u0027t contain any duplicate.","commit_id":"ac7c255746b3fd37cd49d46737b279f88b640205"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"8fc4488a36809c68feace9ceaf39807a61935ecb","unresolved":false,"context_lines":[{"line_number":562,"context_line":"            \u0027name\u0027: \u0027test-port\u0027,"},{"line_number":563,"context_line":"        }"},{"line_number":564,"context_line":"        if add_tags:"},{"line_number":565,"context_line":"            args[\u0027tags\u0027] \u003d list(set([\u0027red\u0027, \u0027blue\u0027]))"},{"line_number":566,"context_line":"        else:"},{"line_number":567,"context_line":"            args[\u0027tags\u0027] \u003d []"},{"line_number":568,"context_line":"        self.network.create_port.assert_called_once_with(**args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_42e016f9","line":565,"range":{"start_line":565,"start_character":27,"end_line":565,"end_character":36},"in_reply_to":"9f560f44_06f32de9","updated":"2020-09-04 12:32:49.000000000","message":"yes, and I had to do that differently to make test to be stable.","commit_id":"ac7c255746b3fd37cd49d46737b279f88b640205"}]}
