)]}'
{"designate/central/__init__.py":[{"author":{"_account_id":395,"name":"Endre Karlson","email":"endre.karlson@gmail.com","username":"endre-karlson"},"change_message_id":"6622a48c29ae82af1272540c8a2903d54f1919ba","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d\"The Tenant ID that will own any managed resources.\"),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027min_ttl\u0027, default\u003d\"None\", help\u003d\"Minimum TTL allowed\"),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027default_pool_name\u0027, default\u003d\u0027default\u0027,"},{"line_number":44,"context_line":"               help\u003d\"The name of the default pool\")"},{"line_number":45,"context_line":"], group\u003d\u0027service:central\u0027)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"MDNS_API \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_df5c72f0","line":44,"updated":"2014-10-10 07:45:01.000000000","message":"Can you add a trailing comma here like we do other places ?","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"552c922886aa4510efa33a06cacea59b8f6688b5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d\"The Tenant ID that will own any managed resources.\"),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027min_ttl\u0027, default\u003d\"None\", help\u003d\"Minimum TTL allowed\"),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027default_pool_name\u0027, default\u003d\u0027default\u0027,"},{"line_number":44,"context_line":"               help\u003d\"The name of the default pool\")"},{"line_number":45,"context_line":"], group\u003d\u0027service:central\u0027)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"MDNS_API \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_728f3476","line":44,"updated":"2014-10-10 12:37:26.000000000","message":"This belongs to the pool manager config - could you add a TODO so that it can be moved to pool manager once that is ready.","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"de0e8090c73362f6f469a88d451c0e15f3dce7f1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d\"The Tenant ID that will own any managed resources.\"),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027min_ttl\u0027, default\u003d\"None\", help\u003d\"Minimum TTL allowed\"),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027default_pool_name\u0027, default\u003d\u0027default\u0027,"},{"line_number":44,"context_line":"               help\u003d\"The name of the default pool\")"},{"line_number":45,"context_line":"], group\u003d\u0027service:central\u0027)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"MDNS_API \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_000aab78","line":44,"in_reply_to":"baa201ad_728f3476","updated":"2014-10-15 21:15:10.000000000","message":"Done","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"de0e8090c73362f6f469a88d451c0e15f3dce7f1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d\"The Tenant ID that will own any managed resources.\"),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027min_ttl\u0027, default\u003d\"None\", help\u003d\"Minimum TTL allowed\"),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027default_pool_name\u0027, default\u003d\u0027default\u0027,"},{"line_number":44,"context_line":"               help\u003d\"The name of the default pool\")"},{"line_number":45,"context_line":"], group\u003d\u0027service:central\u0027)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"MDNS_API \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_404033a5","line":44,"in_reply_to":"baa201ad_df5c72f0","updated":"2014-10-15 21:15:10.000000000","message":"Done","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"99fca4fcad56ca4094cdef5549f06e9d40d7f73e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d\"The Tenant ID that will own any managed resources.\"),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027min_ttl\u0027, default\u003d\"None\", help\u003d\"Minimum TTL allowed\"),"},{"line_number":43,"context_line":"    # TODO(betsy): Move to Pool Service once that is written"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027default_pool_name\u0027, default\u003d\u0027default\u0027,"},{"line_number":45,"context_line":"               help\u003d\"The name of the default pool\"),"},{"line_number":46,"context_line":"], group\u003d\u0027service:central\u0027)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_01d91683","line":44,"updated":"2014-10-21 16:30:54.000000000","message":"We should probably swap this for a default_pool_id, and just hardcode the default pools name to \"Default\" - If users want to change it, they can use the API once it lands","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d\"The Tenant ID that will own any managed resources.\"),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027min_ttl\u0027, default\u003d\"None\", help\u003d\"Minimum TTL allowed\"),"},{"line_number":43,"context_line":"    # TODO(betsy): Move to Pool Service once that is written"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027default_pool_name\u0027, default\u003d\u0027default\u0027,"},{"line_number":45,"context_line":"               help\u003d\"The name of the default pool\"),"},{"line_number":46,"context_line":"], group\u003d\u0027service:central\u0027)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_0aef0fea","line":44,"in_reply_to":"9aa7fdbe_01d91683","updated":"2014-10-24 15:51:54.000000000","message":"Done","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"}],"designate/central/rpcapi.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"99fca4fcad56ca4094cdef5549f06e9d40d7f73e","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    # Pool Server Methods"},{"line_number":376,"context_line":"    def create_pool(self, context, pool):"},{"line_number":377,"context_line":"        LOG.info(_LI(\"create_pool: Calling central\u0027s create_pool.\"))"},{"line_number":378,"context_line":"        return self.client.call(context, \u0027create_pool\u0027,"},{"line_number":379,"context_line":"                                pool\u003dpool)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_e1c41294","line":378,"updated":"2014-10-21 16:30:54.000000000","message":"If you checkout Graham\u0027s migrate zone between tenants review, there is a little extra needed for new RPCAPI methods for versions other than \"N.0\"","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    # Pool Server Methods"},{"line_number":376,"context_line":"    def create_pool(self, context, pool):"},{"line_number":377,"context_line":"        LOG.info(_LI(\"create_pool: Calling central\u0027s create_pool.\"))"},{"line_number":378,"context_line":"        return self.client.call(context, \u0027create_pool\u0027,"},{"line_number":379,"context_line":"                                pool\u003dpool)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_4a62f73e","line":378,"in_reply_to":"9aa7fdbe_e1c41294","updated":"2014-10-24 15:51:54.000000000","message":"Done","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"}],"designate/central/service.py":[{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"a9130e63ae39ff6e268de7f457b2cfc1b9ca296a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        default_pool_name \u003d cfg.CONF[\u0027service:central\u0027].default_pool_name"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"            self.find_pool(admin_context,"},{"line_number":99,"context_line":"                           criterion\u003d{\u0027name\u0027: default_pool_name})"},{"line_number":100,"context_line":"        except exceptions.PoolNotFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_48a0ba90","line":97,"updated":"2014-10-20 21:35:30.000000000","message":"Probably no need for a blank line here.","commit_id":"39f705dea2736e1da73c29f39e4b701adcad7908"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"d9edf819ec306732ab9dcc9ce9680b49f083dbb7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        default_pool_name \u003d cfg.CONF[\u0027service:central\u0027].default_pool_name"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"            self.find_pool(admin_context,"},{"line_number":99,"context_line":"                           criterion\u003d{\u0027name\u0027: default_pool_name})"},{"line_number":100,"context_line":"        except exceptions.PoolNotFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_234b992c","line":97,"in_reply_to":"9aa7fdbe_48a0ba90","updated":"2014-10-20 21:57:40.000000000","message":"Done","commit_id":"39f705dea2736e1da73c29f39e4b701adcad7908"},{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"a9130e63ae39ff6e268de7f457b2cfc1b9ca296a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                \u0027provisioner\u0027: \u0027UNMANAGED\u0027"},{"line_number":105,"context_line":"            }"},{"line_number":106,"context_line":"            self.create_pool(admin_context, objects.Pool(**values))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self.network_api \u003d network_api.get_network_api(cfg.CONF.network_api)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def start(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_e309912d","line":107,"updated":"2014-10-20 21:35:30.000000000","message":"IMO there should be a log line here saying it\u0027s creating the default pool.","commit_id":"39f705dea2736e1da73c29f39e4b701adcad7908"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"d9edf819ec306732ab9dcc9ce9680b49f083dbb7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                \u0027provisioner\u0027: \u0027UNMANAGED\u0027"},{"line_number":105,"context_line":"            }"},{"line_number":106,"context_line":"            self.create_pool(admin_context, objects.Pool(**values))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self.network_api \u003d network_api.get_network_api(cfg.CONF.network_api)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def start(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_a33789af","line":107,"in_reply_to":"9aa7fdbe_e309912d","updated":"2014-10-20 21:57:40.000000000","message":"That\u0027s a good idea.","commit_id":"39f705dea2736e1da73c29f39e4b701adcad7908"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"99fca4fcad56ca4094cdef5549f06e9d40d7f73e","unresolved":false,"context_lines":[{"line_number":1800,"context_line":""},{"line_number":1801,"context_line":"        created_pool \u003d self.storage.create_pool(context, pool)"},{"line_number":1802,"context_line":""},{"line_number":1803,"context_line":"        return created_pool"},{"line_number":1804,"context_line":""},{"line_number":1805,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1806,"context_line":"                   sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_614e6271","line":1803,"updated":"2014-10-21 16:30:54.000000000","message":"We\u0027ll want to add notifications to the create/update/delete methods","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":1800,"context_line":""},{"line_number":1801,"context_line":"        created_pool \u003d self.storage.create_pool(context, pool)"},{"line_number":1802,"context_line":""},{"line_number":1803,"context_line":"        return created_pool"},{"line_number":1804,"context_line":""},{"line_number":1805,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1806,"context_line":"                   sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_ca78a7c6","line":1803,"in_reply_to":"9aa7fdbe_614e6271","updated":"2014-10-24 15:51:54.000000000","message":"Done","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"856cae2bcf8373d3a9ff831ae2fb040e24de3e5c","unresolved":false,"context_lines":[{"line_number":1805,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1806,"context_line":"                   sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":1807,"context_line":"        target \u003d {\u0027tenant_id\u0027: context.tenant}"},{"line_number":1808,"context_line":"        policy.check(\u0027find_pools\u0027, context, target)"},{"line_number":1809,"context_line":""},{"line_number":1810,"context_line":"        return self.storage.find_pools(context, criterion, marker, limit,"},{"line_number":1811,"context_line":"                                       sort_key, sort_dir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_232559c2","line":1808,"updated":"2014-10-20 22:25:23.000000000","message":"Is this any different from just stating\n\npolicy.check(\u0027create_pool\u0027, context)?\n\nAt some places I see the tenant_id being specified with other conditions in the target and others do not include the tenant_id.  Is the tenant_id checked by default whether it is specified explicitly or not?","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"2d68ff618cb6402fb4b0be007eb5b2af502fa360","unresolved":false,"context_lines":[{"line_number":1805,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1806,"context_line":"                   sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":1807,"context_line":"        target \u003d {\u0027tenant_id\u0027: context.tenant}"},{"line_number":1808,"context_line":"        policy.check(\u0027find_pools\u0027, context, target)"},{"line_number":1809,"context_line":""},{"line_number":1810,"context_line":"        return self.storage.find_pools(context, criterion, marker, limit,"},{"line_number":1811,"context_line":"                                       sort_key, sort_dir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_bc523adb","line":1808,"in_reply_to":"9aa7fdbe_232559c2","updated":"2014-10-21 09:47:54.000000000","message":"In this case, you\u0027re correct, there is no need to create the target dict at all :)\n\nIn other cases - Cases where the table contains a tenant_id column - This is actually just keeping things consistent with other methods - for example find_domains or find_recordsets, and is supplied to keep the data passed to policy, and the filter conditions enforced by the storage layer consistent - even if there\u0027s little likelihood of someone writing a useful policy that make use of this data :)\n\nI personally tent to err on the side of, if you have any information whatsoever about the resource(s) being queried, it should be passed to the policy check so custom policies can choose to make use of it - When the table has a tenant_id column, we enforce tenant_id \u003d context.tenant_id there, so passing that to the policy make *some* sense..","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":1805,"context_line":"    def find_pools(self, context, criterion\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1806,"context_line":"                   sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":1807,"context_line":"        target \u003d {\u0027tenant_id\u0027: context.tenant}"},{"line_number":1808,"context_line":"        policy.check(\u0027find_pools\u0027, context, target)"},{"line_number":1809,"context_line":""},{"line_number":1810,"context_line":"        return self.storage.find_pools(context, criterion, marker, limit,"},{"line_number":1811,"context_line":"                                       sort_key, sort_dir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_5501b803","line":1808,"in_reply_to":"9aa7fdbe_bc523adb","updated":"2014-10-24 15:51:54.000000000","message":"Removed all the target code from the policy check calls. I just thought there might be a need because maybe only certain people have permission to use a private pool in the future","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"}],"designate/objects/pool.py":[{"author":{"_account_id":8174,"name":"Tim Simmons","email":"tim.r.simmons@gmail.com","username":"TimSimmons"},"change_message_id":"892c7c27021b5197d0d1292e6fd28f589424ae1b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        \u0027description\u0027: {},"},{"line_number":24,"context_line":"        \u0027tenant_id\u0027: {},"},{"line_number":25,"context_line":"        \u0027provisioner\u0027: {},"},{"line_number":26,"context_line":"        \u0027attributes\u0027: {}"},{"line_number":27,"context_line":"    }"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_c3a00df7","line":26,"updated":"2014-10-20 21:42:18.000000000","message":"Should nameservers be here?","commit_id":"39f705dea2736e1da73c29f39e4b701adcad7908"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"d9edf819ec306732ab9dcc9ce9680b49f083dbb7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        \u0027description\u0027: {},"},{"line_number":24,"context_line":"        \u0027tenant_id\u0027: {},"},{"line_number":25,"context_line":"        \u0027provisioner\u0027: {},"},{"line_number":26,"context_line":"        \u0027attributes\u0027: {}"},{"line_number":27,"context_line":"    }"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_a3886923","line":26,"in_reply_to":"9aa7fdbe_c3a00df7","updated":"2014-10-20 21:57:40.000000000","message":"They will be once all the changes are in. Right now they are still located in the server table. That will be done in a separate patch later.","commit_id":"39f705dea2736e1da73c29f39e4b701adcad7908"}],"designate/storage/impl_sqlalchemy/migrate_repo/versions/041_server_pools_storage.py":[{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"7fdc43d4c7c67b9a1667c2c03e7f2e634e8c89b9","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from designate.sqlalchemy.types import UUID"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"POOL_PROVISIONER \u003d [\u0027UNMANAGED\u0027]"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"meta \u003d MetaData()"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_f746c020","line":22,"updated":"2014-10-10 04:15:17.000000000","message":"Is \u0027UNMANAGED\u0027 the only value we want to put in the ENUM? Just add others as we implement them?","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"7fdc43d4c7c67b9a1667c2c03e7f2e634e8c89b9","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Column(\u0027name\u0027, String(50), nullable\u003dFalse),"},{"line_number":33,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"},{"line_number":34,"context_line":"    Column(\u0027project_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":35,"context_line":"    Column(\u0027provisioner\u0027, Enum(name\u003d\u0027pool_provisioner\u0027, *POOL_PROVISIONER),"},{"line_number":36,"context_line":"           nullable\u003dFalse, server_default\u003d\u0027UNMANAGED\u0027),"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_b7cef8b2","line":34,"updated":"2014-10-10 04:15:17.000000000","message":"I know \u0027project_id\u0027 is now the correct term, but all the other tables have \u0027tenant_id\u0027. Should I leave it as \u0027project_id\u0027 or will it be less confusing if it\u0027s the same as the other tables, meaning, \u0027tenant_id\u0027?","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"de0e8090c73362f6f469a88d451c0e15f3dce7f1","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Column(\u0027name\u0027, String(50), nullable\u003dFalse),"},{"line_number":33,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"},{"line_number":34,"context_line":"    Column(\u0027project_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":35,"context_line":"    Column(\u0027provisioner\u0027, Enum(name\u003d\u0027pool_provisioner\u0027, *POOL_PROVISIONER),"},{"line_number":36,"context_line":"           nullable\u003dFalse, server_default\u003d\u0027UNMANAGED\u0027),"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_10b6603e","line":34,"in_reply_to":"baa201ad_6f575127","updated":"2014-10-15 21:15:10.000000000","message":"Done","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"552c922886aa4510efa33a06cacea59b8f6688b5","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Column(\u0027name\u0027, String(50), nullable\u003dFalse),"},{"line_number":33,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"},{"line_number":34,"context_line":"    Column(\u0027project_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":35,"context_line":"    Column(\u0027provisioner\u0027, Enum(name\u003d\u0027pool_provisioner\u0027, *POOL_PROVISIONER),"},{"line_number":36,"context_line":"           nullable\u003dFalse, server_default\u003d\u0027UNMANAGED\u0027),"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_6f575127","line":34,"in_reply_to":"baa201ad_b7cef8b2","updated":"2014-10-10 12:37:26.000000000","message":"I prefer tenant_id to be consistent with other tables. If we need to move to project_id, let that be a separate change where everything is changed.","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"7fdc43d4c7c67b9a1667c2c03e7f2e634e8c89b9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"},{"line_number":34,"context_line":"    Column(\u0027project_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":35,"context_line":"    Column(\u0027provisioner\u0027, Enum(name\u003d\u0027pool_provisioner\u0027, *POOL_PROVISIONER),"},{"line_number":36,"context_line":"           nullable\u003dFalse, server_default\u003d\u0027UNMANAGED\u0027),"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    UniqueConstraint(\u0027name\u0027, name\u003d\u0027unique_pool_name\u0027),"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_97401409","line":36,"updated":"2014-10-10 04:15:17.000000000","message":"Is there a better name for this? \u0027Provisioner\u0027 is kind of a mouthful.","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"7fdc43d4c7c67b9a1667c2c03e7f2e634e8c89b9","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    mysql_engine\u003d\u0027INNODB\u0027,"},{"line_number":53,"context_line":"    mysql_charset\u003d\u0027utf8\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def upgrade(migrate_engine):"},{"line_number":57,"context_line":"    meta.bind \u003d migrate_engine"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_375128d9","line":54,"updated":"2014-10-10 04:15:17.000000000","message":"The attributes table doesn\u0027t have the usual created_at, updated_at and version that the other tables do. Should we add them?","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"de0e8090c73362f6f469a88d451c0e15f3dce7f1","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    mysql_engine\u003d\u0027INNODB\u0027,"},{"line_number":53,"context_line":"    mysql_charset\u003d\u0027utf8\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def upgrade(migrate_engine):"},{"line_number":57,"context_line":"    meta.bind \u003d migrate_engine"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_900c10ee","line":54,"in_reply_to":"baa201ad_375128d9","updated":"2014-10-15 21:15:10.000000000","message":"Done","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":395,"name":"Endre Karlson","email":"endre.karlson@gmail.com","username":"endre-karlson"},"change_message_id":"6622a48c29ae82af1272540c8a2903d54f1919ba","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    mysql_engine\u003d\u0027INNODB\u0027,"},{"line_number":53,"context_line":"    mysql_charset\u003d\u0027utf8\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def upgrade(migrate_engine):"},{"line_number":57,"context_line":"    meta.bind \u003d migrate_engine"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_3fe65e45","line":54,"in_reply_to":"baa201ad_375128d9","updated":"2014-10-10 07:45:01.000000000","message":"Yeah I think so just for concistency with the others.","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5ac37965eae45117d0002a018a0e6bb329a73aa9","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Column(\u0027name\u0027, String(50), nullable\u003dFalse),"},{"line_number":33,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"},{"line_number":34,"context_line":"    Column(\u0027tenant_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":35,"context_line":"    Column(\u0027provisioner\u0027, Enum(name\u003d\u0027pool_provisioner\u0027, *POOL_PROVISIONER),"},{"line_number":36,"context_line":"           nullable\u003dFalse, server_default\u003d\u0027UNMANAGED\u0027),"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_d6db52eb","line":34,"updated":"2014-10-21 16:17:01.000000000","message":"I think tenant_id should be nullable?","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Column(\u0027name\u0027, String(50), nullable\u003dFalse),"},{"line_number":33,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"},{"line_number":34,"context_line":"    Column(\u0027tenant_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":35,"context_line":"    Column(\u0027provisioner\u0027, Enum(name\u003d\u0027pool_provisioner\u0027, *POOL_PROVISIONER),"},{"line_number":36,"context_line":"           nullable\u003dFalse, server_default\u003d\u0027UNMANAGED\u0027),"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_b50ca43c","line":34,"in_reply_to":"9aa7fdbe_d6db52eb","updated":"2014-10-24 15:51:54.000000000","message":"Done","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5ac37965eae45117d0002a018a0e6bb329a73aa9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    ForeignKeyConstraint([\u0027pool_id\u0027], [\u0027pools.id\u0027], ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    mysql_engine\u003d\u0027INNODB\u0027,"},{"line_number":56,"context_line":"    mysql_charset\u003d\u0027utf8\u0027)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_36a9fe7b","line":56,"updated":"2014-10-21 16:17:01.000000000","message":"Wait - This actually works? lol.. I\u0027ve been duplicating stuff inside the upgrade/downgrade methods for years ;)","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5ac37965eae45117d0002a018a0e6bb329a73aa9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    pools.create()"},{"line_number":63,"context_line":"    pool_attributes.create()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def downgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_b687aed6","line":63,"updated":"2014-10-21 16:17:01.000000000","message":"I think we\u0027ll want to do a few extra things here - 1) create a default pool, 2) Migrate the existing \"servers\" into this pool, 3) delete the servers table (and update the V1 servers API to lookup+modify the default pool) and finally 4) Kill the old CRUD methods for \"servers\"...\n\nRe 1) We should generate a UUID to use for default pool (let\u0027s say \"794ccc2c-d751-44fe-b57f-8894c9f5c842\"), and create a config entry for it. The migration should lookup the config value for this and create the new \"Default\" pool using that ID, preventing a catch-22 of needing to configure a default pool in the conf file before being able to create a pool etc etc :)","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    pools.create()"},{"line_number":63,"context_line":"    pool_attributes.create()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def downgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_f538ecd4","line":63,"in_reply_to":"9aa7fdbe_b687aed6","updated":"2014-10-24 15:51:54.000000000","message":"I\u0027ve moved the creation of the default pool from central/service.py to the migration. The other stuff I\u0027m going to wait on and do in subsequent patches because it involves quit a bit of code changes.","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"2a87d33980c26eb57279e5322a5d55f8b7c082f8","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid, primary_key\u003dTrue),"},{"line_number":32,"context_line":"    Column(\u0027created_at\u0027, DateTime(), default\u003dlambda: timeutils.utcnow()),"},{"line_number":33,"context_line":"    Column(\u0027updated_at\u0027, DateTime(), onupdate\u003dlambda: timeutils.utcnow()),"},{"line_number":34,"context_line":"    Column(\u0027version\u0027, Integer(), default\u003d1, nullable\u003dFalse),"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    Column(\u0027name\u0027, String(50), nullable\u003dFalse),"},{"line_number":37,"context_line":"    Column(\u0027description\u0027, Unicode(160)),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa7fdbe_1cc90b59","line":34,"updated":"2014-10-27 19:25:16.000000000","message":"We have the default values already specified in tables.py (which is where it is for the others too). This I assume is needed for creating the default pool here. Kiall/others is there a way to do this without having to specify the default values in 2 places?","commit_id":"d97c2a47543b9dd7b696c83381d0aace1af0085e"}],"designate/storage/impl_sqlalchemy/tables.py":[{"author":{"_account_id":395,"name":"Endre Karlson","email":"endre.karlson@gmail.com","username":"endre-karlson"},"change_message_id":"6622a48c29ae82af1272540c8a2903d54f1919ba","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"pool_attributes \u003d Table(\u0027pool_attributes\u0027, metadata,"},{"line_number":213,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid, primary_key\u003dTrue),"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    Column(\u0027key\u0027, String(255), nullable\u003dFalse),"},{"line_number":216,"context_line":"    Column(\u0027value\u0027, String(255), nullable\u003dFalse),"},{"line_number":217,"context_line":"    Column(\u0027pool_id\u0027, UUID(), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_3fbd7e03","line":214,"updated":"2014-10-10 07:45:01.000000000","message":"Add created, updated _at here?","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"de0e8090c73362f6f469a88d451c0e15f3dce7f1","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"pool_attributes \u003d Table(\u0027pool_attributes\u0027, metadata,"},{"line_number":213,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid, primary_key\u003dTrue),"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    Column(\u0027key\u0027, String(255), nullable\u003dFalse),"},{"line_number":216,"context_line":"    Column(\u0027value\u0027, String(255), nullable\u003dFalse),"},{"line_number":217,"context_line":"    Column(\u0027pool_id\u0027, UUID(), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_f0f63cd6","line":214,"in_reply_to":"baa201ad_3fbd7e03","updated":"2014-10-15 21:15:10.000000000","message":"Done","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"552c922886aa4510efa33a06cacea59b8f6688b5","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    Column(\u0027value\u0027, String(255), nullable\u003dFalse),"},{"line_number":217,"context_line":"    Column(\u0027pool_id\u0027, UUID(), nullable\u003dFalse),"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    ForeignKeyConstraint([\u0027pool_id\u0027], [\u0027pools.id\u0027]),"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    mysql_engine\u003d\u0027INNODB\u0027,"},{"line_number":222,"context_line":"    mysql_charset\u003d\u0027utf8\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_f2a4040a","line":219,"updated":"2014-10-10 12:37:26.000000000","message":"ondelete\u003d\u0027CASCADE\u0027 would be good to have here.","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"de0e8090c73362f6f469a88d451c0e15f3dce7f1","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    Column(\u0027value\u0027, String(255), nullable\u003dFalse),"},{"line_number":217,"context_line":"    Column(\u0027pool_id\u0027, UUID(), nullable\u003dFalse),"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    ForeignKeyConstraint([\u0027pool_id\u0027], [\u0027pools.id\u0027]),"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    mysql_engine\u003d\u0027INNODB\u0027,"},{"line_number":222,"context_line":"    mysql_charset\u003d\u0027utf8\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_100020aa","line":219,"in_reply_to":"baa201ad_f2a4040a","updated":"2014-10-15 21:15:10.000000000","message":"Done","commit_id":"285be8da27cbed1e02d7f913503d379c1821d98d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"56115b7776938b2fd17fdef9b27ee3587cd8f63e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid, primary_key\u003dTrue),"},{"line_number":214,"context_line":"    Column(\u0027created_at\u0027, DateTime()),"},{"line_number":215,"context_line":"    Column(\u0027updated_at\u0027, DateTime()),"},{"line_number":216,"context_line":"    Column(\u0027version\u0027, Integer(), nullable\u003dFalse),"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    Column(\u0027key\u0027, String(255), nullable\u003dFalse),"},{"line_number":219,"context_line":"    Column(\u0027value\u0027, String(255), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_37187e1d","line":216,"updated":"2014-10-17 22:02:24.000000000","message":"Could you set the default/onupdate for created_at, updated_at, version similar to what you do in pools?","commit_id":"41439d5467e21cd688a27c6ef1e8f41adb4a9afa"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"8995032e09f1c2f115552adf28fa31aad5fcfc07","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid, primary_key\u003dTrue),"},{"line_number":214,"context_line":"    Column(\u0027created_at\u0027, DateTime()),"},{"line_number":215,"context_line":"    Column(\u0027updated_at\u0027, DateTime()),"},{"line_number":216,"context_line":"    Column(\u0027version\u0027, Integer(), nullable\u003dFalse),"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    Column(\u0027key\u0027, String(255), nullable\u003dFalse),"},{"line_number":219,"context_line":"    Column(\u0027value\u0027, String(255), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_0d6df632","line":216,"in_reply_to":"baa201ad_37187e1d","updated":"2014-10-20 12:58:57.000000000","message":"Done","commit_id":"41439d5467e21cd688a27c6ef1e8f41adb4a9afa"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"99fca4fcad56ca4094cdef5549f06e9d40d7f73e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"TSIG_ALGORITHMS \u003d [\u0027hmac-md5\u0027, \u0027hmac-sha1\u0027, \u0027hmac-sha224\u0027, \u0027hmac-sha256\u0027,"},{"line_number":33,"context_line":"                   \u0027hmac-sha384\u0027, \u0027hmac-sha512\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"POOL_PROVISIONER \u003d [\u0027UNMANAGED\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"metadata \u003d MetaData()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_013d96bb","line":35,"updated":"2014-10-21 16:30:54.000000000","message":"can we make this POOL_PROVISIONES (plural) like the other ENUM\u0027s above?","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"16f957bd684be87159486b1631d11498b7b49a15","unresolved":false,"context_lines":[{"line_number":32,"context_line":"TSIG_ALGORITHMS \u003d [\u0027hmac-md5\u0027, \u0027hmac-sha1\u0027, \u0027hmac-sha224\u0027, \u0027hmac-sha256\u0027,"},{"line_number":33,"context_line":"                   \u0027hmac-sha384\u0027, \u0027hmac-sha512\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"POOL_PROVISIONER \u003d [\u0027UNMANAGED\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"metadata \u003d MetaData()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_ef368b51","line":35,"in_reply_to":"9aa7fdbe_013d96bb","updated":"2014-10-24 15:51:54.000000000","message":"Done","commit_id":"d4551c5b8f7b5bf4346a5440deded9a2275af96f"}]}
