)]}'
{"designate/agent/handler.py":[{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"c3f9fc6ae05b9777376ba1f262bb1495dad65037","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# Author: Tim Simmons \u003ctim.simmons@rackspace.com\u003e"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":7,"context_line":"# a copy of the License at"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#      http://www.apache.org/licenses/LICENSE-2.0"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_57580756","line":6,"updated":"2016-04-20 14:05:11.000000000","message":"I think changes in this file should be split into a different patchset.\n\nThese are valid changes which could fix bugs we might not know about - and if we want to be able to backport these easily they should be a separate commit","commit_id":"6c75868e5ab4f3797072c1e23323c8fa34c7b81b"}],"designate/backend/agent.py":[{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"c3f9fc6ae05b9777376ba1f262bb1495dad65037","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# Author: Tim Simmons \u003ctim.simmons@rackspace.com\u003e"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":7,"context_line":"# a copy of the License at"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#      http://www.apache.org/licenses/LICENSE-2.0"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_3753cb3a","line":6,"updated":"2016-04-20 14:05:11.000000000","message":"Same as handler.py","commit_id":"6c75868e5ab4f3797072c1e23323c8fa34c7b81b"}],"designate/backend/agent_backend/impl_knot2.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":55,"context_line":"CFG_GROUP \u003d \u0027backend:agent:knot2\u0027"},{"line_number":56,"context_line":"# rootwrap requires a command name instead of full path"},{"line_number":57,"context_line":"KNOTC_DEFAULT_PATH \u003d \u0027knotc\u0027"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"# TODO(Federico) on zone creation and update, agent.handler unnecessarily"},{"line_number":60,"context_line":"# perfors AXFR from MiniDNS to the Agent to populate the `zone` argument"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_c519bc24","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":28},"updated":"2016-04-22 09:36:46.000000000","message":"This seems somewhat redundant now, and doesn\u0027t make it any shorter :)","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        \"\"\"Start the backend, check if knotc can be run, if the Knot daemon"},{"line_number":94,"context_line":"        is up and has a valid configuration."},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        LOG.info(_LI(\"Started knot2 backend\"))"},{"line_number":97,"context_line":"        self._execute_knotc(\u0027status\u0027, expected_output\u003d\u0027Running\u0027)"},{"line_number":98,"context_line":"        self._execute_knotc(\u0027conf-check\u0027,"},{"line_number":99,"context_line":"                            expected_output\u003d\u0027Configuration is valid\u0027)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        version \u003d self._resolver.query(\u0027version.server.\u0027,"},{"line_number":102,"context_line":"                                       rdtype\u003ddns.rdatatype.TXT,"},{"line_number":103,"context_line":"                                       rdclass\u003ddns.rdataclass.CH)[0]"},{"line_number":104,"context_line":"        LOG.info(_LI(\"Server %s is reachable\"), version.to_text())"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def _execute_knotc(self, *knotc_args, **kw):"},{"line_number":107,"context_line":"        \"\"\"Run the Knot client and check the output"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_ca67eae8","line":104,"range":{"start_line":96,"start_character":8,"end_line":104,"end_character":66},"updated":"2016-04-22 09:36:46.000000000","message":"Is all of this going to enforce a startup order of Knot first, designate-agent second? If so.. We try to avoid that kinda thing, as it means reboots etc typically don\u0027t end up bringing everything back up + clean.","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        \"\"\"Start the backend, check if knotc can be run, if the Knot daemon"},{"line_number":94,"context_line":"        is up and has a valid configuration."},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        LOG.info(_LI(\"Started knot2 backend\"))"},{"line_number":97,"context_line":"        self._execute_knotc(\u0027status\u0027, expected_output\u003d\u0027Running\u0027)"},{"line_number":98,"context_line":"        self._execute_knotc(\u0027conf-check\u0027,"},{"line_number":99,"context_line":"                            expected_output\u003d\u0027Configuration is valid\u0027)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        version \u003d self._resolver.query(\u0027version.server.\u0027,"},{"line_number":102,"context_line":"                                       rdtype\u003ddns.rdatatype.TXT,"},{"line_number":103,"context_line":"                                       rdclass\u003ddns.rdataclass.CH)[0]"},{"line_number":104,"context_line":"        LOG.info(_LI(\"Server %s is reachable\"), version.to_text())"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def _execute_knotc(self, *knotc_args, **kw):"},{"line_number":107,"context_line":"        \"\"\"Run the Knot client and check the output"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_51e5c106","line":104,"range":{"start_line":96,"start_character":8,"end_line":104,"end_character":66},"in_reply_to":"1a122d0e_ca67eae8","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"}],"designate/backend/impl_knot2.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_67833a99","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":73},"updated":"2016-04-13 14:23:19.000000000","message":"HPE requires us to include HPE copyright headers.","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"through SSH."},{"line_number":28,"context_line":"When Knot DNS will natively support remote zone creation and deletion this"},{"line_number":29,"context_line":"backend will be updated to move away from knotc."},{"line_number":30,"context_line":"\"\"\"  # noqa"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import subprocess"},{"line_number":33,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_67e7bab0","line":30,"range":{"start_line":30,"start_character":7,"end_line":30,"end_character":11},"updated":"2016-04-13 14:23:19.000000000","message":"noqa?","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"KNOTC_PATH \u003d \u0027/usr/sbin/knotc\u0027"},{"line_number":45,"context_line":"SSH_PATH \u003d \u0027/usr/bin/ssh\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# Usage:"},{"line_number":48,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_64f4d885","line":45,"range":{"start_line":44,"start_character":0,"end_line":45,"end_character":25},"updated":"2016-04-13 14:23:19.000000000","message":"We shouldn\u0027t hardcode paths, these should be default values for backend options.","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":44,"context_line":"KNOTC_PATH \u003d \u0027/usr/sbin/knotc\u0027"},{"line_number":45,"context_line":"SSH_PATH \u003d \u0027/usr/bin/ssh\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# Usage:"},{"line_number":48,"context_line":"#"},{"line_number":49,"context_line":"# Configure a pool target section in designate.conf with:"},{"line_number":50,"context_line":"# type \u003d knot2"},{"line_number":51,"context_line":"# options \u003d knotc_host: kn, host: kn, port: 53, knotc_ssh_username: knotuser"},{"line_number":52,"context_line":"#"},{"line_number":53,"context_line":"# Configure a local Knot instance. Example:"},{"line_number":54,"context_line":"#"},{"line_number":55,"context_line":"# server:"},{"line_number":56,"context_line":"#     listen: 0.0.0.0@53"},{"line_number":57,"context_line":"#"},{"line_number":58,"context_line":"# log:"},{"line_number":59,"context_line":"#   - target: syslog"},{"line_number":60,"context_line":"#     any: info"},{"line_number":61,"context_line":"#"},{"line_number":62,"context_line":"# remote:"},{"line_number":63,"context_line":"#   - id: minidns"},{"line_number":64,"context_line":"#     address: 192.168.27.100@5354"},{"line_number":65,"context_line":"#"},{"line_number":66,"context_line":"# acl:"},{"line_number":67,"context_line":"#   - id: acl_minidns"},{"line_number":68,"context_line":"#     address: 192.168.27.100"},{"line_number":69,"context_line":"#     address: 0.0.0.0"},{"line_number":70,"context_line":"#     action: transfer"},{"line_number":71,"context_line":"#     action: notify"},{"line_number":72,"context_line":"#"},{"line_number":73,"context_line":"# template:"},{"line_number":74,"context_line":"#   - id: default"},{"line_number":75,"context_line":"#     storage: \"/var/lib/knot\""},{"line_number":76,"context_line":"#     acl: acl_minidns"},{"line_number":77,"context_line":"#     master: minidns"},{"line_number":78,"context_line":"#"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class Knot2Backend(base.Backend):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_242820e2","line":78,"range":{"start_line":47,"start_character":0,"end_line":78,"end_character":1},"updated":"2016-04-13 14:23:19.000000000","message":"These aren\u0027t very discoverable for users, better to move to the actual docs.","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f82dbbe9a9a95f68bac033a383c1722daa5a4442","unresolved":false,"context_lines":[{"line_number":44,"context_line":"KNOTC_PATH \u003d \u0027/usr/sbin/knotc\u0027"},{"line_number":45,"context_line":"SSH_PATH \u003d \u0027/usr/bin/ssh\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# Usage:"},{"line_number":48,"context_line":"#"},{"line_number":49,"context_line":"# Configure a pool target section in designate.conf with:"},{"line_number":50,"context_line":"# type \u003d knot2"},{"line_number":51,"context_line":"# options \u003d knotc_host: kn, host: kn, port: 53, knotc_ssh_username: knotuser"},{"line_number":52,"context_line":"#"},{"line_number":53,"context_line":"# Configure a local Knot instance. Example:"},{"line_number":54,"context_line":"#"},{"line_number":55,"context_line":"# server:"},{"line_number":56,"context_line":"#     listen: 0.0.0.0@53"},{"line_number":57,"context_line":"#"},{"line_number":58,"context_line":"# log:"},{"line_number":59,"context_line":"#   - target: syslog"},{"line_number":60,"context_line":"#     any: info"},{"line_number":61,"context_line":"#"},{"line_number":62,"context_line":"# remote:"},{"line_number":63,"context_line":"#   - id: minidns"},{"line_number":64,"context_line":"#     address: 192.168.27.100@5354"},{"line_number":65,"context_line":"#"},{"line_number":66,"context_line":"# acl:"},{"line_number":67,"context_line":"#   - id: acl_minidns"},{"line_number":68,"context_line":"#     address: 192.168.27.100"},{"line_number":69,"context_line":"#     address: 0.0.0.0"},{"line_number":70,"context_line":"#     action: transfer"},{"line_number":71,"context_line":"#     action: notify"},{"line_number":72,"context_line":"#"},{"line_number":73,"context_line":"# template:"},{"line_number":74,"context_line":"#   - id: default"},{"line_number":75,"context_line":"#     storage: \"/var/lib/knot\""},{"line_number":76,"context_line":"#     acl: acl_minidns"},{"line_number":77,"context_line":"#     master: minidns"},{"line_number":78,"context_line":"#"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class Knot2Backend(base.Backend):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c9ae73e5","line":78,"range":{"start_line":47,"start_character":0,"end_line":78,"end_character":1},"in_reply_to":"5a18252c_242820e2","updated":"2016-04-19 16:38:47.000000000","message":"Done","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class Knot2Backend(base.Backend):"},{"line_number":82,"context_line":"    __plugin_name__ \u003d \u0027knot2\u0027"},{"line_number":83,"context_line":"    __backend_status__ \u003d \u0027untested\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def __init__(self, target):"},{"line_number":86,"context_line":"        super(Knot2Backend, self).__init__(target)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_8a03fb0c","line":83,"range":{"start_line":83,"start_character":4,"end_line":83,"end_character":35},"updated":"2016-04-13 14:23:19.000000000","message":"Somewhat unrelated: I think we should add \"experimental\" as a valid status, as experimental is the cross-openstack accepted way to say \"This could be deleted at any moment\"","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f82dbbe9a9a95f68bac033a383c1722daa5a4442","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class Knot2Backend(base.Backend):"},{"line_number":82,"context_line":"    __plugin_name__ \u003d \u0027knot2\u0027"},{"line_number":83,"context_line":"    __backend_status__ \u003d \u0027untested\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def __init__(self, target):"},{"line_number":86,"context_line":"        super(Knot2Backend, self).__init__(target)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_09b50b30","line":83,"range":{"start_line":83,"start_character":4,"end_line":83,"end_character":35},"in_reply_to":"5a18252c_8a03fb0c","updated":"2016-04-19 16:38:47.000000000","message":"Done","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            assert os.path.isfile(SSH_PATH)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def _execute_knotc(self, knotc_cmd):"},{"line_number":98,"context_line":"        \"\"\"Run Knot client locally or through SSH"},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        if self._knotc_ssh_username is None:"},{"line_number":101,"context_line":"            cmd \u003d [KNOTC_PATH, ] + knotc_cmd"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_47743efc","line":98,"range":{"start_line":98,"start_character":35,"end_line":98,"end_character":49},"updated":"2016-04-13 14:23:19.000000000","message":"I\u0027d prefer to avoid adding a second pattern to accessing \"remote DNS servers\" here, is there a reason to not use the agent?","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f82dbbe9a9a95f68bac033a383c1722daa5a4442","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            assert os.path.isfile(SSH_PATH)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def _execute_knotc(self, knotc_cmd):"},{"line_number":98,"context_line":"        \"\"\"Run Knot client locally or through SSH"},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        if self._knotc_ssh_username is None:"},{"line_number":101,"context_line":"            cmd \u003d [KNOTC_PATH, ] + knotc_cmd"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_69847f5d","line":98,"range":{"start_line":98,"start_character":35,"end_line":98,"end_character":49},"in_reply_to":"5a18252c_47743efc","updated":"2016-04-19 16:38:47.000000000","message":"Done","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            self._execute_knotc([\u0027conf-set\u0027, \u0027zone[%s]\u0027 % zone[\u0027name\u0027]])"},{"line_number":137,"context_line":"        except Exception as e:"},{"line_number":138,"context_line":"            self._execute_knotc([\u0027conf-abort\u0027])"},{"line_number":139,"context_line":"            LOG.error(e)"},{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self._execute_knotc([\u0027conf-commit\u0027])"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_07ad2631","line":139,"range":{"start_line":139,"start_character":12,"end_line":139,"end_character":24},"updated":"2016-04-13 14:23:19.000000000","message":"Use LOG.exception with a message e.g.:\n\n    LOG.exception(\"Aborted Knot Configuration commit due to exception\")","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f82dbbe9a9a95f68bac033a383c1722daa5a4442","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            self._execute_knotc([\u0027conf-set\u0027, \u0027zone[%s]\u0027 % zone[\u0027name\u0027]])"},{"line_number":137,"context_line":"        except Exception as e:"},{"line_number":138,"context_line":"            self._execute_knotc([\u0027conf-abort\u0027])"},{"line_number":139,"context_line":"            LOG.error(e)"},{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self._execute_knotc([\u0027conf-commit\u0027])"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_49a263fe","line":139,"range":{"start_line":139,"start_character":12,"end_line":139,"end_character":24},"in_reply_to":"5a18252c_07ad2631","updated":"2016-04-19 16:38:47.000000000","message":"Done","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self._execute_knotc([\u0027conf-abort\u0027])"},{"line_number":139,"context_line":"            LOG.error(e)"},{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self._execute_knotc([\u0027conf-commit\u0027])"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        self.mdns_api.notify_zone_changed("},{"line_number":144,"context_line":"            context, zone, self._host, self.port, self.timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_2704a248","line":141,"range":{"start_line":141,"start_character":12,"end_line":141,"end_character":48},"updated":"2016-04-13 14:23:19.000000000","message":"Is is possible for this to fail?","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f82dbbe9a9a95f68bac033a383c1722daa5a4442","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self._execute_knotc([\u0027conf-abort\u0027])"},{"line_number":139,"context_line":"            LOG.error(e)"},{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self._execute_knotc([\u0027conf-commit\u0027])"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        self.mdns_api.notify_zone_changed("},{"line_number":144,"context_line":"            context, zone, self._host, self.port, self.timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_699d9fbb","line":141,"range":{"start_line":141,"start_character":12,"end_line":141,"end_character":48},"in_reply_to":"5a18252c_2704a248","updated":"2016-04-19 16:38:47.000000000","message":"Done","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"242a2434362796990c02f14270e720a97b7326dd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            self._execute_knotc([\u0027conf-commit\u0027])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":163,"context_line":"    from designate import objects"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    zone \u003d objects.Zone(id\u003d\u0027cca7908b-dad4-4c50-adba-fb67d4c556e8\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_27ddc2e0","line":162,"range":{"start_line":162,"start_character":1,"end_line":162,"end_character":26},"updated":"2016-04-13 14:23:19.000000000","message":"Defiantly would prefer to not see this pattern introduced!","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f82dbbe9a9a95f68bac033a383c1722daa5a4442","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            self._execute_knotc([\u0027conf-commit\u0027])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":163,"context_line":"    from designate import objects"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    zone \u003d objects.Zone(id\u003d\u0027cca7908b-dad4-4c50-adba-fb67d4c556e8\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_a9a337ff","line":162,"range":{"start_line":162,"start_character":1,"end_line":162,"end_character":26},"in_reply_to":"5a18252c_27ddc2e0","updated":"2016-04-19 16:38:47.000000000","message":"Done","commit_id":"7faab7667bed2e5542d5511fb118aeb883305f63"}],"devstack/designate_plugins/backend-agent-knot2":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":24,"context_line":"KNOT_USER\u003dknot"},{"line_number":25,"context_line":"KNOT_GROUP\u003dknot"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"if is_fedora; then"},{"line_number":28,"context_line":"    echo \"only Ubuntu is supported right now\""},{"line_number":29,"context_line":"fi"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Entry Points"},{"line_number":32,"context_line":"# ------------"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_aaac2e36","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":2},"updated":"2016-04-22 09:36:46.000000000","message":"Better to do a if not is_ubuntu, but, I think this is covered by the install method anyway","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"KNOT_USER\u003dknot"},{"line_number":25,"context_line":"KNOT_GROUP\u003dknot"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"if is_fedora; then"},{"line_number":28,"context_line":"    echo \"only Ubuntu is supported right now\""},{"line_number":29,"context_line":"fi"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Entry Points"},{"line_number":32,"context_line":"# ------------"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_d1bf11ce","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":2},"in_reply_to":"1a122d0e_aaac2e36","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# install_designate_agent_backend - install any external requirements"},{"line_number":35,"context_line":"function install_designate_agent_backend {"},{"line_number":36,"context_line":"    if is_ubuntu; then"},{"line_number":37,"context_line":"        # https://github.com/oerdnj/deb.sury.org/issues/56"},{"line_number":38,"context_line":"        LC_ALL\u003dC.UTF-8 sudo add-apt-repository --yes ppa:cz.nic-labs/knot-dns"},{"line_number":39,"context_line":"        sudo apt-get update"},{"line_number":40,"context_line":"        echo \"---- available knot package ---\""},{"line_number":41,"context_line":"        sudo apt-cache show knot"},{"line_number":42,"context_line":"        echo \"---- installing knot ---\""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_ca7b6a28","line":39,"range":{"start_line":37,"start_character":8,"end_line":39,"end_character":27},"updated":"2016-04-22 09:36:46.000000000","message":"Do we actually require the PPA, or is the version included with ubuntu too old? Can we add a comment explaining why etc.","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# install_designate_agent_backend - install any external requirements"},{"line_number":35,"context_line":"function install_designate_agent_backend {"},{"line_number":36,"context_line":"    if is_ubuntu; then"},{"line_number":37,"context_line":"        # https://github.com/oerdnj/deb.sury.org/issues/56"},{"line_number":38,"context_line":"        LC_ALL\u003dC.UTF-8 sudo add-apt-repository --yes ppa:cz.nic-labs/knot-dns"},{"line_number":39,"context_line":"        sudo apt-get update"},{"line_number":40,"context_line":"        echo \"---- available knot package ---\""},{"line_number":41,"context_line":"        sudo apt-cache show knot"},{"line_number":42,"context_line":"        echo \"---- installing knot ---\""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_51cca188","line":39,"range":{"start_line":37,"start_character":8,"end_line":39,"end_character":27},"in_reply_to":"1a122d0e_ca7b6a28","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        echo \"---- available knot package ---\""},{"line_number":41,"context_line":"        sudo apt-cache show knot"},{"line_number":42,"context_line":"        echo \"---- installing knot ---\""},{"line_number":43,"context_line":"        sudo apt-get install -y knot"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"        echo \"only Ubuntu is supported right now\""},{"line_number":46,"context_line":"        exit 1"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_caf88ac7","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":36},"updated":"2016-04-22 09:36:46.000000000","message":"DevStack has a install_package function which should be used instead of directly calling apt-get","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        echo \"---- available knot package ---\""},{"line_number":41,"context_line":"        sudo apt-cache show knot"},{"line_number":42,"context_line":"        echo \"---- installing knot ---\""},{"line_number":43,"context_line":"        sudo apt-get install -y knot"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"        echo \"only Ubuntu is supported right now\""},{"line_number":46,"context_line":"        exit 1"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_f1a16daa","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":36},"in_reply_to":"1a122d0e_caf88ac7","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        echo \"---- installing knot ---\""},{"line_number":43,"context_line":"        sudo apt-get install -y knot"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"        echo \"only Ubuntu is supported right now\""},{"line_number":46,"context_line":"        exit 1"},{"line_number":47,"context_line":"    fi"},{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_0a76023e","line":46,"range":{"start_line":45,"start_character":8,"end_line":46,"end_character":14},"updated":"2016-04-22 09:36:46.000000000","message":"Use:\n\n    die $LINENO \"only Ubuntu is supported right now\"","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"486c17ae79041db99ae8b2b611e1fcd3d9e450e4","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        echo \"---- installing knot ---\""},{"line_number":43,"context_line":"        sudo apt-get install -y knot"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"        echo \"only Ubuntu is supported right now\""},{"line_number":46,"context_line":"        exit 1"},{"line_number":47,"context_line":"    fi"},{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_f2589d59","line":46,"range":{"start_line":45,"start_character":8,"end_line":46,"end_character":14},"in_reply_to":"1a122d0e_0a76023e","updated":"2016-05-04 14:16:19.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    MINIDNS_IPADDR\u003d$SERVICE_HOST"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    sudo knotc conf-begin"},{"line_number":77,"context_line":"    sudo knotc conf-set server.listen 0.0.0.0@53"},{"line_number":78,"context_line":"    sudo knotc conf-set remote[minidns]"},{"line_number":79,"context_line":"    sudo knotc conf-set remote[minidns].address $MINIDNS_IPADDR@5354"},{"line_number":80,"context_line":"    sudo knotc conf-set template[default]"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_8a8212c7","line":77,"range":{"start_line":77,"start_character":4,"end_line":77,"end_character":48},"updated":"2016-04-22 09:36:46.000000000","message":"Knot should listen on: $DESIGNATE_SERVICE_HOST / $DESIGNATE_SERVICE_PORT_DNS","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    MINIDNS_IPADDR\u003d$SERVICE_HOST"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    sudo knotc conf-begin"},{"line_number":77,"context_line":"    sudo knotc conf-set server.listen 0.0.0.0@53"},{"line_number":78,"context_line":"    sudo knotc conf-set remote[minidns]"},{"line_number":79,"context_line":"    sudo knotc conf-set remote[minidns].address $MINIDNS_IPADDR@5354"},{"line_number":80,"context_line":"    sudo knotc conf-set template[default]"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_5193015b","line":77,"range":{"start_line":77,"start_character":4,"end_line":77,"end_character":48},"in_reply_to":"1a122d0e_8a8212c7","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    sudo knotc conf-check"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    # Ensure the zone survives a restart"},{"line_number":99,"context_line":"    sudo service knot restart"},{"line_number":100,"context_line":"    sudo knotc zone-status localdomain"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    echo \"Testing Knot: this should return the daemon version\""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_cad08afa","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"updated":"2016-04-22 09:36:46.000000000","message":"Use `restart_service knot`","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    sudo knotc conf-check"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    # Ensure the zone survives a restart"},{"line_number":99,"context_line":"    sudo service knot restart"},{"line_number":100,"context_line":"    sudo knotc zone-status localdomain"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    echo \"Testing Knot: this should return the daemon version\""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_1184e908","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"1a122d0e_cad08afa","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"0eb4812c26eda58aa8e00d4959615bbeb9c7c328","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    sudo knotc zone-status localdomain"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    echo \"Testing Knot: this should return the daemon version\""},{"line_number":103,"context_line":"    dig @127.0.0.1 version.server CH TXT"},{"line_number":104,"context_line":"}"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"# init_designate_agent_backend - initialize databases, etc."}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_aa50ae5f","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":18},"updated":"2016-04-22 09:36:46.000000000","message":"dig @ the listen address + port from $DESIGNATE_SERVICE_HOST / $DESIGNATE_SERVICE_PORT_DNS","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    sudo knotc zone-status localdomain"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    echo \"Testing Knot: this should return the daemon version\""},{"line_number":103,"context_line":"    dig @127.0.0.1 version.server CH TXT"},{"line_number":104,"context_line":"}"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"# init_designate_agent_backend - initialize databases, etc."}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_717d5d1b","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":18},"in_reply_to":"1a122d0e_aa50ae5f","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"0566d6736bca50a24db61a127d2fe9794f0ac573","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    sudo knotc conf-check"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    # Ensure the zone survives a restart"},{"line_number":99,"context_line":"    sudo service knot restart"},{"line_number":100,"context_line":"    sudo knotc zone-status localdomain"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    echo \"Testing Knot: this should return the daemon version\""}],"source_content_type":"application/octet-stream","patch_set":11,"id":"1a122d0e_fa04b414","line":99,"updated":"2016-05-05 16:17:08.000000000","message":"This line seems to cause the plugin to fail - when I comment it out, it all works fine :/","commit_id":"d22cffad61585942590d834ad5e370a27e345fd5"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"f58ad2fc33274ae13fefd935de084f06cbcce9d4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    sudo knotc conf-check"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    # Ensure the zone survives a restart"},{"line_number":99,"context_line":"    sudo service knot restart"},{"line_number":100,"context_line":"    sudo knotc zone-status localdomain"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    echo \"Testing Knot: this should return the daemon version\""}],"source_content_type":"application/octet-stream","patch_set":11,"id":"dab17558_8fe0e4fb","line":99,"in_reply_to":"1a122d0e_fa04b414","updated":"2016-05-10 09:15:43.000000000","message":"Done","commit_id":"d22cffad61585942590d834ad5e370a27e345fd5"}],"doc/source/backends/knot2_agent.rst":[{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"c3f9fc6ae05b9777376ba1f262bb1495dad65037","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Look in designate.conf.example for examples"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Also setup a pool target as:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code-block:: ini"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_97345ffc","line":135,"updated":"2016-04-20 14:05:11.000000000","message":"This is changed in mitaka - we use the pools.yaml file now.","commit_id":"6c75868e5ab4f3797072c1e23323c8fa34c7b81b"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"7e353fea2a8964aea58a55a480dc201cef58f9aa","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Look in designate.conf.example for examples"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Also setup a pool target as:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code-block:: ini"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_92032976","line":135,"in_reply_to":"1a122d0e_97345ffc","updated":"2016-05-04 14:08:43.000000000","message":"Done","commit_id":"6c75868e5ab4f3797072c1e23323c8fa34c7b81b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"30b442ac34f3a8a11f2b06d5de93d71b8909c22c","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. code-block:: bash"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    service pdns stop"},{"line_number":42,"context_line":"    add-apt-repository ppa:cz.nic-labs/knot-dns"},{"line_number":43,"context_line":"    apt-get update"},{"line_number":44,"context_line":"    apt-get install knot"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_e5c49960","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":21},"updated":"2016-04-22 09:39:48.000000000","message":"We shouldn\u0027t assume they have pdns already installed ;)","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"486c17ae79041db99ae8b2b611e1fcd3d9e450e4","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. code-block:: bash"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    service pdns stop"},{"line_number":42,"context_line":"    add-apt-repository ppa:cz.nic-labs/knot-dns"},{"line_number":43,"context_line":"    apt-get update"},{"line_number":44,"context_line":"    apt-get install knot"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_b2b8e576","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":21},"in_reply_to":"1a122d0e_e5c49960","updated":"2016-05-04 14:16:19.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"30b442ac34f3a8a11f2b06d5de93d71b8909c22c","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":".. code-block:: bash"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    cat \u003e /opt/stack/designate/etc/designate/rootwrap.d/knot2.filters \u003c\u003cEOF"},{"line_number":123,"context_line":"    # cmd-name: filter-name, raw-command, user, args"},{"line_number":124,"context_line":"    [Filters]"},{"line_number":125,"context_line":"    knotc: CommandFilter, /usr/sbin/knotc, root"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_05ad5588","line":122,"range":{"start_line":122,"start_character":11,"end_line":122,"end_character":30},"updated":"2016-04-22 09:39:48.000000000","message":"We tend to assume /etc/designate/ in docs rather than /opt/stack","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"486c17ae79041db99ae8b2b611e1fcd3d9e450e4","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":".. code-block:: bash"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    cat \u003e /opt/stack/designate/etc/designate/rootwrap.d/knot2.filters \u003c\u003cEOF"},{"line_number":123,"context_line":"    # cmd-name: filter-name, raw-command, user, args"},{"line_number":124,"context_line":"    [Filters]"},{"line_number":125,"context_line":"    knotc: CommandFilter, /usr/sbin/knotc, root"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_b26f45fb","line":122,"range":{"start_line":122,"start_character":11,"end_line":122,"end_character":30},"in_reply_to":"1a122d0e_05ad5588","updated":"2016-05-04 14:16:19.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"}],"etc/designate/designate.conf.sample":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"30b442ac34f3a8a11f2b06d5de93d71b8909c22c","unresolved":false,"context_lines":[{"line_number":262,"context_line":"#-----------------------"},{"line_number":263,"context_line":"# Agent Service"},{"line_number":264,"context_line":"#-----------------------"},{"line_number":265,"context_line":"# Set a number of workers to enable the agent. The agent should run on the"},{"line_number":266,"context_line":"# resolver hosts"},{"line_number":267,"context_line":"[service:agent]"},{"line_number":268,"context_line":"#workers \u003d None"},{"line_number":269,"context_line":"#host \u003d 0.0.0.0"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_e5d779eb","line":266,"range":{"start_line":265,"start_character":0,"end_line":266,"end_character":16},"updated":"2016-04-22 09:39:48.000000000","message":"I\u0027m not sure I understand this comment? workers is optional?","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"},{"author":{"_account_id":16962,"name":"Federico Ceratto","email":"federico.ceratto@gmail.com","username":"ceratto"},"change_message_id":"4cf7c25ce2e93ca30ee2fa3d83aa7e296b61753c","unresolved":false,"context_lines":[{"line_number":262,"context_line":"#-----------------------"},{"line_number":263,"context_line":"# Agent Service"},{"line_number":264,"context_line":"#-----------------------"},{"line_number":265,"context_line":"# Set a number of workers to enable the agent. The agent should run on the"},{"line_number":266,"context_line":"# resolver hosts"},{"line_number":267,"context_line":"[service:agent]"},{"line_number":268,"context_line":"#workers \u003d None"},{"line_number":269,"context_line":"#host \u003d 0.0.0.0"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"1a122d0e_c8a6360e","line":266,"range":{"start_line":265,"start_character":0,"end_line":266,"end_character":16},"in_reply_to":"1a122d0e_e5d779eb","updated":"2016-04-28 12:47:02.000000000","message":"Done","commit_id":"4a30c9bc405e3e2ea0221974446dbd69a1057945"}]}
