def test_reboot_required(self): """ Test that reboot required flag is set when all the required agent parameters are set. """ self.agent._parse_options(["--config-path", self.agent_conf_dir]) # Check that reboot required is false until we set all the params self.assertFalse(self.agent.reboot_required) req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] addr = ServerAddress(host="localhost", port=2345) req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" self.agent.update_config(req) # Verify that the bootstrap is still false as zk config is not # specified. self.assertFalse(self.agent.bootstrap_ready) self.assertTrue(self.agent.reboot_required) req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] addr = ServerAddress(host="localhost", port=2345) req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" self.agent.update_config(req) self.assertTrue(self.agent.reboot_required)
def test_reboot_required(self): """ Test that reboot required flag is set when all the required agent parameters are set. """ self.agent._parse_options(["--config-path", self.agent_conf_dir]) # Check that reboot required is false until we set all the params self.assertFalse(self.agent.reboot_required) req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] addr = ServerAddress(host="localhost", port=2345) req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" self.agent.update_config(req) # Verify that the bootstrap is still false as zk config is not # specified. self.assertFalse(self.agent.bootstrap_ready) self.assertTrue(self.agent.reboot_required) req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] addr = ServerAddress(host="localhost", port=2345) req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" self.agent.update_config(req) self.assertTrue(self.agent.reboot_required)
def test_agent_config_update(self): """ Test that updating the config using the RPC struct works """ self.agent._parse_options(["--config-path", self.agent_conf_dir, "--availability-zone", "test", "--hostname", "localhost", "--port", "1234", "--datastores", "ds1, ds2"]) expected_image_ds = [{"name": "ds3", "used_for_vms": True}] # Without chairman config we can't be provision ready self.assertFalse(self.agent.bootstrap_ready) self.assertTrue(self.agent.provision_ready) self.assertFalse(self.agent.reboot_required) req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] req.memory_overcommit = 1.5 req.image_datastores = set([ImageDatastore("ds3", True)]) addr = ServerAddress(host="localhost", port=2345) req.chairman_server = [ServerAddress("h1", 13000), ServerAddress("h2", 13000)] req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" req.host_id = "host1" self.agent.update_config(req) assert_that(self.agent.availability_zone, equal_to("test1")) assert_that(self.agent.hostname, equal_to("localhost")) assert_that(self.agent.host_port, equal_to(2345)) assert_that(self.agent.datastores, equal_to(["ds3", "ds4"])) assert_that(self.agent.networks, equal_to(["Public"])) assert_that(self.agent.options.hypervisor, equal_to("fake")) assert_that(self.agent.chairman_list, equal_to([ServerAddress("h1", 13000), ServerAddress("h2", 13000)])) assert_that(self.agent.memory_overcommit, equal_to(1.5)) assert_that(self.agent.image_datastores, equal_to(expected_image_ds)) assert_that(self.agent.host_id, equal_to("host1")) self.assertTrue(self.agent.bootstrap_ready) self.assertTrue(self.agent.reboot_required) # Verify we are able to unset all the configuration. req = ProvisionRequest() self.agent.update_config(req) assert_that(self.agent.availability_zone, equal_to(None)) assert_that(self.agent.hostname, equal_to(None)) assert_that(self.agent.host_port, equal_to(8835)) assert_that(self.agent.datastores, equal_to([])) assert_that(self.agent.networks, equal_to([])) assert_that(self.agent.chairman_list, equal_to([])) # Unsetting memory overcommit should set it to the default value. self.assertEqual(self.agent.memory_overcommit, 1.0) self.assertFalse(self.agent.bootstrap_ready) assert_that(self.agent.image_datastores, equal_to(expected_image_ds)) assert_that(self.agent.host_id, equal_to(None)) # Test an invalid update and verify the update doesn't have any side # effects. req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] req.memory_overcommit = 0.5 addr = ServerAddress(host="localhost", port=2345) req.chairman_server = [ServerAddress("h1", 13000), ServerAddress("h2", 13000)] req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" # Verify an exception is raised. self.assertRaises(InvalidConfig, self.agent.update_config, req) assert_that(self.agent.availability_zone, equal_to(None)) assert_that(self.agent.hostname, equal_to(None)) assert_that(self.agent.host_port, equal_to(8835)) assert_that(self.agent.datastores, equal_to([])) assert_that(self.agent.networks, equal_to([])) assert_that(self.agent.chairman_list, equal_to([])) self.assertFalse(self.agent.bootstrap_ready) self.assertEqual(self.agent.memory_overcommit, 1.0) # input an invalid datastore for image. req.image_datastores = set([ImageDatastore("ds5", False)]) req.memory_overcommit = 2.0 self.assertRaises(InvalidConfig, self.agent.update_config, req)
def test_agent_config_update(self): """ Test that updating the config using the RPC struct works """ self.agent._parse_options([ "--config-path", self.agent_conf_dir, "--availability-zone", "test", "--hostname", "localhost", "--port", "1234", "--datastores", "ds1, ds2" ]) expected_image_ds = [{"name": "ds3", "used_for_vms": True}] # Without chairman config we can't be provision ready self.assertFalse(self.agent.bootstrap_ready) self.assertTrue(self.agent.provision_ready) self.assertFalse(self.agent.reboot_required) req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] req.memory_overcommit = 1.5 req.image_datastores = set([ImageDatastore("ds3", True)]) addr = ServerAddress(host="localhost", port=2345) req.chairman_server = [ ServerAddress("h1", 13000), ServerAddress("h2", 13000) ] req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" req.host_id = "host1" self.agent.update_config(req) assert_that(self.agent.availability_zone, equal_to("test1")) assert_that(self.agent.hostname, equal_to("localhost")) assert_that(self.agent.host_port, equal_to(2345)) assert_that(self.agent.datastores, equal_to(["ds3", "ds4"])) assert_that(self.agent.networks, equal_to(["Public"])) assert_that(self.agent.options.hypervisor, equal_to("fake")) assert_that( self.agent.chairman_list, equal_to([ServerAddress("h1", 13000), ServerAddress("h2", 13000)])) assert_that(self.agent.memory_overcommit, equal_to(1.5)) assert_that(self.agent.image_datastores, equal_to(expected_image_ds)) assert_that(self.agent.host_id, equal_to("host1")) self.assertTrue(self.agent.bootstrap_ready) self.assertTrue(self.agent.reboot_required) # Verify we are able to unset all the configuration. req = ProvisionRequest() self.agent.update_config(req) assert_that(self.agent.availability_zone, equal_to(None)) assert_that(self.agent.hostname, equal_to(None)) assert_that(self.agent.host_port, equal_to(8835)) assert_that(self.agent.datastores, equal_to([])) assert_that(self.agent.networks, equal_to([])) assert_that(self.agent.chairman_list, equal_to([])) # Unsetting memory overcommit should set it to the default value. self.assertEqual(self.agent.memory_overcommit, 1.0) self.assertFalse(self.agent.bootstrap_ready) assert_that(self.agent.image_datastores, equal_to(expected_image_ds)) assert_that(self.agent.host_id, equal_to(None)) # Test an invalid update and verify the update doesn't have any side # effects. req = ProvisionRequest() req.availability_zone = "test1" req.datastores = ["ds3", "ds4"] req.networks = ["Public"] req.memory_overcommit = 0.5 addr = ServerAddress(host="localhost", port=2345) req.chairman_server = [ ServerAddress("h1", 13000), ServerAddress("h2", 13000) ] req.address = addr req.environment = {} req.environment["hypervisor"] = "fake" # Verify an exception is raised. self.assertRaises(InvalidConfig, self.agent.update_config, req) assert_that(self.agent.availability_zone, equal_to(None)) assert_that(self.agent.hostname, equal_to(None)) assert_that(self.agent.host_port, equal_to(8835)) assert_that(self.agent.datastores, equal_to([])) assert_that(self.agent.networks, equal_to([])) assert_that(self.agent.chairman_list, equal_to([])) self.assertFalse(self.agent.bootstrap_ready) self.assertEqual(self.agent.memory_overcommit, 1.0) # input an invalid datastore for image. req.image_datastores = set([ImageDatastore("ds5", False)]) req.memory_overcommit = 2.0 self.assertRaises(InvalidConfig, self.agent.update_config, req)