)]}'
{"doc/source/devref/distributed_scheduler.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4bc7951e495ac0d0c7a4f40870b672a150f8d4c2","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Distributed Scheduler"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Chance Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Distributed Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). "},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    .. image:: /images/dating_service.png "},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAEn%2F%2F6r4%3D","line":24,"updated":"2012-02-14 22:55:10.000000000","message":"femto-nit: whitespace here...","commit_id":"1fabbbaea2b3ed8ee65ead08bde1eea4cc49ae64"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4bc7951e495ac0d0c7a4f40870b672a150f8d4c2","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The filter used is determined by the `--default_host_filters` flag, which points to a Python Class. By default this flag is set to `[AllHostsFilter]` which simply returns all available hosts. But there are others:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":" * `ComputeFilter` provides host filtering based on the memory and disk size specified in the `InstanceType` record passed into `run_instance`. "},{"line_number":63,"context_line":""},{"line_number":64,"context_line":" * `JSONFilter` filters hosts based on simple JSON expression grammar. Using a LISP-like JSON structure the caller can request instances based on criteria well beyond what `ComputeFilter` specifies. See `nova.tests.scheduler.test_host_filters` for examples."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAEn%2F%2F6rw%3D","line":62,"updated":"2012-02-14 22:55:10.000000000","message":"extra whitespace..","commit_id":"1fabbbaea2b3ed8ee65ead08bde1eea4cc49ae64"}],"nova/flags.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"fb5bec93518e09b7466f3b5b2f1be53327a0d5d4","unresolved":false,"context_lines":[{"line_number":372,"context_line":"    cfg.StrOpt(\u0027zone_name\u0027,"},{"line_number":373,"context_line":"               default\u003d\u0027nova\u0027,"},{"line_number":374,"context_line":"               help\u003d\u0027name of this zone\u0027),"},{"line_number":375,"context_line":"    cfg.ListOpt(\u0027zone_capabilities\u0027,"},{"line_number":376,"context_line":"                default\u003d[\u0027hypervisor\u003dxenserver;kvm\u0027, \u0027os\u003dlinux;windows\u0027],"},{"line_number":377,"context_line":"                help\u003d\u0027Key/Multi-value list with the capabilities of the zone\u0027),"},{"line_number":378,"context_line":"    cfg.StrOpt(\u0027build_plan_encryption_key\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F7no%3D","side":"PARENT","line":375,"updated":"2012-02-13 01:27:20.000000000","message":"Leaving this in for replacement.","commit_id":"d8f8bad0f26b4438986ab1a469d89d03b22551db"}],"nova/tests/api/openstack/compute/contrib/test_admin_actions.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"8399013bc8356fab895011892c30b9a9465ed02b","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        request \u003d self._get_request(body)"},{"line_number":262,"context_line":"        response \u003d request.get_response(self.app)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        print \"RESPONSE\", response"},{"line_number":265,"context_line":"        self.assertTrue(response.headers[\u0027Location\u0027])"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_create_backup_raises_conflict_on_invalid_state(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEH%2F%2F8W0%3D","line":264,"updated":"2012-02-01 17:51:06.000000000","message":"Can probably remove this addition :)","commit_id":"c68cf938610e908339f67cdd44174e12e8388ea8"}],"nova/tests/api/openstack/compute/test_server_actions.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"8399013bc8356fab895011892c30b9a9465ed02b","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        def server_not_found(self, instance_id):"},{"line_number":404,"context_line":"            raise exception.InstanceNotFound(instance_id\u003dinstance_id)"},{"line_number":405,"context_line":"        self.stubs.Set(nova.db, \u0027instance_get\u0027, server_not_found)"},{"line_number":406,"context_line":"        self.stubs.Set(nova.db, \u0027instance_get_by_uuid\u0027, server_not_found)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        body \u003d {"},{"line_number":409,"context_line":"            \"rebuild\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEH%2F%2F8Ws%3D","line":406,"updated":"2012-02-01 17:51:06.000000000","message":"Hm... what caused the need to change these tests in this way?  Seems like ripping out zones shouldn\u0027t have affected this.","commit_id":"c68cf938610e908339f67cdd44174e12e8388ea8"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"86796b45c08c43d5a4a85a73d667b1708c62713f","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        def server_not_found(self, instance_id):"},{"line_number":404,"context_line":"            raise exception.InstanceNotFound(instance_id\u003dinstance_id)"},{"line_number":405,"context_line":"        self.stubs.Set(nova.db, \u0027instance_get\u0027, server_not_found)"},{"line_number":406,"context_line":"        self.stubs.Set(nova.db, \u0027instance_get_by_uuid\u0027, server_not_found)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        body \u003d {"},{"line_number":409,"context_line":"            \"rebuild\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEH%2F%2F8T0%3D","line":406,"in_reply_to":"AAAAEH%2F%2F8WU%3D","updated":"2012-02-01 18:35:24.000000000","message":"Oh right!  I ran into this before.","commit_id":"c68cf938610e908339f67cdd44174e12e8388ea8"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"1a0d7a6772cad973ad9cbab890b474a9312b39bd","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        def server_not_found(self, instance_id):"},{"line_number":404,"context_line":"            raise exception.InstanceNotFound(instance_id\u003dinstance_id)"},{"line_number":405,"context_line":"        self.stubs.Set(nova.db, \u0027instance_get\u0027, server_not_found)"},{"line_number":406,"context_line":"        self.stubs.Set(nova.db, \u0027instance_get_by_uuid\u0027, server_not_found)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        body \u003d {"},{"line_number":409,"context_line":"            \"rebuild\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEH%2F%2F8WU%3D","line":406,"in_reply_to":"AAAAEH%2F%2F8Ws%3D","updated":"2012-02-01 17:54:43.000000000","message":"The id/uuid check was previously being done in the decorator as well. These tests were falsely making the assumption that the lower-down check was doing the work. Now that the routing decorator is gone, the lower-down checks are alive and the tests were failing.","commit_id":"c68cf938610e908339f67cdd44174e12e8388ea8"}]}
