def test_private_link_response(self): discovery = HazelcastCloudDiscovery( *get_params(HOST, self.server.port, CLOUD_URL, PRIVATE_LINK_TOKEN)) discovery._ctx = self.ctx addresses = discovery.discover_nodes() six.assertCountEqual(self, PRIVATE_LINK_ADDRESSES, addresses)
def test_found_response(self): discovery = HazelcastCloudDiscovery( *get_params(HOST, self.server.port, CLOUD_URL, TOKEN)) discovery._ctx = self.ctx addresses = discovery.discover_nodes() six.assertCountEqual(self, ADDRESSES, addresses)
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_translator(self): network_config = self.config.network_config cloud_config = network_config.cloud_config cloud_discovery_token = self.properties.get( self.properties.HAZELCAST_CLOUD_DISCOVERY_TOKEN) address_list_provided = len(network_config.addresses) != 0 if cloud_discovery_token != "" and cloud_config.enabled: raise HazelcastIllegalStateError( "Ambiguous Hazelcast.cloud configuration. " "Both property based and client configuration based settings are provided " "for Hazelcast cloud discovery together. Use only one.") hazelcast_cloud_enabled = cloud_discovery_token != "" or cloud_config.enabled self._is_discovery_configuration_consistent(address_list_provided, hazelcast_cloud_enabled) if hazelcast_cloud_enabled: if cloud_config.enabled: discovery_token = cloud_config.discovery_token else: discovery_token = cloud_discovery_token host, url = HazelcastCloudDiscovery.get_host_and_url( self.config.get_properties(), discovery_token) return HazelcastCloudAddressTranslator( host, url, self._get_connection_timeout(), self._logger_extras) return DefaultAddressTranslator()
def test_default_cloud_url(self): self.config.set_property( ClientProperties.HAZELCAST_CLOUD_DISCOVERY_TOKEN.name, self.token) host, url = HazelcastCloudDiscovery.get_host_and_url( self.config._properties, self.token) self.assertEqual("coordinator.hazelcast.cloud", host) self.assertEqual("/cluster/discovery?token=TOKEN", url)
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 setUp(self): self.private_address = Address("127.0.0.1", 5701) self.public_address = Address("192.168.0.1", 5701) self.lookup[self.private_address] = self.public_address self.lookup[Address("127.0.0.2", 5701)] = Address("192.168.0.2", 5701) self.cloud_discovery = HazelcastCloudDiscovery("", "", 0) self.cloud_discovery.discover_nodes = lambda: self.lookup self.translator = HazelcastCloudAddressTranslator("", "", 0) self.translator.cloud_discovery = self.cloud_discovery
def test_custom_url_with_http(self): self.config.set_property( ClientProperties.HAZELCAST_CLOUD_DISCOVERY_TOKEN.name, self.token) self.config.set_property( HazelcastCloudDiscovery.CLOUD_URL_BASE_PROPERTY.name, "http://dev.hazelcast.cloud") host, url = HazelcastCloudDiscovery.get_host_and_url( self.config._properties, self.token) self.assertEqual("dev.hazelcast.cloud", host) self.assertEqual("/cluster/discovery?token=TOKEN", url)
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 test_refresh_with_exception(self): cloud_discovery = HazelcastCloudDiscovery("", "", 0) cloud_discovery.discover_nodes = self.mock_discover_nodes_with_exception translator = HazelcastCloudAddressTranslator("", "", 0) translator.cloud_discovery = cloud_discovery translator.refresh()
def create_discovery(host, port, url, token, timeout=5.0): discovery = HazelcastCloudDiscovery(token, timeout) discovery._CLOUD_URL_BASE = "%s:%s" % (host, port) discovery._CLOUD_URL_PATH = url return discovery
def test_invalid_certificates(self): discovery = HazelcastCloudDiscovery( *get_params(HOST, self.server.port, CLOUD_URL, TOKEN)) with self.assertRaises(HazelcastCertificationError): discovery.discover_nodes()
def test_invalid_url(self): discovery = HazelcastCloudDiscovery( *get_params(HOST, self.server.port, "/INVALID_URL", "")) discovery._ctx = self.ctx with self.assertRaises(IOError): discovery.discover_nodes()
def test_not_found_response(self): discovery = HazelcastCloudDiscovery( *get_params(HOST, self.server.port, CLOUD_URL, "INVALID_TOKEN")) discovery._ctx = self.ctx with self.assertRaises(IOError): discovery.discover_nodes()