)]}'
{"doc/source/conf.py":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"b866f8c1b3c0c575fabb50d5b3f874716c24ff0f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"# List of directories, relative to source directory, that shouldn\u0027t be searched"},{"line_number":97,"context_line":"# for source files."},{"line_number":98,"context_line":"#exclude_trees \u003d [\u0027api\u0027]"},{"line_number":99,"context_line":"exclude_patterns \u003d ["},{"line_number":100,"context_line":"    # The man directory includes some snippet files that are included"},{"line_number":101,"context_line":"    # in other documents during the build but that should not be"},{"line_number":102,"context_line":"    # included in the toctree themselves, so tell Sphinx to ignore"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_7e63fbb1","line":99,"updated":"2016-03-08 00:35:54.000000000","message":"IMO, the contib folder can be ignored here.","commit_id":"b2b0599d515f910c5d1276ab40caaebf96056251"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"37e0feecdef9dbed84eb5a9d9f0ec8a6d9eae7a2","unresolved":false,"context_lines":[{"line_number":96,"context_line":"# List of directories, relative to source directory, that shouldn\u0027t be searched"},{"line_number":97,"context_line":"# for source files."},{"line_number":98,"context_line":"#exclude_trees \u003d [\u0027api\u0027]"},{"line_number":99,"context_line":"exclude_patterns \u003d ["},{"line_number":100,"context_line":"    # The man directory includes some snippet files that are included"},{"line_number":101,"context_line":"    # in other documents during the build but that should not be"},{"line_number":102,"context_line":"    # included in the toctree themselves, so tell Sphinx to ignore"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_cc888925","line":99,"in_reply_to":"5aef4532_7e63fbb1","updated":"2016-03-08 14:48:10.000000000","message":"I agree! But since it will be removed we probably shouldn\u0027t put specific code to ignore it.","commit_id":"b2b0599d515f910c5d1276ab40caaebf96056251"}],"glance/contrib/plugins/image_artifact/v2/image.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4c64ffa90ba00f94a5364262c73b192d3aa9bd6f","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Since this is not in the test-requirements.txt and is pending removal"},{"line_number":20,"context_line":"# a try except is added to prevent an ImportError when module docs"},{"line_number":21,"context_line":"# are generated"},{"line_number":22,"context_line":"try:"},{"line_number":23,"context_line":"    import glanceclient"},{"line_number":24,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_a18b0d1e","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":15},"updated":"2016-03-03 21:00:25.000000000","message":"Looks good. Thanks Tom.","commit_id":"1ec95f2191ed9fb4256bb3497c1d6ade11f70c02"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"c07d5b5164b4449325815e75408b2d7db7352bc3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from glance.common.glare import definitions"},{"line_number":17,"context_line":"import glance.contrib.plugins.image_artifact.v1_1.image as v1_1"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Since this is not in the test-requirements.txt and is pending removal"},{"line_number":20,"context_line":"# a try except is added to prevent an ImportError when module docs"},{"line_number":21,"context_line":"# are generated"},{"line_number":22,"context_line":"try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_fbac81a0","line":19,"updated":"2016-03-04 13:41:48.000000000","message":"What do you mean with \"is pending removal\" here?\n\nDo you mean we\u0027ll remove the import?","commit_id":"3e5046af66339e010a145bf99972ba66ef7f7b77"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"c07d5b5164b4449325815e75408b2d7db7352bc3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"try:"},{"line_number":23,"context_line":"    import glanceclient"},{"line_number":24,"context_line":"except ImportError:"},{"line_number":25,"context_line":"    pass"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from glance.i18n import _"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_bb095997","line":25,"updated":"2016-03-04 13:41:48.000000000","message":"What do you think about we set glanceclient\u003dNone here and then we log a proper message in the method that uses it?","commit_id":"3e5046af66339e010a145bf99972ba66ef7f7b77"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"b6543afaf1ad486a257ccbf5ace8b0495f637979","unresolved":false,"context_lines":[{"line_number":22,"context_line":"try:"},{"line_number":23,"context_line":"    import glanceclient"},{"line_number":24,"context_line":"except ImportError:"},{"line_number":25,"context_line":"    pass"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from glance.i18n import _"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_41e5c206","line":25,"in_reply_to":"7af24918_bb095997","updated":"2016-03-04 14:06:54.000000000","message":"Yes! That makes a lot of sense. I will push up another patch set","commit_id":"3e5046af66339e010a145bf99972ba66ef7f7b77"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"c0e6d8ebec7776d53aa771db140e435a45ffaefc","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                                   for service in context.service_catalog"},{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":58,"context_line":"                                             endpoint\u003dglance_endpoint,"},{"line_number":59,"context_line":"                                             token\u003dcontext.auth_token)"},{"line_number":60,"context_line":"                legacy_image \u003d client.images.get(self.legacy_image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_2dad07e9","line":57,"range":{"start_line":57,"start_character":25,"end_line":57,"end_character":37},"updated":"2016-03-04 14:59:34.000000000","message":"I think Flavio also meant you should check that this is not None before this stage. Therefore, you could return an error message such as: \"Glance client not found\".\n\nRather than \"Unable to get legacy image\".","commit_id":"c47db1faccd48fbc18f4e3832c37f5c41c38ab5d"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"14030170465e62aa9d4383139fd926a65273223f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                                   for service in context.service_catalog"},{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":58,"context_line":"                                             endpoint\u003dglance_endpoint,"},{"line_number":59,"context_line":"                                             token\u003dcontext.auth_token)"},{"line_number":60,"context_line":"                legacy_image \u003d client.images.get(self.legacy_image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_5ea63554","line":57,"range":{"start_line":57,"start_character":25,"end_line":57,"end_character":37},"in_reply_to":"7af24918_2dad07e9","updated":"2016-03-04 17:19:07.000000000","message":"This will not have an import error when the code is running it causes an import error when the docs are generated. Flavio what do you think?","commit_id":"c47db1faccd48fbc18f4e3832c37f5c41c38ab5d"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"63bfd096291df2b94f33b15f9b9d40581f4c95cf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                                   for service in context.service_catalog"},{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":58,"context_line":"                                             endpoint\u003dglance_endpoint,"},{"line_number":59,"context_line":"                                             token\u003dcontext.auth_token)"},{"line_number":60,"context_line":"                legacy_image \u003d client.images.get(self.legacy_image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_98a9ed27","line":57,"range":{"start_line":57,"start_character":25,"end_line":57,"end_character":37},"in_reply_to":"7af24918_5ea63554","updated":"2016-03-04 19:19:44.000000000","message":"glanceclient is neither a requirement nor a test-requirement for Glance. If I can be really honest, I don\u0027t even think it should be a requirement and I\u0027d like this code to be re-evaluated. :D\n\nThe above is to say that, since it\u0027s not a requirement, we can expect this to fail at runtime if glanceclient is not installed. Therefore, we should check and/or make it a hard dependency but again, I don\u0027t think we should and we should definitely defer that for Newton :)\n\nThoughts? An easy fix is to keep it optional and fallback to print an error message (which is what this code does already as it catches `Exception`.","commit_id":"c47db1faccd48fbc18f4e3832c37f5c41c38ab5d"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"798eb50a22aca14435416845f775e7f9283a4303","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                                   for service in context.service_catalog"},{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":58,"context_line":"                                             endpoint\u003dglance_endpoint,"},{"line_number":59,"context_line":"                                             token\u003dcontext.auth_token)"},{"line_number":60,"context_line":"                legacy_image \u003d client.images.get(self.legacy_image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_db108cae","line":57,"range":{"start_line":57,"start_character":25,"end_line":57,"end_character":37},"in_reply_to":"7af24918_98a9ed27","updated":"2016-03-04 20:34:23.000000000","message":"Done","commit_id":"c47db1faccd48fbc18f4e3832c37f5c41c38ab5d"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"cd723cc698d9996d5cc337c08bf17683f5a49c30","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                if glanceclient \u003d\u003d None:"},{"line_number":58,"context_line":"                    raise ImportError"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":61,"context_line":"                                             endpoint\u003dglance_endpoint,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_0b9bbbca","line":58,"updated":"2016-03-07 12:37:23.000000000","message":"This exception is going to be caught by the `except` below.\n\nWhat about doing something like:\n\n    if glanceclient is None:\n        raise SomeErrorThatIsNotImporterror\n\n    try:\n        ...\n    except ...:\n        ...","commit_id":"d9ed650d66e0bda95fb9af28b550e02b76ac2dc0"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"76cd82eeaa5dde86d0abc4d94f5287e43df794ed","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                if glanceclient \u003d\u003d None:"},{"line_number":58,"context_line":"                    raise ImportError"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":61,"context_line":"                                             endpoint\u003dglance_endpoint,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_9a03930f","line":58,"in_reply_to":"5aef4532_0b9bbbca","updated":"2016-03-07 14:15:24.000000000","message":"what error are you thinking? I don\u0027t know glance customs when it comes to this.","commit_id":"d9ed650d66e0bda95fb9af28b550e02b76ac2dc0"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"08163bf9f79e2529769bca0596f920acb32917e2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                                   if service[\u0027name\u0027] \u003d\u003d \u0027glance\u0027)"},{"line_number":56,"context_line":"            try:"},{"line_number":57,"context_line":"                if glanceclient \u003d\u003d None:"},{"line_number":58,"context_line":"                    raise ImportError"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"                client \u003d glanceclient.Client(version\u003d2,"},{"line_number":61,"context_line":"                                             endpoint\u003dglance_endpoint,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_ea02b73d","line":58,"in_reply_to":"5aef4532_9a03930f","updated":"2016-03-07 17:57:14.000000000","message":"Flavio i am leaving the ImportError for now because i don\u0027t know any error more accurate in representing what is going on.  I will change it if you have a recommendation.  Thank you!","commit_id":"d9ed650d66e0bda95fb9af28b550e02b76ac2dc0"}],"test-requirements.txt":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"0bdf249f5e3d7251528698656c9661ee427570a1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"qpid-python;python_version\u003d\u003d\u00272.7\u0027 # Apache-2.0"},{"line_number":30,"context_line":"xattr\u003e\u003d0.4 # MIT"},{"line_number":31,"context_line":"python-swiftclient\u003e\u003d2.2.0 # Apache-2.0"},{"line_number":32,"context_line":"python-glanceclient\u003e\u003d1.2.0  # Apache-2.0"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# Documentation"},{"line_number":35,"context_line":"oslosphinx!\u003d3.4.0,\u003e\u003d2.5.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"7af24918_0d6cbacc","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":6},"updated":"2016-03-03 19:47:15.000000000","message":"can you please explain briefly why we need to add this?","commit_id":"b624928d53acaf6a5a6f23e85155c69bb65e67ff"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9c3e7bbfc3574bb0ad222653840f45990953e477","unresolved":false,"context_lines":[{"line_number":29,"context_line":"qpid-python;python_version\u003d\u003d\u00272.7\u0027 # Apache-2.0"},{"line_number":30,"context_line":"xattr\u003e\u003d0.4 # MIT"},{"line_number":31,"context_line":"python-swiftclient\u003e\u003d2.2.0 # Apache-2.0"},{"line_number":32,"context_line":"python-glanceclient\u003e\u003d1.2.0  # Apache-2.0"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# Documentation"},{"line_number":35,"context_line":"oslosphinx!\u003d3.4.0,\u003e\u003d2.5.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"7af24918_ad0e6689","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":6},"in_reply_to":"7af24918_0d6cbacc","updated":"2016-03-03 19:56:12.000000000","message":"It looks like the code is not being run by the unit tests. aka. we need to add some more unit tests. :p I will find the exact spot that it fails.","commit_id":"b624928d53acaf6a5a6f23e85155c69bb65e67ff"}]}
