)]}'
{"openstack/cloud/openstackcloud.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3428,"context_line":"        return self._get_and_munchify(\u0027network\u0027, data)"},{"line_number":3429,"context_line":""},{"line_number":3430,"context_line":"    @_utils.valid_kwargs(\"name\", \"shared\", \"admin_state_up\", \"external\","},{"line_number":3431,"context_line":"                         \"provider\", \"mtu_size\", \"port_security_enabled\")"},{"line_number":3432,"context_line":"    def update_network(self, name_or_id, **kwargs):"},{"line_number":3433,"context_line":"        if \u0027provider\u0027 in kwargs:"},{"line_number":3434,"context_line":"            if not isinstance(kwargs[\u0027provider\u0027], dict):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_9b1b4c7f","line":3431,"updated":"2018-09-10 15:39:16.000000000","message":"It looks like many more fields (e.g. dns_domain, is_default, description) are updatable for networks. Why limit to these?","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"41d966c5eda37d42e0dc03a2c86060f5bb4a19fa","unresolved":false,"context_lines":[{"line_number":3428,"context_line":"        return self._get_and_munchify(\u0027network\u0027, data)"},{"line_number":3429,"context_line":""},{"line_number":3430,"context_line":"    @_utils.valid_kwargs(\"name\", \"shared\", \"admin_state_up\", \"external\","},{"line_number":3431,"context_line":"                         \"provider\", \"mtu_size\", \"port_security_enabled\")"},{"line_number":3432,"context_line":"    def update_network(self, name_or_id, **kwargs):"},{"line_number":3433,"context_line":"        if \u0027provider\u0027 in kwargs:"},{"line_number":3434,"context_line":"            if not isinstance(kwargs[\u0027provider\u0027], dict):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_03b6b53f","line":3431,"in_reply_to":"3f79a3b5_9b1b4c7f","updated":"2018-09-12 23:33:00.000000000","message":"I am limiting to these because they are the only attrs we\u0027re considering on create_network","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3432,"context_line":"    def update_network(self, name_or_id, **kwargs):"},{"line_number":3433,"context_line":"        if \u0027provider\u0027 in kwargs:"},{"line_number":3434,"context_line":"            if not isinstance(kwargs[\u0027provider\u0027], dict):"},{"line_number":3435,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3436,"context_line":"                    \"Parameter \u0027provider\u0027 must be a dict\")"},{"line_number":3437,"context_line":"            # Only pass what we know"},{"line_number":3438,"context_line":"            for attr in kwargs[\u0027provider\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_3b10f859","line":3435,"updated":"2018-09-10 15:39:16.000000000","message":"nit: it should be a TypeError IMO, since it\u0027s just a Python exception, not something coming from the API.","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"41d966c5eda37d42e0dc03a2c86060f5bb4a19fa","unresolved":false,"context_lines":[{"line_number":3432,"context_line":"    def update_network(self, name_or_id, **kwargs):"},{"line_number":3433,"context_line":"        if \u0027provider\u0027 in kwargs:"},{"line_number":3434,"context_line":"            if not isinstance(kwargs[\u0027provider\u0027], dict):"},{"line_number":3435,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3436,"context_line":"                    \"Parameter \u0027provider\u0027 must be a dict\")"},{"line_number":3437,"context_line":"            # Only pass what we know"},{"line_number":3438,"context_line":"            for attr in kwargs[\u0027provider\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_e384d95f","line":3435,"in_reply_to":"3f79a3b5_3b10f859","updated":"2018-09-12 23:33:00.000000000","message":"I\u0027m copying/pasting the behavior from create-network. unless you think it\u0027s really better ot have TypeError, having some consistency wouldn\u0027t hurt","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3438,"context_line":"            for attr in kwargs[\u0027provider\u0027]:"},{"line_number":3439,"context_line":"                if attr not in (\u0027physical_network\u0027, \u0027network_type\u0027,"},{"line_number":3440,"context_line":"                                \u0027segmentation_id\u0027):"},{"line_number":3441,"context_line":"                    del kwargs[\u0027provider\u0027][attr]"},{"line_number":3442,"context_line":"                else:"},{"line_number":3443,"context_line":"                    key \u003d \u0027provider:\u0027 + attr"},{"line_number":3444,"context_line":"                    kwargs[\u0027provider\u0027][key] \u003d kwargs[\u0027provider\u0027].pop(attr)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_5b15b448","line":3441,"updated":"2018-09-10 15:39:16.000000000","message":"raise an exception? I don\u0027t think it\u0027s a good idea to silently ignore use input.\n\nfurthermore, I seem to recall that modifying a dict while iterating over it is not the best idea.","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"41d966c5eda37d42e0dc03a2c86060f5bb4a19fa","unresolved":false,"context_lines":[{"line_number":3438,"context_line":"            for attr in kwargs[\u0027provider\u0027]:"},{"line_number":3439,"context_line":"                if attr not in (\u0027physical_network\u0027, \u0027network_type\u0027,"},{"line_number":3440,"context_line":"                                \u0027segmentation_id\u0027):"},{"line_number":3441,"context_line":"                    del kwargs[\u0027provider\u0027][attr]"},{"line_number":3442,"context_line":"                else:"},{"line_number":3443,"context_line":"                    key \u003d \u0027provider:\u0027 + attr"},{"line_number":3444,"context_line":"                    kwargs[\u0027provider\u0027][key] \u003d kwargs[\u0027provider\u0027].pop(attr)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_e3e93919","line":3441,"in_reply_to":"3f79a3b5_5b15b448","updated":"2018-09-12 23:33:00.000000000","message":"on the exception: I\u0027m copying the behavior from the create_network, yes we do silently ignore and pass what we know.\n\nfor the deletion while iterating I agree, will change the code","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3448,"context_line":""},{"line_number":3449,"context_line":"        if \u0027port_security_enabled\u0027 in kwargs:"},{"line_number":3450,"context_line":"            if not isinstance(kwargs[\u0027port_security_enabled\u0027], bool):"},{"line_number":3451,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3452,"context_line":"                    \"Parameter \u0027port_security_enabled\u0027 must be a bool\")"},{"line_number":3453,"context_line":""},{"line_number":3454,"context_line":"        if \u0027mtu_size\u0027 in kwargs:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_fb092032","line":3451,"updated":"2018-09-10 15:39:16.000000000","message":"nit: ditto, TypeError","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3453,"context_line":""},{"line_number":3454,"context_line":"        if \u0027mtu_size\u0027 in kwargs:"},{"line_number":3455,"context_line":"            if not isinstance(kwargs[\u0027mtu_size\u0027], int):"},{"line_number":3456,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3457,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be an integer.\")"},{"line_number":3458,"context_line":"            if not kwargs[\u0027mtu_size\u0027] \u003e\u003d 68:"},{"line_number":3459,"context_line":"                raise exc.OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_1b073c20","line":3456,"updated":"2018-09-10 15:39:16.000000000","message":"ditto","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3455,"context_line":"            if not isinstance(kwargs[\u0027mtu_size\u0027], int):"},{"line_number":3456,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3457,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be an integer.\")"},{"line_number":3458,"context_line":"            if not kwargs[\u0027mtu_size\u0027] \u003e\u003d 68:"},{"line_number":3459,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3460,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be greater than 67.\")"},{"line_number":3461,"context_line":"            kwargs[\u0027mtu\u0027] \u003d kwargs.pop(\u0027mtu_size\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_bb03a810","line":3458,"updated":"2018-09-10 15:39:16.000000000","message":"nit: \"not \u003e\u003d\" is \u003c","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"41d966c5eda37d42e0dc03a2c86060f5bb4a19fa","unresolved":false,"context_lines":[{"line_number":3455,"context_line":"            if not isinstance(kwargs[\u0027mtu_size\u0027], int):"},{"line_number":3456,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3457,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be an integer.\")"},{"line_number":3458,"context_line":"            if not kwargs[\u0027mtu_size\u0027] \u003e\u003d 68:"},{"line_number":3459,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3460,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be greater than 67.\")"},{"line_number":3461,"context_line":"            kwargs[\u0027mtu\u0027] \u003d kwargs.pop(\u0027mtu_size\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_03e4753b","line":3458,"in_reply_to":"3f79a3b5_bb03a810","updated":"2018-09-12 23:33:00.000000000","message":"++","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"78350cc91fce3f5f09db9707fdc7f18422bd4f60","unresolved":false,"context_lines":[{"line_number":3458,"context_line":"            if not kwargs[\u0027mtu_size\u0027] \u003e\u003d 68:"},{"line_number":3459,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3460,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be greater than 67.\")"},{"line_number":3461,"context_line":"            kwargs[\u0027mtu\u0027] \u003d kwargs.pop(\u0027mtu_size\u0027)"},{"line_number":3462,"context_line":""},{"line_number":3463,"context_line":"        network \u003d self.get_network(name_or_id)"},{"line_number":3464,"context_line":"        if not network:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_db00e405","line":3461,"updated":"2018-09-10 15:39:16.000000000","message":"nit: why not call it \"mtu\"? do we already call it mtu_size somewhere? I\u0027m a bit worried about networking having \"mtu\" field but using \"mtu_size\" in this call","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"41d966c5eda37d42e0dc03a2c86060f5bb4a19fa","unresolved":false,"context_lines":[{"line_number":3458,"context_line":"            if not kwargs[\u0027mtu_size\u0027] \u003e\u003d 68:"},{"line_number":3459,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":3460,"context_line":"                    \"Parameter \u0027mtu_size\u0027 must be greater than 67.\")"},{"line_number":3461,"context_line":"            kwargs[\u0027mtu\u0027] \u003d kwargs.pop(\u0027mtu_size\u0027)"},{"line_number":3462,"context_line":""},{"line_number":3463,"context_line":"        network \u003d self.get_network(name_or_id)"},{"line_number":3464,"context_line":"        if not network:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_83c965ad","line":3461,"in_reply_to":"3f79a3b5_db00e405","updated":"2018-09-12 23:33:00.000000000","message":"yes, in create_network. I\u0027m keeping this all consistent with what that method does","commit_id":"9a5549146a1620dd089ca8f958e2ba049b86ca1b"}]}
