class HazelcastCloudProviderTest(TestCase): expected_addresses = dict() cloud_discovery = None provider = None def setUp(self): self.expected_addresses[Address("10.0.0.1", 5701)] = Address("198.51.100.1", 5701) self.expected_addresses[Address("10.0.0.1", 5702)] = Address("198.51.100.1", 5702) self.expected_addresses[Address("10.0.0.2", 5701)] = Address("198.51.100.2", 5701) self.cloud_discovery = HazelcastCloudDiscovery("", "", 0) self.cloud_discovery.discover_nodes = lambda: self.expected_addresses self.provider = HazelcastCloudAddressProvider("", "", 0) self.provider.cloud_discovery = self.cloud_discovery def test_load_addresses(self): addresses = self.provider.load_addresses() self.assertEqual(3, len(addresses)) for address in self.expected_addresses.keys(): addresses.remove(address) self.assertEqual(0, len(addresses)) def test_load_addresses_with_exception(self): self.provider.cloud_discovery.discover_nodes = self.mock_discover_nodes_with_exception addresses = self.provider.load_addresses() self.assertEqual(0, len(addresses)) def mock_discover_nodes_with_exception(self): raise Exception("Expected exception")
def setUp(self): self.expected_addresses[Address("10.0.0.1", 5701)] = Address("198.51.100.1", 5701) self.expected_addresses[Address("10.0.0.1", 5702)] = Address("198.51.100.1", 5702) self.expected_addresses[Address("10.0.0.2", 5701)] = Address("198.51.100.2", 5701) self.expected_addresses[self.private_address] = self.public_address self.cloud_discovery = HazelcastCloudDiscovery("", 0) self.cloud_discovery.discover_nodes = lambda: self.expected_addresses self.provider = HazelcastCloudAddressProvider("", 0) self.provider.cloud_discovery = self.cloud_discovery
def _init_cloud_address_provider(self, cloud_config): if cloud_config.enabled: discovery_token = cloud_config.discovery_token host, url = HazelcastCloudDiscovery.get_host_and_url(self.config.get_properties(), discovery_token) return HazelcastCloudAddressProvider(host, url, self._get_connection_timeout(), self._logger_extras) cloud_token = self.properties.get(self.properties.HAZELCAST_CLOUD_DISCOVERY_TOKEN) if cloud_token != "": host, url = HazelcastCloudDiscovery.get_host_and_url(self.config.get_properties(), cloud_token) return HazelcastCloudAddressProvider(host, url, self._get_connection_timeout(), self._logger_extras) return None
def _create_address_provider(self): config = self._config cluster_members = config.cluster_members address_list_provided = len(cluster_members) > 0 cloud_discovery_token = config.cloud_discovery_token cloud_enabled = cloud_discovery_token is not None if address_list_provided and cloud_enabled: raise IllegalStateError( "Only one discovery method can be enabled at a time. " "Cluster members given explicitly: %s, Hazelcast Cloud enabled: %s" % (address_list_provided, cloud_enabled)) if cloud_enabled: connection_timeout = self._get_connection_timeout(config) return HazelcastCloudAddressProvider(cloud_discovery_token, connection_timeout) return DefaultAddressProvider(cluster_members)
class HazelcastCloudProviderTest(TestCase): expected_addresses = dict() cloud_discovery = None provider = None private_address = Address("127.0.0.1", 5701) public_address = Address("192.168.0.1", 5701) def setUp(self): self.expected_addresses[Address("10.0.0.1", 5701)] = Address("198.51.100.1", 5701) self.expected_addresses[Address("10.0.0.1", 5702)] = Address("198.51.100.1", 5702) self.expected_addresses[Address("10.0.0.2", 5701)] = Address("198.51.100.2", 5701) self.expected_addresses[self.private_address] = self.public_address self.cloud_discovery = HazelcastCloudDiscovery("", 0) self.cloud_discovery.discover_nodes = lambda: self.expected_addresses self.provider = HazelcastCloudAddressProvider("", 0) self.provider.cloud_discovery = self.cloud_discovery def test_load_addresses(self): addresses, secondaries = self.provider.load_addresses() self.assertEqual(4, len(addresses)) self.assertEqual(0, len(secondaries)) six.assertCountEqual(self, list(self.expected_addresses.keys()), addresses) def test_load_addresses_with_exception(self): self.provider.cloud_discovery.discover_nodes = self.mock_discover_nodes_with_exception addresses, secondaries = self.provider.load_addresses() self.assertEqual(0, len(addresses)) self.assertEqual(0, len(secondaries)) def test_translate_when_address_is_none(self): actual = self.provider.translate(None) self.assertIsNone(actual) def test_translate(self): actual = self.provider.translate(self.private_address) self.assertEqual(self.public_address, actual) def test_refresh_and_translate(self): self.provider.refresh() actual = self.provider.translate(self.private_address) self.assertEqual(self.public_address, actual) def test_translate_when_not_found(self): not_available_address = Address("127.0.0.3", 5701) actual = self.provider.translate(not_available_address) self.assertIsNone(actual) def test_refresh_with_exception(self): cloud_discovery = HazelcastCloudDiscovery("", 0) cloud_discovery.discover_nodes = self.mock_discover_nodes_with_exception provider = HazelcastCloudAddressProvider("", 0) provider.cloud_discovery = cloud_discovery provider.refresh() def mock_discover_nodes_with_exception(self): raise Exception("Expected exception")
def test_refresh_with_exception(self): cloud_discovery = HazelcastCloudDiscovery("", 0) cloud_discovery.discover_nodes = self.mock_discover_nodes_with_exception provider = HazelcastCloudAddressProvider("", 0) provider.cloud_discovery = cloud_discovery provider.refresh()
def setUp(self): self.network_config = ClientNetworkConfig() self.cloud_address_provider = HazelcastCloudAddressProvider("", "", 0) self.cloud_address_provider.load_addresses = lambda: [ Address("10.0.0.1", 5701) ]