)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9963,"name":"Jiri Suchomel","email":"jiri.suchomel@suse.com","username":"jsuchome"},"change_message_id":"fa3ba1b3ca56da2c8f922fa1d7636b009d8f30d7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Scott Grasley \u003cscott.grasley@suse.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-02-28 09:15:30 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for mulitple VIPS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds support for configuring multiple VIPS when installed"},{"line_number":10,"context_line":"in multi network environment."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ffb9cba7_932b7f93","line":7,"updated":"2019-04-30 15:28:28.000000000","message":"Typo: mulitple","commit_id":"06330a3e5b54bdf1808ee02e7949434cb3e7ce32"}],"ingress/templates/bin/_ingress-vip-keepalived.sh.tpl":[{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"fea12e4e8958f2e310f1d2bd0259c9544169d7d7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"function start () {"},{"line_number":28,"context_line":"  for index in ${!iface_array[*]}; do"},{"line_number":29,"context_line":"    # Exit if the interface does not exist"},{"line_number":30,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 1"},{"line_number":31,"context_line":"    ip link set ${iface_array[$index]} up"},{"line_number":32,"context_line":"  done"},{"line_number":33,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"dfbec78f_e6bbb70b","line":30,"updated":"2019-05-03 07:11:14.000000000","message":"I wonder if this error handling is still correct for mulitple interfaces. Exiting half way through this function when e.g. only one of the interfaces exists seems wrong.","commit_id":"500178902c73a539192a594fd942a00458d266f0"},{"author":{"_account_id":11934,"name":"Scott Grasley","email":"sg0818@att.com","username":"grasley"},"change_message_id":"59086109eefe30e81b597d03a9492001eb2686ec","unresolved":false,"context_lines":[{"line_number":27,"context_line":"function start () {"},{"line_number":28,"context_line":"  for index in ${!iface_array[*]}; do"},{"line_number":29,"context_line":"    # Exit if the interface does not exist"},{"line_number":30,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 1"},{"line_number":31,"context_line":"    ip link set ${iface_array[$index]} up"},{"line_number":32,"context_line":"  done"},{"line_number":33,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"dfbec78f_15db007c","line":30,"in_reply_to":"dfbec78f_e6bbb70b","updated":"2019-05-13 14:56:29.000000000","message":"I don\u0027t think it is proper to have partial failure and not error. I am open for suggestions.","commit_id":"500178902c73a539192a594fd942a00458d266f0"},{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"9f8f098a3d114fda5706d79c02d37520ad4c8e19","unresolved":false,"context_lines":[{"line_number":27,"context_line":"function start () {"},{"line_number":28,"context_line":"  for index in ${!iface_array[*]}; do"},{"line_number":29,"context_line":"    # Exit if the interface does not exist"},{"line_number":30,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 1"},{"line_number":31,"context_line":"    ip link set ${iface_array[$index]} up"},{"line_number":32,"context_line":"  done"},{"line_number":33,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"dfbec78f_3650660b","line":30,"updated":"2019-05-15 13:14:23.000000000","message":"\u003e I don\u0027t think it is proper to have partial failure and not error. I\n \u003e am open for suggestions.\n\nE.g. first check for all interfaces and error out if one doesn\u0027t exist. If all exist start to bring them up.","commit_id":"bc69589e98ada3f733ebe32f200669f176452871"}],"ingress/templates/bin/_ingress-vip-routed.sh.tpl":[{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"fea12e4e8958f2e310f1d2bd0259c9544169d7d7","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"function stop () {"},{"line_number":58,"context_line":"  for index in ${!iface_array[*]};do"},{"line_number":59,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 0"},{"line_number":60,"context_line":"    if test_vip ${iface_array[$index]} ${addr_array[$index]} ; then"},{"line_number":61,"context_line":"      set_cidr_suffix ${addr_array[$index]}"},{"line_number":62,"context_line":"     ip addr del ${addr_array[$index]}/$cidr_suffix dev ${iface_array[$index]}"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"dfbec78f_064a8b26","line":59,"updated":"2019-05-03 07:11:14.000000000","message":"Also here, I don\u0027t think we want to skip all subsequent interface if one interface doesn\u0027t exist.","commit_id":"500178902c73a539192a594fd942a00458d266f0"},{"author":{"_account_id":11934,"name":"Scott Grasley","email":"sg0818@att.com","username":"grasley"},"change_message_id":"59086109eefe30e81b597d03a9492001eb2686ec","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"function stop () {"},{"line_number":58,"context_line":"  for index in ${!iface_array[*]};do"},{"line_number":59,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 0"},{"line_number":60,"context_line":"    if test_vip ${iface_array[$index]} ${addr_array[$index]} ; then"},{"line_number":61,"context_line":"      set_cidr_suffix ${addr_array[$index]}"},{"line_number":62,"context_line":"     ip addr del ${addr_array[$index]}/$cidr_suffix dev ${iface_array[$index]}"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"dfbec78f_75d35c61","line":59,"in_reply_to":"dfbec78f_064a8b26","updated":"2019-05-13 14:56:29.000000000","message":"I don\u0027t think it is proper to have partial failure and not error. I am open for suggestions.","commit_id":"500178902c73a539192a594fd942a00458d266f0"},{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"9f8f098a3d114fda5706d79c02d37520ad4c8e19","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"function stop () {"},{"line_number":58,"context_line":"  for index in ${!iface_array[*]};do"},{"line_number":59,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 0"},{"line_number":60,"context_line":"    if test_vip ${iface_array[$index]} ${addr_array[$index]} ; then"},{"line_number":61,"context_line":"      set_cidr_suffix ${addr_array[$index]}"},{"line_number":62,"context_line":"     ip addr del ${addr_array[$index]}/$cidr_suffix dev ${iface_array[$index]}"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"dfbec78f_f6072e17","line":59,"in_reply_to":"dfbec78f_75d35c61","updated":"2019-05-15 13:14:23.000000000","message":"Is it actually an really an error if one of the interface you\u0027re trying to bring down doesn\u0027t exist anymore? I think this loop should just skip interfaces that are non-existant and continue to try to bring down the rest of the interfaces.","commit_id":"500178902c73a539192a594fd942a00458d266f0"},{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"9f8f098a3d114fda5706d79c02d37520ad4c8e19","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"function stop () {"},{"line_number":58,"context_line":"  for index in ${!iface_array[*]};do"},{"line_number":59,"context_line":"    ip link show ${iface_array[$index]} \u003e /dev/null || exit 0"},{"line_number":60,"context_line":"    if test_vip ${iface_array[$index]} ${addr_array[$index]} ; then"},{"line_number":61,"context_line":"      set_cidr_suffix ${addr_array[$index]}"},{"line_number":62,"context_line":"     ip addr del ${addr_array[$index]}/$cidr_suffix dev ${iface_array[$index]}"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"dfbec78f_968b5266","line":59,"updated":"2019-05-15 13:14:23.000000000","message":"\u003e I don\u0027t think it is proper to have partial failure and not error. I am open for suggestions.\n\nIs it actually an really an error if one of the interface you\u0027re trying to bring down doesn\u0027t exist anymore? I think this loop should just skip interfaces that are non-existant and continue to try to bring down the rest of the interfaces.","commit_id":"bc69589e98ada3f733ebe32f200669f176452871"}],"ingress/templates/configmap-conf.yaml":[{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"fea12e4e8958f2e310f1d2bd0259c9544169d7d7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"{{- $_ :\u003d set .Values.network.vip \"mode\" \"routed\" -}}"},{"line_number":21,"context_line":"{{- end -}}"},{"line_number":22,"context_line":"{{- if empty (index .Values.conf.ingress \"bind-address\") -}}"},{"line_number":23,"context_line":"{{- $_ :\u003d set .Values.conf.ingress \"bind-address\" .Values.network.vip.addrs }}"},{"line_number":24,"context_line":"{{- end -}}"},{"line_number":25,"context_line":"{{- end -}}"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_06212b4e","line":23,"updated":"2019-05-03 07:11:14.000000000","message":"Nit: I think for consistency this should also end with \"-}}\" even if not strictly needed","commit_id":"500178902c73a539192a594fd942a00458d266f0"}],"ingress/values.yaml":[{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"fea12e4e8958f2e310f1d2bd0259c9544169d7d7","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    mode: routed"},{"line_number":106,"context_line":"    # comma separated lists"},{"line_number":107,"context_line":"    interfaces: ingress-vip,admin-vip"},{"line_number":108,"context_line":"    addrs: 172.18.0.1,172.17.0.1"},{"line_number":109,"context_line":"  ingress:"},{"line_number":110,"context_line":"    annotations:"},{"line_number":111,"context_line":"      #NOTE(portdirect): if left blank this is populated from"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_66e107ff","line":108,"updated":"2019-05-03 07:11:14.000000000","message":"What\u0027s the reason for not staying with the cidr notation here? Wouldn\u0027t we actually need that for IPv6?","commit_id":"500178902c73a539192a594fd942a00458d266f0"},{"author":{"_account_id":11934,"name":"Scott Grasley","email":"sg0818@att.com","username":"grasley"},"change_message_id":"59086109eefe30e81b597d03a9492001eb2686ec","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    mode: routed"},{"line_number":106,"context_line":"    # comma separated lists"},{"line_number":107,"context_line":"    interfaces: ingress-vip,admin-vip"},{"line_number":108,"context_line":"    addrs: 172.18.0.1,172.17.0.1"},{"line_number":109,"context_line":"  ingress:"},{"line_number":110,"context_line":"    annotations:"},{"line_number":111,"context_line":"      #NOTE(portdirect): if left blank this is populated from"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_15e54009","line":108,"in_reply_to":"dfbec78f_66e107ff","updated":"2019-05-13 14:56:29.000000000","message":"Cidr is hard coded for host only address so /32 for ipv4 /128 for ipv6","commit_id":"500178902c73a539192a594fd942a00458d266f0"}]}
