)]}'
{"nova/api/openstack/zones.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"6ac70c1a1fa08a07ee4de33a7b2388648a71bee2","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        return self.helper._get_server_admin_password_old_style(server)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class ControllerV11(Controller):"},{"line_number":170,"context_line":"    \"\"\"Controller for 1.1 Zone resources.\"\"\""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def _get_server_admin_password(self, server):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F%2B2o%3D","side":"PARENT","line":169,"updated":"2011-09-25 18:21:57.000000000","message":"You can just get rid of this class.","commit_id":"bca7dd3e1d8bec758faf511338617f6d4121e0b8"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"6ac70c1a1fa08a07ee4de33a7b2388648a71bee2","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    controller \u003d {"},{"line_number":185,"context_line":"        \u00271.0\u0027: Controller,"},{"line_number":186,"context_line":"        \u00271.1\u0027: ControllerV11,"},{"line_number":187,"context_line":"    }[version]()"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    metadata \u003d {"},{"line_number":190,"context_line":"        \"attributes\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F%2B2k%3D","side":"PARENT","line":187,"updated":"2011-09-25 18:21:57.000000000","message":"Removal of ControllerV11 will make this simpler, too. Really, zones should be limited to v1.1.","commit_id":"bca7dd3e1d8bec758faf511338617f6d4121e0b8"}],"nova/scheduler/api.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"6ac70c1a1fa08a07ee4de33a7b2388648a71bee2","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    for item in items:"},{"line_number":66,"context_line":"        item[\u0027api_url\u0027] \u003d item[\u0027api_url\u0027].replace(\u0027\\\\/\u0027, \u0027/\u0027)"},{"line_number":67,"context_line":"    if not items:"},{"line_number":68,"context_line":"        items \u003d db.zone_get_all(context.elevated())"},{"line_number":69,"context_line":"    return items"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F%2B2g%3D","line":68,"updated":"2011-09-25 18:21:57.000000000","message":"Why are all of the db.zone_get* calls using context.elevated() now?","commit_id":"d6a618cd512b30f744317e6a1d083200d7a1cdd0"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"49f455a59c183b25f40bc6154ee05ac16b0a3147","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    for item in items:"},{"line_number":66,"context_line":"        item[\u0027api_url\u0027] \u003d item[\u0027api_url\u0027].replace(\u0027\\\\/\u0027, \u0027/\u0027)"},{"line_number":67,"context_line":"    if not items:"},{"line_number":68,"context_line":"        items \u003d db.zone_get_all(context.elevated())"},{"line_number":69,"context_line":"    return items"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F%2B0g%3D","line":68,"in_reply_to":"AAAACX%2F%2F%2B2U%3D","updated":"2011-09-26 14:14:17.000000000","message":"Excellent. I like this approach much more.","commit_id":"d6a618cd512b30f744317e6a1d083200d7a1cdd0"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"de7222d3c9c347b3d44713fe0aad314203b20330","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    for item in items:"},{"line_number":66,"context_line":"        item[\u0027api_url\u0027] \u003d item[\u0027api_url\u0027].replace(\u0027\\\\/\u0027, \u0027/\u0027)"},{"line_number":67,"context_line":"    if not items:"},{"line_number":68,"context_line":"        items \u003d db.zone_get_all(context.elevated())"},{"line_number":69,"context_line":"    return items"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F%2B2U%3D","line":68,"in_reply_to":"AAAACX%2F%2F%2B2g%3D","updated":"2011-09-25 19:12:11.000000000","message":"Glad you caught that and asked. :)   The zones DB calls need admin context.  Before a recent change in trunk, all actions in a child zone were done with admin context as that was the only way for a parent zone to talk with a child.  Now, with keystone integration, the context here is possibly a user context.\n\nAlso, when I was re-factoring things, I found that all scheduler calls were done with elevated context.  In scheduler/manager.py\u0027s, _schedule() method, you\u0027ll see a elevated \u003d context.elevated() that I removed... and now all scheduler calls are passed the original context.\n\nThings like the zones scheduler and the vsa scheduler were using an admin context in cases where they shouldn\u0027t have been.  So now, I pass the correct context to all scheduler calls and they only elevate when they need to.. (mostly certain DB calls that require admin context).","commit_id":"d6a618cd512b30f744317e6a1d083200d7a1cdd0"}],"nova/scheduler/multi.py":[{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"41d98f11c1c85a53a329b2646fe4d01b3b89cce7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"_METHOD_MAP \u003d {\u0027run_instance\u0027: \u0027compute\u0027,"},{"line_number":40,"context_line":"               \u0027start_instance\u0027: \u0027compute\u0027,"},{"line_number":41,"context_line":"               \u0027create_volume\u0027: \u0027volume\u0027,"},{"line_number":42,"context_line":"               \u0027create_volumes\u0027: \u0027volume\u0027}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class MultiScheduler(driver.Scheduler):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2BgI%3D","line":42,"updated":"2011-09-27 16:46:08.000000000","message":"At some point we need to clean up this volume/method map mechanism.","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"0a24883b284886d8683807bd3a5e20a8f704eecf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"_METHOD_MAP \u003d {\u0027run_instance\u0027: \u0027compute\u0027,"},{"line_number":40,"context_line":"               \u0027start_instance\u0027: \u0027compute\u0027,"},{"line_number":41,"context_line":"               \u0027create_volume\u0027: \u0027volume\u0027,"},{"line_number":42,"context_line":"               \u0027create_volumes\u0027: \u0027volume\u0027}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class MultiScheduler(driver.Scheduler):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2BfM%3D","line":42,"in_reply_to":"AAAACX%2F%2F%2BgI%3D","updated":"2011-09-27 19:24:33.000000000","message":"AGREE!","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"}],"nova/scheduler/vsa.py":[{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"41d98f11c1c85a53a329b2646fe4d01b3b89cce7","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            for vol in volume_params:"},{"line_number":288,"context_line":"                self._provision_volume(context, vol, vsa_id, availability_zone)"},{"line_number":289,"context_line":"        except Exception:"},{"line_number":290,"context_line":"            LOG.exception(_(\"Error creating volumes\"))"},{"line_number":291,"context_line":"            if vsa_id:"},{"line_number":292,"context_line":"                db.vsa_update(context, vsa_id, dict(status\u003dVsaState.FAILED))"},{"line_number":293,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2BgQ%3D","line":290,"updated":"2011-09-27 16:46:08.000000000","message":"Shouldn\u0027t give a generic exception. At least \n\nexcept Exception, e:\n     LOG.exception(_(\"Error creating volumes: %(e)s\" % locals()))","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"0a24883b284886d8683807bd3a5e20a8f704eecf","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            for vol in volume_params:"},{"line_number":288,"context_line":"                self._provision_volume(context, vol, vsa_id, availability_zone)"},{"line_number":289,"context_line":"        except Exception:"},{"line_number":290,"context_line":"            LOG.exception(_(\"Error creating volumes\"))"},{"line_number":291,"context_line":"            if vsa_id:"},{"line_number":292,"context_line":"                db.vsa_update(context, vsa_id, dict(status\u003dVsaState.FAILED))"},{"line_number":293,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2Bcg%3D","line":290,"in_reply_to":"AAAACX%2F%2F%2BgQ%3D","updated":"2011-09-27 19:24:33.000000000","message":"LOG.exception() actually already takes care of logging exception information... that\u0027s why I added it when going through changes here. ;)","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"41d98f11c1c85a53a329b2646fe4d01b3b89cce7","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        try:"},{"line_number":341,"context_line":"            (host, qos_cap) \u003d self._select_hosts(request_spec, all_hosts\u003dhosts)"},{"line_number":342,"context_line":"        except Exception:"},{"line_number":343,"context_line":"            LOG.exception(_(\"Error creating volume\"))"},{"line_number":344,"context_line":"            if volume_ref[\u0027to_vsa_id\u0027]:"},{"line_number":345,"context_line":"                db.vsa_update(context, volume_ref[\u0027to_vsa_id\u0027],"},{"line_number":346,"context_line":"                                dict(status\u003dVsaState.FAILED))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2BgM%3D","line":343,"updated":"2011-09-27 16:46:08.000000000","message":"See prior comment about Exceptions.","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"0a24883b284886d8683807bd3a5e20a8f704eecf","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        try:"},{"line_number":341,"context_line":"            (host, qos_cap) \u003d self._select_hosts(request_spec, all_hosts\u003dhosts)"},{"line_number":342,"context_line":"        except Exception:"},{"line_number":343,"context_line":"            LOG.exception(_(\"Error creating volume\"))"},{"line_number":344,"context_line":"            if volume_ref[\u0027to_vsa_id\u0027]:"},{"line_number":345,"context_line":"                db.vsa_update(context, volume_ref[\u0027to_vsa_id\u0027],"},{"line_number":346,"context_line":"                                dict(status\u003dVsaState.FAILED))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2Bcc%3D","line":343,"in_reply_to":"AAAACX%2F%2F%2BgM%3D","updated":"2011-09-27 19:24:33.000000000","message":"See above, also.","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"}],"nova/scheduler/zone.py":[{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"41d98f11c1c85a53a329b2646fe4d01b3b89cce7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        zone \u003d kwargs.get(\u0027availability_zone\u0027)"},{"line_number":53,"context_line":"        if not zone and request_spec:"},{"line_number":54,"context_line":"            zone \u003d request_spec[\u0027instance_properties\u0027].get("},{"line_number":55,"context_line":"                    \u0027availability_zone\u0027)"},{"line_number":56,"context_line":"        hosts \u003d self.hosts_up_with_zone(context.elevated(), topic, zone)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2BgU%3D","line":53,"updated":"2011-09-27 16:46:08.000000000","message":"Can you explain a little about your plan here for using EC2 Availability Zone concepts with Distributed Scheduler?","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"0a24883b284886d8683807bd3a5e20a8f704eecf","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        zone \u003d kwargs.get(\u0027availability_zone\u0027)"},{"line_number":53,"context_line":"        if not zone and request_spec:"},{"line_number":54,"context_line":"            zone \u003d request_spec[\u0027instance_properties\u0027].get("},{"line_number":55,"context_line":"                    \u0027availability_zone\u0027)"},{"line_number":56,"context_line":"        hosts \u003d self.hosts_up_with_zone(context.elevated(), topic, zone)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F%2BcY%3D","line":53,"in_reply_to":"AAAACX%2F%2F%2BgU%3D","updated":"2011-09-27 19:24:33.000000000","message":"I don\u0027t have a plan, myself.  I just kept the current checking of it...  I only changed the \u0027kwargs\u0027 variable name so it hit that line.","commit_id":"0fab78825ef06310926181f6f97d377058b56b97"}]}
