def test_get_vm_netwokrs(self): vim_client = MagicMock() vim_client.get_networks.return_value = ["VM Network", "VM Network 2"] # Verify identical list works. network_manager = EsxNetworkManager(vim_client, ["VM Network", "VM Network 2"]) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network", "VM Network 2"]) # Verify strict subset works network_manager = EsxNetworkManager(vim_client, ["VM Network"]) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network"]) # Verify we filter out invalid networks. network_manager = EsxNetworkManager(vim_client, ["FOOBAR", "VM Network"]) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network"]) # If no network is specified, return the actual network list. network_manager = EsxNetworkManager(vim_client, None) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network", "VM Network 2"])
def __init__(self, agent_config): self.logger = logging.getLogger(__name__) # If VimClient's housekeeping thread failed to update its own cache, # call errback to commit suicide. Watchdog will bring up the agent # again. self.vim_client = VimClient(wait_timeout=agent_config.wait_timeout, errback=lambda: suicide()) atexit.register(lambda client: client.disconnect(), self.vim_client) self._uuid = self.vim_client.host_uuid self.set_memory_overcommit(agent_config.memory_overcommit) self.datastore_manager = EsxDatastoreManager( self, agent_config.datastores, agent_config.image_datastores) # datastore manager needs to update the cache when there is a change. self.vim_client.add_update_listener(self.datastore_manager) self.vm_manager = EsxVmManager(self.vim_client, self.datastore_manager) self.disk_manager = EsxDiskManager(self.vim_client, self.datastore_manager) self.image_manager = EsxImageManager(self.vim_client, self.datastore_manager) self.network_manager = EsxNetworkManager(self.vim_client, agent_config.networks) self.system = EsxSystem(self.vim_client) self.image_manager.monitor_for_cleanup() self.image_transferer = HttpNfcTransferer( self.vim_client, self.datastore_manager.image_datastores()) atexit.register(self.image_manager.cleanup)
def test_get_networks(self): """ Test normal get_network workflow: - call vim_client correctly. - collect network types and translate them to thrift representation correctly. """ vim_client = MagicMock() vim_client.get_network_configs.return_value = [ _net_config("faultToleranceLogging"), _net_config("management"), _net_config("vSphereReplication"), _net_config("vSphereReplicationNFC"), _net_config("vmotion"), _net_config("vsan"), _net_config("gandalfTheGray"), ] vim_client.get_networks.return_value = ["VM Network", "VM Network 2"] network_manager = EsxNetworkManager(vim_client, []) networks = network_manager.get_networks() assert_that(networks, has_length(3)) # Verify 2 VM networks assert_that(networks, has_item(Network("VM Network", [NetworkType.VM]))) assert_that(networks, has_item(Network("VM Network 2", [NetworkType.VM]))) # Verify management network mgmt_types = [ NetworkType.FT_LOGGING, NetworkType.MANAGEMENT, NetworkType.VSPHERE_REPLICATION, NetworkType.VSPHERE_REPLICATION_NFC, NetworkType.VMOTION, NetworkType.VSAN, NetworkType.OTHER, ].sort() network = self._find(MGMT_NETWORK_NAME, networks) assert_that(network.types.sort(), is_(mgmt_types))
def test_get_networks(self): """ Test normal get_network workflow: - call vim_client correctly. - collect network types and translate them to thrift representation correctly. """ vim_client = MagicMock() vim_client.get_network_configs.return_value = [ _net_config("faultToleranceLogging"), _net_config("management"), _net_config("vSphereReplication"), _net_config("vSphereReplicationNFC"), _net_config("vmotion"), _net_config("vsan"), _net_config("gandalfTheGray"), ] vim_client.get_networks.return_value = ["VM Network", "VM Network 2"] network_manager = EsxNetworkManager(vim_client, []) networks = network_manager.get_networks() assert_that(networks, has_length(3)) # Verify 2 VM networks assert_that(networks, has_item(Network("VM Network", [NetworkType.VM]))) assert_that(networks, has_item(Network("VM Network 2", [NetworkType.VM]))) # Verify management network mgmt_types = [ NetworkType.FT_LOGGING, NetworkType.MANAGEMENT, NetworkType.VSPHERE_REPLICATION, NetworkType.VSPHERE_REPLICATION_NFC, NetworkType.VMOTION, NetworkType.VSAN, NetworkType.OTHER, ].sort() network = self._find(MGMT_NETWORK_NAME, networks) assert_that(network.types.sort(), is_(mgmt_types))
def __init__(self, agent_config): self.logger = logging.getLogger(__name__) # If VimClient's housekeeping thread failed to update its own cache, # call errback to commit suicide. Watchdog will bring up the agent # again. errback = lambda: suicide() self.vim_client = VimClient(wait_timeout=agent_config.wait_timeout, errback=errback) atexit.register(lambda client: client.disconnect(), self.vim_client) self._uuid = self.vim_client.host_uuid # Enable/Disable large page support. If this host is removed # from the deployment, large page support will need to be # explicitly updated by the user. disable_large_pages = agent_config.memory_overcommit > 1.0 self.vim_client.set_large_page_support(disable=disable_large_pages) image_datastores = [ds["name"] for ds in agent_config.image_datastores] self.datastore_manager = EsxDatastoreManager(self, agent_config.datastores, image_datastores) # datastore manager needs to update the cache when there is a change. self.vim_client.add_update_listener(self.datastore_manager) self.vm_manager = EsxVmManager(self.vim_client, self.datastore_manager) self.disk_manager = EsxDiskManager(self.vim_client, self.datastore_manager) self.image_manager = EsxImageManager(self.vim_client, self.datastore_manager) self.network_manager = EsxNetworkManager(self.vim_client, agent_config.networks) self.system = EsxSystem(self.vim_client) self.image_manager.monitor_for_cleanup() self.image_transferer = HttpNfcTransferer(self.vim_client, image_datastores) atexit.register(self.image_manager.cleanup)
def test_get_vm_netwokrs(self): vim_client = MagicMock() vim_client.get_networks.return_value = ["VM Network", "VM Network 2"] # Verify identical list works. network_manager = EsxNetworkManager(vim_client, ["VM Network", "VM Network 2"]) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network", "VM Network 2"]) # Verify strict subset works network_manager = EsxNetworkManager(vim_client, ["VM Network"]) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network"]) # Verify we filter out invalid networks. network_manager = EsxNetworkManager(vim_client, ["FOOBAR", "VM Network"]) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network"]) # If no network is specified, return the actual network list. network_manager = EsxNetworkManager(vim_client, None) networks = network_manager.get_vm_networks() self.assertEqual(networks, ["VM Network", "VM Network 2"])