)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"5a4022c8e9f79cb5bfe3146bbe31c6e346370ea6","unresolved":false,"context_lines":[{"line_number":29,"context_line":" - In progress: namespaces query pagination"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Change-Id: I01cc63df3d3abe383c94cfb54598868b4bb729bb"},{"line_number":32,"context_line":"DocImpact\t32"},{"line_number":33,"context_line":"Co-Authored-By: Lakshmi N Sampath \u003clakshmi.sampath@hp.com\u003e"},{"line_number":34,"context_line":"Co-Authored-By: Wayne Okuma \u003cwayne.okuma@hp.com\u003e"},{"line_number":35,"context_line":"Co-Authored-By: Travis Tripp \u003ctravis.tripp@hp.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"baada198_07d6abc4","line":32,"updated":"2014-08-05 20:28:00.000000000","message":"32 left over?","commit_id":"52cf9e19942f4f1eb73a2ffd603457ad725e3073"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"6ab83ae85430da727a3e10d38a08be6b474b3319","unresolved":false,"context_lines":[{"line_number":29,"context_line":" - In progress: namespaces query pagination"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Change-Id: I01cc63df3d3abe383c94cfb54598868b4bb729bb"},{"line_number":32,"context_line":"DocImpact\t32"},{"line_number":33,"context_line":"Co-Authored-By: Lakshmi N Sampath \u003clakshmi.sampath@hp.com\u003e"},{"line_number":34,"context_line":"Co-Authored-By: Wayne Okuma \u003cwayne.okuma@hp.com\u003e"},{"line_number":35,"context_line":"Co-Authored-By: Travis Tripp \u003ctravis.tripp@hp.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"1abeadc6_26446d73","line":32,"in_reply_to":"baada198_07d6abc4","updated":"2014-08-26 10:29:49.000000000","message":"Done. Removed the trailing 32.","commit_id":"52cf9e19942f4f1eb73a2ffd603457ad725e3073"}],"glance/common/exception.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"2723ad40aafdedf93422547f49cd931acba2cfaa","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                \" was not found\")"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"class ResourceTypeNotFound(NotFound):"},{"line_number":395,"context_line":"    message \u003d _(\"Resource type with the given name %(resource_type_name)s\""},{"line_number":396,"context_line":"                \" was not found\")"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_5272fbe4","line":394,"updated":"2014-08-06 17:08:20.000000000","message":"saem as line 405","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                \" was not found\")"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"class ResourceTypeNotFound(NotFound):"},{"line_number":395,"context_line":"    message \u003d _(\"Resource type with the given name %(resource_type_name)s\""},{"line_number":396,"context_line":"                \" was not found\")"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_26dd4d43","line":394,"in_reply_to":"baada198_5272fbe4","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"2723ad40aafdedf93422547f49cd931acba2cfaa","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                \" was not found\")"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"class ResourceTypeAssociationNotFound(NotFound):"},{"line_number":400,"context_line":"    message \u003d _(\"Resource type association associated with namespace \""},{"line_number":401,"context_line":"                \"%(namespace_name) and resource type %(resource_type_name)s \""},{"line_number":402,"context_line":"                \" was not found\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_726ffffa","line":399,"updated":"2014-08-06 17:08:20.000000000","message":"ditto","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                \" was not found\")"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"class ResourceTypeAssociationNotFound(NotFound):"},{"line_number":400,"context_line":"    message \u003d _(\"Resource type association associated with namespace \""},{"line_number":401,"context_line":"                \"%(namespace_name) and resource type %(resource_type_name)s \""},{"line_number":402,"context_line":"                \" was not found\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_06d85152","line":399,"in_reply_to":"baada198_726ffffa","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"2723ad40aafdedf93422547f49cd931acba2cfaa","unresolved":false,"context_lines":[{"line_number":402,"context_line":"                \" was not found\")"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"class ObjectNotFound(NotFound):"},{"line_number":406,"context_line":"    message \u003d _(\"Object with the given name %(object_name)s\""},{"line_number":407,"context_line":"                \" associated to namespace %(namespace_name)s\""},{"line_number":408,"context_line":"                \" was not found\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_92a5734a","line":405,"updated":"2014-08-06 17:08:20.000000000","message":"Can we please prefix these with Metadef so as to narrow down the possibility of having this exception for these resources?","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":402,"context_line":"                \" was not found\")"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"class ObjectNotFound(NotFound):"},{"line_number":406,"context_line":"    message \u003d _(\"Object with the given name %(object_name)s\""},{"line_number":407,"context_line":"                \" associated to namespace %(namespace_name)s\""},{"line_number":408,"context_line":"                \" was not found\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_c61659f1","line":405,"in_reply_to":"baada198_92a5734a","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"2723ad40aafdedf93422547f49cd931acba2cfaa","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                \" was not found\")"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"class PropertyNotFound(NotFound):"},{"line_number":412,"context_line":"    message \u003d _(\"Property with the given name %(property_name)s\""},{"line_number":413,"context_line":"                \" associated to namespace %(namespace_name)s\""},{"line_number":414,"context_line":"                \" was not found\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_f2630f17","line":411,"updated":"2014-08-06 17:08:20.000000000","message":"Ditto.","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                \" was not found\")"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"class PropertyNotFound(NotFound):"},{"line_number":412,"context_line":"    message \u003d _(\"Property with the given name %(property_name)s\""},{"line_number":413,"context_line":"                \" associated to namespace %(namespace_name)s\""},{"line_number":414,"context_line":"                \" was not found\")"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_a6195d24","line":411,"in_reply_to":"baada198_f2630f17","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"}],"glance/db/registry/api.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"# Metadef"},{"line_number":268,"context_line":"@_get_client"},{"line_number":269,"context_line":"def metadef_namespace_list("},{"line_number":270,"context_line":"        client,"},{"line_number":271,"context_line":"        session\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":272,"context_line":"        sort_key\u003d\u0027created_at\u0027, sort_dir\u003dNone, filters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_7cdc04e5","line":269,"updated":"2014-08-20 00:53:10.000000000","message":"for consistency, I think you want to rename that metadef_namespace_get_all","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"# Metadef"},{"line_number":268,"context_line":"@_get_client"},{"line_number":269,"context_line":"def metadef_namespace_list("},{"line_number":270,"context_line":"        client,"},{"line_number":271,"context_line":"        session\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":272,"context_line":"        sort_key\u003d\u0027created_at\u0027, sort_dir\u003dNone, filters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_c746a57a","line":269,"in_reply_to":"1abeadc6_7cdc04e5","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"@_get_client"},{"line_number":303,"context_line":"def metadef_object_list(client, namespace_name, session\u003dNone):"},{"line_number":304,"context_line":"    return client.metadef_object_list("},{"line_number":305,"context_line":"        namespace_name\u003dnamespace_name)"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_1cf31074","line":303,"updated":"2014-08-20 00:53:10.000000000","message":"for consistency, I think you want to rename that metadef_object_get_all","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"@_get_client"},{"line_number":303,"context_line":"def metadef_object_list(client, namespace_name, session\u003dNone):"},{"line_number":304,"context_line":"    return client.metadef_object_list("},{"line_number":305,"context_line":"        namespace_name\u003dnamespace_name)"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_27575927","line":303,"in_reply_to":"1abeadc6_1cf31074","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"@_get_client"},{"line_number":360,"context_line":"def metadef_property_list("},{"line_number":361,"context_line":"        client,"},{"line_number":362,"context_line":"        namespace_name, session\u003dNone):"},{"line_number":363,"context_line":"    return client.metadef_property_list("}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_5ced888a","line":360,"updated":"2014-08-20 00:53:10.000000000","message":"ditto","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"@_get_client"},{"line_number":360,"context_line":"def metadef_property_list("},{"line_number":361,"context_line":"        client,"},{"line_number":362,"context_line":"        namespace_name, session\u003dNone):"},{"line_number":363,"context_line":"    return client.metadef_property_list("}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_a73a89e4","line":360,"in_reply_to":"1abeadc6_5ced888a","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":431,"context_line":""},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"@_get_client"},{"line_number":434,"context_line":"def metadef_resource_type_list(client, session\u003dNone):"},{"line_number":435,"context_line":"    return client.metadef_resource_type_list()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_7c032442","line":434,"updated":"2014-08-20 00:53:10.000000000","message":"ditto","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":431,"context_line":""},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"@_get_client"},{"line_number":434,"context_line":"def metadef_resource_type_list(client, session\u003dNone):"},{"line_number":435,"context_line":"    return client.metadef_resource_type_list()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_e72721c8","line":434,"in_reply_to":"1abeadc6_7c032442","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":469,"context_line":""},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"@_get_client"},{"line_number":472,"context_line":"def metadef_resource_type_association_list_by_namespace("},{"line_number":473,"context_line":"        client,"},{"line_number":474,"context_line":"        namespace_name, session\u003dNone):"},{"line_number":475,"context_line":"    return client.metadef_resource_type_association_list_by_namespace("}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_9cfe4037","line":472,"updated":"2014-08-20 00:53:10.000000000","message":"ditto","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":469,"context_line":""},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"@_get_client"},{"line_number":472,"context_line":"def metadef_resource_type_association_list_by_namespace("},{"line_number":473,"context_line":"        client,"},{"line_number":474,"context_line":"        namespace_name, session\u003dNone):"},{"line_number":475,"context_line":"    return client.metadef_resource_type_association_list_by_namespace("}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_671b1181","line":472,"in_reply_to":"1abeadc6_9cfe4037","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":268,"context_line":"@_get_client"},{"line_number":269,"context_line":"def metadef_namespace_get_all("},{"line_number":270,"context_line":"        client,"},{"line_number":271,"context_line":"        session\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":272,"context_line":"        sort_key\u003d\u0027created_at\u0027, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":273,"context_line":"    return client.metadef_namespace_get_all("},{"line_number":274,"context_line":"        marker\u003dmarker, limit\u003dlimit,"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_6a932d5b","line":271,"updated":"2014-08-28 08:32:30.000000000","message":"I prefer to put session param at last.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"0ed72ab0a26a43cc7efad262132f223988915114","unresolved":false,"context_lines":[{"line_number":268,"context_line":"@_get_client"},{"line_number":269,"context_line":"def metadef_namespace_get_all("},{"line_number":270,"context_line":"        client,"},{"line_number":271,"context_line":"        session\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":272,"context_line":"        sort_key\u003d\u0027created_at\u0027, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":273,"context_line":"    return client.metadef_namespace_get_all("},{"line_number":274,"context_line":"        marker\u003dmarker, limit\u003dlimit,"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_a869c88d","line":271,"in_reply_to":"1abeadc6_6a932d5b","updated":"2014-08-28 11:29:20.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"}],"glance/db/simple/api.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"b249654aa2c31ef568687417c9785a87c8b6008e","unresolved":false,"context_lines":[{"line_number":1334,"context_line":"    properties \u003d []"},{"line_number":1335,"context_line":""},{"line_number":1336,"context_line":"    if not _is_namespace_visible(context, namespace):"},{"line_number":1337,"context_line":"        msg \u003d _(\"Forbidding request, namespace %s is not visible\")\\"},{"line_number":1338,"context_line":"            % namespace_name"},{"line_number":1339,"context_line":"        LOG.debug(msg)"},{"line_number":1340,"context_line":"        raise exception.Forbidden(msg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_d26febc5","line":1337,"updated":"2014-08-06 16:52:08.000000000","message":"please prefer () instead of \\","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"@log_call"},{"line_number":1126,"context_line":"def metadef_namespace_list(context,"},{"line_number":1127,"context_line":"                           marker\u003dNone,"},{"line_number":1128,"context_line":"                           limit\u003dNone,"},{"line_number":1129,"context_line":"                           sort_key\u003d\u0027created_at\u0027,"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_bc94dce2","line":1126,"updated":"2014-08-20 00:53:10.000000000","message":"_get_all","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"@log_call"},{"line_number":1126,"context_line":"def metadef_namespace_list(context,"},{"line_number":1127,"context_line":"                           marker\u003dNone,"},{"line_number":1128,"context_line":"                           limit\u003dNone,"},{"line_number":1129,"context_line":"                           sort_key\u003d\u0027created_at\u0027,"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_822c9b9a","line":1126,"in_reply_to":"1abeadc6_bc94dce2","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"@log_call"},{"line_number":1241,"context_line":"def metadef_object_list(context, namespace_name):"},{"line_number":1242,"context_line":"    \"\"\"Get a metadef objects list\"\"\""},{"line_number":1243,"context_line":"    namespace \u003d metadef_namespace_get(context, namespace_name)"},{"line_number":1244,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_1cc150e4","line":1241,"updated":"2014-08-20 00:53:10.000000000","message":"ditto","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"@log_call"},{"line_number":1241,"context_line":"def metadef_object_list(context, namespace_name):"},{"line_number":1242,"context_line":"    \"\"\"Get a metadef objects list\"\"\""},{"line_number":1243,"context_line":"    namespace \u003d metadef_namespace_get(context, namespace_name)"},{"line_number":1244,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_4217e344","line":1241,"in_reply_to":"1abeadc6_1cc150e4","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":""},{"line_number":1547,"context_line":"@log_call"},{"line_number":1548,"context_line":"def metadef_resource_type_list(context):"},{"line_number":1549,"context_line":"    \"\"\"List all resource types\"\"\""},{"line_number":1550,"context_line":"    return DATA[\u0027metadef_resource_types\u0027]"},{"line_number":1551,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_dca6f852","line":1548,"updated":"2014-08-20 00:53:10.000000000","message":"ditto","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":""},{"line_number":1547,"context_line":"@log_call"},{"line_number":1548,"context_line":"def metadef_resource_type_list(context):"},{"line_number":1549,"context_line":"    \"\"\"List all resource types\"\"\""},{"line_number":1550,"context_line":"    return DATA[\u0027metadef_resource_types\u0027]"},{"line_number":1551,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_221ca769","line":1548,"in_reply_to":"1abeadc6_dca6f852","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1622,"context_line":""},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"@log_call"},{"line_number":1625,"context_line":"def metadef_resource_type_association_list_by_namespace(context,"},{"line_number":1626,"context_line":"                                                        namespace_name):"},{"line_number":1627,"context_line":"    namespace \u003d metadef_namespace_get(context, namespace_name)"},{"line_number":1628,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_bcabfc1b","line":1625,"updated":"2014-08-20 00:53:10.000000000","message":"ditto","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1622,"context_line":""},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"@log_call"},{"line_number":1625,"context_line":"def metadef_resource_type_association_list_by_namespace(context,"},{"line_number":1626,"context_line":"                                                        namespace_name):"},{"line_number":1627,"context_line":"    namespace \u003d metadef_namespace_get(context, namespace_name)"},{"line_number":1628,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_e23c6fca","line":1625,"in_reply_to":"1abeadc6_bcabfc1b","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1718,"context_line":"    return object"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":""},{"line_number":1721,"context_line":"def _is_namespace_visible(context, namespace):"},{"line_number":1722,"context_line":"    \"\"\"Return true if namespace is visible in this context\"\"\""},{"line_number":1723,"context_line":"    if context.is_admin:"},{"line_number":1724,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_97929b9d","line":1721,"updated":"2014-08-20 00:53:10.000000000","message":"we might want to share this function with SQLAlchemy code","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1718,"context_line":"    return object"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":""},{"line_number":1721,"context_line":"def _is_namespace_visible(context, namespace):"},{"line_number":1722,"context_line":"    \"\"\"Return true if namespace is visible in this context\"\"\""},{"line_number":1723,"context_line":"    if context.is_admin:"},{"line_number":1724,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_e2154f40","line":1721,"in_reply_to":"1abeadc6_97929b9d","updated":"2014-08-23 04:38:13.000000000","message":"Following the same style of copying logic from db/sqlalchemy/api.py as is currently done for is_task_visible and is_image_visible.","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1727,"context_line":"        return True"},{"line_number":1728,"context_line":""},{"line_number":1729,"context_line":"    if namespace[\u0027owner\u0027] is None:"},{"line_number":1730,"context_line":"        return True"},{"line_number":1731,"context_line":""},{"line_number":1732,"context_line":"    if namespace.get(\u0027visibility\u0027, \u0027\u0027) \u003d\u003d \u0027public\u0027:"},{"line_number":1733,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_dc2b5892","line":1730,"updated":"2014-08-20 00:53:10.000000000","message":"I am not sure if a namespace without an owner should be visible.","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1727,"context_line":"        return True"},{"line_number":1728,"context_line":""},{"line_number":1729,"context_line":"    if namespace[\u0027owner\u0027] is None:"},{"line_number":1730,"context_line":"        return True"},{"line_number":1731,"context_line":""},{"line_number":1732,"context_line":"    if namespace.get(\u0027visibility\u0027, \u0027\u0027) \u003d\u003d \u0027public\u0027:"},{"line_number":1733,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_fe38e3f0","line":1730,"in_reply_to":"1abeadc6_dc2b5892","updated":"2014-08-23 04:38:13.000000000","message":"We followed the same pattern as in the is_image_visible and is_task_visible def\u0027s in db/sqlalchemy/api,py (lines 253-255) for namespaces.","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"29e1f3aac4085ebf514cc16665a6a69cb7b34603","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"    if namespace[\u0027owner\u0027] is None:"},{"line_number":1730,"context_line":"        return True"},{"line_number":1731,"context_line":""},{"line_number":1732,"context_line":"    if namespace.get(\u0027visibility\u0027, \u0027\u0027) \u003d\u003d \u0027public\u0027:"},{"line_number":1733,"context_line":"        return True"},{"line_number":1734,"context_line":""},{"line_number":1735,"context_line":"    if context.owner is not None:"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_3c144c4d","line":1732,"updated":"2014-08-20 00:53:10.000000000","message":"already there line 1726","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d36890cbf0399250d191bb7231fce0df0190eae1","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"    if namespace[\u0027owner\u0027] is None:"},{"line_number":1730,"context_line":"        return True"},{"line_number":1731,"context_line":""},{"line_number":1732,"context_line":"    if namespace.get(\u0027visibility\u0027, \u0027\u0027) \u003d\u003d \u0027public\u0027:"},{"line_number":1733,"context_line":"        return True"},{"line_number":1734,"context_line":""},{"line_number":1735,"context_line":"    if context.owner is not None:"}],"source_content_type":"text/x-python","patch_set":48,"id":"1abeadc6_c714e54e","line":1732,"in_reply_to":"1abeadc6_3c144c4d","updated":"2014-08-23 04:38:13.000000000","message":"Done","commit_id":"c02a904992a8c2affe12f0d03075e4e96f50cb4a"}],"glance/db/sqlalchemy/api.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"import glance.openstack.common.log as os_logging"},{"line_number":40,"context_line":"from glance.openstack.common import timeutils"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"from glance.db.sqlalchemy.metadef_api\\"},{"line_number":43,"context_line":"    import namespace as metadef_namespace_api"},{"line_number":44,"context_line":"from glance.db.sqlalchemy.metadef_api\\"},{"line_number":45,"context_line":"    import object as metadef_object_api"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_0acf192a","line":42,"updated":"2014-08-28 08:32:30.000000000","message":"(nit): is there a way to prevent using \u0027\\\u0027 for this?","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"0ed72ab0a26a43cc7efad262132f223988915114","unresolved":false,"context_lines":[{"line_number":39,"context_line":"import glance.openstack.common.log as os_logging"},{"line_number":40,"context_line":"from glance.openstack.common import timeutils"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"from glance.db.sqlalchemy.metadef_api\\"},{"line_number":43,"context_line":"    import namespace as metadef_namespace_api"},{"line_number":44,"context_line":"from glance.db.sqlalchemy.metadef_api\\"},{"line_number":45,"context_line":"    import object as metadef_object_api"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_08a2bcfc","line":42,"in_reply_to":"1abeadc6_0acf192a","updated":"2014-08-28 11:29:20.000000000","message":"Done for few lines. There\u0027s no clear way to remove backslashes from the last two imports (only if we cut \u0027as something\u0027, but this will decrease readability).","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":1438,"context_line":"    return task_dict"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":""},{"line_number":1441,"context_line":"def metadef_namespace_get_all(context, session\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1442,"context_line":"                              sort_key\u003dNone, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":1443,"context_line":"    \"\"\"List all available namespaces.\"\"\""},{"line_number":1444,"context_line":"    session \u003d session or get_session()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_0aae3981","line":1441,"updated":"2014-08-28 08:32:30.000000000","message":"To be consistent, as original ones and the new interfaces you added, I prefer to put session param at last.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"0ed72ab0a26a43cc7efad262132f223988915114","unresolved":false,"context_lines":[{"line_number":1438,"context_line":"    return task_dict"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":""},{"line_number":1441,"context_line":"def metadef_namespace_get_all(context, session\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1442,"context_line":"                              sort_key\u003dNone, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":1443,"context_line":"    \"\"\"List all available namespaces.\"\"\""},{"line_number":1444,"context_line":"    session \u003d session or get_session()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_083e3c8c","line":1441,"in_reply_to":"1abeadc6_0aae3981","updated":"2014-08-28 11:29:20.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"    \"\"\"List all available namespaces.\"\"\""},{"line_number":1444,"context_line":"    session \u003d session or get_session()"},{"line_number":1445,"context_line":"    namespaces \u003d metadef_namespace_api.get_all("},{"line_number":1446,"context_line":"        context, session, marker, limit, sort_key, sort_dir, filters)"},{"line_number":1447,"context_line":"    return namespaces"},{"line_number":1448,"context_line":""},{"line_number":1449,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_2ab3f5e9","line":1446,"updated":"2014-08-28 08:32:30.000000000","message":"Ditto","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"0ed72ab0a26a43cc7efad262132f223988915114","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"    \"\"\"List all available namespaces.\"\"\""},{"line_number":1444,"context_line":"    session \u003d session or get_session()"},{"line_number":1445,"context_line":"    namespaces \u003d metadef_namespace_api.get_all("},{"line_number":1446,"context_line":"        context, session, marker, limit, sort_key, sort_dir, filters)"},{"line_number":1447,"context_line":"    return namespaces"},{"line_number":1448,"context_line":""},{"line_number":1449,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_e85f40e3","line":1446,"in_reply_to":"1abeadc6_2ab3f5e9","updated":"2014-08-28 11:29:20.000000000","message":"Session is the last positional argument. Every argument after session is keyword argument, so I\u0027m not sure about this change.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"}],"glance/db/sqlalchemy/metadata_schema_api/metadef_namespace.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"b249654aa2c31ef568687417c9785a87c8b6008e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_37a01942","line":2,"updated":"2014-08-06 16:52:08.000000000","message":"Please rename the path to glance/db/sqlalchemy/metadefs_api/namespace.py","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_a26d17ce","line":2,"in_reply_to":"baada198_37a01942","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"b249654aa2c31ef568687417c9785a87c8b6008e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    return query.all()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"def _metadef_namespace_list_by_resource_types(context, session, filters,"},{"line_number":146,"context_line":"                                              marker\u003dNone, limit\u003dNone,"},{"line_number":147,"context_line":"                                              sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":148,"context_line":"    \"\"\"get all visible namespaces for the specified resource_types\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_7781b19f","line":145,"updated":"2014-08-06 16:52:08.000000000","message":"list_by_resource_types(...)","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    return query.all()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"def _metadef_namespace_list_by_resource_types(context, session, filters,"},{"line_number":146,"context_line":"                                              marker\u003dNone, limit\u003dNone,"},{"line_number":147,"context_line":"                                              sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":148,"context_line":"    \"\"\"get all visible namespaces for the specified resource_types\"\"\""}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_a27b5779","line":145,"in_reply_to":"baada198_7781b19f","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ba859caa484c4244f8fe41e646074b43fe93236f","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    return namespaces"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"def metadef_namespace_get(context, name, session):"},{"line_number":192,"context_line":"    \"\"\"Get a namespace by name, raise if not found\"\"\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_32b107e1","line":191,"updated":"2014-08-06 17:03:39.000000000","message":"Hope that all the method names would not have metadef_namespace in the all the method names.","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    return namespaces"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"def metadef_namespace_get(context, name, session):"},{"line_number":192,"context_line":"    \"\"\"Get a namespace by name, raise if not found\"\"\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_c27e9369","line":191,"in_reply_to":"baada198_32b107e1","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"}],"glance/db/sqlalchemy/metadef_api/namespace.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"sa_logger \u003d None"},{"line_number":27,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":28,"context_line":"_ \u003d i18n._"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def _is_namespace_visible(context, namespace, status\u003dNone):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_7777bfd4","line":28,"updated":"2014-08-27 10:15:43.000000000","message":"This should not be needed.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"sa_logger \u003d None"},{"line_number":27,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":28,"context_line":"_ \u003d i18n._"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def _is_namespace_visible(context, namespace, status\u003dNone):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_aab7d238","line":28,"in_reply_to":"1abeadc6_7777bfd4","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":56,"context_line":"def _select_namespaces_query(context, session):"},{"line_number":57,"context_line":"    \"\"\"Build the query to get all namespaces based on the context\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    LOG.debug(\"context.is_admin\u003d%s; context.owner\u003d%s\" %"},{"line_number":60,"context_line":"              (context.is_admin, context.owner))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    # If admin, return everything."}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_f7310f0c","line":59,"updated":"2014-08-27 10:15:43.000000000","message":"Please use keyed inserts when more than one.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"def _select_namespaces_query(context, session):"},{"line_number":57,"context_line":"    \"\"\"Build the query to get all namespaces based on the context\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    LOG.debug(\"context.is_admin\u003d%s; context.owner\u003d%s\" %"},{"line_number":60,"context_line":"              (context.is_admin, context.owner))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    # If admin, return everything."}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_ea846a5f","line":59,"in_reply_to":"1abeadc6_f7310f0c","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            .filter_by(id\u003dnamespace_id)"},{"line_number":87,"context_line":"        namespace_rec \u003d query.one()"},{"line_number":88,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":89,"context_line":"        msg \u003d _(\"Metadef Namespace not found for id %s\") % namespace_id"},{"line_number":90,"context_line":"        LOG.warn(msg)"},{"line_number":91,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027namespace\u0027,"},{"line_number":92,"context_line":"                                        id\u003dnamespace_id)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_3221d59f","line":89,"updated":"2014-08-27 10:15:43.000000000","message":"_LW()","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            .filter_by(id\u003dnamespace_id)"},{"line_number":87,"context_line":"        namespace_rec \u003d query.one()"},{"line_number":88,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":89,"context_line":"        msg \u003d _(\"Metadef Namespace not found for id %s\") % namespace_id"},{"line_number":90,"context_line":"        LOG.warn(msg)"},{"line_number":91,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027namespace\u0027,"},{"line_number":92,"context_line":"                                        id\u003dnamespace_id)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_2a7bc27b","line":89,"in_reply_to":"1abeadc6_3221d59f","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    if not _is_namespace_visible(context, namespace_rec.as_dict()):"},{"line_number":96,"context_line":"        msg \u003d _(\"Forbidding request, Metadef Namespace %s not visible.\") \\"},{"line_number":97,"context_line":"            % namespace_rec.namespace"},{"line_number":98,"context_line":"        LOG.debug(msg)"},{"line_number":99,"context_line":"        raise exc.Forbidden(msg)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    return namespace_rec"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_1278598e","line":98,"updated":"2014-08-27 10:15:43.000000000","message":"DEBUG level messages should not be translated. We need to use either WARNING level logging or preferred two strings one translated for the exception and the other not translated for the DEBUG level logging.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    if not _is_namespace_visible(context, namespace_rec.as_dict()):"},{"line_number":96,"context_line":"        msg \u003d _(\"Forbidding request, Metadef Namespace %s not visible.\") \\"},{"line_number":97,"context_line":"            % namespace_rec.namespace"},{"line_number":98,"context_line":"        LOG.debug(msg)"},{"line_number":99,"context_line":"        raise exc.Forbidden(msg)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    return namespace_rec"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_4a7e3e6b","line":98,"in_reply_to":"1abeadc6_1278598e","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    # Make sure they are allowed to view it."},{"line_number":117,"context_line":"    if not _is_namespace_visible(context, namespace_rec.as_dict()):"},{"line_number":118,"context_line":"        msg \u003d _(\"Forbidding request, namespace %s not visible.\") % name"},{"line_number":119,"context_line":"        LOG.debug(msg)"},{"line_number":120,"context_line":"        raise exc.Forbidden(msg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    return namespace_rec"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_7268adba","line":119,"updated":"2014-08-27 10:15:43.000000000","message":"ditto","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    # Make sure they are allowed to view it."},{"line_number":117,"context_line":"    if not _is_namespace_visible(context, namespace_rec.as_dict()):"},{"line_number":118,"context_line":"        msg \u003d _(\"Forbidding request, namespace %s not visible.\") % name"},{"line_number":119,"context_line":"        LOG.debug(msg)"},{"line_number":120,"context_line":"        raise exc.Forbidden(msg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    return namespace_rec"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_8a93f6a1","line":119,"in_reply_to":"1abeadc6_7268adba","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":227,"context_line":"            msg \u003d _(\"Can not create Metadef Namespace. \""},{"line_number":228,"context_line":"                    \"Namespace %s already exists.\") % namespace.namespace"},{"line_number":229,"context_line":"            LOG.debug(msg)"},{"line_number":230,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    return namespace.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_52a9f1dd","line":229,"updated":"2014-08-27 10:15:43.000000000","message":"ditto","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":227,"context_line":"            msg \u003d _(\"Can not create Metadef Namespace. \""},{"line_number":228,"context_line":"                    \"Namespace %s already exists.\") % namespace.namespace"},{"line_number":229,"context_line":"            LOG.debug(msg)"},{"line_number":230,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    return namespace.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_eaeb8a10","line":229,"in_reply_to":"1abeadc6_52a9f1dd","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        msg \u003d _(\"Invalid update. It would result in a duplicate \""},{"line_number":247,"context_line":"                \"Metadef Namespace with the same name of %s\") \\"},{"line_number":248,"context_line":"            % values[\u0027namespace\u0027]"},{"line_number":249,"context_line":"        LOG.debug(msg)"},{"line_number":250,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    return namespace_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_b2b96530","line":249,"updated":"2014-08-27 10:15:43.000000000","message":"ditto","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        msg \u003d _(\"Invalid update. It would result in a duplicate \""},{"line_number":247,"context_line":"                \"Metadef Namespace with the same name of %s\") \\"},{"line_number":248,"context_line":"            % values[\u0027namespace\u0027]"},{"line_number":249,"context_line":"        LOG.debug(msg)"},{"line_number":250,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    return namespace_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_2af2e205","line":249,"in_reply_to":"1abeadc6_b2b96530","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from glance.db.sqlalchemy import models_metadef as models"},{"line_number":23,"context_line":"import glance.openstack.common.log as os_logging"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"sa_logger \u003d None"},{"line_number":26,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_94c26b83","line":25,"updated":"2014-08-28 11:33:21.000000000","message":"useless?","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from glance.db.sqlalchemy import models_metadef as models"},{"line_number":23,"context_line":"import glance.openstack.common.log as os_logging"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"sa_logger \u003d None"},{"line_number":26,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_25f21a06","line":25,"in_reply_to":"1abeadc6_94c26b83","updated":"2014-08-29 06:49:13.000000000","message":"Done..removed","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    else:"},{"line_number":65,"context_line":"        # If regular user, return only public namespaces."},{"line_number":66,"context_line":"        # However, if context.owner has a value, return both"},{"line_number":67,"context_line":"        # public and private namespaces of the context.owner."},{"line_number":68,"context_line":"        query_ns \u003d query_ns.filter("},{"line_number":69,"context_line":"            models.MetadefNamespace.visibility \u003d\u003d \u0027public\u0027)"},{"line_number":70,"context_line":"        if context.owner is not None:"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_d445c343","line":67,"updated":"2014-08-28 11:33:21.000000000","message":"So can we use a if-else logic in code to prevent union query on db for performance? iiuc, we can change follow if-else easily to made it.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    else:"},{"line_number":65,"context_line":"        # If regular user, return only public namespaces."},{"line_number":66,"context_line":"        # However, if context.owner has a value, return both"},{"line_number":67,"context_line":"        # public and private namespaces of the context.owner."},{"line_number":68,"context_line":"        query_ns \u003d query_ns.filter("},{"line_number":69,"context_line":"            models.MetadefNamespace.visibility \u003d\u003d \u0027public\u0027)"},{"line_number":70,"context_line":"        if context.owner is not None:"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_a5e54a39","line":67,"in_reply_to":"1abeadc6_d445c343","updated":"2014-08-29 06:49:13.000000000","message":"Done","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":87,"context_line":"        msg \u003d \"Metadef Namespace not found for id %s\" % namespace_id"},{"line_number":88,"context_line":"        LOG.debug(msg)"},{"line_number":89,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027namespace\u0027,"},{"line_number":90,"context_line":"                                        id\u003dnamespace_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # Make sure they are allowed to view it."}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_34b27706","line":89,"updated":"2014-08-28 11:33:21.000000000","message":"MetadefNamespaceNotFound? Line 112","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":87,"context_line":"        msg \u003d \"Metadef Namespace not found for id %s\" % namespace_id"},{"line_number":88,"context_line":"        LOG.debug(msg)"},{"line_number":89,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027namespace\u0027,"},{"line_number":90,"context_line":"                                        id\u003dnamespace_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # Make sure they are allowed to view it."}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_25c93aac","line":89,"in_reply_to":"1abeadc6_34b27706","updated":"2014-08-29 06:49:13.000000000","message":"will do","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # Make sure they are allowed to view it."},{"line_number":93,"context_line":"    if not _is_namespace_visible(context, namespace_rec.as_dict()):"},{"line_number":94,"context_line":"        msg \u003d \"Forbidding request, Metadef Namespace %s not visible.\" \\"},{"line_number":95,"context_line":"            % namespace_rec.namespace"},{"line_number":96,"context_line":"        LOG.debug(msg)"},{"line_number":97,"context_line":"        raise exc.Forbidden(msg)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_81a4efa6","line":94,"updated":"2014-08-28 11:33:21.000000000","message":"(nit): pls use () instead of \\","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # Make sure they are allowed to view it."},{"line_number":93,"context_line":"    if not _is_namespace_visible(context, namespace_rec.as_dict()):"},{"line_number":94,"context_line":"        msg \u003d \"Forbidding request, Metadef Namespace %s not visible.\" \\"},{"line_number":95,"context_line":"            % namespace_rec.namespace"},{"line_number":96,"context_line":"        LOG.debug(msg)"},{"line_number":97,"context_line":"        raise exc.Forbidden(msg)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_65741268","line":94,"in_reply_to":"1abeadc6_81a4efa6","updated":"2014-08-29 06:49:13.000000000","message":"Done","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    query \u003d _select_namespaces_query(context, session)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    # if visibility filter, apply it to the context based query"},{"line_number":139,"context_line":"    visibility \u003d filters.pop(\u0027visibility\u0027, None)"},{"line_number":140,"context_line":"    if visibility is not None:"},{"line_number":141,"context_line":"        query \u003d query.filter(models.MetadefNamespace.visibility \u003d\u003d visibility)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_94942b8c","line":138,"updated":"2014-08-28 11:33:21.000000000","message":"So do you think we can pass visibility condition to _select_namespaces_query() directly to easy query logic?","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    query \u003d _select_namespaces_query(context, session)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    # if visibility filter, apply it to the context based query"},{"line_number":139,"context_line":"    visibility \u003d filters.pop(\u0027visibility\u0027, None)"},{"line_number":140,"context_line":"    if visibility is not None:"},{"line_number":141,"context_line":"        query \u003d query.filter(models.MetadefNamespace.visibility \u003d\u003d visibility)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_05c0be4e","line":138,"in_reply_to":"1abeadc6_94942b8c","updated":"2014-08-29 06:49:13.000000000","message":"will test out adding to _select_namespaces_query()","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    namespace_id_list \u003d []"},{"line_number":179,"context_line":"    for name, namespace_id in db_recs:"},{"line_number":180,"context_line":"        namespace_id_list.append(namespace_id)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    if len(namespace_id_list) is 0:"},{"line_number":183,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_0139bfa3","line":180,"updated":"2014-08-28 11:33:21.000000000","message":"So seems we don\u0027t need to query resource type name column. Does it required by where sentence?","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    namespace_id_list \u003d []"},{"line_number":179,"context_line":"    for name, namespace_id in db_recs:"},{"line_number":180,"context_line":"        namespace_id_list.append(namespace_id)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    if len(namespace_id_list) is 0:"},{"line_number":183,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_daf06169","line":180,"in_reply_to":"1abeadc6_0139bfa3","updated":"2014-08-29 06:49:13.000000000","message":"will test out removing name and will remove if it works","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    marker, limit, sort_key, sort_dir)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def get_all(context, session, marker\u003dNone, limit\u003dNone,"},{"line_number":193,"context_line":"            sort_key\u003dNone, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":194,"context_line":"    \"\"\"List all visible namespaces\"\"\""},{"line_number":195,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_94934b5a","line":192,"updated":"2014-08-28 11:33:21.000000000","message":"param session move to last position will be better, imo, again.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b78131efeab7cff8b7e5a0902effbc4a9b0497be","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    marker, limit, sort_key, sort_dir)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def get_all(context, session, marker\u003dNone, limit\u003dNone,"},{"line_number":193,"context_line":"            sort_key\u003dNone, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":194,"context_line":"    \"\"\"List all visible namespaces\"\"\""},{"line_number":195,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_a3da9d75","line":192,"in_reply_to":"1abeadc6_259e9a07","updated":"2014-08-29 07:34:27.000000000","message":"make sense, thanks.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    marker, limit, sort_key, sort_dir)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def get_all(context, session, marker\u003dNone, limit\u003dNone,"},{"line_number":193,"context_line":"            sort_key\u003dNone, sort_dir\u003dNone, filters\u003dNone):"},{"line_number":194,"context_line":"    \"\"\"List all visible namespaces\"\"\""},{"line_number":195,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_259e9a07","line":192,"in_reply_to":"1abeadc6_94934b5a","updated":"2014-08-29 06:49:13.000000000","message":"Currently, session is positional which helps us from having to have a circular dependency of glance.db.sqlalchem.metadef_api.namespace back to glance.db.sqlalchemy.api  in order to have access to get_session().","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    namespace.update(values.copy())"},{"line_number":221,"context_line":"    with session.begin():"},{"line_number":222,"context_line":"        try:"},{"line_number":223,"context_line":"            namespace.save(session\u003dsession)"},{"line_number":224,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":225,"context_line":"            msg \u003d (\"Can not create Metadef Namespace. \""},{"line_number":226,"context_line":"                   \"Namespace %s already exists.\" % namespace.namespace)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_d4df83d4","line":223,"updated":"2014-08-28 11:33:21.000000000","message":"Do we flush this manually as we\u0027ll?\n\nBtw, why you think we need to  manual do it?","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b78131efeab7cff8b7e5a0902effbc4a9b0497be","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    namespace.update(values.copy())"},{"line_number":221,"context_line":"    with session.begin():"},{"line_number":222,"context_line":"        try:"},{"line_number":223,"context_line":"            namespace.save(session\u003dsession)"},{"line_number":224,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":225,"context_line":"            msg \u003d (\"Can not create Metadef Namespace. \""},{"line_number":226,"context_line":"                   \"Namespace %s already exists.\" % namespace.namespace)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_2364cdb7","line":223,"in_reply_to":"1abeadc6_1fe64be8","updated":"2014-08-29 07:34:27.000000000","message":"i think latest PS has already removed flush() calls out except the one in delete(). It\u0027s nice to me.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    namespace.update(values.copy())"},{"line_number":221,"context_line":"    with session.begin():"},{"line_number":222,"context_line":"        try:"},{"line_number":223,"context_line":"            namespace.save(session\u003dsession)"},{"line_number":224,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":225,"context_line":"            msg \u003d (\"Can not create Metadef Namespace. \""},{"line_number":226,"context_line":"                   \"Namespace %s already exists.\" % namespace.namespace)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_1fe64be8","line":223,"in_reply_to":"1abeadc6_d4df83d4","updated":"2014-08-29 06:49:13.000000000","message":"We\u0027ve removed the with session.begin(), not sure what you mean by manual flush in this case.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            msg \u003d (\"Can not create Metadef Namespace. \""},{"line_number":226,"context_line":"                   \"Namespace %s already exists.\" % namespace.namespace)"},{"line_number":227,"context_line":"            LOG.debug(msg)"},{"line_number":228,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    return namespace.as_dict()"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_34335763","line":228,"updated":"2014-08-28 11:33:21.000000000","message":"Should be MetadefDuplicateNamespace?","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            msg \u003d (\"Can not create Metadef Namespace. \""},{"line_number":226,"context_line":"                   \"Namespace %s already exists.\" % namespace.namespace)"},{"line_number":227,"context_line":"            LOG.debug(msg)"},{"line_number":228,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    return namespace.as_dict()"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_bf6f175f","line":228,"in_reply_to":"1abeadc6_34335763","updated":"2014-08-29 06:49:13.000000000","message":"Done","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    namespace_rec \u003d _get(context, namespace_id, session)"},{"line_number":237,"context_line":"    metadef_api.utils.drop_protected_attrs(models.MetadefNamespace, values)"},{"line_number":238,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":239,"context_line":"    try:"},{"line_number":240,"context_line":"        namespace_rec.update(values.copy())"},{"line_number":241,"context_line":"        session.add(namespace_rec)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_d44303ad","line":238,"updated":"2014-08-28 11:33:21.000000000","message":"Remove it pls","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    namespace_rec \u003d _get(context, namespace_id, session)"},{"line_number":237,"context_line":"    metadef_api.utils.drop_protected_attrs(models.MetadefNamespace, values)"},{"line_number":238,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":239,"context_line":"    try:"},{"line_number":240,"context_line":"        namespace_rec.update(values.copy())"},{"line_number":241,"context_line":"        session.add(namespace_rec)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_7fcbbf71","line":238,"in_reply_to":"1abeadc6_d44303ad","updated":"2014-08-29 06:49:13.000000000","message":"Done","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":245,"context_line":"               \"Metadef Namespace with the same name of %s\""},{"line_number":246,"context_line":"               % values[\u0027namespace\u0027])"},{"line_number":247,"context_line":"        LOG.debug(msg)"},{"line_number":248,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    return namespace_rec.as_dict()"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_340a7779","line":248,"updated":"2014-08-28 11:33:21.000000000","message":"Ditto","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":245,"context_line":"               \"Metadef Namespace with the same name of %s\""},{"line_number":246,"context_line":"               % values[\u0027namespace\u0027])"},{"line_number":247,"context_line":"        LOG.debug(msg)"},{"line_number":248,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    return namespace_rec.as_dict()"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_dfa3f3af","line":248,"in_reply_to":"1abeadc6_340a7779","updated":"2014-08-29 06:49:13.000000000","message":"Done","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                raise exc.MetadefIntegrityError("},{"line_number":267,"context_line":"                    record_type\u003d\u0027Namespace\u0027, record_name\u003dname)"},{"line_number":268,"context_line":"            else:"},{"line_number":269,"context_line":"                raise e"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    return namespace_rec.as_dict()"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_f44b9f84","line":269,"updated":"2014-08-28 11:33:21.000000000","message":"For more correct exception context, prefer to use save_and_rerise_exception() for this case. https://github.com/openstack/glance/blob/master/glance/openstack/common/excutils.py#L66","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                raise exc.MetadefIntegrityError("},{"line_number":267,"context_line":"                    record_type\u003d\u0027Namespace\u0027, record_name\u003dname)"},{"line_number":268,"context_line":"            else:"},{"line_number":269,"context_line":"                raise e"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    return namespace_rec.as_dict()"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_df8a131a","line":269,"in_reply_to":"1abeadc6_f44b9f84","updated":"2014-08-29 06:49:13.000000000","message":"will do","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                raise exc.MetadefIntegrityError("},{"line_number":294,"context_line":"                    record_type\u003d\u0027Namespace\u0027, record_name\u003dname)"},{"line_number":295,"context_line":"            else:"},{"line_number":296,"context_line":"                raise e"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    return namespace_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_7426afcf","line":296,"updated":"2014-08-28 11:33:21.000000000","message":"Ditto","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                raise exc.MetadefIntegrityError("},{"line_number":294,"context_line":"                    record_type\u003d\u0027Namespace\u0027, record_name\u003dname)"},{"line_number":295,"context_line":"            else:"},{"line_number":296,"context_line":"                raise e"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    return namespace_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_7f79ff2d","line":296,"in_reply_to":"1abeadc6_7426afcf","updated":"2014-08-29 06:49:13.000000000","message":"will do","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"}],"glance/db/sqlalchemy/metadef_api/object.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sa_logger \u003d None"},{"line_number":28,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":29,"context_line":"_ \u003d i18n._"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _get(context, object_id, session):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_12edb925","line":29,"updated":"2014-08-27 10:15:43.000000000","message":"ditto (should not be needed)","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sa_logger \u003d None"},{"line_number":28,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":29,"context_line":"_ \u003d i18n._"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _get(context, object_id, session):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_8a3e96b6","line":29,"in_reply_to":"1abeadc6_12edb925","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        metadef_object \u003d query.one()"},{"line_number":37,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":38,"context_line":"        msg \u003d _(\"Metadef Object not found for id %s\") % object_id"},{"line_number":39,"context_line":"        LOG.warn(msg)"},{"line_number":40,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027Object\u0027, id\u003dobject_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    return metadef_object"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_d2e2612e","line":39,"updated":"2014-08-27 10:15:43.000000000","message":"Either this should be translated with _LW() or _LE() and logged with LOG.exception()","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        metadef_object \u003d query.one()"},{"line_number":37,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":38,"context_line":"        msg \u003d _(\"Metadef Object not found for id %s\") % object_id"},{"line_number":39,"context_line":"        LOG.warn(msg)"},{"line_number":40,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027Object\u0027, id\u003dobject_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    return metadef_object"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_ca5b2e20","line":39,"in_reply_to":"1abeadc6_d2e2612e","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    \" %(name)s already exists in namespace\""},{"line_number":86,"context_line":"                    \" %(namespace_name)s.\") \\"},{"line_number":87,"context_line":"                % {\u0027name\u0027: md_object.name, \u0027namespace_name\u0027: namespace_name}"},{"line_number":88,"context_line":"            LOG.debug(msg)"},{"line_number":89,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    return md_object.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_92bf09fc","line":88,"updated":"2014-08-27 10:15:43.000000000","message":"ditto (no translation for DEBUG level logging)","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    \" %(name)s already exists in namespace\""},{"line_number":86,"context_line":"                    \" %(namespace_name)s.\") \\"},{"line_number":87,"context_line":"                % {\u0027name\u0027: md_object.name, \u0027namespace_name\u0027: namespace_name}"},{"line_number":88,"context_line":"            LOG.debug(msg)"},{"line_number":89,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    return md_object.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_0aa1a6f7","line":88,"in_reply_to":"1abeadc6_92bf09fc","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                \" Metadef Object with same name %(name)s in namespace\""},{"line_number":114,"context_line":"                \" %(namespace_name)s\") \\"},{"line_number":115,"context_line":"            % {\u0027name\u0027: md_object.name, \u0027namespace_name\u0027: namespace_name}"},{"line_number":116,"context_line":"        LOG.debug(msg)"},{"line_number":117,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    return md_object.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_123bf99c","line":116,"updated":"2014-08-27 10:15:43.000000000","message":"ditto","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                \" Metadef Object with same name %(name)s in namespace\""},{"line_number":114,"context_line":"                \" %(namespace_name)s\") \\"},{"line_number":115,"context_line":"            % {\u0027name\u0027: md_object.name, \u0027namespace_name\u0027: namespace_name}"},{"line_number":116,"context_line":"        LOG.debug(msg)"},{"line_number":117,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    return md_object.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_4aa71e0b","line":116,"in_reply_to":"1abeadc6_123bf99c","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":38,"context_line":"        LOG.warn(_LW(\"Metadata definition object not found for id %s\","},{"line_number":39,"context_line":"                     object_id))"},{"line_number":40,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027object\u0027, id\u003dobject_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    return metadef_object"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_f2de4f10","line":40,"updated":"2014-08-28 11:33:35.000000000","message":"MetadefObjectNotFound?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":38,"context_line":"        LOG.warn(_LW(\"Metadata definition object not found for id %s\","},{"line_number":39,"context_line":"                     object_id))"},{"line_number":40,"context_line":"        raise exc.MetadefRecordNotFound(record_type\u003d\u0027object\u0027, id\u003dobject_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    return metadef_object"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_ca424eaa","line":40,"in_reply_to":"1abeadc6_f2de4f10","updated":"2014-08-29 06:50:04.000000000","message":"will do","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    md_object \u003d _get(context, object_id, session)"},{"line_number":107,"context_line":"    metadef_utils.drop_protected_attrs(models.MetadefObject, values)"},{"line_number":108,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":109,"context_line":"    try:"},{"line_number":110,"context_line":"        md_object.update(values.copy())"},{"line_number":111,"context_line":"        session.add(md_object)"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_b274d7fe","line":108,"updated":"2014-08-28 11:33:35.000000000","message":"Pls remove","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    md_object \u003d _get(context, object_id, session)"},{"line_number":107,"context_line":"    metadef_utils.drop_protected_attrs(models.MetadefObject, values)"},{"line_number":108,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":109,"context_line":"    try:"},{"line_number":110,"context_line":"        md_object.update(values.copy())"},{"line_number":111,"context_line":"        session.add(md_object)"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_ea146aa1","line":108,"in_reply_to":"1abeadc6_b274d7fe","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"}],"glance/db/sqlalchemy/metadef_api/property.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sa_logger \u003d None"},{"line_number":28,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":29,"context_line":"_ \u003d i18n._"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _get(context, property_id, session):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_525c91ed","line":29,"updated":"2014-08-27 10:15:43.000000000","message":"should not be needed","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sa_logger \u003d None"},{"line_number":28,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":29,"context_line":"_ \u003d i18n._"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _get(context, property_id, session):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_8a10564f","line":29,"in_reply_to":"1abeadc6_525c91ed","updated":"2014-08-29 06:44:05.000000000","message":"Done - though, now using _LW","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":40,"context_line":"        msg \u003d _(\"Metadef Property not found for id %s\") % property_id"},{"line_number":41,"context_line":"        LOG.warn(msg)"},{"line_number":42,"context_line":"        raise exc.MetadefRecordNotFound("},{"line_number":43,"context_line":"            record_type\u003d\u0027Property\u0027, id\u003dproperty_id)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_926d499c","line":41,"updated":"2014-08-27 10:15:43.000000000","message":"ditto (logging level/translation)","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":40,"context_line":"        msg \u003d _(\"Metadef Property not found for id %s\") % property_id"},{"line_number":41,"context_line":"        LOG.warn(msg)"},{"line_number":42,"context_line":"        raise exc.MetadefRecordNotFound("},{"line_number":43,"context_line":"            record_type\u003d\u0027Property\u0027, id\u003dproperty_id)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_ea4f0a69","line":41,"in_reply_to":"1abeadc6_926d499c","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                \" Metadef Property with same name %(name)s in namespace\""},{"line_number":122,"context_line":"                \" %(namespace_name)s\") \\"},{"line_number":123,"context_line":"            % {\u0027name\u0027: property_rec.name, \u0027namespace_name\u0027: namespace_name}"},{"line_number":124,"context_line":"        LOG.debug(msg)"},{"line_number":125,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    return property_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_d2fee1ad","line":124,"updated":"2014-08-27 10:15:43.000000000","message":"ditto (no translation/logging level)","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                \" Metadef Property with same name %(name)s in namespace\""},{"line_number":122,"context_line":"                \" %(namespace_name)s\") \\"},{"line_number":123,"context_line":"            % {\u0027name\u0027: property_rec.name, \u0027namespace_name\u0027: namespace_name}"},{"line_number":124,"context_line":"        LOG.debug(msg)"},{"line_number":125,"context_line":"        raise exc.Duplicate(msg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    return property_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_4a59de33","line":124,"in_reply_to":"1abeadc6_d2fee1ad","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from glance import i18n"},{"line_number":25,"context_line":"import glance.openstack.common.log as os_logging"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sa_logger \u003d None"},{"line_number":28,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":29,"context_line":"_LW \u003d i18n._LW"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_6ddee26e","line":27,"updated":"2014-08-28 11:33:35.000000000","message":"Remove?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from glance import i18n"},{"line_number":25,"context_line":"import glance.openstack.common.log as os_logging"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sa_logger \u003d None"},{"line_number":28,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":29,"context_line":"_LW \u003d i18n._LW"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_6a285ae2","line":27,"in_reply_to":"1abeadc6_6ddee26e","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":40,"context_line":"        LOG.warn(_LW(\"Metadata definition property not found for id\u003d%s\","},{"line_number":41,"context_line":"                     property_id))"},{"line_number":42,"context_line":"        raise exc.MetadefRecordNotFound("},{"line_number":43,"context_line":"            record_type\u003d\u0027property\u0027, id\u003dproperty_id)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    return property_rec"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_725f9f41","line":42,"updated":"2014-08-28 11:33:35.000000000","message":"MetadefPropertyNotFound?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":40,"context_line":"        LOG.warn(_LW(\"Metadata definition property not found for id\u003d%s\","},{"line_number":41,"context_line":"                     property_id))"},{"line_number":42,"context_line":"        raise exc.MetadefRecordNotFound("},{"line_number":43,"context_line":"            record_type\u003d\u0027property\u0027, id\u003dproperty_id)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    return property_rec"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_ca196ed2","line":42,"in_reply_to":"1abeadc6_725f9f41","updated":"2014-08-29 06:50:04.000000000","message":"will do","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        property_rec.update(values.copy())"},{"line_number":120,"context_line":"        session.add(property_rec)"},{"line_number":121,"context_line":"        session.flush()"},{"line_number":122,"context_line":"    except db_exc.DBDuplicateEntry:"},{"line_number":123,"context_line":"        msg \u003d (\"Invalid update. It would result in a duplicate\""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_ad9c7a6b","line":120,"updated":"2014-08-28 11:33:35.000000000","message":"property_rec.save(session\u003dsession) ?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        property_rec.update(values.copy())"},{"line_number":120,"context_line":"        session.add(property_rec)"},{"line_number":121,"context_line":"        session.flush()"},{"line_number":122,"context_line":"    except db_exc.DBDuplicateEntry:"},{"line_number":123,"context_line":"        msg \u003d (\"Invalid update. It would result in a duplicate\""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_2a82e2c7","line":120,"in_reply_to":"1abeadc6_ad9c7a6b","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":139,"context_line":"def delete(context, namespace_name, property_name, session):"},{"line_number":140,"context_line":"    property_rec \u003d _get_by_name("},{"line_number":141,"context_line":"        context, namespace_name, property_name, session)"},{"line_number":142,"context_line":"    if property_rec:"},{"line_number":143,"context_line":"        with session.begin():"},{"line_number":144,"context_line":"            session.delete(property_rec)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_0d964e3f","line":142,"updated":"2014-08-28 11:33:35.000000000","message":"Do we really need this check?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":139,"context_line":"def delete(context, namespace_name, property_name, session):"},{"line_number":140,"context_line":"    property_rec \u003d _get_by_name("},{"line_number":141,"context_line":"        context, namespace_name, property_name, session)"},{"line_number":142,"context_line":"    if property_rec:"},{"line_number":143,"context_line":"        with session.begin():"},{"line_number":144,"context_line":"            session.delete(property_rec)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_4a5c7e7d","line":142,"in_reply_to":"1abeadc6_0d964e3f","updated":"2014-08-29 06:50:04.000000000","message":"will do","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    property_rec \u003d _get_by_name("},{"line_number":141,"context_line":"        context, namespace_name, property_name, session)"},{"line_number":142,"context_line":"    if property_rec:"},{"line_number":143,"context_line":"        with session.begin():"},{"line_number":144,"context_line":"            session.delete(property_rec)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    return property_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_cd4376ad","line":143,"updated":"2014-08-28 11:33:35.000000000","message":"Do we need a transaction for this single call?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    property_rec \u003d _get_by_name("},{"line_number":141,"context_line":"        context, namespace_name, property_name, session)"},{"line_number":142,"context_line":"    if property_rec:"},{"line_number":143,"context_line":"        with session.begin():"},{"line_number":144,"context_line":"            session.delete(property_rec)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    return property_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_ca47aea1","line":143,"in_reply_to":"1abeadc6_cd4376ad","updated":"2014-08-29 06:50:04.000000000","message":"will do","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"}],"glance/db/sqlalchemy/metadef_api/resource_type.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"sa_logger \u003d None"},{"line_number":27,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":28,"context_line":"_ \u003d i18n._"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get(context, name, session):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_921b891b","line":28,"updated":"2014-08-27 10:15:43.000000000","message":"should not be needed","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"sa_logger \u003d None"},{"line_number":27,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":28,"context_line":"_ \u003d i18n._"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get(context, name, session):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_770e833c","line":28,"in_reply_to":"1abeadc6_921b891b","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            msg \u003d _(\"Can not create the Metadef Resource-Type.\""},{"line_number":70,"context_line":"                    \" A Resource-Type with the name %s already exists.\")\\"},{"line_number":71,"context_line":"                % resource_type.name"},{"line_number":72,"context_line":"            LOG.debug(msg)"},{"line_number":73,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    return resource_type.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_f2d3dd35","line":72,"updated":"2014-08-27 10:15:43.000000000","message":"ditto (no translation/logging level)","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            msg \u003d _(\"Can not create the Metadef Resource-Type.\""},{"line_number":70,"context_line":"                    \" A Resource-Type with the name %s already exists.\")\\"},{"line_number":71,"context_line":"                % resource_type.name"},{"line_number":72,"context_line":"            LOG.debug(msg)"},{"line_number":73,"context_line":"            raise exc.Duplicate(msg)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    return resource_type.as_dict()"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_d7ff5700","line":72,"in_reply_to":"1abeadc6_f2d3dd35","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    name \u003d values[\u0027name\u0027]"},{"line_number":81,"context_line":"    metadef_utils.drop_protected_attrs(models.MetadefResourceType, values)"},{"line_number":82,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":83,"context_line":"    with session.begin():"},{"line_number":84,"context_line":"        db_rec \u003d get(context, name, session)"},{"line_number":85,"context_line":"        db_rec.update(values.copy())"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_4d5be6f5","line":82,"updated":"2014-08-28 11:33:35.000000000","message":"Remove","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    name \u003d values[\u0027name\u0027]"},{"line_number":81,"context_line":"    metadef_utils.drop_protected_attrs(models.MetadefResourceType, values)"},{"line_number":82,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":83,"context_line":"    with session.begin():"},{"line_number":84,"context_line":"        db_rec \u003d get(context, name, session)"},{"line_number":85,"context_line":"        db_rec.update(values.copy())"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_2ad022c8","line":82,"in_reply_to":"1abeadc6_4d5be6f5","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    name \u003d values[\u0027name\u0027]"},{"line_number":81,"context_line":"    metadef_utils.drop_protected_attrs(models.MetadefResourceType, values)"},{"line_number":82,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":83,"context_line":"    with session.begin():"},{"line_number":84,"context_line":"        db_rec \u003d get(context, name, session)"},{"line_number":85,"context_line":"        db_rec.update(values.copy())"},{"line_number":86,"context_line":"        session.add(db_rec)"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_6d8a62c0","line":83,"updated":"2014-08-28 11:33:35.000000000","message":"Same question, do we need transaction here?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    name \u003d values[\u0027name\u0027]"},{"line_number":81,"context_line":"    metadef_utils.drop_protected_attrs(models.MetadefResourceType, values)"},{"line_number":82,"context_line":"    # values[\u0027updated_at\u0027] \u003d timeutils.utcnow() - done by TS mixin"},{"line_number":83,"context_line":"    with session.begin():"},{"line_number":84,"context_line":"        db_rec \u003d get(context, name, session)"},{"line_number":85,"context_line":"        db_rec.update(values.copy())"},{"line_number":86,"context_line":"        session.add(db_rec)"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_8ad856f0","line":83,"in_reply_to":"1abeadc6_6d8a62c0","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    with session.begin():"},{"line_number":84,"context_line":"        db_rec \u003d get(context, name, session)"},{"line_number":85,"context_line":"        db_rec.update(values.copy())"},{"line_number":86,"context_line":"        session.add(db_rec)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    return db_rec.as_dict()"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_edc83224","line":86,"updated":"2014-08-28 11:33:35.000000000","message":"Db_rec.save(session\u003dsession) ?","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    with session.begin():"},{"line_number":84,"context_line":"        db_rec \u003d get(context, name, session)"},{"line_number":85,"context_line":"        db_rec.update(values.copy())"},{"line_number":86,"context_line":"        session.add(db_rec)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    return db_rec.as_dict()"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_aae352a2","line":86,"in_reply_to":"1abeadc6_edc83224","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        raise exc.ProtectedMetadefResourceTypeSystemDelete("},{"line_number":100,"context_line":"            resource_type_name\u003dname)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    with session.begin():"},{"line_number":103,"context_line":"        try:"},{"line_number":104,"context_line":"            session.delete(db_rec)"},{"line_number":105,"context_line":"            session.flush()"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_ad90faed","line":102,"updated":"2014-08-28 11:33:35.000000000","message":"Ditto","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        raise exc.ProtectedMetadefResourceTypeSystemDelete("},{"line_number":100,"context_line":"            resource_type_name\u003dname)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    with session.begin():"},{"line_number":103,"context_line":"        try:"},{"line_number":104,"context_line":"            session.delete(db_rec)"},{"line_number":105,"context_line":"            session.flush()"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_0af44659","line":102,"in_reply_to":"1abeadc6_ad90faed","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"}],"glance/db/sqlalchemy/metadef_api/resource_type_association.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":30,"context_line":"sa_logger \u003d None"},{"line_number":31,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"_ \u003d i18n._"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _to_db_dict(namespace_id, resource_type_id, model_dict):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_12a5b9b4","line":33,"updated":"2014-08-27 10:15:43.000000000","message":"should not be needed","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"sa_logger \u003d None"},{"line_number":31,"context_line":"LOG \u003d os_logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"_ \u003d i18n._"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _to_db_dict(namespace_id, resource_type_id, model_dict):"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_373a4be7","line":33,"in_reply_to":"1abeadc6_12a5b9b4","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                      resource_type_id\u003dresource_type_id)"},{"line_number":75,"context_line":"        db_rec \u003d query.one()"},{"line_number":76,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":77,"context_line":"        msg \u003d \"No Metadef Resource Type Association found\" \\"},{"line_number":78,"context_line":"              \" for namespace %(ns_name)s with resource_type %(rt_name)s\" \\"},{"line_number":79,"context_line":"              % {\u0027ns_name\u0027: namespace_name, \u0027rt_name\u0027: resource_type_name}"},{"line_number":80,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_32839505","line":77,"updated":"2014-08-27 10:15:43.000000000","message":"We prefer wrapping multiple lines with parentheses instead of \\\nhttp://legacy.python.org/dev/peps/pep-0008/#id14","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                      resource_type_id\u003dresource_type_id)"},{"line_number":75,"context_line":"        db_rec \u003d query.one()"},{"line_number":76,"context_line":"    except sa_orm.exc.NoResultFound:"},{"line_number":77,"context_line":"        msg \u003d \"No Metadef Resource Type Association found\" \\"},{"line_number":78,"context_line":"              \" for namespace %(ns_name)s with resource_type %(rt_name)s\" \\"},{"line_number":79,"context_line":"              % {\u0027ns_name\u0027: namespace_name, \u0027rt_name\u0027: resource_type_name}"},{"line_number":80,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_97223fb7","line":77,"in_reply_to":"1abeadc6_32839505","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9867d779fb20575a8ba1eb5c6f4841f8777c044","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    except db_exc.DBDuplicateEntry:"},{"line_number":100,"context_line":"        msg \u003d _(\"Can not create Metadef Resource Type Association. The\""},{"line_number":101,"context_line":"                \"namespace \u003d%(ns_name)s/resource_type\u003d%(rt_name)s \""},{"line_number":102,"context_line":"                \"association already exists.\")\\"},{"line_number":103,"context_line":"            % {\u0027ns_name\u0027: namespace_name, \u0027rt_name\u0027: resource_type_name}"},{"line_number":104,"context_line":"        LOG.debug(msg)"},{"line_number":105,"context_line":"        raise exc.Duplicate(msg)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_32b1d5e1","line":102,"updated":"2014-08-27 10:15:43.000000000","message":"ditto","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    except db_exc.DBDuplicateEntry:"},{"line_number":100,"context_line":"        msg \u003d _(\"Can not create Metadef Resource Type Association. The\""},{"line_number":101,"context_line":"                \"namespace \u003d%(ns_name)s/resource_type\u003d%(rt_name)s \""},{"line_number":102,"context_line":"                \"association already exists.\")\\"},{"line_number":103,"context_line":"            % {\u0027ns_name\u0027: namespace_name, \u0027rt_name\u0027: resource_type_name}"},{"line_number":104,"context_line":"        LOG.debug(msg)"},{"line_number":105,"context_line":"        raise exc.Duplicate(msg)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_f71a937b","line":102,"in_reply_to":"1abeadc6_32b1d5e1","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"65644bb9c357dee63e9fb7c61f3c9e6eb2481d15","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    db_rec \u003d _get(context, namespace_name, resource_type_name,"},{"line_number":117,"context_line":"                  namespace_id, resource_type_id, session)"},{"line_number":118,"context_line":"    if db_rec:"},{"line_number":119,"context_line":"        with session.begin():"},{"line_number":120,"context_line":"            session.delete(db_rec)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    return db_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_68ded06e","line":119,"updated":"2014-08-28 11:33:35.000000000","message":"Ditto","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"5332caa7fe53ef9a1a155ea9d15611e89e6a3174","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    db_rec \u003d _get(context, namespace_name, resource_type_name,"},{"line_number":117,"context_line":"                  namespace_id, resource_type_id, session)"},{"line_number":118,"context_line":"    if db_rec:"},{"line_number":119,"context_line":"        with session.begin():"},{"line_number":120,"context_line":"            session.delete(db_rec)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    return db_rec.as_dict()"}],"source_content_type":"text/x-python","patch_set":57,"id":"1abeadc6_4aeabe74","line":119,"in_reply_to":"1abeadc6_68ded06e","updated":"2014-08-29 06:50:04.000000000","message":"Done","commit_id":"a1bd70a14e971a9546f53ba328ba08cf5563f0d3"}],"glance/db/sqlalchemy/migrate_repo/versions/035_add_metadata_schema.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"b249654aa2c31ef568687417c9785a87c8b6008e","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":""},{"line_number":15,"context_line":"from sqlalchemy.schema import ("},{"line_number":16,"context_line":"    Column, ForeignKey, Index, MetaData, Table, UniqueConstraint)  # noqa"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from glance.db.sqlalchemy.migrate_repo.schema import ("}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_173795ff","line":15,"updated":"2014-08-06 16:52:08.000000000","message":"add_metadef_schema","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","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":""},{"line_number":15,"context_line":"from sqlalchemy.schema import ("},{"line_number":16,"context_line":"    Column, ForeignKey, Index, MetaData, Table, UniqueConstraint)  # noqa"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from glance.db.sqlalchemy.migrate_repo.schema import ("}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_62ecdf2a","line":15,"in_reply_to":"baada198_173795ff","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ba859caa484c4244f8fe41e646074b43fe93236f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                           ForeignKey(\u0027metadef_namespaces.id\u0027),"},{"line_number":65,"context_line":"                           nullable\u003dFalse),"},{"line_number":66,"context_line":"                    Column(\u0027name\u0027, String(80), nullable\u003dFalse),"},{"line_number":67,"context_line":"                    Column(\u0027description\u0027, Text()),"},{"line_number":68,"context_line":"                    Column(\u0027required\u0027, Text()),"},{"line_number":69,"context_line":"                    Column(\u0027schema\u0027, Text()),"},{"line_number":70,"context_line":"                    Column(\u0027created_at\u0027, DateTime(), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_d2744b06","line":67,"updated":"2014-08-06 17:03:39.000000000","message":"Hope we are going to handle limit on the Text size somehow. \n\nAlso, it would be good idea to not return this value in the list call rather just send back in the show one. This would avoid any listing of list of large data.","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"}],"glance/db/sqlalchemy/migrate_repo/versions/035_add_metadef_tables.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from glance.openstack.common import timeutils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_TYPES \u003d [\u0027OS::Glance::Image\u0027, \u0027OS::Cinder::Volume\u0027,"},{"line_number":26,"context_line":"                  \u0027OS::Nova::Flavor\u0027, \u0027OS::Nova::Aggregate\u0027,"},{"line_number":27,"context_line":"                  \u0027OS::Nova::Instance\u0027]"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_8fefbbb0","line":25,"updated":"2014-08-28 08:32:30.000000000","message":"Do you think it will be better if we use Unicode value at here explicitly? I sill remember table charset issue.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from glance.openstack.common import timeutils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_TYPES \u003d [\u0027OS::Glance::Image\u0027, \u0027OS::Cinder::Volume\u0027,"},{"line_number":26,"context_line":"                  \u0027OS::Nova::Flavor\u0027, \u0027OS::Nova::Aggregate\u0027,"},{"line_number":27,"context_line":"                  \u0027OS::Nova::Instance\u0027]"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_d78cb7d9","line":25,"in_reply_to":"1abeadc6_08f55c56","updated":"2014-08-29 06:44:05.000000000","message":"yes","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from glance.openstack.common import timeutils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_TYPES \u003d [\u0027OS::Glance::Image\u0027, \u0027OS::Cinder::Volume\u0027,"},{"line_number":26,"context_line":"                  \u0027OS::Nova::Flavor\u0027, \u0027OS::Nova::Aggregate\u0027,"},{"line_number":27,"context_line":"                  \u0027OS::Nova::Instance\u0027]"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_179b8f18","line":25,"in_reply_to":"1abeadc6_8fefbbb0","updated":"2014-08-29 06:44:05.000000000","message":"Done","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"341d4990acb006c78062f4e0f2eb6aa7543d1747","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from glance.openstack.common import timeutils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_TYPES \u003d [\u0027OS::Glance::Image\u0027, \u0027OS::Cinder::Volume\u0027,"},{"line_number":26,"context_line":"                  \u0027OS::Nova::Flavor\u0027, \u0027OS::Nova::Aggregate\u0027,"},{"line_number":27,"context_line":"                  \u0027OS::Nova::Instance\u0027]"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_08f55c56","line":25,"in_reply_to":"1abeadc6_8fefbbb0","updated":"2014-08-28 11:42:05.000000000","message":"Have you checked my comments in this file?","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        Column(\u0027schema\u0027, Text()),"},{"line_number":122,"context_line":"        Column(\u0027created_at\u0027, DateTime(), nullable\u003dFalse),"},{"line_number":123,"context_line":"        Column(\u0027updated_at\u0027, DateTime()),"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        UniqueConstraint(\u0027namespace_id\u0027, \u0027name\u0027, **_constr_kwargs),"},{"line_number":126,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":127,"context_line":"        extend_existing\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_8f46dbbe","line":124,"updated":"2014-08-28 08:32:30.000000000","message":"(nit) Useless blank","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        Column(\u0027schema\u0027, Text()),"},{"line_number":122,"context_line":"        Column(\u0027created_at\u0027, DateTime(), nullable\u003dFalse),"},{"line_number":123,"context_line":"        Column(\u0027updated_at\u0027, DateTime()),"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        UniqueConstraint(\u0027namespace_id\u0027, \u0027name\u0027, **_constr_kwargs),"},{"line_number":126,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":127,"context_line":"        extend_existing\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_f7be1364","line":124,"in_reply_to":"1abeadc6_8f46dbbe","updated":"2014-08-29 06:44:05.000000000","message":"Done - removed","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":176,"context_line":"               ForeignKey(\u0027metadef_namespaces.id\u0027),"},{"line_number":177,"context_line":"               primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":178,"context_line":"        Column(\u0027metadata_type\u0027, String(80)),"},{"line_number":179,"context_line":"        Column(\u0027prefix\u0027, String(80)),"},{"line_number":180,"context_line":"        Column(\u0027created_at\u0027, DateTime(), nullable\u003dFalse),"},{"line_number":181,"context_line":"        Column(\u0027updated_at\u0027, DateTime()),"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_4fcbe352","line":179,"updated":"2014-08-28 08:32:30.000000000","message":"regarding to original spec , seems we missed properties_target here? Did you decided to do this function in future? If I miss any thing pls let me know.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"               ForeignKey(\u0027metadef_namespaces.id\u0027),"},{"line_number":177,"context_line":"               primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":178,"context_line":"        Column(\u0027metadata_type\u0027, String(80)),"},{"line_number":179,"context_line":"        Column(\u0027prefix\u0027, String(80)),"},{"line_number":180,"context_line":"        Column(\u0027created_at\u0027, DateTime(), nullable\u003dFalse),"},{"line_number":181,"context_line":"        Column(\u0027updated_at\u0027, DateTime()),"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_d7a3d740","line":179,"in_reply_to":"1abeadc6_4fcbe352","updated":"2014-08-29 06:44:05.000000000","message":"Done - metadata_type was the original name, it has been renamed to properties_target and all affected code in DB/API/Seed changed to use new name","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"}],"glance/db/sqlalchemy/migrate_repo/versions/036_populate_metadata_resource_types.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"b249654aa2c31ef568687417c9785a87c8b6008e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Intel Corporation"},{"line_number":2,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"},{"line_number":7,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_170eb53d","line":4,"updated":"2014-08-06 16:52:08.000000000","message":"please rename the file to ..._metadef_resource_types","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Intel Corporation"},{"line_number":2,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"},{"line_number":7,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_a66b1d84","line":4,"in_reply_to":"baada198_170eb53d","updated":"2014-08-26 10:17:30.000000000","message":"This script is no longer used.","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"}],"glance/db/sqlalchemy/models_metadata_schema.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"b249654aa2c31ef568687417c9785a87c8b6008e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":23,"id":"baada198_b7a2693d","line":3,"updated":"2014-08-06 16:52:08.000000000","message":"please rename to models_metadef.py","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"e5c8795e20af7676eb875fea56a6249df12d97b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":23,"id":"1abeadc6_664ae528","line":3,"in_reply_to":"baada198_b7a2693d","updated":"2014-08-26 10:17:30.000000000","message":"Done","commit_id":"5558f49d8b9e4659bfab4917b432b18bee644fe3"}],"glance/db/sqlalchemy/models_metadef.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    metadata \u003d None"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @declarative.declared_attr"},{"line_number":39,"context_line":"    def __tablename__(cls):"},{"line_number":40,"context_line":"        # Using table naming convention of lowercase, pluralized class name"},{"line_number":41,"context_line":"        return cls.__name__.lower() + \u0027s\u0027"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_6adb2d7c","line":39,"updated":"2014-08-28 08:32:30.000000000","message":"Do we need this? we provided table name explicitly for each below model object.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    metadata \u003d None"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @declarative.declared_attr"},{"line_number":39,"context_line":"    def __tablename__(cls):"},{"line_number":40,"context_line":"        # Using table naming convention of lowercase, pluralized class name"},{"line_number":41,"context_line":"        return cls.__name__.lower() + \u0027s\u0027"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_17cd4f31","line":39,"in_reply_to":"1abeadc6_6adb2d7c","updated":"2014-08-29 06:44:05.000000000","message":"Done - removed","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b8f54131cc3c48f7baa58838e900b0ef2ce0552c","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"def unregister_models(engine):"},{"line_number":154,"context_line":"    \"\"\"Drop database tables for all models with the given engine.\"\"\""},{"line_number":155,"context_line":"    models \u003d (MetadefNamespace, MetadefResourceType)"},{"line_number":156,"context_line":"    for model in models:"},{"line_number":157,"context_line":"        model.metadata.drop_all(engine)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_ea649dba","line":155,"updated":"2014-08-28 08:32:30.000000000","message":"May I know why you skipped other 3 tables here against to register_models()? Thanks.","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"27b22ac20e8c996b7413fbdbc68a4e79674e647e","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"def unregister_models(engine):"},{"line_number":154,"context_line":"    \"\"\"Drop database tables for all models with the given engine.\"\"\""},{"line_number":155,"context_line":"    models \u003d (MetadefNamespace, MetadefResourceType)"},{"line_number":156,"context_line":"    for model in models:"},{"line_number":157,"context_line":"        model.metadata.drop_all(engine)"}],"source_content_type":"text/x-python","patch_set":55,"id":"1abeadc6_b7e3bba2","line":155,"in_reply_to":"1abeadc6_ea649dba","updated":"2014-08-29 06:44:05.000000000","message":"Done - added in object, property and namespace-resource-type tables","commit_id":"93235c3551c31a2be04b78168dc7ac6582c5e870"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        # Using table naming convention of lowercase, pluralized class name"},{"line_number":41,"context_line":"        return cls.__name__.lower() + \u0027s\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def as_dict(self):"},{"line_number":44,"context_line":"        d \u003d {}"},{"line_number":45,"context_line":"        for c in self.__table__.columns:"},{"line_number":46,"context_line":"            d[c.name] \u003d self[c.name]"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_a13d6b2d","line":43,"updated":"2014-08-28 11:33:21.000000000","message":"To be consistent with current glance code, what about to rename it as to_dict? Nit, not a big deal, just a quick thought.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        # Using table naming convention of lowercase, pluralized class name"},{"line_number":41,"context_line":"        return cls.__name__.lower() + \u0027s\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def as_dict(self):"},{"line_number":44,"context_line":"        d \u003d {}"},{"line_number":45,"context_line":"        for c in self.__table__.columns:"},{"line_number":46,"context_line":"            d[c.name] \u003d self[c.name]"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_74220153","line":43,"in_reply_to":"1abeadc6_a13d6b2d","updated":"2014-08-29 06:49:13.000000000","message":"will do","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                      Index(\u0027ix_metadef_namespaces_owner\u0027, \u0027owner\u0027))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":77,"context_line":"    namespace \u003d Column(String(80))"},{"line_number":78,"context_line":"    display_name \u003d Column(String(80))"},{"line_number":79,"context_line":"    description \u003d Column(Text())"},{"line_number":80,"context_line":"    visibility \u003d Column(String(32))"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_61eb5378","line":77,"updated":"2014-08-28 11:33:21.000000000","message":"Recording to table def, pls add nullable\u003dFalse.\n\nIFY, in near future we will use this way to verify this case as a common approach: https://review.openstack.org/#/c/110683/","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                      Index(\u0027ix_metadef_namespaces_owner\u0027, \u0027owner\u0027))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":77,"context_line":"    namespace \u003d Column(String(80))"},{"line_number":78,"context_line":"    display_name \u003d Column(String(80))"},{"line_number":79,"context_line":"    description \u003d Column(Text())"},{"line_number":80,"context_line":"    visibility \u003d Column(String(32))"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_f7eb7310","line":77,"in_reply_to":"1abeadc6_61eb5378","updated":"2014-08-29 06:49:13.000000000","message":"will do","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    name \u003d Column(String(80), nullable\u003dFalse)"},{"line_number":95,"context_line":"    description \u003d Column(Text())"},{"line_number":96,"context_line":"    required \u003d Column(Text())"},{"line_number":97,"context_line":"    schema \u003d Column(Text(), default\u003d{})"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class MetadefProperty(BASE_DICT, GlanceMetadefBase):"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_57cd35b6","line":97,"updated":"2014-08-28 11:33:21.000000000","message":"I have not checked API patch now, but if you plan to use this to store Json I prefer to use JSONEncodedDict type (model.py).\n\nNullable\u003dFalse?","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    name \u003d Column(String(80), nullable\u003dFalse)"},{"line_number":95,"context_line":"    description \u003d Column(Text())"},{"line_number":96,"context_line":"    required \u003d Column(Text())"},{"line_number":97,"context_line":"    schema \u003d Column(Text(), default\u003d{})"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class MetadefProperty(BASE_DICT, GlanceMetadefBase):"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_97c15f82","line":97,"in_reply_to":"1abeadc6_57cd35b6","updated":"2014-08-29 06:49:13.000000000","message":"will work on using JSONEncodedDict...will make nullable\u003dFalse","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"20bca572a8a8564e10ed56896612da33ddaebefa","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    namespace_id \u003d Column(Integer(), ForeignKey(\u0027metadef_namespaces.id\u0027),"},{"line_number":109,"context_line":"                          nullable\u003dFalse)"},{"line_number":110,"context_line":"    name \u003d Column(String(80), nullable\u003dFalse)"},{"line_number":111,"context_line":"    schema \u003d Column(Text(), default\u003d{})"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class MetadefNamespaceResourceType(BASE_DICT, GlanceMetadefBase):"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_ed83d253","line":111,"updated":"2014-08-28 11:33:21.000000000","message":"From spec, seems this entity should has a description column as well","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"f4355a8d4cfacb9c1a974e7bae2b9cdb29853fb8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    namespace_id \u003d Column(Integer(), ForeignKey(\u0027metadef_namespaces.id\u0027),"},{"line_number":109,"context_line":"                          nullable\u003dFalse)"},{"line_number":110,"context_line":"    name \u003d Column(String(80), nullable\u003dFalse)"},{"line_number":111,"context_line":"    schema \u003d Column(Text(), default\u003d{})"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class MetadefNamespaceResourceType(BASE_DICT, GlanceMetadefBase):"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_f71453a1","line":111,"in_reply_to":"1abeadc6_ed83d253","updated":"2014-08-29 06:49:13.000000000","message":"The description is actually in the property schema. Not sure if there is a strong enough use case to pull it out of the schema into a separate column. We do pull out the property name from the schema to allow property searching on name.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"b78131efeab7cff8b7e5a0902effbc4a9b0497be","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    namespace_id \u003d Column(Integer(), ForeignKey(\u0027metadef_namespaces.id\u0027),"},{"line_number":109,"context_line":"                          nullable\u003dFalse)"},{"line_number":110,"context_line":"    name \u003d Column(String(80), nullable\u003dFalse)"},{"line_number":111,"context_line":"    schema \u003d Column(Text(), default\u003d{})"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class MetadefNamespaceResourceType(BASE_DICT, GlanceMetadefBase):"}],"source_content_type":"text/x-python","patch_set":56,"id":"1abeadc6_43a46907","line":111,"in_reply_to":"1abeadc6_f71453a1","updated":"2014-08-29 07:34:27.000000000","message":"Yep, we has some quick discussion on this in irc. I\u0027m now ok to keep this in schema due to it\u0027s easier to allow client side use it directly.","commit_id":"31f0532bec82ae5608ed9a1261752e9987c420c4"}],"glance/tests/functional/db/base_metadef.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"a9264bf0a40d20ddb3a684321d6ab7dcf4b3eed3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010-2011 OpenStack Foundation"},{"line_number":2,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"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":54,"id":"1abeadc6_a044c11b","line":1,"updated":"2014-08-27 01:33:24.000000000","message":"left over? this is a new file","commit_id":"21857978dda617410c5cf4983231dfc235d75d55"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"8033aaeaece467a8a77f5c8a353d7d210ca5fbeb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010-2011 OpenStack Foundation"},{"line_number":2,"context_line":"# Copyright (c) 2014 Hewlett-Packard Development Company, L.P."},{"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":54,"id":"1abeadc6_c262a0d7","line":1,"in_reply_to":"1abeadc6_a044c11b","updated":"2014-08-27 03:10:14.000000000","message":"Done. Removed invalid Copyright. thx.","commit_id":"21857978dda617410c5cf4983231dfc235d75d55"}]}
