)]}'
{"glance/artifacts/updater.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a1248cf8ce70b54a86ad0bc97b180c02869e4e94","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        values, have to check precise type definition by consulting metadata."},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":"        try:"},{"line_number":63,"context_line":"            prop \u003d super(ArtifactProxy, self).get_type_specific_property("},{"line_number":64,"context_line":"                prop_name)"},{"line_number":65,"context_line":"        except AttributeError:"},{"line_number":66,"context_line":"            raise exc.ArtifactInvalidProperty(prop\u003dprop_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_251f2309","line":63,"updated":"2015-07-15 21:33:41.000000000","message":"I\u0027m sure this fixes the problem, but this AttributeError seems like something the ArtifactProxy should not be raising. I\u0027d much rather see that code raise the appropriate exception than catch this here.\n\nIt also looks like an AttributeError could be raised in glance/artifacts/location.py because of the simplicitly of get_type_specific_property. Instead of propagating this exception handling into two places, get_type_specific_property should handle this inside its method, e.g.,\n\n    try:\n        return getattr(self.base, prop_name)\n    except AttributeError:\n        raise exc.ArtifactInvalidProperty(prop\u003dprop_name)\n\nThat means both cases are handled appropriately and raising the appropriate exception.","commit_id":"2ef29e47ff0efb6c8314cf9a860967bd270c7ae6"}]}
