)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"229b1b0e482d5d0f2e681fb00999f291807005c9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":20,"id":"d41eaacc_37c8c8ae","updated":"2024-05-05 05:53:42.000000000","message":"A patch to the master branch can\u0027t be cherry-pick. I can\u0027t find that commit id.\n\nGiven the unfortunate fact that SUSE no longer provides their OpenStack packages, I think we should abandon this and the subsequent changes now.","commit_id":"658911e1368e5edc7edc3d52c6ee2e359fbd746e"}],"octavia/amphorae/backends/agent/api_server/osutils.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"74b11b2f5941a2aff75db73efe1cd5c649bb38b1","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        return os_name in [\u0027openSuse\u0027, \u0027SuSE\u0027, \u0027SUSE\u0027]"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def cmd_get_version_of_installed_package(self, package_name):"},{"line_number":468,"context_line":"        return \"dpkg --status {name}\".format(name\u003dpackage_name)"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def get_network_interface_file(self, interface):"},{"line_number":471,"context_line":"        if CONF.amphora_agent.agent_server_network_file:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_66e297d7","line":468,"updated":"2018-04-13 05:40:46.000000000","message":"dpkg is wrong. SUSE uses rpm/zypper","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"3ef29fb4e2ba1926803a33ec3f4e470a0fdb3596","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        return os_name in [\u0027openSuse\u0027, \u0027SuSE\u0027, \u0027SUSE\u0027]"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def cmd_get_version_of_installed_package(self, package_name):"},{"line_number":468,"context_line":"        return \"dpkg --status {name}\".format(name\u003dpackage_name)"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def get_network_interface_file(self, interface):"},{"line_number":471,"context_line":"        if CONF.amphora_agent.agent_server_network_file:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_a2dad847","line":468,"in_reply_to":"bf659307_66e297d7","updated":"2018-04-13 08:17:33.000000000","message":"Done","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"74b11b2f5941a2aff75db73efe1cd5c649bb38b1","unresolved":false,"context_lines":[{"line_number":531,"context_line":"        # NOTE: Copy{netns}/etc/sysconfig/network/ifroute-* file to"},{"line_number":532,"context_line":"        # /etc/sysconfig/network to overcome an issue with the"},{"line_number":533,"context_line":"        # ifup-route and namespace."},{"line_number":534,"context_line":"        dst \u003d \u0027/etc/sysconfig/network\u0027"},{"line_number":535,"context_line":"        shutil.copy2(routes_interface_file_path, dst)"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def write_static_routes_interface_file(self, interface_file_path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_26e81fb1","line":534,"updated":"2018-04-13 05:40:46.000000000","message":"Shouldn\u0027t that be self.get_network_path() ?","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"3ef29fb4e2ba1926803a33ec3f4e470a0fdb3596","unresolved":false,"context_lines":[{"line_number":531,"context_line":"        # NOTE: Copy{netns}/etc/sysconfig/network/ifroute-* file to"},{"line_number":532,"context_line":"        # /etc/sysconfig/network to overcome an issue with the"},{"line_number":533,"context_line":"        # ifup-route and namespace."},{"line_number":534,"context_line":"        dst \u003d \u0027/etc/sysconfig/network\u0027"},{"line_number":535,"context_line":"        shutil.copy2(routes_interface_file_path, dst)"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def write_static_routes_interface_file(self, interface_file_path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_c2dd8c41","line":534,"in_reply_to":"bf659307_26e81fb1","updated":"2018-04-13 08:17:33.000000000","message":"Done","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"74b11b2f5941a2aff75db73efe1cd5c649bb38b1","unresolved":false,"context_lines":[{"line_number":572,"context_line":"    def _bring_ns_if_up(self, interface, what):"},{"line_number":573,"context_line":"        # Note, we are not using pyroute2 for this as it is not /etc/netns"},{"line_number":574,"context_line":"        # aware."},{"line_number":575,"context_line":"        os.chdir(\u0027/etc/sysconfig/network\u0027)"},{"line_number":576,"context_line":"        cmd \u003d (\"ip netns exec {ns} ifup.ns {params}\".format("},{"line_number":577,"context_line":"            ns\u003dconsts.AMPHORA_NAMESPACE, params\u003dinterface))"},{"line_number":578,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_e6cd475d","line":575,"updated":"2018-04-13 05:40:46.000000000","message":"self.get_network_path() ?","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"3ef29fb4e2ba1926803a33ec3f4e470a0fdb3596","unresolved":false,"context_lines":[{"line_number":572,"context_line":"    def _bring_ns_if_up(self, interface, what):"},{"line_number":573,"context_line":"        # Note, we are not using pyroute2 for this as it is not /etc/netns"},{"line_number":574,"context_line":"        # aware."},{"line_number":575,"context_line":"        os.chdir(\u0027/etc/sysconfig/network\u0027)"},{"line_number":576,"context_line":"        cmd \u003d (\"ip netns exec {ns} ifup.ns {params}\".format("},{"line_number":577,"context_line":"            ns\u003dconsts.AMPHORA_NAMESPACE, params\u003dinterface))"},{"line_number":578,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_62e840e1","line":575,"in_reply_to":"bf659307_e6cd475d","updated":"2018-04-13 08:17:33.000000000","message":"Done","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"74b11b2f5941a2aff75db73efe1cd5c649bb38b1","unresolved":false,"context_lines":[{"line_number":587,"context_line":"    def _bring_ns_if_down(self, interface):"},{"line_number":588,"context_line":"        # Note, we are not using pyroute2 for this as it is not /etc/netns"},{"line_number":589,"context_line":"        # aware."},{"line_number":590,"context_line":"        os.chdir(\u0027/etc/sysconfig/network\u0027)"},{"line_number":591,"context_line":"        cmd \u003d (\"ip netns exec {ns} ifdown.ns {params}\".format("},{"line_number":592,"context_line":"            ns\u003dconsts.AMPHORA_NAMESPACE, params\u003dinterface))"},{"line_number":593,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_86d80b1e","line":590,"updated":"2018-04-13 05:40:46.000000000","message":"self.get_network_path() ?\nBut I wonder why you need to change the cwd","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"3ef29fb4e2ba1926803a33ec3f4e470a0fdb3596","unresolved":false,"context_lines":[{"line_number":587,"context_line":"    def _bring_ns_if_down(self, interface):"},{"line_number":588,"context_line":"        # Note, we are not using pyroute2 for this as it is not /etc/netns"},{"line_number":589,"context_line":"        # aware."},{"line_number":590,"context_line":"        os.chdir(\u0027/etc/sysconfig/network\u0027)"},{"line_number":591,"context_line":"        cmd \u003d (\"ip netns exec {ns} ifdown.ns {params}\".format("},{"line_number":592,"context_line":"            ns\u003dconsts.AMPHORA_NAMESPACE, params\u003dinterface))"},{"line_number":593,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_42e97ce0","line":590,"in_reply_to":"bf659307_86d80b1e","updated":"2018-04-13 08:17:33.000000000","message":"Done","commit_id":"e39660463752a69d285b2df9c76b5cd8ca26802a"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"0534826e38bbbb9737f50ea2b70a0d9532a9a40c","unresolved":false,"context_lines":[{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    @classmethod"},{"line_number":537,"context_line":"    def is_os_name(cls, os_name):"},{"line_number":538,"context_line":"        return os_name in [\u0027openSuse\u0027, \u0027SuSE\u0027, \u0027SUSE\u0027]"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def cmd_get_version_of_installed_package(self, package_name):"},{"line_number":541,"context_line":"        return \"rpm -qi {name}\".format(name\u003dpackage_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_95f417f3","line":538,"range":{"start_line":538,"start_character":52,"end_line":538,"end_character":54},"updated":"2019-02-21 16:34:20.000000000","message":"looks like we also need to add \u0027sles\u0027 to the list as well","commit_id":"13e57f4b082cfd2feeb69f4d61c5e9c2c186f14d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":527,"context_line":"        return os_name in [\u0027centos\u0027]"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"class Suse(BaseOS):"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    ETH_X_PORT_CONF \u003d \u0027suse_plug_port_ethX.conf.j2\u0027"},{"line_number":533,"context_line":"    ETH_X_VIP_CONF \u003d \u0027suse_plug_vip_ethX.conf.j2\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_c85e58e8","line":530,"updated":"2019-02-25 07:28:04.000000000","message":"It\u0027s SUSE, not Suse","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":527,"context_line":"        return os_name in [\u0027centos\u0027]"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"class Suse(BaseOS):"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    ETH_X_PORT_CONF \u003d \u0027suse_plug_port_ethX.conf.j2\u0027"},{"line_number":533,"context_line":"    ETH_X_VIP_CONF \u003d \u0027suse_plug_vip_ethX.conf.j2\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_3cee3822","line":530,"in_reply_to":"9fdfeff1_c85e58e8","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        return os_name.lower() in [\u0027opensuse\u0027, \u0027suse\u0027, \u0027sles\u0027]"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def cmd_get_version_of_installed_package(self, package_name):"},{"line_number":541,"context_line":"        return \"rpm -qi {name}\".format(name\u003dpackage_name)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def get_network_interface_file(self, interface):"},{"line_number":544,"context_line":"        if CONF.amphora_agent.agent_server_network_file:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_fc81cba1","line":541,"updated":"2019-02-25 07:28:04.000000000","message":"If this should return the version (as the method name says), it should be something like \u0027rpm -q --qf \"%{VERSION}\\n\" $pgkname\u0027","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        return os_name.lower() in [\u0027opensuse\u0027, \u0027suse\u0027, \u0027sles\u0027]"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def cmd_get_version_of_installed_package(self, package_name):"},{"line_number":541,"context_line":"        return \"rpm -qi {name}\".format(name\u003dpackage_name)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def get_network_interface_file(self, interface):"},{"line_number":544,"context_line":"        if CONF.amphora_agent.agent_server_network_file:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_37517337","line":541,"in_reply_to":"9fdfeff1_fc81cba1","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def get_network_interface_file(self, interface):"},{"line_number":544,"context_line":"        if CONF.amphora_agent.agent_server_network_file:"},{"line_number":545,"context_line":"            return CONF.amphora_agent.agent_server_network_file"},{"line_number":546,"context_line":"        if CONF.amphora_agent.agent_server_network_dir:"},{"line_number":547,"context_line":"            return os.path.join(CONF.amphora_agent.agent_server_network_dir,"},{"line_number":548,"context_line":"                                \u0027ifcfg-\u0027 + interface)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_e829dc88","line":545,"updated":"2019-02-25 07:28:04.000000000","message":"I don\u0027t think this makes sense on openSUSE/SLES. There is no single network file (like there is for Debian/Ubuntu with /etc/network/interfaces). I would print a warning when \"agent_server_network_file\" is set and say that this will be ignored but instead agent_server_network_dir will be used.","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def get_network_interface_file(self, interface):"},{"line_number":544,"context_line":"        if CONF.amphora_agent.agent_server_network_file:"},{"line_number":545,"context_line":"            return CONF.amphora_agent.agent_server_network_file"},{"line_number":546,"context_line":"        if CONF.amphora_agent.agent_server_network_dir:"},{"line_number":547,"context_line":"            return os.path.join(CONF.amphora_agent.agent_server_network_dir,"},{"line_number":548,"context_line":"                                \u0027ifcfg-\u0027 + interface)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_b169eebe","line":545,"in_reply_to":"9fdfeff1_e829dc88","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":545,"context_line":"            return CONF.amphora_agent.agent_server_network_file"},{"line_number":546,"context_line":"        if CONF.amphora_agent.agent_server_network_dir:"},{"line_number":547,"context_line":"            return os.path.join(CONF.amphora_agent.agent_server_network_dir,"},{"line_number":548,"context_line":"                                \u0027ifcfg-\u0027 + interface)"},{"line_number":549,"context_line":"        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format("},{"line_number":550,"context_line":"            netns\u003dconsts.AMPHORA_NAMESPACE)"},{"line_number":551,"context_line":"        ifcfg_prefix \u003d \u0027ifcfg-\u0027 if \u0027ifroute\u0027 in interface else \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_2d013607","line":548,"updated":"2019-02-25 07:28:04.000000000","message":"Theses are just the compat files (that are read by wicked). The interface could also be configured via wicked and then there is no /etc/sysconfig/network/ifcfg-* files. But maybe we can ignore that case for now.","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":545,"context_line":"            return CONF.amphora_agent.agent_server_network_file"},{"line_number":546,"context_line":"        if CONF.amphora_agent.agent_server_network_dir:"},{"line_number":547,"context_line":"            return os.path.join(CONF.amphora_agent.agent_server_network_dir,"},{"line_number":548,"context_line":"                                \u0027ifcfg-\u0027 + interface)"},{"line_number":549,"context_line":"        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format("},{"line_number":550,"context_line":"            netns\u003dconsts.AMPHORA_NAMESPACE)"},{"line_number":551,"context_line":"        ifcfg_prefix \u003d \u0027ifcfg-\u0027 if \u0027ifroute\u0027 in interface else \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_319bbec9","line":548,"in_reply_to":"9fdfeff1_2d013607","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                                \u0027ifcfg-\u0027 + interface)"},{"line_number":549,"context_line":"        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format("},{"line_number":550,"context_line":"            netns\u003dconsts.AMPHORA_NAMESPACE)"},{"line_number":551,"context_line":"        ifcfg_prefix \u003d \u0027ifcfg-\u0027 if \u0027ifroute\u0027 in interface else \u0027\u0027"},{"line_number":552,"context_line":"        return os.path.join(network_dir, ifcfg_prefix + interface)"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def get_network_path(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_282fe488","line":551,"updated":"2019-02-25 07:28:04.000000000","message":"can \"ifroute\" in in the variable $interface? If so, you need to check that in the previous return statements as well..","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                                \u0027ifcfg-\u0027 + interface)"},{"line_number":549,"context_line":"        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format("},{"line_number":550,"context_line":"            netns\u003dconsts.AMPHORA_NAMESPACE)"},{"line_number":551,"context_line":"        ifcfg_prefix \u003d \u0027ifcfg-\u0027 if \u0027ifroute\u0027 in interface else \u0027\u0027"},{"line_number":552,"context_line":"        return os.path.join(network_dir, ifcfg_prefix + interface)"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def get_network_path(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_915cea19","line":551,"in_reply_to":"9fdfeff1_282fe488","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":554,"context_line":"    def get_network_path(self):"},{"line_number":555,"context_line":"        return \u0027/etc/sysconfig/network\u0027"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def get_netns_network_dir(self):"},{"line_number":558,"context_line":"        network_full_path \u003d self.get_network_path()"},{"line_number":559,"context_line":"        network_basename \u003d os.path.basename(network_full_path)"},{"line_number":560,"context_line":"        network_dirname \u003d os.path.dirname(network_full_path)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_a8cd14b8","line":557,"updated":"2019-02-25 07:28:04.000000000","message":"What is that directory good for?","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        network_basename \u003d os.path.basename(network_full_path)"},{"line_number":560,"context_line":"        network_dirname \u003d os.path.dirname(network_full_path)"},{"line_number":561,"context_line":"        network_prefixdir \u003d os.path.basename(network_dirname)"},{"line_number":562,"context_line":"        return os.path.join(network_prefixdir, network_basename)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def get_static_routes_interface_file(self, interface):"},{"line_number":565,"context_line":"        return self.get_network_interface_file(\u0027ifroute-\u0027 + interface)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_48490830","line":562,"updated":"2019-02-25 07:28:04.000000000","message":"Given that you hardcode the return value of \"get_network_path()\", can\u0027t you just hardcode the return value for this function as well (to \"sysconfig/network\"). Calling 5 functions to get this value seems not very efficient imo","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        network_basename \u003d os.path.basename(network_full_path)"},{"line_number":560,"context_line":"        network_dirname \u003d os.path.dirname(network_full_path)"},{"line_number":561,"context_line":"        network_prefixdir \u003d os.path.basename(network_dirname)"},{"line_number":562,"context_line":"        return os.path.join(network_prefixdir, network_basename)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def get_static_routes_interface_file(self, interface):"},{"line_number":565,"context_line":"        return self.get_network_interface_file(\u0027ifroute-\u0027 + interface)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_31373eb3","line":562,"in_reply_to":"9fdfeff1_48490830","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":578,"context_line":"            network_dir, netns_network_dir, ignore)"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def write_interfaces_file(self):"},{"line_number":581,"context_line":"        # No interfaces file in Suse distros."},{"line_number":582,"context_line":"        return"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"    def write_vip_interface_file(self, interface_file_path,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_c803b8bd","line":581,"updated":"2019-02-25 07:28:04.000000000","message":"SUSE, not Suse","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":578,"context_line":"            network_dir, netns_network_dir, ignore)"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def write_interfaces_file(self):"},{"line_number":581,"context_line":"        # No interfaces file in Suse distros."},{"line_number":582,"context_line":"        return"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"    def write_vip_interface_file(self, interface_file_path,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_71ece6f3","line":581,"in_reply_to":"9fdfeff1_c803b8bd","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":25623,"name":"Fergal Mc Carthy","email":"rahn.tamalin@gmail.com","username":"fergal_mccarthy"},"change_message_id":"4dfb469fa2ef9f86df703a299af878a1f82d0fbd","unresolved":false,"context_lines":[{"line_number":550,"context_line":"                        \u0027instead.\u0027,"},{"line_number":551,"context_line":"                        CONF.amphora_agent.agent_server_network_file)"},{"line_number":552,"context_line":"        ifcfg_prefix \u003d \u0027ifcfg-\u0027 if \u0027ifroute\u0027 not in interface else \u0027\u0027"},{"line_number":553,"context_line":"        if CONF.amphora_agent.agent_server_network_dir:"},{"line_number":554,"context_line":"            return os.path.join(CONF.amphora_agent.agent_server_network_dir,"},{"line_number":555,"context_line":"                                ifcfg_prefix + interface)"},{"line_number":556,"context_line":"        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format("}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_d138523e","line":553,"updated":"2019-03-11 19:50:02.000000000","message":"Why not just use a single return statement, since you have restructured things this way... E.g.\n\n    if CONF.amphora_agent.agent_server_network_dir:\n        network_dir \u003d CONF.amphora_agent.agent_server_network_dir\n    else:\n        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format(\n            netns\u003dconsts.AMPHORA_NAMESPACE)\n    return os.path.join(network_dir, ifcfg_prefix + interface)","commit_id":"73d68274aae7c7e05820e795d2341bd0c66ea672"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"2a7ddf55e442eef569b5d356e03bc5e4a56b2a1d","unresolved":false,"context_lines":[{"line_number":550,"context_line":"                        \u0027instead.\u0027,"},{"line_number":551,"context_line":"                        CONF.amphora_agent.agent_server_network_file)"},{"line_number":552,"context_line":"        ifcfg_prefix \u003d \u0027ifcfg-\u0027 if \u0027ifroute\u0027 not in interface else \u0027\u0027"},{"line_number":553,"context_line":"        if CONF.amphora_agent.agent_server_network_dir:"},{"line_number":554,"context_line":"            return os.path.join(CONF.amphora_agent.agent_server_network_dir,"},{"line_number":555,"context_line":"                                ifcfg_prefix + interface)"},{"line_number":556,"context_line":"        network_dir \u003d consts.SUSE_AMP_NET_DIR_TEMPLATE.format("}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_b15ca67e","line":553,"in_reply_to":"5fc1f717_d138523e","updated":"2019-03-11 19:53:55.000000000","message":"Done","commit_id":"73d68274aae7c7e05820e795d2341bd0c66ea672"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"980561d75576435c45953c58452962cf673a4d27","unresolved":false,"context_lines":[{"line_number":728,"context_line":"        self._bring_if_up(primary_interface, \u0027VIP\u0027)"},{"line_number":729,"context_line":"        if secondary_interface:"},{"line_number":730,"context_line":"            self._bring_if_down(secondary_interface)"},{"line_number":731,"context_line":"            self._bring_if_up(secondary_interfaces, \u0027VIP\u0027, flush\u003dFalse)"},{"line_number":732,"context_line":""},{"line_number":733,"context_line":"    def has_ifup_all(self):"},{"line_number":734,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":14,"id":"ff570b3c_d79cac0f","line":731,"updated":"2020-05-18 21:31:50.000000000","message":"pep8: F821 undefined name \u0027secondary_interfaces\u0027","commit_id":"97c1d22858741ec28def8c49addc58a09bb27473"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"308157a15f36dbb1f281eef3ff43af46ccfd40d2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Red Hat, Inc. All rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":17,"id":"ff570b3c_4a616d39","line":1,"updated":"2020-05-27 18:38:48.000000000","message":"pep8: E902 TokenError: EOF in multi-line statement","commit_id":"a67989898a58f67b8ac015f3767a377f9f71d268"}],"octavia/amphorae/backends/agent/api_server/templates/suse_plug_port_ethX.conf.j2":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3f50f2aceada9e089cc4f06f08ba8a461b51f326","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{#"},{"line_number":2,"context_line":"# Copyright 2018 SUSE LLC"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"9fdfeff1_880db0e9","line":2,"updated":"2019-02-25 07:28:04.000000000","message":"2019","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{#"},{"line_number":2,"context_line":"# Copyright 2018 SUSE LLC"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"9fdfeff1_51d8c251","line":2,"in_reply_to":"9fdfeff1_880db0e9","updated":"2019-02-26 04:43:12.000000000","message":"wow, didn\u0027t realize this patch\u0027s been there since Feb of 2018. :-) Time does fly.","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"}],"octavia/amphorae/backends/agent/api_server/templates/suse_route_ethX.conf.j2":[{"author":{"_account_id":6579,"name":"Nir Magnezi","email":"nmagnezi@redhat.com","username":"nmagnezi"},"change_message_id":"b6970e786812f455f0594fa025ca45b9855cf306","unresolved":false,"context_lines":[{"line_number":19,"context_line":"{%- endfor %}"},{"line_number":20,"context_line":"# Add a source routing table to allow members to access the VIP"},{"line_number":21,"context_line":"{%- if gateway %}"},{"line_number":22,"context_line":"default  {{ gateway }} - - "},{"line_number":23,"context_line":"{%- endif %}"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"9fdfeff1_a15537fc","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":27},"updated":"2019-02-24 19:18:35.000000000","message":"nit: whitespace.","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"dc5cf63e98101b212d5372c500747bceb3393fb7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"{%- endfor %}"},{"line_number":20,"context_line":"# Add a source routing table to allow members to access the VIP"},{"line_number":21,"context_line":"{%- if gateway %}"},{"line_number":22,"context_line":"default  {{ gateway }} - - "},{"line_number":23,"context_line":"{%- endif %}"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"9fdfeff1_b1e6ce15","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":27},"in_reply_to":"9fdfeff1_a15537fc","updated":"2019-02-26 04:43:12.000000000","message":"Done","commit_id":"29cef3d0961266fcb74d353f9415d5f434cf586e"}]}
