@@ -92,6 +92,18 @@ def _tuple_version(version_string):
92
92
return tuple ([int (p ) for p in version_string .split ('.' )])
93
93
94
94
95
+ def cmd_line_args_to_dict (env_var ):
96
+ cmd_args_env = os .environ .get (env_var , None )
97
+ args = {}
98
+ if cmd_args_env :
99
+ cmd_args = cmd_args_env .strip ().split (' ' )
100
+ while cmd_args :
101
+ cmd_arg = cmd_args .pop (0 )
102
+ cmd_arg_value = True if cmd_arg .startswith ('--' ) else cmd_args .pop (0 )
103
+ args [cmd_arg .lstrip ('-' )] = cmd_arg_value
104
+ return args
105
+
106
+
95
107
def _get_dse_version_from_cass (cass_version ):
96
108
if cass_version .startswith ('2.1' ):
97
109
dse_ver = "4.8.15"
@@ -106,7 +118,6 @@ def _get_dse_version_from_cass(cass_version):
106
118
dse_ver = "2.1"
107
119
return dse_ver
108
120
109
-
110
121
USE_CASS_EXTERNAL = bool (os .getenv ('USE_CASS_EXTERNAL' , False ))
111
122
KEEP_TEST_CLUSTER = bool (os .getenv ('KEEP_TEST_CLUSTER' , False ))
112
123
SIMULACRON_JAR = os .getenv ('SIMULACRON_JAR' , None )
@@ -115,7 +126,15 @@ def _get_dse_version_from_cass(cass_version):
115
126
CASSANDRA_DIR = os .getenv ('CASSANDRA_DIR' , None )
116
127
117
128
default_cassandra_version = '3.11'
118
- CASSANDRA_VERSION = Version (os .getenv ('CASSANDRA_VERSION' , default_cassandra_version ))
129
+ cv_string = os .getenv ('CASSANDRA_VERSION' , default_cassandra_version )
130
+ mcv_string = os .getenv ('MAPPED_CASSANDRA_VERSION' , None )
131
+ try :
132
+ cassandra_version = Version (cv_string ) # env var is set to test-dse
133
+ except :
134
+ # fallback to MAPPED_CASSANDRA_VERSION
135
+ cassandra_version = Version (mcv_string )
136
+ CASSANDRA_VERSION = Version (mcv_string ) if mcv_string else cassandra_version
137
+ CCM_VERSION = cassandra_version if mcv_string else CASSANDRA_VERSION
119
138
120
139
default_dse_version = _get_dse_version_from_cass (CASSANDRA_VERSION .base_version )
121
140
@@ -128,7 +147,8 @@ def _get_dse_version_from_cass(cass_version):
128
147
129
148
else :
130
149
log .info ('Using Cassandra version: %s' , CASSANDRA_VERSION )
131
- CCM_KWARGS ['version' ] = CASSANDRA_VERSION
150
+ log .info ('Using CCM version: %s' , CCM_VERSION )
151
+ CCM_KWARGS ['version' ] = CCM_VERSION
132
152
133
153
#This changes the default contact_point parameter in Cluster
134
154
def set_default_cass_ip ():
@@ -339,7 +359,7 @@ def use_cluster(cluster_name, nodes, ipformat=None, start=True, workloads=[], se
339
359
elif ccm_options is None :
340
360
ccm_options = CCM_KWARGS .copy ()
341
361
342
- cassandra_version = ccm_options .get ('version' , CASSANDRA_VERSION )
362
+ cassandra_version = ccm_options .get ('version' , CCM_VERSION )
343
363
dse_version = ccm_options .get ('version' , DSE_VERSION )
344
364
345
365
if 'version' in ccm_options :
@@ -373,6 +393,8 @@ def use_cluster(cluster_name, nodes, ipformat=None, start=True, workloads=[], se
373
393
log .warning ("{0}: {1} Backtrace: {2}" .format (ex_type .__name__ , ex , traceback .extract_tb (tb )))
374
394
del tb
375
395
396
+ ccm_options .update (cmd_line_args_to_dict ('CCM_ARGS' ))
397
+
376
398
log .debug ("Creating new CCM cluster, {0}, with args {1}" .format (cluster_name , ccm_options ))
377
399
378
400
if dse_cluster :
@@ -391,7 +413,6 @@ def use_cluster(cluster_name, nodes, ipformat=None, start=True, workloads=[], se
391
413
392
414
CCM_CLUSTER .set_dse_configuration_options (dse_options )
393
415
else :
394
- log .debug ("Creating new CCM cluster, {0}, with args {1}" .format (cluster_name , ccm_options ))
395
416
CCM_CLUSTER = CCMCluster (path , cluster_name , ** ccm_options )
396
417
CCM_CLUSTER .set_configuration_options ({'start_native_transport' : True })
397
418
if cassandra_version >= Version ('2.2' ):
0 commit comments