)]}'
{"nova/api/openstack/compute/contrib/floating_ips.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"012e7f0285e7dd5ea2a59de406d6dd19e3ff2713","unresolved":false,"context_lines":[{"line_number":17,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":18,"context_line":"#    under the License."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo.config import cfg"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"import webob"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSFE%3D","line":20,"updated":"2013-10-18 13:29:42.000000000","message":"oslo is a 3rd part include. re is not. they should be in 2 different sections","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"012e7f0285e7dd5ea2a59de406d6dd19e3ff2713","unresolved":false,"context_lines":[{"line_number":104,"context_line":"class FloatingIPController(object):"},{"line_number":105,"context_line":"    \"\"\"The Floating IPs API controller for the OpenStack API.\"\"\""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    regexes \u003d {"},{"line_number":108,"context_line":"               \u0027uuid\u0027: \u0027[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}\u0027"},{"line_number":109,"context_line":"                    \u0027-[0-9a-f]{4}-[0-9a-f]{12}\u0027,"},{"line_number":110,"context_line":"                \u0027int\u0027: \u0027\\d+\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSEk%3D","line":107,"updated":"2013-10-18 13:29:42.000000000","message":"why do we need a regex here - you can use the oslo is_uuid_like method","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"2f42533aff3ebeb669acc9c5dd16728d7afe5804","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    regexes \u003d {"},{"line_number":108,"context_line":"               \u0027uuid\u0027: \u0027[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}\u0027"},{"line_number":109,"context_line":"                    \u0027-[0-9a-f]{4}-[0-9a-f]{12}\u0027,"},{"line_number":110,"context_line":"                \u0027int\u0027: \u0027\\d+\u0027"},{"line_number":111,"context_line":"               }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FRjs%3D","line":110,"updated":"2013-10-18 15:52:27.000000000","message":"nit: can we just use builtin int() function instead? (and then validate, that the value is \u003e 0)","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"012e7f0285e7dd5ea2a59de406d6dd19e3ff2713","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                floating_ip[\u0027instance\u0027] \u003d None"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def _validate_id(self, id):"},{"line_number":130,"context_line":"        if cfg.CONF.network_api_class \u003d\u003d \u0027nova.network.api.API\u0027:"},{"line_number":131,"context_line":"            regex \u003d self.regexes[\u0027int\u0027]"},{"line_number":132,"context_line":"        elif cfg.CONF.network_api_class \u003d\u003d \u0027nova.network.neutronv2.api.API\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSD8%3D","line":129,"updated":"2013-10-18 13:29:42.000000000","message":"you can use the nova.utils - is_neutron here","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"c75062e32e5946f756b50bec3d3abba687f1170c","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        if cfg.CONF.network_api_class \u003d\u003d \u0027nova.network.api.API\u0027:"},{"line_number":131,"context_line":"            regex \u003d self.regexes[\u0027int\u0027]"},{"line_number":132,"context_line":"        elif cfg.CONF.network_api_class \u003d\u003d \u0027nova.network.neutronv2.api.API\u0027:"},{"line_number":133,"context_line":"            regex \u003d self.regexes[\u0027uuid\u0027]"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        return re.match(regex + \"$\", str(id)) !\u003d None"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSEQ%3D","line":133,"updated":"2013-10-18 13:31:28.000000000","message":"building something in nova.utils like validate_integer may be better","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"2f42533aff3ebeb669acc9c5dd16728d7afe5804","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        elif cfg.CONF.network_api_class \u003d\u003d \u0027nova.network.neutronv2.api.API\u0027:"},{"line_number":133,"context_line":"            regex \u003d self.regexes[\u0027uuid\u0027]"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        return re.match(regex + \"$\", str(id)) !\u003d None"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @wsgi.serializers(xml\u003dFloatingIPTemplate)"},{"line_number":138,"context_line":"    def show(self, req, id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FRj4%3D","line":135,"updated":"2013-10-18 15:52:27.000000000","message":"nit: you should not use !\u003d and \u003d\u003d for comparing with None, use \"is\" keyword instead","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"c75062e32e5946f756b50bec3d3abba687f1170c","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if not self._validate_id(id):"},{"line_number":144,"context_line":"            LOG.exception(_(\"Invalid type for id %s\") % id)"},{"line_number":145,"context_line":"            raise exception.InvalidID(id\u003did)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        try:"},{"line_number":148,"context_line":"            floating_ip \u003d self.network_api.get_floating_ip(context, id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSDc%3D","line":145,"updated":"2013-10-18 13:31:28.000000000","message":"I think we should raise exc.HTTPBadRequest\nlike the following:\n        try:\n            ...............................\n        except exception.Invalid as err:\n            raise exc.HTTPBadRequest(explanation\u003derr.format_message())","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"c75062e32e5946f756b50bec3d3abba687f1170c","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if not self._validate_id(id):"},{"line_number":195,"context_line":"            LOG.exception(_(\"Invalid type for id %s\") % id)"},{"line_number":196,"context_line":"            raise exception.InvalidID(id\u003did)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        # get the floating ip object"},{"line_number":199,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSDY%3D","line":196,"updated":"2013-10-18 13:31:28.000000000","message":"ditto","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"2f464e88f6b660ce21346aeaf6baae57f2378634","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            else:"},{"line_number":120,"context_line":"                floating_ip[\u0027instance\u0027] \u003d None"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _validate_id(self, id):"},{"line_number":123,"context_line":"        if utils.is_neutron():"},{"line_number":124,"context_line":"            return uuidutils.is_uuid_like(id)"},{"line_number":125,"context_line":"        return utils.is_int_like(id) and int(id) \u003e 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2FOXI%3D","line":122,"updated":"2013-10-21 03:13:47.000000000","message":"why not raise exception in this funciton? but the current one  is ok.","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"d9adb8d1334bde634acc221dd6242782a82edcea","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            else:"},{"line_number":120,"context_line":"                floating_ip[\u0027instance\u0027] \u003d None"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _validate_id(self, id):"},{"line_number":123,"context_line":"        if utils.is_neutron():"},{"line_number":124,"context_line":"            return uuidutils.is_uuid_like(id)"},{"line_number":125,"context_line":"        return utils.is_int_like(id) and int(id) \u003e 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2Fcys%3D","line":122,"in_reply_to":"AAAATH%2F%2FOXI%3D","updated":"2013-11-06 00:33:45.000000000","message":"I agree with Ivan-Zhu here.  You can reduce the duplication, but there\u0027s not enough duplication to really bother me.","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":8810,"name":"Francisco Demontiê dos Santos Junior","email":"demontie@lsd.ufcg.edu.br","username":"demontiejr"},"change_message_id":"28db9bdd069386196090d19a6906ab1cf8220854","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            else:"},{"line_number":120,"context_line":"                floating_ip[\u0027instance\u0027] \u003d None"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _validate_id(self, id):"},{"line_number":123,"context_line":"        if utils.is_neutron():"},{"line_number":124,"context_line":"            return uuidutils.is_uuid_like(id)"},{"line_number":125,"context_line":"        return utils.is_int_like(id) and int(id) \u003e 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FbUk%3D","line":122,"in_reply_to":"AAAATn%2F%2Fcys%3D","updated":"2013-11-06 12:25:01.000000000","message":"Should I send another patch or would be better wait for some approval or disapproval? I\u0027m waiting more then 2 weeks with my code, so I don\u0027t know if I would have to wait again after send another patch. This is my first contribution and I don\u0027t know too much about the process.","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"5a4b8da4f2cb9fd0c283fa66a3b8a12b367ce343","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        if utils.is_neutron():"},{"line_number":124,"context_line":"            return uuidutils.is_uuid_like(id)"},{"line_number":125,"context_line":"        return utils.is_int_like(id) and int(id) \u003e 0"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    @wsgi.serializers(xml\u003dFloatingIPTemplate)"},{"line_number":128,"context_line":"    def show(self, req, id):"},{"line_number":129,"context_line":"        \"\"\"Return data about the given floating ip.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2Fa0s%3D","line":126,"updated":"2013-11-06 17:21:13.000000000","message":"Following my comment, I would rewrite this like:\n\nreturn if utils.is_int_like(id) and int(id) \u003e 0 or uuidutils.is_uuid_like(id)\n\nAlthough I didn\u0027t test if mysql will truncate a uuid as it does with the example 123zzz in the bug, can you check this please?\n\nIf it does I think we should raise a NotFound when request cames with int and we\u0027re using neutron, and the same if cames as uuid and we\u0027re using nova-network or treat this in the backend double checking if the element found in db is really the same id we\u0027re looking for","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"edeabffb27ba2c26458e2171ceb40e2305c6c9de","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":131,"context_line":"        authorize(context)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if not self._validate_id(id):"},{"line_number":134,"context_line":"            msg \u003d _(\"Invalid type for id %s\") % id"},{"line_number":135,"context_line":"            LOG.exception(msg)"},{"line_number":136,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2FROI%3D","line":133,"updated":"2013-10-18 17:21:07.000000000","message":"nit: this is identical to the validation block in delete()","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":8810,"name":"Francisco Demontiê dos Santos Junior","email":"demontie@lsd.ufcg.edu.br","username":"demontiejr"},"change_message_id":"8dc04c141a1808ba54027d04039762948e99b3e4","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":131,"context_line":"        authorize(context)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if not self._validate_id(id):"},{"line_number":134,"context_line":"            msg \u003d _(\"Invalid type for id %s\") % id"},{"line_number":135,"context_line":"            LOG.exception(msg)"},{"line_number":136,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2FRMU%3D","line":133,"in_reply_to":"AAAATH%2F%2FROI%3D","updated":"2013-10-22 11:53:22.000000000","message":"I though the same. Should I extract a function and raise the exception inside?","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"5a4b8da4f2cb9fd0c283fa66a3b8a12b367ce343","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        if not self._validate_id(id):"},{"line_number":186,"context_line":"            msg \u003d _(\"Invalid type for id %s\") % id"},{"line_number":187,"context_line":"            LOG.exception(msg)"},{"line_number":188,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        # get the floating ip object"},{"line_number":191,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2Fa5s%3D","line":188,"updated":"2013-11-06 17:21:13.000000000","message":"This duplicate pieces (from here and from L133) could go inside the _validate_id method, this way you would avoid the duplication and also comply with ivan\u0027s suggestion","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"c235c2fbd0c2fa189f2a141b317a0e4acd8cab06","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        if utils.is_neutron() and utils.is_int_like(id):"},{"line_number":129,"context_line":"            msg \u003d _(\"Floating ip not found. Id %s must be an integer\") % id"},{"line_number":130,"context_line":"        elif utils.is_nova_network() and uuidutils.is_uuid_like(id):"},{"line_number":131,"context_line":"            msg \u003d _(\"Floating ip not found. Id %s must be an UUID\") % id"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FY9o%3D","line":131,"updated":"2013-11-07 13:15:17.000000000","message":"the error messages are swaped and as a suggestion I would use \"Id must be an integer\" instead of \"Id %s must be an integer\"","commit_id":"068b0f0b0a9806099d3607a950bc3fff3eda5286"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"1281d20455e628d49d5959281b512147edbc9e71","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":108,"context_line":"        self.network_api \u003d network.API()"},{"line_number":109,"context_line":"        super(FloatingIPController, self).__init__()"},{"line_number":110,"context_line":"        # NOTE(demontie): if the global variables are not reseted some"},{"line_number":111,"context_line":"        #                 tests can think they\u0027re using neutron and fail."},{"line_number":112,"context_line":"        utils.reset_is_neutron()"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FTwo%3D","line":110,"updated":"2013-11-11 09:05:55.000000000","message":"shouldn\u0027t we put this to tests setUp() instead?","commit_id":"0048e4c59a71b22dd8ab012d43100700c4b3553f"},{"author":{"_account_id":8810,"name":"Francisco Demontiê dos Santos Junior","email":"demontie@lsd.ufcg.edu.br","username":"demontiejr"},"change_message_id":"50e0b4577bcf7f6fc42996139eb67a755bc9ec1e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":108,"context_line":"        self.network_api \u003d network.API()"},{"line_number":109,"context_line":"        super(FloatingIPController, self).__init__()"},{"line_number":110,"context_line":"        # NOTE(demontie): if the global variables are not reseted some"},{"line_number":111,"context_line":"        #                 tests can think they\u0027re using neutron and fail."},{"line_number":112,"context_line":"        utils.reset_is_neutron()"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FTQ8%3D","line":110,"in_reply_to":"AAAATn%2F%2FTwo%3D","updated":"2013-11-11 12:37:40.000000000","message":"Done","commit_id":"0048e4c59a71b22dd8ab012d43100700c4b3553f"}],"nova/tests/api/openstack/compute/contrib/test_floating_ips.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"8647121244e7fc643a61bf9d7540797f11331229","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        self.assertEqual(res_dict[\u0027floating_ip\u0027][\u0027id\u0027], 1)"},{"line_number":245,"context_line":"        self.assertEqual(res_dict[\u0027floating_ip\u0027][\u0027ip\u0027], \u002710.10.10.10\u0027)"},{"line_number":246,"context_line":"        self.assertEqual(res_dict[\u0027floating_ip\u0027][\u0027instance_id\u0027], None)"},{"line_number":247,"context_line":"        "},{"line_number":248,"context_line":"    def test_floating_ip_show_invalid_id(self):"},{"line_number":249,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":250,"context_line":"        self.assertRaises(exception.InvalidID, self.controller.show, req, \u00271z\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FU2Q%3D","line":247,"updated":"2013-10-17 17:45:20.000000000","message":"white space","commit_id":"0a505378f897142a7e6c1b787a335744b9bfc1f9"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"c75062e32e5946f756b50bec3d3abba687f1170c","unresolved":false,"context_lines":[{"line_number":248,"context_line":"    def test_floating_ip_show_invalid_id(self):"},{"line_number":249,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":250,"context_line":"        self.assertRaises(exception.InvalidID, self.controller.show, req, \u00271z\u0027)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def test_floating_ip_show_not_found(self):"},{"line_number":253,"context_line":"        def fake_get_floating_ip(*args, **kwargs):"},{"line_number":254,"context_line":"            raise exception.FloatingIpNotFound(id\u003d\u0027fake\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FSDM%3D","line":251,"updated":"2013-10-18 13:31:28.000000000","message":"we also need add the same test for delete","commit_id":"1bf1c494f90956d6760c42fa4cc2c3c07faa53ec"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"5a4b8da4f2cb9fd0c283fa66a3b8a12b367ce343","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":362,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":363,"context_line":"                          self.controller.delete, req, \u00271z\u0027)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_floating_ip_associate(self):"},{"line_number":366,"context_line":"        fixed_address \u003d \u0027192.168.1.100\u0027"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2Fa0U%3D","line":364,"updated":"2013-11-06 17:21:13.000000000","message":"what about to add tests using uuid?\nYou would just need to stub the function that check is we\u0027re using neutron and see if it succeeds..","commit_id":"74d5222aa629c59bb4adce3fe0c503e680e0240d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9572a6ed291befda62cbd856d654e5d93b643aef","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        self.assertIsNone(res_dict[\u0027floating_ip\u0027][\u0027instance_id\u0027])"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def test_floating_ip_show_invalid_id(self):"},{"line_number":249,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":250,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":251,"context_line":"                          self.controller.show, req, \u00271z\u0027)"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FSz0%3D","line":249,"updated":"2013-11-11 14:46:21.000000000","message":"Should the request not have: req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/1z\u0027)?","commit_id":"4ca26d1953fc76329bba4eae47d558935d45f63d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9572a6ed291befda62cbd856d654e5d93b643aef","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                          self.controller.show, req, \u00271z\u0027)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def test_floating_ip_show_uuid_nova_network(self):"},{"line_number":254,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":255,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"},{"line_number":256,"context_line":"                          self.controller.show, req, FAKE_UUID)"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FSzw%3D","line":254,"updated":"2013-11-11 14:46:21.000000000","message":"is the FAKE_UUID missing from the request?","commit_id":"4ca26d1953fc76329bba4eae47d558935d45f63d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9572a6ed291befda62cbd856d654e5d93b643aef","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        self.controller.delete(req, 1)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_floating_ip_release_invalid_id(self):"},{"line_number":366,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":367,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":368,"context_line":"                          self.controller.delete, req, \u00271z\u0027)"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FSzo%3D","line":366,"updated":"2013-11-11 14:46:21.000000000","message":"ditto","commit_id":"4ca26d1953fc76329bba4eae47d558935d45f63d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9572a6ed291befda62cbd856d654e5d93b643aef","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                          self.controller.delete, req, \u00271z\u0027)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def test_floating_ip_release_uuid_nova_network(self):"},{"line_number":371,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-floating-ips/\u0027)"},{"line_number":372,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"},{"line_number":373,"context_line":"                          self.controller.delete, req, FAKE_UUID)"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FSzg%3D","line":371,"updated":"2013-11-11 14:46:21.000000000","message":"ditto","commit_id":"4ca26d1953fc76329bba4eae47d558935d45f63d"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9572a6ed291befda62cbd856d654e5d93b643aef","unresolved":false,"context_lines":[{"line_number":977,"context_line":"        super(FloatingIpsJsonTest, self).setUp()"},{"line_number":978,"context_line":"        pool \u003d CONF.default_floating_pool"},{"line_number":979,"context_line":"        interface \u003d CONF.public_interface"},{"line_number":980,"context_line":"        # NOTE(demontie): if the global variables are not reseted some"},{"line_number":981,"context_line":"        #                 tests can think they\u0027re using neutron and fail."},{"line_number":982,"context_line":"        utils.reset_is_neutron()"},{"line_number":983,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FSzM%3D","line":980,"updated":"2013-11-11 14:46:21.000000000","message":"reseted  \u003d\u003e reset","commit_id":"4ca26d1953fc76329bba4eae47d558935d45f63d"}],"nova/utils.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9572a6ed291befda62cbd856d654e5d93b643aef","unresolved":false,"context_lines":[{"line_number":1056,"context_line":"    return _IS_NEUTRON"},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":""},{"line_number":1059,"context_line":"def is_nova_network():"},{"line_number":1060,"context_line":"    try:"},{"line_number":1061,"context_line":"        cls_name \u003d CONF.network_api_class"},{"line_number":1062,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FSys%3D","line":1059,"updated":"2013-11-11 14:46:21.000000000","message":"why not use: !is_neutron?","commit_id":"4ca26d1953fc76329bba4eae47d558935d45f63d"}]}
