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
Esempio n. 4
0
    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()