本文整理汇总了Python中gen.agent.ttypes.ProvisionRequest类的典型用法代码示例。如果您正苦于以下问题:Python ProvisionRequest类的具体用法?Python ProvisionRequest怎么用?Python ProvisionRequest使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ProvisionRequest类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_config_change
def test_config_change(self):
# Test chairman config change
chairman_callback1 = mock.MagicMock()
chairman_callback2 = mock.MagicMock()
chairman_server = [
ServerAddress("192.168.0.1", 8835),
ServerAddress("192.168.0.2", 8835),
]
self.agent.on_config_change(self.agent.CHAIRMAN, chairman_callback1)
self.agent.on_config_change(self.agent.CHAIRMAN, chairman_callback2)
provision = ProvisionRequest(chairman_server=chairman_server)
self.agent.update_config(provision)
chairman_callback1.assert_called_once_with(chairman_server)
chairman_callback2.assert_called_once_with(chairman_server)
self.assertFalse(self.agent.reboot_required)
# Test cpu_overcommit and memory_overcommit config change
cpu_callback = mock.MagicMock()
mem_callback = mock.MagicMock()
provision.cpu_overcommit = 5.0
provision.memory_overcommit = 6.0
self.agent.on_config_change(self.agent.CPU_OVERCOMMIT, cpu_callback)
self.agent.on_config_change(self.agent.MEMORY_OVERCOMMIT, mem_callback)
self.agent.update_config(provision)
cpu_callback.assert_called_once_with(5.0)
mem_callback.assert_called_once_with(6.0)
示例2: test_load_image_datastores
def test_load_image_datastores(self):
"""
Verify that the image_datastores field gets loaded from config.json.
"""
self.agent._parse_options(["--config-path", self.agent_conf_dir])
expected_image_ds = [
{"name": "ds1", "used_for_vms": True},
{"name": "ds2", "used_for_vms": False},
]
req = ProvisionRequest()
req.datastores = ["ds1", "ds2", "ds3", "ds4"]
req.image_datastores = {ImageDatastore("ds1", True), ImageDatastore("ds2", False)}
self.agent.provision(req)
self.agent._load_config()
assert_that(self.agent.datastores, equal_to(["ds1", "ds2", "ds3", "ds4"]))
assert_that(self.agent.image_datastores, contains_inanyorder(*expected_image_ds))
imageds_callback = mock.MagicMock()
self.agent.on_config_change(self.agent.IMAGE_DATASTORES, imageds_callback)
req = UpdateConfigRequest()
req.image_datastores = {ImageDatastore("ds1", True), ImageDatastore("ds2", False), ImageDatastore("ds3", True)}
self.agent.update(req)
expected_image_ds = [
{"name": "ds1", "used_for_vms": True},
{"name": "ds2", "used_for_vms": False},
{"name": "ds3", "used_for_vms": True},
]
assert_that(self.agent.image_datastores, contains_inanyorder(*expected_image_ds))
imageds_callback.assert_called_once_with(self.agent.image_datastores)
self.agent._load_config()
assert_that(self.agent.image_datastores, contains_inanyorder(*expected_image_ds))
示例3: test_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
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
self.agent.update_config(req)
self.assertTrue(self.agent.reboot_required)
示例4: _update_agent_invalid_config
def _update_agent_invalid_config(self):
"""
Negative test case to update the agent with an invalid config
"""
req = ProvisionRequest()
req.datastores = ["bootstrap_datastore"]
addr = ServerAddress(host="foobar", port=8835)
req.address = addr
req.memory_overcommit = 0.5
res = self.control_client.provision(req)
self.assertEqual(res.result, ProvisionResultCode.INVALID_CONFIG)
示例5: test_config_change
def test_config_change(self):
# Test cpu_overcommit and memory_overcommit config change
cpu_callback = mock.MagicMock()
mem_callback = mock.MagicMock()
provision = ProvisionRequest()
provision.cpu_overcommit = 5.0
provision.memory_overcommit = 6.0
self.agent.on_config_change(self.agent.CPU_OVERCOMMIT, cpu_callback)
self.agent.on_config_change(self.agent.MEMORY_OVERCOMMIT, mem_callback)
self.agent.provision(provision)
cpu_callback.assert_called_once_with(5.0)
mem_callback.assert_called_once_with(6.0)
示例6: test_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.datastores = ["ds3", "ds4"]
req.stats_plugin_config = StatsPluginConfig()
req.stats_plugin_config.enabled = False
addr = ServerAddress(host="localhost", port=2345)
req.address = addr
self.agent.provision(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.datastores = ["ds3", "ds4"]
addr = ServerAddress(host="localhost", port=2345)
req.address = addr
self.agent.provision(req)
self.assertTrue(self.agent.reboot_required)
示例7: test_load_image_datastores
def test_load_image_datastores(self):
"""
Verify that the image_datastores field gets loaded from config.json.
"""
self.agent._parse_options(["--config-path", self.agent_conf_dir])
expected_image_ds = [
{"name": "ds1", "used_for_vms": True},
{"name": "ds2", "used_for_vms": False},
]
req = ProvisionRequest()
req.datastores = ["ds1", "ds2", "ds3"]
req.image_datastores = set([ImageDatastore("ds1", True),
ImageDatastore("ds2", False)])
self.agent.update_config(req)
self.agent._persist_config()
self.agent._load_config()
assert_that(self.agent.datastores, equal_to(["ds1", "ds2", "ds3"]))
assert_that(self.agent.image_datastores, equal_to(expected_image_ds))
示例8: _update_agent_config
def _update_agent_config(self):
"""
Update the agent config using the bootstrap interface.
Verifies that thrift requests after a config update return back
SYSTEM_ERROR and the agent is stopped.
:return the request we used to configure the host with.
"""
req = ProvisionRequest()
req.datastores = ["bootstrap_datastore"]
req.networks = ["Bootstrap Network"]
addr = ServerAddress(host="foobar", port=8835)
req.address = addr
req.memory_overcommit = 2.0
res = self.control_client.provision(req)
self.assertEqual(res.result, ProvisionResultCode.OK)
# Now check that the agent went down and all requests fail until the
# agent restarts.
# Use a time greater than the restart poll thread.
remaining_sleep_time = 15
sleep_time = 0.5
agent_restarted = False
while 0 < remaining_sleep_time:
try:
res = self.control_client.get_agent_status()
# Verify that the response is restarting
self.assertEqual(res.status, AgentStatusCode.RESTARTING)
time.sleep(sleep_time)
remaining_sleep_time -= sleep_time
except TTransport.TTransportException:
agent_restarted = True
break
except:
logger.debug("Caught exception, assuming restart: ",
exc_info=True)
agent_restarted = True
break
self.assertTrue(agent_restarted)
return req
示例9: _update_agent_invalid_config
def _update_agent_invalid_config(self):
"""
Negative test case to update the agent with an invalid config
"""
req = ProvisionRequest()
req.availability_zone = "bootstrap_availability_zone_id"
req.datastores = ["bootstrap_datastore"]
req.networks = ["Bootstrap Network"]
addr = ServerAddress(host="foobar", port=8835)
req.address = addr
req.chairman_server = [ServerAddress("h1", 13000),
ServerAddress("h2", 13000)]
req.memory_overcommit = 0.5
res = self.control_client.provision(req)
self.assertEqual(res.result, ProvisionResultCode.INVALID_CONFIG)
示例10: _provision_host
def _provision_host(self, datastore):
""" Provisions the agents on the remote hosts """
req = ProvisionRequest()
req.availability_zone = "test"
req.datastores = [datastore]
req.networks = ["VM Network"]
req.address = ServerAddress(host="localhost", port=8835)
req.chairman_server = [ServerAddress("localhost", 13000)]
req.memory_overcommit = 2.0
req.image_datastores = set([ImageDatastore(name=datastore, used_for_vms=True)])
res = self.agent_client.provision(req)
# This will trigger a restart if the agent config changes, which
# will happen the first time provision_hosts is called.
self.assertEqual(res.result, ProvisionResultCode.OK)
# If a restart is required subsequent calls will fail.
# This is an indirect way to determine if a restart is required.
host_config_request = Host.GetConfigRequest()
res = self.host_client.get_host_config(host_config_request)
if res.result != GetConfigResultCode.OK:
# Sleep for 15 s for the agent to reboot and come back up
time.sleep(15)
示例11: test_agent_config_update
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,
"--hostname", "localhost",
"--port", "1234",
"--datastores", "ds1, ds2"])
expected_image_ds = [{"name": "ds3", "used_for_vms": True}]
self.assertFalse(self.agent.bootstrap_ready)
self.assertTrue(self.agent.provision_ready)
self.assertFalse(self.agent.reboot_required)
req = ProvisionRequest()
req.datastores = ["ds3", "ds4"]
req.memory_overcommit = 1.5
req.image_datastores = set([ImageDatastore("ds3", True)])
addr = ServerAddress(host="localhost", port=2345)
req.address = addr
stats_plugin_config = StatsPluginConfig(
stats_store_endpoint="10.0.0.100", stats_store_port=8081, stats_enabled=True)
req.stats_plugin_config = stats_plugin_config
req.host_id = "host1"
req.deployment_id = "deployment1"
self.agent.provision(req)
assert_that(self.agent.stats_store_endpoint, equal_to("10.0.0.100"))
assert_that(self.agent.stats_store_port, equal_to(8081))
assert_that(self.agent.stats_enabled, equal_to(True))
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.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"))
assert_that(self.agent.deployment_id, equal_to("deployment1"))
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.provision(req)
assert_that(self.agent.hostname, equal_to(None))
assert_that(self.agent.host_port, equal_to(8835))
assert_that(self.agent.datastores, 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.datastores = ["ds3", "ds4"]
req.memory_overcommit = 0.5
addr = ServerAddress(host="localhost", port=2345)
req.address = addr
# Verify an exception is raised.
self.assertRaises(InvalidConfig, self.agent.provision, req)
assert_that(self.agent.hostname, equal_to(None))
assert_that(self.agent.host_port, equal_to(8835))
assert_that(self.agent.datastores, equal_to([]))
self.assertFalse(self.agent.bootstrap_ready)
self.assertEqual(self.agent.memory_overcommit, 1.0)
示例12: test_agent_config_update
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)
示例13: provision_hosts
def provision_hosts(self, mem_overcommit=2.0,
datastores=None, used_for_vms=True,
image_ds=None, host_id=None,
deployment_id="test-deployment"):
""" Provisions the agents on the remote hosts """
if datastores is None:
datastores = self.get_all_datastores()
image_datastore = self.get_image_datastore()
elif image_ds:
image_datastore = image_ds
else:
image_datastore = datastores[0]
req = ProvisionRequest()
req.datastores = datastores
req.address = ServerAddress(host=self.server, port=8835)
req.memory_overcommit = mem_overcommit
req.image_datastore_info = ImageDatastore(
name=image_datastore,
used_for_vms=used_for_vms)
req.image_datastores = set([req.image_datastore_info])
req.management_only = True
req.auth_enabled = False
if host_id:
req.host_id = host_id
else:
req.host_id = self.host_id
if deployment_id:
req.deployment_id = deployment_id
else:
req.deployment_id = self.deployment_id
res = self.control_client.provision(req)
# This will trigger a restart if the agent config changes, which
# will happen the first time provision_hosts is called.
self.assertEqual(res.result, ProvisionResultCode.OK)
# Wait for up to 60 seconds for the agent to reboot.
count = 0
while count < 60:
try:
res = self.control_client.get_agent_status()
if res.status == AgentStatusCode.OK:
# Agent is up
return
except:
logger.exception("Can't connect to agent")
count += 1
time.sleep(1)
# Reconnect the clients
self._close_agent_connections()
self.client_connections()
self.fail("Cannot connect to agent %s after provisioning" % self.server)
return host_id
示例14: test_agent_config_set_availability_zone
def test_agent_config_set_availability_zone(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 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.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.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 update availability zone only.
setZone = SetAvailabilityZoneRequest()
setZone.availability_zone = "test2"
self.agent.set_availability_zone(setZone)
assert_that(self.agent.availability_zone, equal_to("test2"))
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.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)