)]}'
{"shade/meta.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        try:"},{"line_number":358,"context_line":"            value \u003d getattr(obj, key)"},{"line_number":359,"context_line":"        except AttributeError:"},{"line_number":360,"context_line":"            continue"},{"line_number":361,"context_line":"        if isinstance(value, NON_CALLABLES) and not key.startswith(\u0027_\u0027):"},{"line_number":362,"context_line":"            instance[key] \u003d value"},{"line_number":363,"context_line":"    return instance"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_1897fd3a","line":360,"updated":"2016-03-17 21:11:53.000000000","message":"What was the reason behind this change? We\u0027ve never needed this before with any of the many other API calls, so this is curious.","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        try:"},{"line_number":358,"context_line":"            value \u003d getattr(obj, key)"},{"line_number":359,"context_line":"        except AttributeError:"},{"line_number":360,"context_line":"            continue"},{"line_number":361,"context_line":"        if isinstance(value, NON_CALLABLES) and not key.startswith(\u0027_\u0027):"},{"line_number":362,"context_line":"            instance[key] \u003d value"},{"line_number":363,"context_line":"    return instance"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_3bb5ff7d","line":360,"in_reply_to":"1af94dfe_1897fd3a","updated":"2016-05-03 15:52:42.000000000","message":"http://git.openstack.org/cgit/openstack/python-novaclient/tree/novaclient/v2/quotas.py#n22\n\nThe \u0027id\u0027 is a @property which value is not defined sometimes raising a AttributeError.","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2472a2c2ecd5bda8bfaa9cc7b61eab08dba586f7","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        try:"},{"line_number":403,"context_line":"            value \u003d getattr(obj, key)"},{"line_number":404,"context_line":"        except AttributeError:"},{"line_number":405,"context_line":"            continue"},{"line_number":406,"context_line":"        if isinstance(value, NON_CALLABLES) and not key.startswith(\u0027_\u0027):"},{"line_number":407,"context_line":"            instance[key] \u003d value"},{"line_number":408,"context_line":"    return _add_request_id(instance, request_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_34345148","line":405,"updated":"2016-05-23 13:30:14.000000000","message":"Could you explain why this is necessary? The dir() call returns the attributes of obj, so I\u0027m unclear how an AttributeError exception could be thrown.","commit_id":"445b8f82563884c052fa9923b85b4eaec6e469b1"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"c6dc953e25abde3d831c79e0f8592c52045d9351","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        try:"},{"line_number":403,"context_line":"            value \u003d getattr(obj, key)"},{"line_number":404,"context_line":"        except AttributeError:"},{"line_number":405,"context_line":"            continue"},{"line_number":406,"context_line":"        if isinstance(value, NON_CALLABLES) and not key.startswith(\u0027_\u0027):"},{"line_number":407,"context_line":"            instance[key] \u003d value"},{"line_number":408,"context_line":"    return _add_request_id(instance, request_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_6fc8c655","line":405,"in_reply_to":"bab6814e_34345148","updated":"2016-05-23 13:46:06.000000000","message":"http://git.openstack.org/cgit/openstack/python-novaclient/tree/novaclient/v2/quotas.py#n22\n\nThe novacliet objecct has an \u0027id\u0027 attribute, which is defined as a @property, so we can\u0027t assure to have always a valid value (I hit it several times)","commit_id":"445b8f82563884c052fa9923b85b4eaec6e469b1"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"8280d83bfd97d11cfe4a6195d19b918bdeba124b","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        try:"},{"line_number":403,"context_line":"            value \u003d getattr(obj, key)"},{"line_number":404,"context_line":"        except AttributeError:"},{"line_number":405,"context_line":"            continue"},{"line_number":406,"context_line":"        if isinstance(value, NON_CALLABLES) and not key.startswith(\u0027_\u0027):"},{"line_number":407,"context_line":"            instance[key] \u003d value"},{"line_number":408,"context_line":"    return _add_request_id(instance, request_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_46fb1d79","line":405,"in_reply_to":"bab6814e_6fc8c655","updated":"2016-05-23 17:41:31.000000000","message":"Ah, interesting. I think that\u0027s worthy of a comment here.","commit_id":"445b8f82563884c052fa9923b85b4eaec6e469b1"}],"shade/operatorcloud.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1722,"context_line":""},{"line_number":1723,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1724,"context_line":"        if not proj:"},{"line_number":1725,"context_line":"            raise OpenStackCloudException(\"project does not exists\")"},{"line_number":1726,"context_line":""},{"line_number":1727,"context_line":"        compute_quotas \u003d {key: val for key, val in kwargs.items()"},{"line_number":1728,"context_line":"                          if key in quota.COMPUTE_QUOTAS}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_d80635cd","line":1725,"updated":"2016-03-17 21:11:53.000000000","message":"\"exists\" should be singular (exist)","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1722,"context_line":""},{"line_number":1723,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1724,"context_line":"        if not proj:"},{"line_number":1725,"context_line":"            raise OpenStackCloudException(\"project does not exists\")"},{"line_number":1726,"context_line":""},{"line_number":1727,"context_line":"        compute_quotas \u003d {key: val for key, val in kwargs.items()"},{"line_number":1728,"context_line":"                          if key in quota.COMPUTE_QUOTAS}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_3b3a1fe8","line":1725,"in_reply_to":"1af94dfe_d80635cd","updated":"2016-05-03 15:52:42.000000000","message":"Done","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1749,"context_line":"        :param name_or_id: project name or id"},{"line_number":1750,"context_line":"        :raises: OpenStackCloudException if it\u0027s not a valid project"},{"line_number":1751,"context_line":""},{"line_number":1752,"context_line":"        :returns: dict with the quotas"},{"line_number":1753,"context_line":"        \"\"\""},{"line_number":1754,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1755,"context_line":"        if not proj:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_989dcd68","line":1752,"updated":"2016-03-17 21:11:53.000000000","message":"Do we need to normalize the returned data at all? Just asking because I don\u0027t know what it actually looks like.","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1749,"context_line":"        :param name_or_id: project name or id"},{"line_number":1750,"context_line":"        :raises: OpenStackCloudException if it\u0027s not a valid project"},{"line_number":1751,"context_line":""},{"line_number":1752,"context_line":"        :returns: dict with the quotas"},{"line_number":1753,"context_line":"        \"\"\""},{"line_number":1754,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1755,"context_line":"        if not proj:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_5e58a957","line":1752,"in_reply_to":"1af94dfe_989dcd68","updated":"2016-05-03 15:52:42.000000000","message":"It\u0027s a Munch object. Nonneed to normalize.\n\nChanged the docstring","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1753,"context_line":"        \"\"\""},{"line_number":1754,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1755,"context_line":"        if not proj:"},{"line_number":1756,"context_line":"            raise OpenStackCloudException(\"project does not exists\")"},{"line_number":1757,"context_line":"        try:"},{"line_number":1758,"context_line":"            return self.manager.submitTask("},{"line_number":1759,"context_line":"                _tasks.NovaQuotasGet(tenant_id\u003dproj.id))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_f8117105","line":1756,"updated":"2016-03-17 21:11:53.000000000","message":"\"exists\" should be singular","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1753,"context_line":"        \"\"\""},{"line_number":1754,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1755,"context_line":"        if not proj:"},{"line_number":1756,"context_line":"            raise OpenStackCloudException(\"project does not exists\")"},{"line_number":1757,"context_line":"        try:"},{"line_number":1758,"context_line":"            return self.manager.submitTask("},{"line_number":1759,"context_line":"                _tasks.NovaQuotasGet(tenant_id\u003dproj.id))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_fb16e756","line":1756,"in_reply_to":"1af94dfe_f8117105","updated":"2016-05-03 15:52:42.000000000","message":"Done","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1761,"context_line":"            raise OpenStackCloudException(\"test\")"},{"line_number":1762,"context_line":""},{"line_number":1763,"context_line":"    def delete_compute_quotas(self, name_or_id):"},{"line_number":1764,"context_line":"        \"\"\" Get quota for a project"},{"line_number":1765,"context_line":""},{"line_number":1766,"context_line":"        :param name_or_id: project name or id"},{"line_number":1767,"context_line":"        :raises: OpenStackCloudException if it\u0027s not a valid project"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_d8d47521","line":1764,"updated":"2016-03-17 21:11:53.000000000","message":"s/Get/Delete/","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1761,"context_line":"            raise OpenStackCloudException(\"test\")"},{"line_number":1762,"context_line":""},{"line_number":1763,"context_line":"    def delete_compute_quotas(self, name_or_id):"},{"line_number":1764,"context_line":"        \"\"\" Get quota for a project"},{"line_number":1765,"context_line":""},{"line_number":1766,"context_line":"        :param name_or_id: project name or id"},{"line_number":1767,"context_line":"        :raises: OpenStackCloudException if it\u0027s not a valid project"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_012b7634","line":1764,"in_reply_to":"1af94dfe_d8d47521","updated":"2016-05-03 15:52:42.000000000","message":"Done","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1764,"context_line":"        \"\"\" Get quota for a project"},{"line_number":1765,"context_line":""},{"line_number":1766,"context_line":"        :param name_or_id: project name or id"},{"line_number":1767,"context_line":"        :raises: OpenStackCloudException if it\u0027s not a valid project"},{"line_number":1768,"context_line":""},{"line_number":1769,"context_line":"        :returns: dict with the quotas"},{"line_number":1770,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_58d0651f","line":1767,"updated":"2016-03-17 21:11:53.000000000","message":"That isn\u0027t the only reason. Not a valid project, or if the nova client call fails for whatever reason.","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1764,"context_line":"        \"\"\" Get quota for a project"},{"line_number":1765,"context_line":""},{"line_number":1766,"context_line":"        :param name_or_id: project name or id"},{"line_number":1767,"context_line":"        :raises: OpenStackCloudException if it\u0027s not a valid project"},{"line_number":1768,"context_line":""},{"line_number":1769,"context_line":"        :returns: dict with the quotas"},{"line_number":1770,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_e12d9a46","line":1767,"in_reply_to":"1af94dfe_58d0651f","updated":"2016-05-03 15:52:42.000000000","message":"Done","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1770,"context_line":"        \"\"\""},{"line_number":1771,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1772,"context_line":"        if not proj:"},{"line_number":1773,"context_line":"            raise OpenStackCloudException(\"project does not exists\")"},{"line_number":1774,"context_line":"        try:"},{"line_number":1775,"context_line":"            return self.manager.submitTask("},{"line_number":1776,"context_line":"                _tasks.NovaQuotasDelete(tenant_id\u003dproj.id))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_b83249a5","line":1773,"updated":"2016-03-17 21:11:53.000000000","message":"\"exists\" should be singular","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1770,"context_line":"        \"\"\""},{"line_number":1771,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1772,"context_line":"        if not proj:"},{"line_number":1773,"context_line":"            raise OpenStackCloudException(\"project does not exists\")"},{"line_number":1774,"context_line":"        try:"},{"line_number":1775,"context_line":"            return self.manager.submitTask("},{"line_number":1776,"context_line":"                _tasks.NovaQuotasDelete(tenant_id\u003dproj.id))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_2184b209","line":1773,"in_reply_to":"1af94dfe_b83249a5","updated":"2016-05-03 15:52:42.000000000","message":"Done","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e9f1b3315809e2a9355076545ed0c537476e14a1","unresolved":false,"context_lines":[{"line_number":1775,"context_line":"            return self.manager.submitTask("},{"line_number":1776,"context_line":"                _tasks.NovaQuotasDelete(tenant_id\u003dproj.id))"},{"line_number":1777,"context_line":"        except novaclient.exceptions.BadRequest:"},{"line_number":1778,"context_line":"            raise OpenStackCloudException(\"test\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_1856ddcd","line":1778,"updated":"2016-03-17 21:11:53.000000000","message":"Doubtful we want to raise a \"test\" exception.  :)","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ec4b928cc84e99c34700e3cee79474744d99d6f2","unresolved":false,"context_lines":[{"line_number":1775,"context_line":"            return self.manager.submitTask("},{"line_number":1776,"context_line":"                _tasks.NovaQuotasDelete(tenant_id\u003dproj.id))"},{"line_number":1777,"context_line":"        except novaclient.exceptions.BadRequest:"},{"line_number":1778,"context_line":"            raise OpenStackCloudException(\"test\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_e1a2baac","line":1778,"in_reply_to":"1af94dfe_1856ddcd","updated":"2016-05-03 15:52:42.000000000","message":"Done","commit_id":"7a5ffcfad38415f026bcd9559de798ce7555a78c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"5bb4ad20858da0f24316c2d0b7847b16e41e5855","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from ironicclient import client as ironic_client"},{"line_number":16,"context_line":"from ironicclient import exceptions as ironic_exceptions"},{"line_number":17,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":18,"context_line":"from openstackclient.common import quota"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from shade.exc import *  # noqa"},{"line_number":21,"context_line":"from shade import openstackcloud"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_8bdc9c19","line":18,"updated":"2016-05-04 12:55:22.000000000","message":"I\u0027m not crazy about this long term - but I think we can solve it later. See  https://review.openstack.org/312486\n\nWe\u0027re close to being able to get rid of python-*client, so adding a transitive depend on them is something I\u0027d like to avoid.","commit_id":"e1851224051fe1407fed1e1693437cd34dea2ef5"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"e3021c5da0a23093af23529400dedae293cba899","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from ironicclient import client as ironic_client"},{"line_number":16,"context_line":"from ironicclient import exceptions as ironic_exceptions"},{"line_number":17,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":18,"context_line":"from openstackclient.common import quota"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from shade.exc import *  # noqa"},{"line_number":21,"context_line":"from shade import openstackcloud"}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_aeead371","line":18,"in_reply_to":"1a122d0e_8bdc9c19","updated":"2016-05-11 08:31:58.000000000","message":"I\u0027ve removed this for one, until we find a place to land the list of quotas","commit_id":"e1851224051fe1407fed1e1693437cd34dea2ef5"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"5bb4ad20858da0f24316c2d0b7847b16e41e5855","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        \"\"\" Set a quota in a project"},{"line_number":1772,"context_line":""},{"line_number":1773,"context_line":"        :param name_or_id: project name or id"},{"line_number":1774,"context_line":"        :param kwargs: resources to set the quota"},{"line_number":1775,"context_line":""},{"line_number":1776,"context_line":"        :raises: OpenStackCloudException if the resource to set the"},{"line_number":1777,"context_line":"            quota does not exist."}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_4b20c4f7","line":1774,"updated":"2016-05-04 12:55:22.000000000","message":"Maybe expand this a little to tell the user it should be a key/value pairs of quota name and quota value?","commit_id":"e1851224051fe1407fed1e1693437cd34dea2ef5"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"e3021c5da0a23093af23529400dedae293cba899","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        \"\"\" Set a quota in a project"},{"line_number":1772,"context_line":""},{"line_number":1773,"context_line":"        :param name_or_id: project name or id"},{"line_number":1774,"context_line":"        :param kwargs: resources to set the quota"},{"line_number":1775,"context_line":""},{"line_number":1776,"context_line":"        :raises: OpenStackCloudException if the resource to set the"},{"line_number":1777,"context_line":"            quota does not exist."}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_0e067f51","line":1774,"in_reply_to":"1a122d0e_4b20c4f7","updated":"2016-05-11 08:31:58.000000000","message":"Done","commit_id":"e1851224051fe1407fed1e1693437cd34dea2ef5"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"5bb4ad20858da0f24316c2d0b7847b16e41e5855","unresolved":false,"context_lines":[{"line_number":1777,"context_line":"            quota does not exist."},{"line_number":1778,"context_line":"        \"\"\""},{"line_number":1779,"context_line":""},{"line_number":1780,"context_line":"        proj \u003d self.get_project(name_or_id)"},{"line_number":1781,"context_line":"        if not proj:"},{"line_number":1782,"context_line":"            raise OpenStackCloudException(\"project does not exist\")"},{"line_number":1783,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_cbfdf46f","line":1780,"updated":"2016-05-04 12:55:22.000000000","message":"Wow. If only novaclient did this itself. :)","commit_id":"e1851224051fe1407fed1e1693437cd34dea2ef5"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2472a2c2ecd5bda8bfaa9cc7b61eab08dba586f7","unresolved":false,"context_lines":[{"line_number":1977,"context_line":"            return self.manager.submitTask("},{"line_number":1978,"context_line":"                _tasks.NovaQuotasGet(tenant_id\u003dproj.id))"},{"line_number":1979,"context_line":"        except nova_exceptions.BadRequest:"},{"line_number":1980,"context_line":"            raise OpenStackCloudException(\"test\")"},{"line_number":1981,"context_line":""},{"line_number":1982,"context_line":"    def delete_compute_quotas(self, name_or_id):"},{"line_number":1983,"context_line":"        \"\"\" Delete quota for a project"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_d47ea5e2","line":1980,"updated":"2016-05-23 13:30:14.000000000","message":"I think I pointed this out before, but \"test\" is likely not the exception message you want here.","commit_id":"445b8f82563884c052fa9923b85b4eaec6e469b1"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"c6dc953e25abde3d831c79e0f8592c52045d9351","unresolved":false,"context_lines":[{"line_number":1977,"context_line":"            return self.manager.submitTask("},{"line_number":1978,"context_line":"                _tasks.NovaQuotasGet(tenant_id\u003dproj.id))"},{"line_number":1979,"context_line":"        except nova_exceptions.BadRequest:"},{"line_number":1980,"context_line":"            raise OpenStackCloudException(\"test\")"},{"line_number":1981,"context_line":""},{"line_number":1982,"context_line":"    def delete_compute_quotas(self, name_or_id):"},{"line_number":1983,"context_line":"        \"\"\" Delete quota for a project"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_efccb636","line":1980,"in_reply_to":"bab6814e_d47ea5e2","updated":"2016-05-23 13:46:06.000000000","message":"Argh! There were 3 \"test\" and i just fixed 2... Next round is on me.","commit_id":"445b8f82563884c052fa9923b85b4eaec6e469b1"}]}
