static InstanceMetadata buildInstanceMetadata()

in integration-framework/src/main/java/org/apache/cassandra/sidecar/testing/SharedClusterIntegrationTestBase.java [771:825]


        static InstanceMetadata buildInstanceMetadata(Vertx vertx,
                                                      IInstance cassandraInstance,
                                                      CassandraVersionProvider versionProvider,
                                                      String sidecarVersion,
                                                      JmxConfiguration jmxConfiguration,
                                                      CQLSessionProvider session,
                                                      DnsResolver dnsResolver,
                                                      IsolatedDTestClassLoaderWrapper wrapper)
        {
            IInstanceConfig config = cassandraInstance.config();
            String ipAddress = JMXUtil.getJmxHost(config);
            String hostName;
            try
            {
                hostName = dnsResolver.reverseResolve(ipAddress);
            }
            catch (UnknownHostException e)
            {
                hostName = ipAddress;
            }
            int port = tryGetIntConfig(config, "native_transport_port", 9042);
            String[] dataDirectories = (String[]) config.get("data_file_directories");
            String stagingDir = stagingDir(dataDirectories);

            JmxClient jmxClient = new JmxClientProxy(wrapper,
                                                     JmxClient.builder()
                                                              .host(ipAddress)
                                                              .port(config.jmxPort())
                                                              .connectionMaxRetries(jmxConfiguration.maxRetries())
                                                              .connectionRetryDelay(jmxConfiguration.retryDelay()));
            MetricRegistry metricRegistry = new MetricRegistry();
            CassandraAdapterDelegate delegate = new CassandraAdapterDelegate(vertx,
                                                                             config.num(),
                                                                             versionProvider,
                                                                             session,
                                                                             jmxClient,
                                                                             new DriverUtils(),
                                                                             sidecarVersion,
                                                                             ipAddress,
                                                                             port,
                                                                             new InstanceHealthMetrics(metricRegistry));
            return InstanceMetadataImpl.builder()
                                       .id(config.num())
                                       .host(hostName)
                                       .port(port)
                                       .dataDirs(List.of(dataDirectories))
                                       .cdcDir(config.getString("cdc_raw_directory"))
                                       .commitlogDir(config.getString("commitlog_directory"))
                                       .hintsDir(config.getString("hints_directory"))
                                       .savedCachesDir(config.getString("saved_caches_directory"))
                                       .stagingDir(stagingDir)
                                       .delegate(delegate)
                                       .metricRegistry(metricRegistry)
                                       .build();
        }