)]}'
{"openstack/network/v2/_proxy.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3bb4272d65b1bbc89c9163fd82b922915c52b0a1","unresolved":false,"context_lines":[{"line_number":1503,"context_line":"        :rtype: :class:`~openstack.network.v2.port.Port`"},{"line_number":1504,"context_line":"        \"\"\""},{"line_number":1505,"context_line":"        port_obj \u003d self._get_resource(_port.Port, port)"},{"line_number":1506,"context_line":"        attrs \u003d port_obj.check_dhcp_options(**attrs)"},{"line_number":1507,"context_line":"        return self._update(_port.Port, port, **attrs)"},{"line_number":1508,"context_line":""},{"line_number":1509,"context_line":"    def add_ip_to_port(self, port, ip):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_f9627416","line":1506,"range":{"start_line":1506,"start_character":8,"end_line":1506,"end_character":52},"updated":"2017-11-21 13:08:13.000000000","message":"Is this always going to be wanted, or are there cases where you might not want them to be cleared? Just wondering if this should be conditional.","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"80d057515c2fea0d42ce196ee7a1a8a33f2adc49","unresolved":false,"context_lines":[{"line_number":1503,"context_line":"        :rtype: :class:`~openstack.network.v2.port.Port`"},{"line_number":1504,"context_line":"        \"\"\""},{"line_number":1505,"context_line":"        port_obj \u003d self._get_resource(_port.Port, port)"},{"line_number":1506,"context_line":"        attrs \u003d port_obj.check_dhcp_options(**attrs)"},{"line_number":1507,"context_line":"        return self._update(_port.Port, port, **attrs)"},{"line_number":1508,"context_line":""},{"line_number":1509,"context_line":"    def add_ip_to_port(self, port, ip):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_c3ec442b","line":1506,"range":{"start_line":1506,"start_character":8,"end_line":1506,"end_character":52},"in_reply_to":"ff82abbf_f9627416","updated":"2017-11-22 04:36:50.000000000","message":"I had a conditional check in the previous PS, but as Amotoki rightly said, the basics should not be exposed on the proxy layer...\nThis check is basically useful ( As of Right Now ) to clear the DHCP information.","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"}],"openstack/network/v2/port.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3bb4272d65b1bbc89c9163fd82b922915c52b0a1","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    #: *Type: list of tag strings*"},{"line_number":134,"context_line":"    tags \u003d resource.Body(\u0027tags\u0027, type\u003dlist)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_598fe0cb","line":136,"range":{"start_line":136,"start_character":8,"end_line":136,"end_character":26},"updated":"2017-11-21 13:08:13.000000000","message":"Since this is specifically about clearing the options I\u0027d probably use that name so it\u0027s more clear (no pun intended). clear_dhcp_options?","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"80d057515c2fea0d42ce196ee7a1a8a33f2adc49","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    #: *Type: list of tag strings*"},{"line_number":134,"context_line":"    tags \u003d resource.Body(\u0027tags\u0027, type\u003dlist)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_c3d52445","line":136,"range":{"start_line":136,"start_character":8,"end_line":136,"end_character":26},"in_reply_to":"ff82abbf_598fe0cb","updated":"2017-11-22 04:36:50.000000000","message":"The clear would occur Only if attrs[\u0027extra_dhcp_opts\u0027]\n is None, whioch would be during Unset operation only.\n\nIf it is not, then there would not be any impact on other Update oerations.\nI think check can work","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3bb4272d65b1bbc89c9163fd82b922915c52b0a1","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    tags \u003d resource.Body(\u0027tags\u0027, type\u003dlist)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":140,"context_line":"            for dhcp_opt in tmpcopy:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_d960d035","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":71},"updated":"2017-11-21 13:08:13.000000000","message":"Could you split this into two lines? I think it reads more clearly this way:\n\n    opts \u003d attrs.get(\"extra_dhcp_opts\", False)\n    if opts:\n        ...","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"80d057515c2fea0d42ce196ee7a1a8a33f2adc49","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    tags \u003d resource.Body(\u0027tags\u0027, type\u003dlist)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":140,"context_line":"            for dhcp_opt in tmpcopy:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_e377083a","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":71},"in_reply_to":"ff82abbf_d960d035","updated":"2017-11-22 04:36:50.000000000","message":"Done","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3bb4272d65b1bbc89c9163fd82b922915c52b0a1","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":140,"context_line":"            for dhcp_opt in tmpcopy:"},{"line_number":141,"context_line":"                dhcp_opt[\u0027opt_value\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_190b988e","line":138,"range":{"start_line":138,"start_character":12,"end_line":138,"end_character":23},"updated":"2017-11-21 13:08:13.000000000","message":"Should move this up top with the usual imports.","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"80d057515c2fea0d42ce196ee7a1a8a33f2adc49","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":140,"context_line":"            for dhcp_opt in tmpcopy:"},{"line_number":141,"context_line":"                dhcp_opt[\u0027opt_value\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_03730c4f","line":138,"range":{"start_line":138,"start_character":12,"end_line":138,"end_character":23},"in_reply_to":"ff82abbf_190b988e","updated":"2017-11-22 04:36:50.000000000","message":"Done","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3bb4272d65b1bbc89c9163fd82b922915c52b0a1","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":140,"context_line":"            for dhcp_opt in tmpcopy:"},{"line_number":141,"context_line":"                dhcp_opt[\u0027opt_value\u0027] \u003d None"},{"line_number":142,"context_line":"            attrs[\u0027extra_dhcp_opts\u0027] \u003d tmpcopy"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_f994b4ea","line":139,"range":{"start_line":139,"start_character":36,"end_line":139,"end_character":56},"updated":"2017-11-21 13:08:13.000000000","message":"This could be None if the port was created back in the proxy from an ID instead of a port instance. Is that expected?","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"80d057515c2fea0d42ce196ee7a1a8a33f2adc49","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":137,"context_line":"        if \u0027extra_dhcp_opts\u0027 in attrs and not attrs[\u0027extra_dhcp_opts\u0027]:"},{"line_number":138,"context_line":"            import copy"},{"line_number":139,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":140,"context_line":"            for dhcp_opt in tmpcopy:"},{"line_number":141,"context_line":"                dhcp_opt[\u0027opt_value\u0027] \u003d None"},{"line_number":142,"context_line":"            attrs[\u0027extra_dhcp_opts\u0027] \u003d tmpcopy"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_a3b820c8","line":139,"range":{"start_line":139,"start_character":36,"end_line":139,"end_character":56},"in_reply_to":"ff82abbf_f994b4ea","updated":"2017-11-22 04:36:50.000000000","message":"I check the _Get_resource() in openstack/proxy2\nAnd I agree...in such a case that the ID is passed and not the object,  it will not have the desired result. \n\nHowever, this function is primarily used during unset of DHCP options in the port.So it should have the port object and not the ID","commit_id":"e83b68006642fb8a3d7339d36e8ed635b87199c8"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5c9674728aa18682b92717f67e8532a09b981285","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    tags \u003d resource.Body(\u0027tags\u0027, type\u003dlist)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":138,"context_line":"        dhcp_opt \u003d attrs.get(\u0027extra_dhcp_opts\u0027, False)"},{"line_number":139,"context_line":"        if dhcp_opt:"},{"line_number":140,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":141,"context_line":"            for dhcp_opt in tmpcopy:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff82abbf_86a303b2","line":138,"range":{"start_line":138,"start_character":48,"end_line":138,"end_character":53},"updated":"2017-11-29 15:55:34.000000000","message":"Why False? even though it works, I believe the type should match that of extra_dhcp_opts.","commit_id":"be455fec9587e3d5a82e6e21df0199edbef09ae9"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"30157fb683baf537fdaed45d49544b24b26beaf7","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    tags \u003d resource.Body(\u0027tags\u0027, type\u003dlist)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def check_dhcp_options(self, **attrs):"},{"line_number":138,"context_line":"        dhcp_opt \u003d attrs.get(\u0027extra_dhcp_opts\u0027, False)"},{"line_number":139,"context_line":"        if dhcp_opt:"},{"line_number":140,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":141,"context_line":"            for dhcp_opt in tmpcopy:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_7829bc34","line":138,"range":{"start_line":138,"start_character":48,"end_line":138,"end_character":53},"in_reply_to":"ff82abbf_86a303b2","updated":"2017-12-12 05:51:47.000000000","message":"Done","commit_id":"be455fec9587e3d5a82e6e21df0199edbef09ae9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5c9674728aa18682b92717f67e8532a09b981285","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        dhcp_opt \u003d attrs.get(\u0027extra_dhcp_opts\u0027, False)"},{"line_number":139,"context_line":"        if dhcp_opt:"},{"line_number":140,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":141,"context_line":"            for dhcp_opt in tmpcopy:"},{"line_number":142,"context_line":"                dhcp_opt[\u0027opt_value\u0027] \u003d None"},{"line_number":143,"context_line":"            attrs[\u0027extra_dhcp_opts\u0027] \u003d tmpcopy"},{"line_number":144,"context_line":"        return attrs"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff82abbf_c6c34b37","line":142,"range":{"start_line":141,"start_character":12,"end_line":142,"end_character":44},"updated":"2017-11-29 15:55:34.000000000","message":"Setting opt_value to None means to delete existing opt_name.\nYour logic means to drop all existing dhcp opt. This is not what we want to do.","commit_id":"be455fec9587e3d5a82e6e21df0199edbef09ae9"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"30157fb683baf537fdaed45d49544b24b26beaf7","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        dhcp_opt \u003d attrs.get(\u0027extra_dhcp_opts\u0027, False)"},{"line_number":139,"context_line":"        if dhcp_opt:"},{"line_number":140,"context_line":"            tmpcopy \u003d copy.deepcopy(self.extra_dhcp_opts)"},{"line_number":141,"context_line":"            for dhcp_opt in tmpcopy:"},{"line_number":142,"context_line":"                dhcp_opt[\u0027opt_value\u0027] \u003d None"},{"line_number":143,"context_line":"            attrs[\u0027extra_dhcp_opts\u0027] \u003d tmpcopy"},{"line_number":144,"context_line":"        return attrs"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_5826386a","line":142,"range":{"start_line":141,"start_character":12,"end_line":142,"end_character":44},"in_reply_to":"ff82abbf_c6c34b37","updated":"2017-12-12 05:51:47.000000000","message":"Not All.\nWe can Unset specific DHCP options, cant we?","commit_id":"be455fec9587e3d5a82e6e21df0199edbef09ae9"}]}
