)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"5c848dd66dd6e29c543358543ecbc9e15bfcc5bb","unresolved":false,"context_lines":[{"line_number":808,"context_line":"                     first()"},{"line_number":809,"context_line":"    if not result:"},{"line_number":810,"context_line":"        raise exception.FixedIpNotFound(id\u003did)"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"    return result"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F%2Bpc%3D","line":811,"updated":"2011-09-27 04:09:48.000000000","message":"Needs checking of project id like \u0027fixed_ip_get_by_address\u0027.","commit_id":"2b7ddb5f141a405ca0ed4cc2e22f79cf05107731"}],"nova/network/manager.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"e58ce3b5b70c9a878f2168b669d103d82e4fd8ca","unresolved":false,"context_lines":[{"line_number":932,"context_line":"    def _get_networks_by_uuids(self, context, network_uuids):"},{"line_number":933,"context_line":"        return self.db.network_get_all_by_uuids(context, network_uuids)"},{"line_number":934,"context_line":""},{"line_number":935,"context_line":""},{"line_number":936,"context_line":"class FlatManager(NetworkManager):"},{"line_number":937,"context_line":"    \"\"\"Basic network where no vlans are used."},{"line_number":938,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F%2BbU%3D","side":"PARENT","line":935,"updated":"2011-09-27 20:11:35.000000000","message":"Isn\u0027t this a dupe of \u0027get_vifs_by_instance\u0027 other than turning the response into a dict?   Seems like both should do this... in which case one of these methods can go away.","commit_id":"4e94ec1a0a566b66f09b734e6ffe964b4b3b4bee"},{"author":{"_account_id":191,"name":"Trey Morris","email":"trey.morris@rackspace.com","username":"tr3buchet"},"change_message_id":"aa2f64831ceee25d0932909e564faeadb8b552ad","unresolved":false,"context_lines":[{"line_number":932,"context_line":"    def _get_networks_by_uuids(self, context, network_uuids):"},{"line_number":933,"context_line":"        return self.db.network_get_all_by_uuids(context, network_uuids)"},{"line_number":934,"context_line":""},{"line_number":935,"context_line":""},{"line_number":936,"context_line":"class FlatManager(NetworkManager):"},{"line_number":937,"context_line":"    \"\"\"Basic network where no vlans are used."},{"line_number":938,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F%2Bao%3D","side":"PARENT","line":935,"in_reply_to":"AAAACX%2F%2F%2BbU%3D","updated":"2011-09-27 21:47:26.000000000","message":"oops miscommunication on jk1 and my parts. fixed.","commit_id":"4e94ec1a0a566b66f09b734e6ffe964b4b3b4bee"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"e58ce3b5b70c9a878f2168b669d103d82e4fd8ca","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        # make sure project ownz this floating ip (allocated)"},{"line_number":311,"context_line":"        self._floating_ip_owned_by_project(context, floating_ip)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # make sure floating ip is not associated"},{"line_number":314,"context_line":"        if floating_ip[\u0027fixed_ip_id\u0027]:"},{"line_number":315,"context_line":"            raise exception.ApiError(_(\u0027Floating ip is in use.  \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F%2Bbg%3D","line":312,"updated":"2011-09-27 20:11:35.000000000","message":"Doesn\u0027t the self.db.floating_ip_get_by_address call verify this already?  Seems like the above method is unnecessary.","commit_id":"f5909b90102aef96f15336119883c6e412fbc23b"},{"author":{"_account_id":191,"name":"Trey Morris","email":"trey.morris@rackspace.com","username":"tr3buchet"},"change_message_id":"aa2f64831ceee25d0932909e564faeadb8b552ad","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        # make sure project ownz this floating ip (allocated)"},{"line_number":311,"context_line":"        self._floating_ip_owned_by_project(context, floating_ip)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # make sure floating ip is not associated"},{"line_number":314,"context_line":"        if floating_ip[\u0027fixed_ip_id\u0027]:"},{"line_number":315,"context_line":"            raise exception.ApiError(_(\u0027Floating ip is in use.  \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F%2BaY%3D","line":312,"in_reply_to":"AAAACX%2F%2F%2Bbg%3D","updated":"2011-09-27 21:47:26.000000000","message":"to all of your \"same as above[s]\" as well:\nthe sqlalchemy api may have a check in place, but whatever ends up storing floating ips may not, or it may not have any knowledge of nova context or project ids, or the relationship. I figured it made more sense for this bahavior to be here than in the db. I also didn\u0027t pay particular attention to where floating ips are used, so maybe the check could be removed the sqlalchemy api function.","commit_id":"f5909b90102aef96f15336119883c6e412fbc23b"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"e58ce3b5b70c9a878f2168b669d103d82e4fd8ca","unresolved":false,"context_lines":[{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        # make sure project ownz this floating ip (allocated)"},{"line_number":335,"context_line":"        self._floating_ip_owned_by_project(context, floating_ip)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # make sure floating ip isn\u0027t already associated"},{"line_number":338,"context_line":"        if floating_ip[\u0027fixed_ip_id\u0027]:"},{"line_number":339,"context_line":"            raise exception.FloatingIpAlreadyInUse("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F%2Bbc%3D","line":336,"updated":"2011-09-27 20:11:35.000000000","message":"Same as above.","commit_id":"f5909b90102aef96f15336119883c6e412fbc23b"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"e58ce3b5b70c9a878f2168b669d103d82e4fd8ca","unresolved":false,"context_lines":[{"line_number":385,"context_line":""},{"line_number":386,"context_line":"        # make sure project ownz this floating ip (allocated)"},{"line_number":387,"context_line":"        self._floating_ip_owned_by_project(context, floating_ip)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # make sure floating ip is associated"},{"line_number":390,"context_line":"        if not floating_ip.get(\u0027fixed_ip_id\u0027):"},{"line_number":391,"context_line":"            raise exception.ApiError(\u0027Address is not associated.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F%2BbY%3D","line":388,"updated":"2011-09-27 20:11:35.000000000","message":"Same as above.","commit_id":"f5909b90102aef96f15336119883c6e412fbc23b"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"81c8a69fdbc560ea6dd22ebd2b783599181384f2","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                           {\u0027address\u0027: floating_ip[\u0027address\u0027],"},{"line_number":280,"context_line":"                           \u0027project\u0027: context.project_id})"},{"line_number":281,"context_line":"                raise exception.ApiError(_(\u0027Address (%(address)s) is not \u0027"},{"line_number":282,"context_line":"                                           \u0027allocated to your project\u0027"},{"line_number":283,"context_line":"                                           \u0027(%(project)s)\u0027) %"},{"line_number":284,"context_line":"                                            {\u0027address\u0027: floating_ip[\u0027address\u0027],"},{"line_number":285,"context_line":"                                            \u0027project\u0027: context.project_id})"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F%2BZo%3D","line":282,"updated":"2011-09-27 21:57:12.000000000","message":"This should be NotAuthorized then, if this code stays.  That\u0027s so it matches db.floating_ip_get_by_address.  When the db method is removed, the exception won\u0027t change.\n\nAlso not sure about the other ApiErrors added here.  ApiError is really generic.  I\u0027d rather see more meaningful exceptions and we catch them appropriately.","commit_id":"200f7f8e2a992c33f3d0b29865304b65b91b8030"}],"nova/test.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"c38afcf0d57d39deb3dfef962a99a053f2430ebe","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class skip_test(object):"},{"line_number":58,"context_line":"    \"\"\"Decorator that skips a test.\"\"\""},{"line_number":59,"context_line":"    # TODO(soren): come up with more ways to use this everywhere"},{"line_number":60,"context_line":"    def __init__(self, msg):"},{"line_number":61,"context_line":"        self.message \u003d msg"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F95A%3D","line":59,"updated":"2011-09-30 06:22:32.000000000","message":"LOL.  Come on. :)","commit_id":"6c39f83aecbd22dfbfc8f41c7d8d27db3c75d6ec"}]}
