)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8898,"name":"Chris Wedgwood","email":"cw@f00f.org","username":"anticw"},"change_message_id":"be8c3843baa51afb2667ebde7b86dc43a28872bc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Livenss probe for Neutron agents"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is not a straight forward way to find if a Neutron agent is live and"},{"line_number":10,"context_line":"responding. This implementation tries to error out only when it"},{"line_number":11,"context_line":"is certian that agent is not live. All other cases it returns success."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fdfeff1_269dbebb","line":9,"range":{"start_line":9,"start_character":66,"end_line":9,"end_character":74},"updated":"2019-01-28 18:22:45.000000000","message":"wrap","commit_id":"fe7bf1eb00323a1dbd947e40fa3bac23f86a2539"}],"neutron/templates/bin/_liveness-probe.py.tpl":[{"author":{"_account_id":18250,"name":"Roy Tang","email":"roy.s.tang@att.com","username":"rt7380"},"change_message_id":"ef2b5c7db52310e689b3b39e8ec3b2ba6c580035","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    conn \u003d connection.Connection(transport_url)"},{"line_number":110,"context_line":"    conn.connect()"},{"line_number":111,"context_line":"    if not conn.connected:"},{"line_number":112,"context_line":"        sys.exit(0)  # return success"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    conn.close()"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_e3214cb6","line":112,"range":{"start_line":111,"start_character":21,"end_line":112,"end_character":37},"updated":"2019-01-22 16:43:54.000000000","message":"I am lazy to look it up, but sounds like if connected then we are good right... so should it be if \"not conn.connected\" then sys.exit(1) instead?","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18256,"name":"Hemachandra Reddy","email":"hemachandra.reddy@att.com","username":"hr858f"},"change_message_id":"6c1f9653ed5baa88585303efa15b9e0ddb583811","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    conn \u003d connection.Connection(transport_url)"},{"line_number":110,"context_line":"    conn.connect()"},{"line_number":111,"context_line":"    if not conn.connected:"},{"line_number":112,"context_line":"        sys.exit(0)  # return success"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    conn.close()"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_263a0236","line":112,"range":{"start_line":111,"start_character":21,"end_line":112,"end_character":37},"in_reply_to":"9fdfeff1_e3214cb6","updated":"2019-01-22 17:16:13.000000000","message":"Agent state is determined only when Neutron server, database and message broker are up and reachable. In all other condition we cannot assume L3 is down and restart it.\n\nSo if the database is down, I do not want to restart pod.\n\nWe play safe in all the conditions we evaluate. See comment at the top of the script.","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18250,"name":"Roy Tang","email":"roy.s.tang@att.com","username":"rt7380"},"change_message_id":"ef2b5c7db52310e689b3b39e8ec3b2ba6c580035","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def check_neutron_server_status():"},{"line_number":117,"context_line":"    response \u003d requests.get(cfg.CONF.neutron_server_endpoint)"},{"line_number":118,"context_line":"    if response.status_code \u003e 399:"},{"line_number":119,"context_line":"        sys.exit(0)  # return success"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"def check_agent_status():"},{"line_number":122,"context_line":"    context_manager \u003d enginefacade.transaction_context()"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_e35cec4c","line":119,"range":{"start_line":118,"start_character":21,"end_line":119,"end_character":21},"updated":"2019-01-22 16:43:54.000000000","message":"should this be if \"\u003c\u003d 399\" then \"sys.exit(1)\"?  so we can execute the other checks?","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18256,"name":"Hemachandra Reddy","email":"hemachandra.reddy@att.com","username":"hr858f"},"change_message_id":"6c1f9653ed5baa88585303efa15b9e0ddb583811","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def check_neutron_server_status():"},{"line_number":117,"context_line":"    response \u003d requests.get(cfg.CONF.neutron_server_endpoint)"},{"line_number":118,"context_line":"    if response.status_code \u003e 399:"},{"line_number":119,"context_line":"        sys.exit(0)  # return success"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"def check_agent_status():"},{"line_number":122,"context_line":"    context_manager \u003d enginefacade.transaction_context()"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_467946fa","line":119,"range":{"start_line":118,"start_character":21,"end_line":119,"end_character":21},"in_reply_to":"9fdfeff1_e35cec4c","updated":"2019-01-22 17:16:13.000000000","message":"Same as explained above. If we cannot reach Neutron server, let\u0027s not restart Pod. If we can reach proceed further to evaluate the other conditions.","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18250,"name":"Roy Tang","email":"roy.s.tang@att.com","username":"rt7380"},"change_message_id":"ef2b5c7db52310e689b3b39e8ec3b2ba6c580035","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    if agent_list.count() \u003d\u003d 0:"},{"line_number":130,"context_line":"        sys.exit(1)  # return failure"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    if agent_list.count() \u003e 1:"},{"line_number":133,"context_line":"        sys.exit(0)  # return success"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    if not agent_list[0].admin_state_up:"},{"line_number":136,"context_line":"        sys.exit(1)  # return failure"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_c3b1a891","line":133,"range":{"start_line":132,"start_character":20,"end_line":133,"end_character":37},"updated":"2019-01-22 16:43:54.000000000","message":"why is this needed even?  this would mean the next 2 checks will never be run right?  :)\nprobably just delete this check altogether.","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18256,"name":"Hemachandra Reddy","email":"hemachandra.reddy@att.com","username":"hr858f"},"change_message_id":"6c1f9653ed5baa88585303efa15b9e0ddb583811","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    if agent_list.count() \u003d\u003d 0:"},{"line_number":130,"context_line":"        sys.exit(1)  # return failure"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    if agent_list.count() \u003e 1:"},{"line_number":133,"context_line":"        sys.exit(0)  # return success"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    if not agent_list[0].admin_state_up:"},{"line_number":136,"context_line":"        sys.exit(1)  # return failure"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_a64cb2c7","line":133,"range":{"start_line":132,"start_character":20,"end_line":133,"end_character":37},"in_reply_to":"9fdfeff1_c3b1a891","updated":"2019-01-22 17:16:13.000000000","message":"There should just be one L3 agent per node. If there was a problem with deployment and if we indeed end up with more than one, I do not want to restart POD. Also, there is no way for this script to map agent and its UUID from the database.","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18250,"name":"Roy Tang","email":"roy.s.tang@att.com","username":"rt7380"},"change_message_id":"ef2b5c7db52310e689b3b39e8ec3b2ba6c580035","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    cfg.CONF(sys.argv[1:])"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    if not cfg.CONF.transport_url:"},{"line_number":157,"context_line":"        sys.exit(0)  # return success"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    main()"},{"line_number":160,"context_line":"    sys.exit(0)  # return success"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_8307201d","line":157,"range":{"start_line":156,"start_character":17,"end_line":157,"end_character":19},"updated":"2019-01-22 16:43:54.000000000","message":"why is this a success scenario?","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":18256,"name":"Hemachandra Reddy","email":"hemachandra.reddy@att.com","username":"hr858f"},"change_message_id":"6c1f9653ed5baa88585303efa15b9e0ddb583811","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    cfg.CONF(sys.argv[1:])"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    if not cfg.CONF.transport_url:"},{"line_number":157,"context_line":"        sys.exit(0)  # return success"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    main()"},{"line_number":160,"context_line":"    sys.exit(0)  # return success"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"9fdfeff1_06d1fecd","line":157,"range":{"start_line":156,"start_character":17,"end_line":157,"end_character":19},"in_reply_to":"9fdfeff1_8307201d","updated":"2019-01-22 17:16:13.000000000","message":"Just do not restart POD if transport_url is missing from conf. The script cannot check message broker reachability.","commit_id":"113240e5b4992de9eec938a2f8aa9503f1e370b4"},{"author":{"_account_id":8898,"name":"Chris Wedgwood","email":"cw@f00f.org","username":"anticw"},"change_message_id":"be8c3843baa51afb2667ebde7b86dc43a28872bc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# python liveness-probe.py --config-file /etc/neutron/neutron.conf \\"},{"line_number":2,"context_line":"#  --config-file /etc/neutron/l3_agent.ini \\"},{"line_number":3,"context_line":"#  --agent-name \u003cName displayed in \"openstack network agent list\" command\u003e \\"},{"line_number":4,"context_line":"#  --neutron-server-endpoint \u003cneutron-server public endpoint\u003e"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"9fdfeff1_66b66641","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":2},"updated":"2019-01-28 18:22:45.000000000","message":"shebang?","commit_id":"fe7bf1eb00323a1dbd947e40fa3bac23f86a2539"}],"neutron/templates/bin/_readiness-probe.sh.tpl":[{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"457210bf7f766f96395aa1d98da3149a7e460188","unresolved":false,"context_lines":[{"line_number":26,"context_line":"return_status\u003d1"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Find the Process ID of the AGENT"},{"line_number":29,"context_line":"pid\u003d$(pgrep -f /var/lib/openstack/bin/$AGENT | head -1)"},{"line_number":30,"context_line":"if [[ $(pgrep -f /var/lib/openstack/bin/$AGENT | wc -l) -eq 0 ]]"},{"line_number":31,"context_line":"then"},{"line_number":32,"context_line":"  exit $return_status"}],"source_content_type":"text/x-smarty","patch_set":11,"id":"9fdfeff1_ee79dffb","line":29,"updated":"2019-02-12 05:13:56.000000000","message":"in the case of neutron-sriov-agent, the process name is neutron-sriov-nic-agent","commit_id":"9c8d4a38b465e7ee1532715db2535dd88c5f9b57"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"621fb010d21fc16b84ea8bbc65d0aa9033206776","unresolved":false,"context_lines":[{"line_number":26,"context_line":"return_status\u003d1"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Find the Process ID of the AGENT"},{"line_number":29,"context_line":"pid\u003d$(pgrep -f /var/lib/openstack/bin/$AGENT | head -1)"},{"line_number":30,"context_line":"if [[ $(pgrep -f /var/lib/openstack/bin/$AGENT | wc -l) -eq 0 ]]"},{"line_number":31,"context_line":"then"},{"line_number":32,"context_line":"  exit $return_status"}],"source_content_type":"text/x-smarty","patch_set":11,"id":"9fdfeff1_6df72c5b","line":29,"in_reply_to":"9fdfeff1_ee79dffb","updated":"2019-02-12 14:49:47.000000000","message":"corrected","commit_id":"9c8d4a38b465e7ee1532715db2535dd88c5f9b57"},{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"69c29fe2095550b76c0680ba7d7d34b901f48c48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"9fdfeff1_d7dd3541","updated":"2019-02-15 16:19:17.000000000","message":"is there a reason why the logic in thsi script cannot be incorporated into the `_livelyness-probe.py` script which could then become a generic `_health-probe.py`?","commit_id":"a857c68b9e05710c1efca5629348d4eb5780f4f6"},{"author":{"_account_id":18204,"name":"bharani","email":"bk160f@att.com","username":"bharani"},"change_message_id":"419ac1b821d26e8f581206049df3989dade3504b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"9fdfeff1_17cc1d33","in_reply_to":"9fdfeff1_d7dd3541","updated":"2019-02-15 16:38:06.000000000","message":"As part of Readiness probe we test: ps status, fd/sockets and also the queues to rabbitmq which is needed when the pod comes up. Where as liveness probe which is triggered dynamically is lightweight task to just check the queues to rabbitmq. It is implicit if the queue communication to rabbitmq is successful, the socket is also up and running. So there is no need to add these checks in livveness probe.","commit_id":"a857c68b9e05710c1efca5629348d4eb5780f4f6"}],"neutron/templates/daemonset-l3-agent.yaml":[{"author":{"_account_id":18204,"name":"bharani","email":"bk160f@att.com","username":"bharani"},"change_message_id":"a6b79901a5323eaaedd2b06893dc5f9fa0faecb2","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            exec:"},{"line_number":70,"context_line":"              command:"},{"line_number":71,"context_line":"              - python"},{"line_number":72,"context_line":"              - /tmp/liveness-probe.py"},{"line_number":73,"context_line":"              - --config-file"},{"line_number":74,"context_line":"              - /etc/neutron/neutron.conf"},{"line_number":75,"context_line":"              - --config-file"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_72aa001a","line":72,"updated":"2019-02-06 21:07:44.000000000","message":"Does it take care of the configuration with l3_ha \u003d true?","commit_id":"f84777830f10fe2dc0f7e87ad7a2b044a126a780"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"3f1c493c3b5a4fe77e4b61cf12516689c70508bd","unresolved":false,"context_lines":[{"line_number":71,"context_line":"              - bash"},{"line_number":72,"context_line":"              - \u0027/tmp/readiness-probe.sh\u0027"},{"line_number":73,"context_line":"              - \"neutron-l3-agent\""},{"line_number":74,"context_line":"            initialDelaySeconds: 120"},{"line_number":75,"context_line":"            periodSeconds: 90"},{"line_number":76,"context_line":"            timeoutSeconds: 70"},{"line_number":77,"context_line":"          livenessProbe:"},{"line_number":78,"context_line":"            exec:"},{"line_number":79,"context_line":"              command:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fdfeff1_b15361e2","line":76,"range":{"start_line":74,"start_character":12,"end_line":76,"end_character":30},"updated":"2019-02-08 15:44:45.000000000","message":"should we reconsider these values? I think it should be shorter than the periodicity of liveness probe. In most other charts initialDelaySeconds: 15, periodSeconds: 10 values are used....","commit_id":"f4c44bd079ae5bcc3d5adcecf1ebc23dbac599fa"}]}
