)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"972ecc7202fbd4b889f631b3401db26ec2943bf5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding designate dns support to trove"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"BP https://blueprints.launchpad.net/trove/+spec/designate-dnsaas-support"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I69a8455595b519a6459f70efa8eef8a4013bd9f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F%2Blww%3D","line":9,"updated":"2013-11-22 18:45:08.000000000","message":"Implements: blueprint name-of-blueprint","commit_id":"8856477e68fc9ff3ef03ce66fc705b04bba48179"}],"etc/trove/trove-taskmanager.conf.sample":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"dns_domain_name \u003d \u0027trove.com.\u0027"},{"line_number":70,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":71,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":72,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":73,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2FjVI%3D","line":72,"updated":"2013-11-01 15:06:50.000000000","message":"Could we name it like dns_entry_factory ?","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":69,"context_line":"dns_domain_name \u003d \u0027trove.com.\u0027"},{"line_number":70,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":71,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":72,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":73,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2Fd4o%3D","line":72,"in_reply_to":"AAAATn%2F%2Fitk%3D","updated":"2013-11-05 11:43:13.000000000","message":"I suppose that we doen\u0027t relay on side features. Our goal - OpenStack DNSaaS Designate. So, their driver is their feature, that why they should deal with it since trove doesn\u0027t relay on rax driver.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":69,"context_line":"dns_domain_name \u003d \u0027trove.com.\u0027"},{"line_number":70,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":71,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":72,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":73,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2Fitk%3D","line":72,"in_reply_to":"AAAATn%2F%2FjVI%3D","updated":"2013-11-01 17:37:09.000000000","message":"Is there a specific reason why you want it renamed? This is how the existing (rackspace) drivers refers to it. So making this change, i would have to also update their drivers.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":71,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":72,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":73,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Trove Security Groups for Instances"},{"line_number":76,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2FjXQ%3D","line":73,"updated":"2013-11-01 15:06:50.000000000","message":"without any port ?","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":70,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":71,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":72,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":73,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Trove Security Groups for Instances"},{"line_number":76,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2Fitg%3D","line":73,"in_reply_to":"AAAATn%2F%2FjXQ%3D","updated":"2013-11-01 17:37:09.000000000","message":"This is just a dummy value. It should point to the real endpoint URL. It may have port or not","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"bb70b9b79ee760b247e074a5e9e1fca08d41ddb5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"},{"line_number":64,"context_line":"dns_account_id \u003d 123456"},{"line_number":65,"context_line":"dns_auth_url \u003d http://0.0.0.0:5000/v2.0"},{"line_number":66,"context_line":"dns_username \u003d user"},{"line_number":67,"context_line":"dns_passkey \u003d password"},{"line_number":68,"context_line":"dns_ttl \u003d 3600"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAATn%2F%2BwRs%3D","line":65,"updated":"2013-11-20 17:02:24.000000000","message":"Just a suggestion, but 0.0.0.0 isn\u0027t a real IP; perhaps change this to 127.0.0.1 or localhost, just to have workable defaults?","commit_id":"f056df5ad3c1b6cbc20d5fed69e8850849b7635a"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"bb70b9b79ee760b247e074a5e9e1fca08d41ddb5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":71,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":72,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":73,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":74,"context_line":"dns_service_type \u003d dns"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAATn%2F%2BwRc%3D","line":73,"updated":"2013-11-20 17:02:24.000000000","message":"Same suggestion here.","commit_id":"f056df5ad3c1b6cbc20d5fed69e8850849b7635a"}],"etc/trove/trove.conf.sample":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":77,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":78,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":79,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":80,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# Taskmanager queue name"},{"line_number":83,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2FjXE%3D","line":80,"updated":"2013-11-01 15:06:50.000000000","message":"same","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":77,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":78,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":79,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":80,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"# Taskmanager queue name"},{"line_number":83,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2FitY%3D","line":80,"in_reply_to":"AAAATn%2F%2FjXE%3D","updated":"2013-11-01 17:37:09.000000000","message":"Just a dummy value for the config. It should be replaced with the real value.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"bb70b9b79ee760b247e074a5e9e1fca08d41ddb5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"# Trove DNS"},{"line_number":71,"context_line":"trove_dns_support \u003d False"},{"line_number":72,"context_line":"dns_account_id \u003d 123456"},{"line_number":73,"context_line":"dns_auth_url \u003d http://0.0.0.0:5000/v2.0"},{"line_number":74,"context_line":"dns_username \u003d user"},{"line_number":75,"context_line":"dns_passkey \u003d password"},{"line_number":76,"context_line":"dns_ttl \u003d 3600"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAATn%2F%2BwRQ%3D","line":73,"updated":"2013-11-20 17:02:24.000000000","message":"Same suggestion here.","commit_id":"f056df5ad3c1b6cbc20d5fed69e8850849b7635a"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"bb70b9b79ee760b247e074a5e9e1fca08d41ddb5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"dns_domain_id \u003d 11111111-1111-1111-1111-111111111111"},{"line_number":79,"context_line":"dns_driver \u003d trove.dns.designate.driver.DesignateDriver"},{"line_number":80,"context_line":"dns_instance_entry_factory \u003d trove.dns.designate.driver.DesignateInstanceEntryFactory"},{"line_number":81,"context_line":"dns_endpoint_url \u003d http://0.0.0.0/v1/"},{"line_number":82,"context_line":"dns_service_type \u003d dns"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# Taskmanager queue name"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAATn%2F%2BwRM%3D","line":81,"updated":"2013-11-20 17:02:24.000000000","message":"Same suggestion here.","commit_id":"f056df5ad3c1b6cbc20d5fed69e8850849b7635a"}],"trove/common/cfg.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":71,"context_line":"               default\u003d\u0027trove.dns.driver.DnsInstanceEntryFactory\u0027),"},{"line_number":72,"context_line":"    cfg.StrOpt(\u0027dns_hostname\u0027, default\u003d\"\"),"},{"line_number":73,"context_line":"    cfg.StrOpt(\u0027dns_account_id\u0027, default\u003d\"\"),"},{"line_number":74,"context_line":"    cfg.StrOpt(\u0027dns_endpoint_url\u0027, default\u003d\"\"),"},{"line_number":75,"context_line":"    cfg.StrOpt(\u0027dns_auth_url\u0027, default\u003d\"\"),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027dns_domain_name\u0027, default\u003d\"\"),"},{"line_number":77,"context_line":"    cfg.StrOpt(\u0027dns_username\u0027, default\u003d\"\", secret\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd4U%3D","line":74,"updated":"2013-11-05 11:43:13.000000000","message":"i suppose, we shoul use 0.0.0.0/port URL as default.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"}],"trove/dns/designate/driver.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.dns.driver import DnsDriver"},{"line_number":23,"context_line":"from trove.dns.driver import DnsEntry"},{"line_number":24,"context_line":"from trove.dns.driver import DnsInstanceEntryFactory"},{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjW8%3D","line":25,"updated":"2013-11-01 15:06:50.000000000","message":"i suppose, we could organize import better way:\n        \tfrom trove.dns import driver","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.dns.driver import DnsDriver"},{"line_number":23,"context_line":"from trove.dns.driver import DnsEntry"},{"line_number":24,"context_line":"from trove.dns.driver import DnsInstanceEntryFactory"},{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd4I%3D","line":25,"in_reply_to":"AAAATn%2F%2FitE%3D","updated":"2013-11-05 11:43:13.000000000","message":"yes, and this is normal flow","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.dns.driver import DnsDriver"},{"line_number":23,"context_line":"from trove.dns.driver import DnsEntry"},{"line_number":24,"context_line":"from trove.dns.driver import DnsInstanceEntryFactory"},{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FitE%3D","line":25,"in_reply_to":"AAAATn%2F%2FjW8%3D","updated":"2013-11-01 17:37:09.000000000","message":"I guess i could do that but then i will have to make reference to it when i reference all these classes. i.e.: driver.DnsDriver, driver.DnsEntry.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"},{"line_number":29,"context_line":"import hashlib"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjWg%3D","line":28,"updated":"2013-11-01 15:06:50.000000000","message":"also, i suppose, designate client should come from trove.common.remote","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c4a247d4a3b2ecc5493c10531618db82bbc0bc4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"},{"line_number":29,"context_line":"import hashlib"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FNjU%3D","line":28,"in_reply_to":"AAAATn%2F%2Fd4E%3D","updated":"2013-11-12 20:10:59.000000000","message":"Im still unwilling to move this because we dont want to put designate specific code to trove core. There is already a dns_client that calls the manager. Changing this code will break RS implementation of dns","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"},{"line_number":29,"context_line":"import hashlib"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd4E%3D","line":28,"in_reply_to":"AAAATn%2F%2Fisg%3D","updated":"2013-11-05 11:43:13.000000000","message":"No matter, all remote client are placed at remote.py, so i suppose it should be moved there since we already have precise placement strategy.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from trove.dns.driver import DnsZone"},{"line_number":26,"context_line":"from trove.openstack.common import log as logging"},{"line_number":27,"context_line":"from designateclient.v1 import Client"},{"line_number":28,"context_line":"from designateclient.v1.records import Record"},{"line_number":29,"context_line":"import hashlib"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fisg%3D","line":28,"in_reply_to":"AAAATn%2F%2FjWg%3D","updated":"2013-11-01 17:37:09.000000000","message":"Not sure if we should move it to trove.common.remove. This is a driver specifically for designate and i dont think it should be part of the core remote component.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DNS_PASSKEY \u003d CONF.dns_passkey"},{"line_number":39,"context_line":"DNS_TTL \u003d CONF.dns_ttl"},{"line_number":40,"context_line":"DNS_DOMAIN_ID \u003d CONF.dns_domain_id"},{"line_number":41,"context_line":"DNS_DOMAIN_NAME \u003d CONF.dns_domain_name"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjWM%3D","line":41,"updated":"2013-11-01 15:06:50.000000000","message":"Why not ask CONF attributes dirrectly ?","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DNS_PASSKEY \u003d CONF.dns_passkey"},{"line_number":39,"context_line":"DNS_TTL \u003d CONF.dns_ttl"},{"line_number":40,"context_line":"DNS_DOMAIN_ID \u003d CONF.dns_domain_id"},{"line_number":41,"context_line":"DNS_DOMAIN_NAME \u003d CONF.dns_domain_name"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd38%3D","line":41,"in_reply_to":"AAAATn%2F%2Fiso%3D","updated":"2013-11-05 11:43:13.000000000","message":"I suppose that we should leave it. It would be easier to fix it in one place not in many others.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DNS_PASSKEY \u003d CONF.dns_passkey"},{"line_number":39,"context_line":"DNS_TTL \u003d CONF.dns_ttl"},{"line_number":40,"context_line":"DNS_DOMAIN_ID \u003d CONF.dns_domain_id"},{"line_number":41,"context_line":"DNS_DOMAIN_NAME \u003d CONF.dns_domain_name"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fiso%3D","line":41,"in_reply_to":"AAAATn%2F%2FjWM%3D","updated":"2013-11-01 17:37:09.000000000","message":"I think it looks cleaner that way. But i can change it if you dont like it.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":64,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":65,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":66,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":67,"context_line":"    return client"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjVs%3D","line":66,"updated":"2013-11-01 15:06:50.000000000","message":"i suppose, it should be moved to trove.common.remote","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":64,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":65,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":66,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":67,"context_line":"    return client"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd3o%3D","line":66,"in_reply_to":"AAAATn%2F%2FisY%3D","updated":"2013-11-05 11:43:13.000000000","message":"Yes, please move it.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":64,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":65,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":66,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":67,"context_line":"    return client"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FisY%3D","line":66,"in_reply_to":"AAAATn%2F%2FjVs%3D","updated":"2013-11-01 17:37:09.000000000","message":"Same reason as above. This is a driver specifically for designate. We could have an abstract create_dns_client() method in common.remove. But it is probably not needed.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        return self.dns_client.records.list(dns_zone.id)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class DesignateInstanceEntryFactory(DnsInstanceEntryFactory):"},{"line_number":140,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def create_entry(self, instance):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjVY%3D","line":139,"updated":"2013-11-01 15:06:50.000000000","message":"i suppose it would be moved outside of drive implementation, maybe into dns_factory module","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c4a247d4a3b2ecc5493c10531618db82bbc0bc4","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        return self.dns_client.records.list(dns_zone.id)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class DesignateInstanceEntryFactory(DnsInstanceEntryFactory):"},{"line_number":140,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def create_entry(self, instance):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FNi8%3D","line":139,"in_reply_to":"AAAATn%2F%2Fd3M%3D","updated":"2013-11-12 20:10:59.000000000","message":"I just saw that moving the factory into its own module will not be consistent with the base driver module. And i want to refrain changing the base as well. There is really no benefit obtain by moving it. Is there?","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        return self.dns_client.records.list(dns_zone.id)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class DesignateInstanceEntryFactory(DnsInstanceEntryFactory):"},{"line_number":140,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def create_entry(self, instance):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd3M%3D","line":139,"in_reply_to":"AAAATn%2F%2Firw%3D","updated":"2013-11-05 11:43:13.000000000","message":"Thanks","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        return self.dns_client.records.list(dns_zone.id)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class DesignateInstanceEntryFactory(DnsInstanceEntryFactory):"},{"line_number":140,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def create_entry(self, instance):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Firw%3D","line":139,"in_reply_to":"AAAATn%2F%2FjVY%3D","updated":"2013-11-01 17:37:09.000000000","message":"Sounds good. I\u0027ll create a new module that will have this in. It should make it cleaner.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                        dns_zone\u003dzone)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"class DesignateDnsZone(DnsZone):"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def __init__(self, id, name):"},{"line_number":157,"context_line":"        self._name \u003d name"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjVQ%3D","line":154,"updated":"2013-11-01 15:06:50.000000000","message":"Same with factory","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"2b6ec950d4e78017c27cfba26852b538aeb6fd18","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNKw%3D","line":1,"updated":"2013-11-12 22:42:23.000000000","message":"please also add HP copyright","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"2b6ec950d4e78017c27cfba26852b538aeb6fd18","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                    password\u003dDNS_PASSKEY,"},{"line_number":61,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":62,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":63,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":64,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":65,"context_line":"    return client"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNKk%3D","line":63,"updated":"2013-11-12 22:42:23.000000000","message":"This should not be hard-coded.  If we need to, make it a configurable thing.","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"d472d6679f95085b9004333c721570f84b95f51d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                    password\u003dDNS_PASSKEY,"},{"line_number":61,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":62,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":63,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":64,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":65,"context_line":"    return client"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNKI%3D","line":63,"in_reply_to":"AAAATn%2F%2FNKk%3D","updated":"2013-11-12 22:45:46.000000000","message":"yeah.. i saw that right after i submitted the patch. I\u0027ll make it configurable","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"2b6ec950d4e78017c27cfba26852b538aeb6fd18","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":62,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":63,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":64,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":65,"context_line":"    return client"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNKg%3D","line":64,"updated":"2013-11-12 22:42:23.000000000","message":"Also should not be hard-coded.","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"d472d6679f95085b9004333c721570f84b95f51d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                    tenant_id\u003dDNS_TENANT_ID,"},{"line_number":62,"context_line":"                    endpoint\u003dDNS_ENDPOINT_URL,"},{"line_number":63,"context_line":"                    service_type\u003d\u0027hpext:dns\u0027,"},{"line_number":64,"context_line":"                    region_name\u003d\u0027region-a.geo-1\u0027)"},{"line_number":65,"context_line":"    return client"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNKA%3D","line":64,"in_reply_to":"AAAATn%2F%2FNKg%3D","updated":"2013-11-12 22:45:46.000000000","message":"ditto.\nHad it there for testing","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"2b6ec950d4e78017c27cfba26852b538aeb6fd18","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                           if rec.name \u003d\u003d name + \u0027.\u0027 and rec.type \u003d\u003d type]"},{"line_number":99,"context_line":"        if not matching_record:"},{"line_number":100,"context_line":"            raise exception.DnsRecordNotFound(name)"},{"line_number":101,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":102,"context_line":"        self.dns_client.records.delete(dns_zone.id, matching_record[0].id)"},{"line_number":103,"context_line":"        LOG.debug(\"DNS entry created.\")"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNLs%3D","line":101,"updated":"2013-11-12 22:42:23.000000000","message":"Should be \u0027Deleting\u0027","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"d472d6679f95085b9004333c721570f84b95f51d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                           if rec.name \u003d\u003d name + \u0027.\u0027 and rec.type \u003d\u003d type]"},{"line_number":99,"context_line":"        if not matching_record:"},{"line_number":100,"context_line":"            raise exception.DnsRecordNotFound(name)"},{"line_number":101,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":102,"context_line":"        self.dns_client.records.delete(dns_zone.id, matching_record[0].id)"},{"line_number":103,"context_line":"        LOG.debug(\"DNS entry created.\")"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNJw%3D","line":101,"in_reply_to":"AAAATn%2F%2FNLs%3D","updated":"2013-11-12 22:45:46.000000000","message":"copy and paste error. Good catch","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"2b6ec950d4e78017c27cfba26852b538aeb6fd18","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            raise exception.DnsRecordNotFound(name)"},{"line_number":101,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":102,"context_line":"        self.dns_client.records.delete(dns_zone.id, matching_record[0].id)"},{"line_number":103,"context_line":"        LOG.debug(\"DNS entry created.\")"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def get_entries_by_content(self, content, dns_zone\u003dNone):"},{"line_number":106,"context_line":"        \"\"\"Retrieves all entries in a dns_zone with a matching content field\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNLg%3D","line":103,"updated":"2013-11-12 22:42:23.000000000","message":"maybe unnecessary to log this after each create/delete","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"def92fab869c705784f31d6c54c95b3a72e1c602","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            raise exception.DnsRecordNotFound(name)"},{"line_number":101,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":102,"context_line":"        self.dns_client.records.delete(dns_zone.id, matching_record[0].id)"},{"line_number":103,"context_line":"        LOG.debug(\"DNS entry created.\")"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def get_entries_by_content(self, content, dns_zone\u003dNone):"},{"line_number":106,"context_line":"        \"\"\"Retrieves all entries in a dns_zone with a matching content field\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNHw%3D","line":103,"in_reply_to":"AAAATn%2F%2FNJo%3D","updated":"2013-11-12 23:00:46.000000000","message":"I feel like it\u0027s not useful, just adds unnecessary logs.  If it didn\u0027t succeed, i think we can assume that the previous like will thrown an exception and we\u0027d know.","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"d472d6679f95085b9004333c721570f84b95f51d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            raise exception.DnsRecordNotFound(name)"},{"line_number":101,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":102,"context_line":"        self.dns_client.records.delete(dns_zone.id, matching_record[0].id)"},{"line_number":103,"context_line":"        LOG.debug(\"DNS entry created.\")"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def get_entries_by_content(self, content, dns_zone\u003dNone):"},{"line_number":106,"context_line":"        \"\"\"Retrieves all entries in a dns_zone with a matching content field\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FNJo%3D","line":103,"in_reply_to":"AAAATn%2F%2FNLg%3D","updated":"2013-11-12 22:45:46.000000000","message":"Logging level is set to debug. So it wont be as verbose if we dont log DEBUG. Do you think it would still be helpful?","commit_id":"4bf65f0fbcb515876697e59c17940c8f1c6d46d6"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class DesignateObjectConverter(object):"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def domain_to_zone(self, domain):"},{"line_number":50,"context_line":"        return DesignateDnsZone(id\u003ddomain.id, name\u003ddomain.name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEx0%3D","line":47,"updated":"2013-11-14 18:57:33.000000000","message":"same with placement","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                               priority\u003drecord.priority, dns_zone\u003ddns_zone)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def create_designate_client():"},{"line_number":59,"context_line":"    \"\"\"Creates a Designate DNSaaS client.\"\"\""},{"line_number":60,"context_line":"    client \u003d Client(auth_url\u003dDNS_AUTH_URL,"},{"line_number":61,"context_line":"                    username\u003dDNS_USERNAME,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEx4%3D","line":58,"updated":"2013-11-14 18:57:33.000000000","message":"client deserves to be placed in common/remote","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"5c70259d9a7ec4420af16541f48fdb8d7f78df1f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                               priority\u003drecord.priority, dns_zone\u003ddns_zone)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def create_designate_client():"},{"line_number":59,"context_line":"    \"\"\"Creates a Designate DNSaaS client.\"\"\""},{"line_number":60,"context_line":"    client \u003d Client(auth_url\u003dDNS_AUTH_URL,"},{"line_number":61,"context_line":"                    username\u003dDNS_USERNAME,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FA44%3D","line":58,"in_reply_to":"AAAATn%2F%2FEtc%3D","updated":"2013-11-15 17:33:39.000000000","message":"I disagree with moving this to remote.py.  Designate client is a concern of only the DNS Driver, and may never get called if Designate isn\u0027t configured.  Whats in remote.py should be things that really interact with the rest of Trove code, and designate isn\u0027t one of those.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"77c380cd83dfc4fe797e7d3c5ea075a9e2a9ee05","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                               priority\u003drecord.priority, dns_zone\u003ddns_zone)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def create_designate_client():"},{"line_number":59,"context_line":"    \"\"\"Creates a Designate DNSaaS client.\"\"\""},{"line_number":60,"context_line":"    client \u003d Client(auth_url\u003dDNS_AUTH_URL,"},{"line_number":61,"context_line":"                    username\u003dDNS_USERNAME,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEtc%3D","line":58,"in_reply_to":"AAAATn%2F%2FEwI%3D","updated":"2013-11-14 19:19:08.000000000","message":"remote handles only class loading, not client auth. No matter which client it is, we need to keep strict placement strategy.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"78e7e1da15985ac472010b131547765bea3e2985","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                               priority\u003drecord.priority, dns_zone\u003ddns_zone)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def create_designate_client():"},{"line_number":59,"context_line":"    \"\"\"Creates a Designate DNSaaS client.\"\"\""},{"line_number":60,"context_line":"    client \u003d Client(auth_url\u003dDNS_AUTH_URL,"},{"line_number":61,"context_line":"                    username\u003dDNS_USERNAME,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEwI%3D","line":58,"in_reply_to":"AAAATn%2F%2FEx4%3D","updated":"2013-11-14 19:07:40.000000000","message":"I disagree. The trove-dns client handler is already in remote. It is creating the DNS manager. Keep in mind that this is a driver. So  no point of having designate code in the core remote.py","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":70,"context_line":"class DesignateDriver(driver.DnsDriver):"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def __init__(self):"},{"line_number":73,"context_line":"        self.dns_client \u003d create_designate_client()"},{"line_number":74,"context_line":"        self.converter \u003d DesignateObjectConverter()"},{"line_number":75,"context_line":"        self.default_dns_zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID,"},{"line_number":76,"context_line":"                                                 name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FExk%3D","line":73,"updated":"2013-11-14 18:57:33.000000000","message":"it could be placed in common/remote","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"77c380cd83dfc4fe797e7d3c5ea075a9e2a9ee05","unresolved":false,"context_lines":[{"line_number":70,"context_line":"class DesignateDriver(driver.DnsDriver):"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def __init__(self):"},{"line_number":73,"context_line":"        self.dns_client \u003d create_designate_client()"},{"line_number":74,"context_line":"        self.converter \u003d DesignateObjectConverter()"},{"line_number":75,"context_line":"        self.default_dns_zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID,"},{"line_number":76,"context_line":"                                                 name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEtE%3D","line":73,"in_reply_to":"AAAATn%2F%2FEwE%3D","updated":"2013-11-14 19:19:08.000000000","message":"yes, but, we need to keep strict placement strategy.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"78e7e1da15985ac472010b131547765bea3e2985","unresolved":false,"context_lines":[{"line_number":70,"context_line":"class DesignateDriver(driver.DnsDriver):"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def __init__(self):"},{"line_number":73,"context_line":"        self.dns_client \u003d create_designate_client()"},{"line_number":74,"context_line":"        self.converter \u003d DesignateObjectConverter()"},{"line_number":75,"context_line":"        self.default_dns_zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID,"},{"line_number":76,"context_line":"                                                 name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEwE%3D","line":73,"in_reply_to":"AAAATn%2F%2FExk%3D","updated":"2013-11-14 19:07:40.000000000","message":"read my last comment","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def create_entry(self, entry):"},{"line_number":79,"context_line":"        \"\"\"Creates the entry in the driver at the given dns zone.\"\"\""},{"line_number":80,"context_line":"        dns_zone \u003d entry.dns_zone or self.default_dns_zone"},{"line_number":81,"context_line":"        if dns_zone.id is None:"},{"line_number":82,"context_line":"            raise TypeError(\"The entry\u0027s dns_zone must have an ID specified.\")"},{"line_number":83,"context_line":"        name \u003d entry.name"},{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FExc%3D","line":81,"updated":"2013-11-14 18:57:33.000000000","message":"if not dns_zone.id","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"6772d10d27552b8014f226e7f56541e2c1eed583","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def create_entry(self, entry):"},{"line_number":79,"context_line":"        \"\"\"Creates the entry in the driver at the given dns zone.\"\"\""},{"line_number":80,"context_line":"        dns_zone \u003d entry.dns_zone or self.default_dns_zone"},{"line_number":81,"context_line":"        if dns_zone.id is None:"},{"line_number":82,"context_line":"            raise TypeError(\"The entry\u0027s dns_zone must have an ID specified.\")"},{"line_number":83,"context_line":"        name \u003d entry.name"},{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B0rc%3D","line":81,"in_reply_to":"AAAATn%2F%2FEtI%3D","updated":"2013-11-19 17:48:07.000000000","message":"yes. update that.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"77c380cd83dfc4fe797e7d3c5ea075a9e2a9ee05","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def create_entry(self, entry):"},{"line_number":79,"context_line":"        \"\"\"Creates the entry in the driver at the given dns zone.\"\"\""},{"line_number":80,"context_line":"        dns_zone \u003d entry.dns_zone or self.default_dns_zone"},{"line_number":81,"context_line":"        if dns_zone.id is None:"},{"line_number":82,"context_line":"            raise TypeError(\"The entry\u0027s dns_zone must have an ID specified.\")"},{"line_number":83,"context_line":"        name \u003d entry.name"},{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEtI%3D","line":81,"in_reply_to":"AAAATn%2F%2FEv4%3D","updated":"2013-11-14 19:19:08.000000000","message":"mine would be shorter and faster, if you like it, please update it.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"78e7e1da15985ac472010b131547765bea3e2985","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def create_entry(self, entry):"},{"line_number":79,"context_line":"        \"\"\"Creates the entry in the driver at the given dns zone.\"\"\""},{"line_number":80,"context_line":"        dns_zone \u003d entry.dns_zone or self.default_dns_zone"},{"line_number":81,"context_line":"        if dns_zone.id is None:"},{"line_number":82,"context_line":"            raise TypeError(\"The entry\u0027s dns_zone must have an ID specified.\")"},{"line_number":83,"context_line":"        name \u003d entry.name"},{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEv4%3D","line":81,"in_reply_to":"AAAATn%2F%2FExc%3D","updated":"2013-11-14 19:07:40.000000000","message":"More pythonic i guess","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":85,"context_line":"        client \u003d self.dns_client"},{"line_number":86,"context_line":"        # Record name has to end with a \u0027.\u0027 by dns standard"},{"line_number":87,"context_line":"        record \u003d Record(name\u003dentry.name + \u0027.\u0027,"},{"line_number":88,"context_line":"                        type\u003dentry.type,"},{"line_number":89,"context_line":"                        data\u003dentry.content,"},{"line_number":90,"context_line":"                        ttl\u003dentry.ttl,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEw0%3D","line":87,"updated":"2013-11-14 18:57:33.000000000","message":"since you are testing Recond (in tests) it also should be covered with try:except","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"6772d10d27552b8014f226e7f56541e2c1eed583","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":85,"context_line":"        client \u003d self.dns_client"},{"line_number":86,"context_line":"        # Record name has to end with a \u0027.\u0027 by dns standard"},{"line_number":87,"context_line":"        record \u003d Record(name\u003dentry.name + \u0027.\u0027,"},{"line_number":88,"context_line":"                        type\u003dentry.type,"},{"line_number":89,"context_line":"                        data\u003dentry.content,"},{"line_number":90,"context_line":"                        ttl\u003dentry.ttl,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B0rM%3D","line":87,"in_reply_to":"AAAATn%2F%2FAlg%3D","updated":"2013-11-19 17:48:07.000000000","message":"agreed","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"5894aa2d782b73fe8f9928bd58f6ea35115e1161","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":85,"context_line":"        client \u003d self.dns_client"},{"line_number":86,"context_line":"        # Record name has to end with a \u0027.\u0027 by dns standard"},{"line_number":87,"context_line":"        record \u003d Record(name\u003dentry.name + \u0027.\u0027,"},{"line_number":88,"context_line":"                        type\u003dentry.type,"},{"line_number":89,"context_line":"                        data\u003dentry.content,"},{"line_number":90,"context_line":"                        ttl\u003dentry.ttl,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FAlg%3D","line":87,"in_reply_to":"AAAATn%2F%2FEsw%3D","updated":"2013-11-15 19:05:23.000000000","message":"I dont see the benefits in surrounding the designate API calls with try/except. The errors raised by these API are the regular \n400 (invalid), 401 (access denied), 404 (not found) and 409 (duplicate record). If any of these errors happens, it will be caught in the layer that is using this driver as it is its responsibility. I could surround with try/except but i would have to re-raise again. So i dont see the benefit of this","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"77c380cd83dfc4fe797e7d3c5ea075a9e2a9ee05","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":85,"context_line":"        client \u003d self.dns_client"},{"line_number":86,"context_line":"        # Record name has to end with a \u0027.\u0027 by dns standard"},{"line_number":87,"context_line":"        record \u003d Record(name\u003dentry.name + \u0027.\u0027,"},{"line_number":88,"context_line":"                        type\u003dentry.type,"},{"line_number":89,"context_line":"                        data\u003dentry.content,"},{"line_number":90,"context_line":"                        ttl\u003dentry.ttl,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEsw%3D","line":87,"in_reply_to":"AAAATn%2F%2FEu4%3D","updated":"2013-11-14 19:19:08.000000000","message":"You have tests which covers Record class functionality. Since it could fail - please cover it with try:except","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"78e7e1da15985ac472010b131547765bea3e2985","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.debug(\"Creating DNS entry %s.\" % name)"},{"line_number":85,"context_line":"        client \u003d self.dns_client"},{"line_number":86,"context_line":"        # Record name has to end with a \u0027.\u0027 by dns standard"},{"line_number":87,"context_line":"        record \u003d Record(name\u003dentry.name + \u0027.\u0027,"},{"line_number":88,"context_line":"                        type\u003dentry.type,"},{"line_number":89,"context_line":"                        data\u003dentry.content,"},{"line_number":90,"context_line":"                        ttl\u003dentry.ttl,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEu4%3D","line":87,"in_reply_to":"AAAATn%2F%2FEw0%3D","updated":"2013-11-14 19:07:40.000000000","message":"Not sure what you mean by this. Can you explain?","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                        data\u003dentry.content,"},{"line_number":90,"context_line":"                        ttl\u003dentry.ttl,"},{"line_number":91,"context_line":"                        priority\u003dentry.priority)"},{"line_number":92,"context_line":"        client.records.create(dns_zone.id, record)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def delete_entry(self, name, type, dns_zone\u003dNone):"},{"line_number":95,"context_line":"        \"\"\"Deletes an entry with the given name and type from a dns zone.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FExM%3D","line":92,"updated":"2013-11-14 18:57:33.000000000","message":"same with try:except","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        if not matching_record:"},{"line_number":101,"context_line":"            raise exception.DnsRecordNotFound(name)"},{"line_number":102,"context_line":"        LOG.debug(\"Deleting DNS entry %s.\" % name)"},{"line_number":103,"context_line":"        self.dns_client.records.delete(dns_zone.id, matching_record[0].id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def get_entries_by_content(self, content, dns_zone\u003dNone):"},{"line_number":106,"context_line":"        \"\"\"Retrieves all entries in a dns_zone with a matching content field\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FExU%3D","line":103,"updated":"2013-11-14 18:57:33.000000000","message":"i thinks it would be better to cover it with try:except","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def get_dns_zones(self, name\u003dNone):"},{"line_number":117,"context_line":"        \"\"\"Returns all dns zones (optionally filtered by the name argument.\"\"\""},{"line_number":118,"context_line":"        domains \u003d self.dns_client.domains.list()"},{"line_number":119,"context_line":"        return [self.converter.domain_to_zone(domain)"},{"line_number":120,"context_line":"                for domain in domains if name is None or domain.name \u003d\u003d name]"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FExI%3D","line":118,"updated":"2013-11-14 18:57:33.000000000","message":"same with try:except","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        dns_zone \u003d dns_zone or self.default_dns_zone"},{"line_number":132,"context_line":"        if dns_zone is None:"},{"line_number":133,"context_line":"            raise TypeError(\u0027DNS domain is must be specified\u0027)"},{"line_number":134,"context_line":"        return self.dns_client.records.list(dns_zone.id)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class DesignateInstanceEntryFactory(driver.DnsInstanceEntryFactory):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FExA%3D","line":134,"updated":"2013-11-14 18:57:33.000000000","message":"same with try:except","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class DesignateInstanceEntryFactory(driver.DnsInstanceEntryFactory):"},{"line_number":138,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def create_entry(self, instance):"},{"line_number":141,"context_line":"        zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID, name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEyI%3D","line":138,"updated":"2013-11-14 18:57:33.000000000","message":"as we discuss it, zone and factory deserves their own module, because they are not fit under driver meaning.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"6772d10d27552b8014f226e7f56541e2c1eed583","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class DesignateInstanceEntryFactory(driver.DnsInstanceEntryFactory):"},{"line_number":138,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def create_entry(self, instance):"},{"line_number":141,"context_line":"        zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID, name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B0oM%3D","line":138,"in_reply_to":"AAAATn%2F%2FAlA%3D","updated":"2013-11-19 17:48:07.000000000","message":"Typically we do things that relate in one module. if you look @ the mysql module, it has all of users, databases, and root in it. and there is nothing wrong with that i think.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"5894aa2d782b73fe8f9928bd58f6ea35115e1161","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class DesignateInstanceEntryFactory(driver.DnsInstanceEntryFactory):"},{"line_number":138,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def create_entry(self, instance):"},{"line_number":141,"context_line":"        zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID, name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FAlA%3D","line":138,"in_reply_to":"AAAATn%2F%2FEsk%3D","updated":"2013-11-15 19:05:23.000000000","message":"Denis, i think the driver is clean and compat if we leave it in one module. I also like the consistency with the base module more.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"77c380cd83dfc4fe797e7d3c5ea075a9e2a9ee05","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class DesignateInstanceEntryFactory(driver.DnsInstanceEntryFactory):"},{"line_number":138,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def create_entry(self, instance):"},{"line_number":141,"context_line":"        zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID, name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEsk%3D","line":138,"in_reply_to":"AAAATn%2F%2FEvk%3D","updated":"2013-11-14 19:19:08.000000000","message":"The have all-in-one because they did it so, i\u0027m suggesting to do it in better way. We need more clean code.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"78e7e1da15985ac472010b131547765bea3e2985","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class DesignateInstanceEntryFactory(driver.DnsInstanceEntryFactory):"},{"line_number":138,"context_line":"    \"\"\"Defines how instance DNS entries are created for instances.\"\"\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def create_entry(self, instance):"},{"line_number":141,"context_line":"        zone \u003d DesignateDnsZone(id\u003dDNS_DOMAIN_ID, name\u003dDNS_DOMAIN_NAME)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEvk%3D","line":138,"in_reply_to":"AAAATn%2F%2FEyI%3D","updated":"2013-11-14 19:07:40.000000000","message":"I didnt want to do this because if you look at the base class and also at RS\u0027s implementation, they have it all in one module. Lets keep it consistent by having it in one module as well","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                               ttl\u003dDNS_TTL, dns_zone\u003dzone)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"class DesignateDnsZone(driver.DnsZone):"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def __init__(self, id, name):"},{"line_number":156,"context_line":"        self._name \u003d name"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEyE%3D","line":153,"updated":"2013-11-14 18:57:33.000000000","message":"same","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"6772d10d27552b8014f226e7f56541e2c1eed583","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                               ttl\u003dDNS_TTL, dns_zone\u003dzone)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"class DesignateDnsZone(driver.DnsZone):"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def __init__(self, id, name):"},{"line_number":156,"context_line":"        self._name \u003d name"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B0oE%3D","line":153,"in_reply_to":"AAAATn%2F%2FEsc%3D","updated":"2013-11-19 17:48:07.000000000","message":"same reply\n\nTypically we do things that relate in one module. if you look @ the mysql module, it has all of users, databases, and root in it. and there is nothing wrong with that i think.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"77c380cd83dfc4fe797e7d3c5ea075a9e2a9ee05","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                               ttl\u003dDNS_TTL, dns_zone\u003dzone)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"class DesignateDnsZone(driver.DnsZone):"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def __init__(self, id, name):"},{"line_number":156,"context_line":"        self._name \u003d name"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEsc%3D","line":153,"in_reply_to":"AAAATn%2F%2FEvY%3D","updated":"2013-11-14 19:19:08.000000000","message":"I\u0027m suggesting to do it in better way. We need more clean code.","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"78e7e1da15985ac472010b131547765bea3e2985","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                               ttl\u003dDNS_TTL, dns_zone\u003dzone)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"class DesignateDnsZone(driver.DnsZone):"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def __init__(self, id, name):"},{"line_number":156,"context_line":"        self._name \u003d name"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEvY%3D","line":153,"in_reply_to":"AAAATn%2F%2FEyE%3D","updated":"2013-11-14 19:07:40.000000000","message":"Same reply","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"}],"trove/dns/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            dns_driver \u003d CONF.dns_driver"},{"line_number":38,"context_line":"        dns_driver \u003d utils.import_object(dns_driver)"},{"line_number":39,"context_line":"        self.driver \u003d dns_driver"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjVA%3D","line":40,"updated":"2013-11-01 15:06:50.000000000","message":"Any reasons not to instantinate outcome class ?","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c4a247d4a3b2ecc5493c10531618db82bbc0bc4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            dns_driver \u003d CONF.dns_driver"},{"line_number":38,"context_line":"        dns_driver \u003d utils.import_object(dns_driver)"},{"line_number":39,"context_line":"        self.driver \u003d dns_driver"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FNi4%3D","line":40,"in_reply_to":"AAAATn%2F%2Fd2c%3D","updated":"2013-11-12 20:10:59.000000000","message":"Sounds good. Ill use the class_loader","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            dns_driver \u003d CONF.dns_driver"},{"line_number":38,"context_line":"        dns_driver \u003d utils.import_object(dns_driver)"},{"line_number":39,"context_line":"        self.driver \u003d dns_driver"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd2c%3D","line":40,"in_reply_to":"AAAATn%2F%2Firo%3D","updated":"2013-11-05 11:43:13.000000000","message":"i would like to change loading process and use classloader instead of object loader, reason: view scope of module/package, class is more localized.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            dns_driver \u003d CONF.dns_driver"},{"line_number":38,"context_line":"        dns_driver \u003d utils.import_object(dns_driver)"},{"line_number":39,"context_line":"        self.driver \u003d dns_driver"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Firo%3D","line":40,"in_reply_to":"AAAATn%2F%2FjVA%3D","updated":"2013-11-01 17:37:09.000000000","message":"utils.import_object already gives you an object of said driver.\nSo calling it will result in a \u0027Object not callable\u0027 error","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"},{"line_number":44,"context_line":"        self.entry_factory \u003d entry_factory"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def create_instance_entry(self, instance_id, content):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd2Q%3D","line":43,"updated":"2013-11-05 11:43:13.000000000","message":"same as above","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c4a247d4a3b2ecc5493c10531618db82bbc0bc4","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"},{"line_number":44,"context_line":"        self.entry_factory \u003d entry_factory"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def create_instance_entry(self, instance_id, content):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FNi0%3D","line":43,"in_reply_to":"AAAATn%2F%2Fd2Q%3D","updated":"2013-11-12 20:10:59.000000000","message":"sure","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"},{"line_number":42,"context_line":"            dns_instance_entry_factory \u003d CONF.dns_instance_entry_factory"},{"line_number":43,"context_line":"        entry_factory \u003d utils.import_object(dns_instance_entry_factory)"},{"line_number":44,"context_line":"        self.entry_factory \u003d entry_factory"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def create_instance_entry(self, instance_id, content):"},{"line_number":47,"context_line":"        \"\"\"Connects a new instance with a DNS entry."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjU8%3D","line":44,"updated":"2013-11-01 15:06:50.000000000","message":"same","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a33664a6a474e4be77fff435b14191ac9fdb9ed2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                 *args, **kwargs):"},{"line_number":36,"context_line":"        if not dns_driver:"},{"line_number":37,"context_line":"            dns_driver \u003d CONF.dns_driver"},{"line_number":38,"context_line":"        dns_driver \u003d utils.import_class(dns_driver)"},{"line_number":39,"context_line":"        self.driver \u003d dns_driver()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if not dns_instance_entry_factory:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEww%3D","line":38,"updated":"2013-11-14 18:57:33.000000000","message":"nice)","commit_id":"c5fec8e93e26c02df7035a89432e87179ed3f6a2"}],"trove/tests/unittests/dns/test_designate_driver.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"import testtools"},{"line_number":15,"context_line":"from designateclient.v1.domains import Domain"},{"line_number":16,"context_line":"from designateclient.v1.records import Record"},{"line_number":17,"context_line":"from trove.dns.designate import driver"},{"line_number":18,"context_line":"from mockito import *"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjUg%3D","line":15,"updated":"2013-11-01 15:06:50.000000000","message":"Same with placement","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from designateclient.v1.domains import Domain"},{"line_number":16,"context_line":"from designateclient.v1.records import Record"},{"line_number":17,"context_line":"from trove.dns.designate import driver"},{"line_number":18,"context_line":"from mockito import *"},{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjUY%3D","line":18,"updated":"2013-11-01 15:06:50.000000000","message":"never use *","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class DesignateObjectConverterTest(testtools.TestCase):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(DesignateObjectConverterTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjK4%3D","line":22,"updated":"2013-11-01 15:06:50.000000000","message":"Does it really need to be tested? It seems like this tests are testing __init__ method, and process of attribute initialization","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class DesignateObjectConverterTest(testtools.TestCase):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(DesignateObjectConverterTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd2A%3D","line":22,"in_reply_to":"AAAATn%2F%2Firc%3D","updated":"2013-11-05 11:43:13.000000000","message":"If you follow implementation line you would see that there is no validation which perfomed with designate. There is only DnsEntry and DnsDomain, nothing else. So, there is no need to test class instantination and attributes setting.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class DesignateObjectConverterTest(testtools.TestCase):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(DesignateObjectConverterTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Firc%3D","line":22,"in_reply_to":"AAAATn%2F%2FjK4%3D","updated":"2013-11-01 17:37:09.000000000","message":"it it testing the conversion from designate objects to dns objects","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertEqual(zone, converted_record.dns_zone)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class DesignateDriverTest(testtools.TestCase):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def setUp(self):"},{"line_number":65,"context_line":"        super(DesignateDriverTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjKQ%3D","line":62,"updated":"2013-11-01 15:06:50.000000000","message":"It would be nice to see test which tests importing entry factory and driver itself, and then use imported modules/classes to test driver itself.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a6f1efe53871e48551a11e6dfb3f1267c8c440ad","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertEqual(zone, converted_record.dns_zone)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class DesignateDriverTest(testtools.TestCase):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def setUp(self):"},{"line_number":65,"context_line":"        super(DesignateDriverTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fd1w%3D","line":62,"in_reply_to":"AAAATn%2F%2FirI%3D","updated":"2013-11-05 11:43:13.000000000","message":"I mean you haven\u0027t covered importing process, but it should be, there should be tested all raising exceptions, successful tests, etc.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"8c73e9b47ea70095873109f935883547e3426815","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertEqual(zone, converted_record.dns_zone)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class DesignateDriverTest(testtools.TestCase):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def setUp(self):"},{"line_number":65,"context_line":"        super(DesignateDriverTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FirI%3D","line":62,"in_reply_to":"AAAATn%2F%2FjKQ%3D","updated":"2013-11-01 17:37:09.000000000","message":"I think i know what you are getting to. But keep in mind that this is a unit test. So the way im approaching this is by just testing the module itself and not include any external entities.","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b3ddb51ad0a36e6db13615cb514fe35a752ab0d5","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        self.assertEqual(expected.id, actual.id)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class DesignateInstanceEntryFactoryTest(testtools.TestCase):"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def setUp(self):"},{"line_number":178,"context_line":"        super(DesignateInstanceEntryFactoryTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FjKE%3D","line":175,"updated":"2013-11-01 15:06:50.000000000","message":"Please, take a look at previous comment","commit_id":"e70303cc655f76f2cdb9f9b7acd64d97bc5cc474"}]}
