)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"546ffc8d4a5796ed70478664771fa180dd98ca3f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Allowing for a host amphora configuration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently there is no way to for the haproxy templater"},{"line_number":10,"context_line":"to know any data about the current host configuration."},{"line_number":11,"context_line":"This patch passes the \u0027host amphora\u0027 to the templater"},{"line_number":12,"context_line":"allowing deployer the ability to use this information"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bab6814e_6dd52742","line":9,"range":{"start_line":9,"start_character":26,"end_line":9,"end_character":32},"updated":"2016-05-18 18:47:26.000000000","message":"nit: just \"for\"","commit_id":"cf082cd0a7fba0787e2e8e125982f3d8fab8c2bd"}],"octavia/amphorae/drivers/haproxy/rest_api_driver.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"47754157ad687110ac40329d15efb7c3e56f7e01","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                self.client.plug_vip("},{"line_number":131,"context_line":"                    amp,"},{"line_number":132,"context_line":"                    load_balancer.vip.ip_address,"},{"line_number":133,"context_line":"                    net_info)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def post_network_plug(self, amphora, port):"},{"line_number":136,"context_line":"        port_info \u003d {\u0027mac_address\u0027: port.mac_address}"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_699fe603","line":133,"updated":"2016-05-18 15:43:09.000000000","message":"nit: unrelated whitespace change","commit_id":"a120f7db0fc83e0b3c85d91ac9341b7e58678c8d"}],"octavia/common/jinja/haproxy/jinja_cfg.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"47754157ad687110ac40329d15efb7c3e56f7e01","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            \u0027host_amphora\u0027: host_amphora"},{"line_number":161,"context_line":"        }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _transform_amphora(self, amphora):"},{"line_number":164,"context_line":"        \"\"\"Transform an amphora into an object that will"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"           be processed by the templating system,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_e906361f","line":163,"updated":"2016-05-18 15:43:09.000000000","message":"shouldn\u0027t this be called somewhere? like in _transform_loadbalancer? I don\u0027t see it being called anywhere","commit_id":"a120f7db0fc83e0b3c85d91ac9341b7e58678c8d"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"546ffc8d4a5796ed70478664771fa180dd98ca3f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                     user_group\u003d\u0027nogroup\u0027):"},{"line_number":90,"context_line":"        \"\"\"Convert a logical configuration to the HAProxy version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param host_amphora: The Amphora this configuration is  hosted on"},{"line_number":93,"context_line":"        :param listener: The listener configuration"},{"line_number":94,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":95,"context_line":"        :param socket_path: The socket path for Haproxy process"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_0dc57b8d","line":92,"range":{"start_line":92,"start_character":63,"end_line":92,"end_character":64},"updated":"2016-05-18 18:47:26.000000000","message":"nit: extra space","commit_id":"cf082cd0a7fba0787e2e8e125982f3d8fab8c2bd"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"546ffc8d4a5796ed70478664771fa180dd98ca3f","unresolved":false,"context_lines":[{"line_number":166,"context_line":"           be processed by the templating system,"},{"line_number":167,"context_line":"           this is the amphora the configuration is"},{"line_number":168,"context_line":"           being ran on which can be used for specific"},{"line_number":169,"context_line":"           amphora configuration."},{"line_number":170,"context_line":"        \"\"\""},{"line_number":171,"context_line":"        return {"},{"line_number":172,"context_line":"            \u0027id\u0027: amphora.id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_2dd95f22","line":169,"updated":"2016-05-18 18:47:26.000000000","message":"\"\"\"Transform an amphora into an object that will\n\nbe processed by the templating system.  The\nconfiguration will then have the opportunity to\ninclude specifics for this amphora.\n\"\"\"\n\nWhat do you think?","commit_id":"cf082cd0a7fba0787e2e8e125982f3d8fab8c2bd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"430bb51d9640be10ddaa2d1d8168a4fdcb5c1a0f","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            \u0027ha_ip\u0027: amphora.ha_ip,"},{"line_number":173,"context_line":"            \u0027vrrp_port_id\u0027: amphora.vrrp_port_id,"},{"line_number":174,"context_line":"            \u0027ha_port_id\u0027: amphora.ha_port_id,"},{"line_number":175,"context_line":"            \u0027cert_expiration\u0027: amphora.cert_expiration,"},{"line_number":176,"context_line":"            \u0027role\u0027: amphora.role,"},{"line_number":177,"context_line":"            \u0027status\u0027: amphora.status,"},{"line_number":178,"context_line":"            \u0027vrrp_interface\u0027: amphora.vrrp_interface,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f514eae9","line":175,"updated":"2016-05-25 23:01:31.000000000","message":"This seems odd to pass down to the template.  Do we really need to make this available to the HAProxy config?","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"c08bbc7dea87475710391f09a87d355e73b4e858","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            \u0027ha_ip\u0027: amphora.ha_ip,"},{"line_number":173,"context_line":"            \u0027vrrp_port_id\u0027: amphora.vrrp_port_id,"},{"line_number":174,"context_line":"            \u0027ha_port_id\u0027: amphora.ha_port_id,"},{"line_number":175,"context_line":"            \u0027cert_expiration\u0027: amphora.cert_expiration,"},{"line_number":176,"context_line":"            \u0027role\u0027: amphora.role,"},{"line_number":177,"context_line":"            \u0027status\u0027: amphora.status,"},{"line_number":178,"context_line":"            \u0027vrrp_interface\u0027: amphora.vrrp_interface,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f5eceabc","line":175,"in_reply_to":"bab6814e_f514eae9","updated":"2016-05-25 23:07:25.000000000","message":"It may not need it, but is part of the object. I am just doing a full translation as this patch doesnt know what the data is used for. I can remove it if needed.","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"430bb51d9640be10ddaa2d1d8168a4fdcb5c1a0f","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            \u0027role\u0027: amphora.role,"},{"line_number":177,"context_line":"            \u0027status\u0027: amphora.status,"},{"line_number":178,"context_line":"            \u0027vrrp_interface\u0027: amphora.vrrp_interface,"},{"line_number":179,"context_line":"            \u0027vrrp_id\u0027: amphora.vrrp_id,"},{"line_number":180,"context_line":"            \u0027vrrp_priority\u0027: amphora.vrrp_priority"},{"line_number":181,"context_line":"        }"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f5998a7a","line":179,"updated":"2016-05-25 23:01:31.000000000","message":"This also could be odd to pass down.  This id is part of the \"security\" measures for keepalived.  In our current implementation it doesn\u0027t matter as we are using unicast, but if, for some reason in the future, we switch to multicast, this could be used to interfere with the VRRP heartbeat (yes, the password is required as well, but it is shared, in the future this number may be unique to the pair).  I am reaching here, but want to understand the value of passing this down here and now.","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"c08bbc7dea87475710391f09a87d355e73b4e858","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            \u0027role\u0027: amphora.role,"},{"line_number":177,"context_line":"            \u0027status\u0027: amphora.status,"},{"line_number":178,"context_line":"            \u0027vrrp_interface\u0027: amphora.vrrp_interface,"},{"line_number":179,"context_line":"            \u0027vrrp_id\u0027: amphora.vrrp_id,"},{"line_number":180,"context_line":"            \u0027vrrp_priority\u0027: amphora.vrrp_priority"},{"line_number":181,"context_line":"        }"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_551336b8","line":179,"in_reply_to":"bab6814e_f5998a7a","updated":"2016-05-25 23:07:25.000000000","message":"Again, same as above. The primary information we need specifically are the IPs. I was just translating the whole amphora.","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"0507899542bbead3be93f264121f70c79fceae90","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                     user_group\u003d\u0027nogroup\u0027):"},{"line_number":90,"context_line":"        \"\"\"Convert a logical configuration to the HAProxy version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param host_amphora: The Amphora this configuration is  hosted on"},{"line_number":93,"context_line":"        :param listener: The listener configuration"},{"line_number":94,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":95,"context_line":"        :param socket_path: The socket path for Haproxy process"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_fe601103","line":92,"range":{"start_line":92,"start_character":62,"end_line":92,"end_character":64},"updated":"2016-05-26 21:58:49.000000000","message":"nit: I think there is 1 more space here.","commit_id":"62fe099ebe16b0cc0fed35a8c4d826c215ce1c48"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"ecc021563a2856cdc4678c8ec96b53981d9864f8","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                     user_group\u003d\u0027nogroup\u0027):"},{"line_number":90,"context_line":"        \"\"\"Convert a logical configuration to the HAProxy version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param host_amphora: The Amphora this configuration is  hosted on"},{"line_number":93,"context_line":"        :param listener: The listener configuration"},{"line_number":94,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":95,"context_line":"        :param socket_path: The socket path for Haproxy process"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_ed2000fa","line":92,"range":{"start_line":92,"start_character":62,"end_line":92,"end_character":64},"in_reply_to":"9abb7d3a_aaaffee1","updated":"2016-05-27 23:11:08.000000000","message":"Done","commit_id":"62fe099ebe16b0cc0fed35a8c4d826c215ce1c48"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"66879f0206a9d5b69784b42b3f145fc16592889a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                     user_group\u003d\u0027nogroup\u0027):"},{"line_number":90,"context_line":"        \"\"\"Convert a logical configuration to the HAProxy version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param host_amphora: The Amphora this configuration is  hosted on"},{"line_number":93,"context_line":"        :param listener: The listener configuration"},{"line_number":94,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":95,"context_line":"        :param socket_path: The socket path for Haproxy process"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_aaaffee1","line":92,"range":{"start_line":92,"start_character":62,"end_line":92,"end_character":64},"in_reply_to":"bab6814e_fe601103","updated":"2016-05-27 21:59:25.000000000","message":"+1","commit_id":"62fe099ebe16b0cc0fed35a8c4d826c215ce1c48"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"0507899542bbead3be93f264121f70c79fceae90","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                socket_path\u003dNone):"},{"line_number":121,"context_line":"        \"\"\"Renders a templated configuration from a load balancer object"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        :param listener: The listener configuration"},{"line_number":124,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":125,"context_line":"        :param socket_path: The socket path for Haproxy process"},{"line_number":126,"context_line":"        :param user_group: The user group"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_1e29959b","line":123,"updated":"2016-05-26 21:58:49.000000000","message":"the doc string of the new param should also be added just like L92","commit_id":"62fe099ebe16b0cc0fed35a8c4d826c215ce1c48"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"ecc021563a2856cdc4678c8ec96b53981d9864f8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                socket_path\u003dNone):"},{"line_number":121,"context_line":"        \"\"\"Renders a templated configuration from a load balancer object"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        :param listener: The listener configuration"},{"line_number":124,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":125,"context_line":"        :param socket_path: The socket path for Haproxy process"},{"line_number":126,"context_line":"        :param user_group: The user group"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_cd1d3cbf","line":123,"in_reply_to":"9abb7d3a_ca8d227d","updated":"2016-05-27 23:11:08.000000000","message":"Done","commit_id":"62fe099ebe16b0cc0fed35a8c4d826c215ce1c48"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"66879f0206a9d5b69784b42b3f145fc16592889a","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                socket_path\u003dNone):"},{"line_number":121,"context_line":"        \"\"\"Renders a templated configuration from a load balancer object"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        :param listener: The listener configuration"},{"line_number":124,"context_line":"        :param tls_cert: The TLS certificates for the listener"},{"line_number":125,"context_line":"        :param socket_path: The socket path for Haproxy process"},{"line_number":126,"context_line":"        :param user_group: The user group"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_ca8d227d","line":123,"in_reply_to":"bab6814e_1e29959b","updated":"2016-05-27 21:59:25.000000000","message":"+1","commit_id":"62fe099ebe16b0cc0fed35a8c4d826c215ce1c48"}],"octavia/tests/unit/common/sample_configs/sample_configs.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"430bb51d9640be10ddaa2d1d8168a4fdcb5c1a0f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        id\u003d\u0027sample_amphora_id_1\u0027,"},{"line_number":29,"context_line":"        lb_network_ip\u003d\u002710.0.1.1\u0027,"},{"line_number":30,"context_line":"        vrrp_ip\u003d\u002710.1.1.1\u0027,"},{"line_number":31,"context_line":"        ha_ip\u003d\u00270.0.0.0\u0027,"},{"line_number":32,"context_line":"        vrrp_port_id\u003d\u00271234\u0027,"},{"line_number":33,"context_line":"        ha_port_id\u003d\u00271234\u0027,"},{"line_number":34,"context_line":"        cert_expiration\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_15ab6e76","line":31,"updated":"2016-05-25 23:01:31.000000000","message":"This is getting flagged by the bandit security scanner.","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"bc60102cf8e6badfb1c991d109ecd021ca0ec4ad","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        id\u003d\u0027sample_amphora_id_1\u0027,"},{"line_number":29,"context_line":"        lb_network_ip\u003d\u002710.0.1.1\u0027,"},{"line_number":30,"context_line":"        vrrp_ip\u003d\u002710.1.1.1\u0027,"},{"line_number":31,"context_line":"        ha_ip\u003d\u00270.0.0.0\u0027,"},{"line_number":32,"context_line":"        vrrp_port_id\u003d\u00271234\u0027,"},{"line_number":33,"context_line":"        ha_port_id\u003d\u00271234\u0027,"},{"line_number":34,"context_line":"        cert_expiration\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_ea4088a7","line":31,"in_reply_to":"bab6814e_15ab6e76","updated":"2016-05-26 00:13:56.000000000","message":"Done","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"430bb51d9640be10ddaa2d1d8168a4fdcb5c1a0f","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    \u0027id\u0027: \u0027sample_amphora_id_1\u0027,"},{"line_number":267,"context_line":"    \u0027lb_network_ip\u0027: \u002710.0.1.1\u0027,"},{"line_number":268,"context_line":"    \u0027vrrp_ip\u0027: \u002710.1.1.1\u0027,"},{"line_number":269,"context_line":"    \u0027ha_ip\u0027: \u00270.0.0.0\u0027,"},{"line_number":270,"context_line":"    \u0027vrrp_port_id\u0027: \u00271234\u0027,"},{"line_number":271,"context_line":"    \u0027ha_port_id\u0027: \u00271234\u0027,"},{"line_number":272,"context_line":"    \u0027cert_expiration\u0027: None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f5a7caa4","line":269,"updated":"2016-05-25 23:01:31.000000000","message":"Same here.","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"bc60102cf8e6badfb1c991d109ecd021ca0ec4ad","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    \u0027id\u0027: \u0027sample_amphora_id_1\u0027,"},{"line_number":267,"context_line":"    \u0027lb_network_ip\u0027: \u002710.0.1.1\u0027,"},{"line_number":268,"context_line":"    \u0027vrrp_ip\u0027: \u002710.1.1.1\u0027,"},{"line_number":269,"context_line":"    \u0027ha_ip\u0027: \u00270.0.0.0\u0027,"},{"line_number":270,"context_line":"    \u0027vrrp_port_id\u0027: \u00271234\u0027,"},{"line_number":271,"context_line":"    \u0027ha_port_id\u0027: \u00271234\u0027,"},{"line_number":272,"context_line":"    \u0027cert_expiration\u0027: None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_ca3dc42c","line":269,"in_reply_to":"bab6814e_f5a7caa4","updated":"2016-05-26 00:13:56.000000000","message":"Done","commit_id":"670f22dd453d1752684c40bceef7a331ffbfc1bd"}]}
