)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"5602d98e03644ac8c9dbc5422642eaaf37484a47","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAFT of bind9 cleanup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"My first attempt at the bind9 plugin, lots of things wrong with it"},{"line_number":10,"context_line":"but I wanted to get some feedback. I\u0027ve included a better"},{"line_number":11,"context_line":"explanation in the designate/backend/impl_bind9.py file."},{"line_number":12,"context_line":"Just let me know what you think. Thanks! Hopefully I do this"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAASn%2F%2FJn8%3D","line":9,"updated":"2013-09-11 02:51:24.000000000","message":"Clarifying this a bit: lots of things wrong with the current draft I have here. But I\u0027m looking to see what you think about what I\u0027ve done :)","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"}],"designate/backend/impl_bind9.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"162bd4d3dff528a544d797c2c2976e286b3265de","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# Kiall:"},{"line_number":18,"context_line":"# Here\u0027s what this does right now."},{"line_number":19,"context_line":"# -Adds/Deletes zones using rndc addzone/delzone (we use it in prod here)"},{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIRw%3D","line":19,"updated":"2013-09-11 14:01:48.000000000","message":"Is this enabled by default, if not we\u0027ll want to make a note that it needs to be turned on.. somewhere :)","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"820fdb6e6f6226e02965b3e86d42936549b18315","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# Kiall:"},{"line_number":18,"context_line":"# Here\u0027s what this does right now."},{"line_number":19,"context_line":"# -Adds/Deletes zones using rndc addzone/delzone (we use it in prod here)"},{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIJI%3D","line":19,"in_reply_to":"AAAASn%2F%2FIRw%3D","updated":"2013-09-11 14:33:24.000000000","message":"Ah good point, it\u0027s not enabled by default. It\u0027s an option in the named.conf file. Or named.conf.options which is included.","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"162bd4d3dff528a544d797c2c2976e286b3265de","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Kiall:"},{"line_number":18,"context_line":"# Here\u0027s what this does right now."},{"line_number":19,"context_line":"# -Adds/Deletes zones using rndc addzone/delzone (we use it in prod here)"},{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"},{"line_number":23,"context_line":"#    format. It wouldn\u0027t be hard to copy this file over into a zones.config"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIRU%3D","line":20,"updated":"2013-09-11 14:01:48.000000000","message":"We currently place them in $state_dir, which is intended as the 1 place to find Designate\u0027s \"state files\".. \n\nThe main reason to keep it this way, is so .deb/.rpm packaging etc can reliably purge the state on uninstall.","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6c839117210918facca56a7719b3ba73cb575667","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Kiall:"},{"line_number":18,"context_line":"# Here\u0027s what this does right now."},{"line_number":19,"context_line":"# -Adds/Deletes zones using rndc addzone/delzone (we use it in prod here)"},{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"},{"line_number":23,"context_line":"#    format. It wouldn\u0027t be hard to copy this file over into a zones.config"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIC8%3D","line":20,"in_reply_to":"AAAASn%2F%2FIIw%3D","updated":"2013-09-11 19:54:13.000000000","message":"Well, at some point the zone file has to make it to the public DNS servers.. if that\u0027s via the agent, rsync, NFS, or AXFR\u0027s from a hidden master is wide open for discussion :)","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"820fdb6e6f6226e02965b3e86d42936549b18315","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Kiall:"},{"line_number":18,"context_line":"# Here\u0027s what this does right now."},{"line_number":19,"context_line":"# -Adds/Deletes zones using rndc addzone/delzone (we use it in prod here)"},{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"},{"line_number":23,"context_line":"#    format. It wouldn\u0027t be hard to copy this file over into a zones.config"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIIw%3D","line":20,"in_reply_to":"AAAASn%2F%2FIRU%3D","updated":"2013-09-11 14:33:24.000000000","message":"Ah, that makes sense to maintain easy compatibility. But in a production-type setup, wouldn\u0027t you want to have bind9 running on a separate server, so that would have to change at some point? Oh, or was your intention to create the zone files in designate central and then copy them over to the bind servers?","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"162bd4d3dff528a544d797c2c2976e286b3265de","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"},{"line_number":23,"context_line":"#    format. It wouldn\u0027t be hard to copy this file over into a zones.config"},{"line_number":24,"context_line":"# -Changes zone file names to [domain name]_[uuid].zone"},{"line_number":25,"context_line":"# -These changes eliminate the need to call sync_domains()"},{"line_number":26,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIQA%3D","line":23,"updated":"2013-09-11 14:01:48.000000000","message":"We use this has a \"include\" in the main bind9 config file..\n\nOtherwise, a bind9 restart (without a agent restart) will bring up a \"blank\" server.. \"rndc addzone/delzone\" might remove this need though .. \n\nIf maybe after each add/delzone, we should copy /var/cache/bind/xxxx.nzf into the state directory? I assume /var/cache/bind is a ephemeral path, where we can\u0027t rely on persistence.","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"820fdb6e6f6226e02965b3e86d42936549b18315","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# -Adds a configuration option to put the zone files wherever you like"},{"line_number":21,"context_line":"# -Eliminates the zones.config file (I know we need it but I\u0027m not sure why)"},{"line_number":22,"context_line":"# -Instead uses a file in /var/cache/bind/xxxx.nzf that is of the exact same"},{"line_number":23,"context_line":"#    format. It wouldn\u0027t be hard to copy this file over into a zones.config"},{"line_number":24,"context_line":"# -Changes zone file names to [domain name]_[uuid].zone"},{"line_number":25,"context_line":"# -These changes eliminate the need to call sync_domains()"},{"line_number":26,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIIk%3D","line":23,"in_reply_to":"AAAASn%2F%2FIQA%3D","updated":"2013-09-11 14:33:24.000000000","message":"Yeah rndc addzone/delzone makes it so that a bind9 restart doesn\u0027t bring up a blank one, but I still think it should be copied over into the state directory, I like that idea.","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"162bd4d3dff528a544d797c2c2976e286b3265de","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        #self._sync_domains()"},{"line_number":154,"context_line":"        #use delzone"},{"line_number":155,"context_line":"        rndc_op \u003d \u0027delzone %s\u0027 % domain[\u0027name\u0027]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIPg%3D","line":155,"updated":"2013-09-11 14:01:48.000000000","message":"the \"delzone\" and domain name should to be in separate array items, otherwise there is a risk that, if something needs to be shell escaped, both the command and zone name will be quoted as a single argument.\n\nAdditionally, this could end up as a security issue, but I\u0027m having a hard time coming up with a viable \"attack\". Better to ensure each argument is handled correctly from the start :)","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"820fdb6e6f6226e02965b3e86d42936549b18315","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        #self._sync_domains()"},{"line_number":154,"context_line":"        #use delzone"},{"line_number":155,"context_line":"        rndc_op \u003d \u0027delzone %s\u0027 % domain[\u0027name\u0027]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FIIg%3D","line":155,"in_reply_to":"AAAASn%2F%2FIPg%3D","updated":"2013-09-11 14:33:24.000000000","message":"Totally agree.","commit_id":"14ef3bff5836e5bfb46099e4141a133eb2187604"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"f8633f1b8f1572080eba0e9fa5ddf566d3f4375d","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        rndc_op \u003d \u0027delzone\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        rndc_call \u003d self._rndc_base() + [rndc_op] + [domain[\u0027name\u0027]]"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        utils.execute(*rndc_call)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2F0Y8%3D","line":107,"updated":"2013-09-18 18:13:01.000000000","message":"We could simplify this to:\n\n    rndc_call \u003d self._rndc_base() + [rndc_op, domain[\u0027name\u0027]]","commit_id":"23d8ead096b08fad3e74f943c61c8da82ff6011f"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"aebe3a892a0ab39e31eaa8c46bd2fbbc147a42f5","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        rndc_op \u003d \u0027delzone\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        rndc_call \u003d self._rndc_base() + [rndc_op] + [domain[\u0027name\u0027]]"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        utils.execute(*rndc_call)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2F0Tg%3D","line":107,"in_reply_to":"AAAAS3%2F%2F0Y8%3D","updated":"2013-09-18 18:40:41.000000000","message":"Cool! I\u0027ll do that.","commit_id":"23d8ead096b08fad3e74f943c61c8da82ff6011f"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"f8633f1b8f1572080eba0e9fa5ddf566d3f4375d","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        utils.execute(*rndc_call)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        nzf_name \u003d glob.glob(\u0027/var/cache/bind/*.nzf\u0027)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        output_file \u003d os.path.join(output_folder, \u0027zones.config\u0027)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2F0Y4%3D","line":111,"updated":"2013-09-18 18:13:01.000000000","message":"Can you add a comment about why we\u0027re only interested in the first match of the glob? I\u0027m totally unfamiliar with what these files contain, or what each distinct file is!","commit_id":"23d8ead096b08fad3e74f943c61c8da82ff6011f"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"aebe3a892a0ab39e31eaa8c46bd2fbbc147a42f5","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        utils.execute(*rndc_call)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        nzf_name \u003d glob.glob(\u0027/var/cache/bind/*.nzf\u0027)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        output_file \u003d os.path.join(output_folder, \u0027zones.config\u0027)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2F0VI%3D","line":111,"in_reply_to":"AAAAS3%2F%2F0Y4%3D","updated":"2013-09-18 18:40:41.000000000","message":"Ah sure. Yeah so what happens with that is the filename is a hash of the view name with extension .nzf. So it\u0027s possible that the name may change. And there will only ever be one file so that\u0027s why the first on is of interest.","commit_id":"23d8ead096b08fad3e74f943c61c8da82ff6011f"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"f8633f1b8f1572080eba0e9fa5ddf566d3f4375d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                                      domain\u003ddomain,"},{"line_number":136,"context_line":"                                      records\u003drecords)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        rndc_op \u003d \u0027reload\u0027"},{"line_number":139,"context_line":"        rndc_call \u003d self._rndc_base()"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        if new_domain_flag:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2F0Ys%3D","line":138,"updated":"2013-09-18 18:13:01.000000000","message":"Should we move this into the `else` block below, as it\u0027s only used by that branch?","commit_id":"23d8ead096b08fad3e74f943c61c8da82ff6011f"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"aebe3a892a0ab39e31eaa8c46bd2fbbc147a42f5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                                      domain\u003ddomain,"},{"line_number":136,"context_line":"                                      records\u003drecords)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        rndc_op \u003d \u0027reload\u0027"},{"line_number":139,"context_line":"        rndc_call \u003d self._rndc_base()"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        if new_domain_flag:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2F0R0%3D","line":138,"in_reply_to":"AAAAS3%2F%2F0Ys%3D","updated":"2013-09-18 18:40:41.000000000","message":"Yessir.","commit_id":"23d8ead096b08fad3e74f943c61c8da82ff6011f"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"9849fe1d035b31bff83c9c3e4ba0c93d484e3347","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":50,"context_line":"            rndc_call.extend([domain[\u0027name\u0027]])"},{"line_number":51,"context_line":"            LOG.debug(\u0027Calling RNDC with: %s\u0027 % \" \".join(rndc_call))"},{"line_number":52,"context_line":"            utils.execute(*rndc_call)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def create_domain(self, context, domain):"},{"line_number":55,"context_line":"        LOG.debug(\u0027Create Domain\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fxdc%3D","line":52,"updated":"2013-09-19 16:03:32.000000000","message":"Could you log some statistics at the end - how many domains processed in how much time.\n\nAlso do you need to copy the nzf file to the zones.config here?","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"da996683895fc4761c33cb87bef4abdca657df26","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":50,"context_line":"            rndc_call.extend([domain[\u0027name\u0027]])"},{"line_number":51,"context_line":"            LOG.debug(\u0027Calling RNDC with: %s\u0027 % \" \".join(rndc_call))"},{"line_number":52,"context_line":"            utils.execute(*rndc_call)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def create_domain(self, context, domain):"},{"line_number":55,"context_line":"        LOG.debug(\u0027Create Domain\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FuhI%3D","line":52,"in_reply_to":"AAAAS3%2F%2FvGE%3D","updated":"2013-09-20 14:14:22.000000000","message":"The only way the .nzf file would have changed is if a rndc addzone/delzone operation were made while designate was offline. But if that happened, the zones wouldn\u0027t be in Designate anyway, which is undesirable. I suppose if zones were added to Designate somehow while it was offline, then we would want to call sync_domain on every domain, unless it was added to bind9 too.","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"deb7aa0bb3fc5d87b8c021d53bf88d1e2b69e081","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":50,"context_line":"            rndc_call.extend([domain[\u0027name\u0027]])"},{"line_number":51,"context_line":"            LOG.debug(\u0027Calling RNDC with: %s\u0027 % \" \".join(rndc_call))"},{"line_number":52,"context_line":"            utils.execute(*rndc_call)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def create_domain(self, context, domain):"},{"line_number":55,"context_line":"        LOG.debug(\u0027Create Domain\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FvGE%3D","line":52,"in_reply_to":"AAAAS3%2F%2Fw9Y%3D","updated":"2013-09-20 09:46:52.000000000","message":"Could it be affected? The reason we sync here is to ensure the server is up to date with changes from while it was offline.\n\nThat said, Once async and pools are in, full syncs shouldn\u0027t be necessary, at least, not in the same way..","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"e462c3ee937aba11e8619f8b2faa38bd6ffc97c2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":50,"context_line":"            rndc_call.extend([domain[\u0027name\u0027]])"},{"line_number":51,"context_line":"            LOG.debug(\u0027Calling RNDC with: %s\u0027 % \" \".join(rndc_call))"},{"line_number":52,"context_line":"            utils.execute(*rndc_call)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def create_domain(self, context, domain):"},{"line_number":55,"context_line":"        LOG.debug(\u0027Create Domain\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FwQk%3D","line":52,"in_reply_to":"AAAAS3%2F%2Fw9Y%3D","updated":"2013-09-19 21:37:03.000000000","message":"You could add another debug statement outside the for loop and give the statistics there that Vinod is asking for. You could keep the count in the for loop, if you don\u0027t have the number any other way.","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"f10fe9ba4e77f11125742e3ab8ba60f32373ef32","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            rndc_call \u003d self._rndc_base() + [rndc_op]"},{"line_number":50,"context_line":"            rndc_call.extend([domain[\u0027name\u0027]])"},{"line_number":51,"context_line":"            LOG.debug(\u0027Calling RNDC with: %s\u0027 % \" \".join(rndc_call))"},{"line_number":52,"context_line":"            utils.execute(*rndc_call)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def create_domain(self, context, domain):"},{"line_number":55,"context_line":"        LOG.debug(\u0027Create Domain\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fw9Y%3D","line":52,"in_reply_to":"AAAAS3%2F%2Fxdc%3D","updated":"2013-09-19 18:04:51.000000000","message":"The .nzf file isn\u0027t affected here, so it doesn\u0027t need to be changed. But it could be interesting when the service starts to say how many zones we have here. It might be better to replace the current debug statement, as that will print for every zone. If that call fails, it will give you the call that it failed on in the error message anyway.","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"9849fe1d035b31bff83c9c3e4ba0c93d484e3347","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        rndc_op \u003d \u0027delzone\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        rndc_call \u003d self._rndc_base() + [rndc_op, domain[\u0027name\u0027]]"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        utils.execute(*rndc_call)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FxYE%3D","line":107,"updated":"2013-09-19 16:03:32.000000000","message":"Refactoring - not necessary - Could you move the following 4 lines to a separate function so that both delete and sync call the same function.  Easier to modify in one place later if necessary etc.","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"f10fe9ba4e77f11125742e3ab8ba60f32373ef32","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        rndc_op \u003d \u0027delzone\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        rndc_call \u003d self._rndc_base() + [rndc_op, domain[\u0027name\u0027]]"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        utils.execute(*rndc_call)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fw9E%3D","line":107,"in_reply_to":"AAAAS3%2F%2FxYE%3D","updated":"2013-09-19 18:04:51.000000000","message":"That could be done.","commit_id":"a8b017769c42fd19edffb0ab8b2f25b421eb5aac"}]}
