CCM::internalSetup PHP Method

internalSetup() private method

private internalSetup ( $dataCenterOneNodes, $dataCenterTwoNodes )
    private function internalSetup($dataCenterOneNodes, $dataCenterTwoNodes)
    {
        $this->dataCenterOneNodes = $dataCenterOneNodes;
        $this->dataCenterTwoNodes = $dataCenterTwoNodes;
        $clusters = $this->getClusters();
        $clusterName = $this->clusterPrefix . '_' . $this->version . '_' . $dataCenterOneNodes . '-' . $dataCenterTwoNodes;
        if ($this->ssl) {
            $clusterName .= "_ssl";
        }
        if ($this->clientAuth) {
            $clusterName .= "_client_auth";
        }
        if ($clusters['active'] != $clusterName) {
            // Ensure any active cluster is stopped
            if (!empty($clusters['active'])) {
                $this->stop();
            }
            // Determine if a cluster should be created or re-used
            if (in_array($clusterName, $clusters['list'])) {
                $this->run('switch', $clusterName);
            } else {
                $this->run('create', '-v', 'binary:' . $this->version, '-b', $clusterName);
                $params = array('updateconf', '--rt', '1000', 'read_request_timeout_in_ms: 1000', 'write_request_timeout_in_ms: 1000', 'request_timeout_in_ms: 1000', 'phi_convict_threshold: 16', 'hinted_handoff_enabled: false', 'dynamic_snitch_update_interval_in_ms: 1000');
                if (substr($this->version, 0, 4) == '1.2.') {
                    $params[] = 'reduce_cache_sizes_at: 0';
                    $params[] = 'reduce_cache_capacity_to: 0';
                    $params[] = 'flush_largest_memtables_at: 0';
                    $params[] = 'index_interval: 512';
                } else {
                    $params[] = 'cas_contention_timeout_in_ms: 10000';
                    $params[] = 'file_cache_size_in_mb: 0';
                }
                $params[] = 'native_transport_max_threads: 1';
                $params[] = 'rpc_min_threads: 1';
                $params[] = 'rpc_max_threads: 1';
                $params[] = 'concurrent_reads: 2';
                $params[] = 'concurrent_writes: 2';
                $params[] = 'concurrent_compactors: 1';
                $params[] = 'compaction_throughput_mb_per_sec: 0';
                if (strcmp($this->version, '2.1') < 0) {
                    $params[] = 'in_memory_compaction_limit_in_mb: 1';
                }
                if (version_compare($this->version, "2.2.0", ">=")) {
                    $this->run('updateconf', 'enable_user_defined_functions: true');
                }
                if (version_compare($this->version, "3.0.0", ">=")) {
                    $this->run('updateconf', 'enable_scripted_user_defined_functions: true');
                }
                $params[] = 'key_cache_size_in_mb: 0';
                $params[] = 'key_cache_save_period: 0';
                $params[] = 'memtable_flush_writers: 1';
                $params[] = 'max_hints_delivery_threads: 1';
                call_user_func_array(array($this, 'run'), $params);
                $this->run('populate', '-n', $dataCenterOneNodes . ':' . $dataCenterTwoNodes, '-i', '127.0.0.');
            }
        }
    }