Skip to content

Commit 30240a9

Browse files
CNDB-9974: Fix tests for CASSANDRA-18252 - removal of scripted UDFs
The ticket also fixes STAR-1886. Backporting CASSANDRA-17190 required also CASSANDRA-17383.
1 parent b5cb1da commit 30240a9

File tree

5 files changed

+25
-24
lines changed

5 files changed

+25
-24
lines changed

auth_test.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,7 +1229,7 @@ def fixture_dtest_setup_overrides(self, dtest_config):
12291229
@jira_ticket CASSANDRA-7653
12301230
"""
12311231
dtest_setup_overrides = DTestSetupOverrides()
1232-
if '3.0' <= dtest_config.cassandra_version_from_build < '4.2':
1232+
if '3.0' <= dtest_config.cassandra_version_from_build < '4.0':
12331233
dtest_setup_overrides.cluster_options = ImmutableMapping({'enable_user_defined_functions': 'true',
12341234
'enable_scripted_user_defined_functions': 'true'})
12351235
else:
@@ -1401,7 +1401,7 @@ def test_creator_of_db_resource_granted_all_permissions(self):
14011401
as_mike.execute("CREATE KEYSPACE ks WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}")
14021402
as_mike.execute("CREATE TABLE ks.cf (id int primary key, val int)")
14031403
as_mike.execute("CREATE ROLE role1 WITH PASSWORD = '11111' AND SUPERUSER = false AND LOGIN = true")
1404-
if self.cluster.version() < LooseVersion('4.2'):
1404+
if self.cluster.version() < LooseVersion('4.0'):
14051405
as_mike.execute("""CREATE FUNCTION ks.state_function_1(a int, b int)
14061406
CALLED ON NULL INPUT
14071407
RETURNS int
@@ -1698,7 +1698,7 @@ def test_filter_granted_permissions_by_resource_type(self):
16981698
self.superuser.execute("CREATE TABLE ks.cf (id int primary key, val int)")
16991699
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND SUPERUSER = false AND LOGIN = true")
17001700
self.superuser.execute("CREATE ROLE role1 WITH SUPERUSER = false AND LOGIN = false")
1701-
if self.cluster.version() < LooseVersion('4.2'):
1701+
if self.cluster.version() < LooseVersion('4.0'):
17021702
self.superuser.execute("CREATE FUNCTION ks.state_func(a int, b int) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'a+b'")
17031703
else:
17041704
self.superuser.execute("CREATE FUNCTION ks.state_func(a int, b int) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS ' return a+b;'")
@@ -2180,7 +2180,7 @@ def test_grant_revoke_udf_permissions(self):
21802180
"""
21812181
self.setup_table()
21822182
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
2183-
if self.cluster.version() < LooseVersion('4.2'):
2183+
if self.cluster.version() < LooseVersion('4.0'):
21842184
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
21852185
self.superuser.execute("CREATE FUNCTION ks.\"plusOne\" ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
21862186
else:
@@ -2229,7 +2229,7 @@ def test_grant_revoke_are_idempotent(self):
22292229
"""
22302230
self.setup_table()
22312231
self.superuser.execute("CREATE ROLE mike")
2232-
if self.cluster.version() < LooseVersion('4.2'):
2232+
if self.cluster.version() < LooseVersion('4.0'):
22332233
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
22342234
else:
22352235
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2260,7 +2260,7 @@ def test_function_resource_hierarchy_permissions(self):
22602260
self.superuser.execute("INSERT INTO ks.t1 (k,v) values (1,1)")
22612261
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
22622262
self.superuser.execute("GRANT SELECT ON ks.t1 TO mike")
2263-
if self.cluster.version() < LooseVersion('4.2'):
2263+
if self.cluster.version() < LooseVersion('4.0'):
22642264
self.superuser.execute("CREATE FUNCTION ks.func_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
22652265
self.superuser.execute("CREATE FUNCTION ks.func_two ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
22662266
else:
@@ -2319,15 +2319,15 @@ def test_udf_permissions_validation(self):
23192319
* Verify mike can create a new UDF iff he has the CREATE permission
23202320
"""
23212321
self.setup_table()
2322-
if self.cluster.version() < LooseVersion('4.2'):
2322+
if self.cluster.version() < LooseVersion('4.0'):
23232323
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
23242324
else:
23252325
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
23262326
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
23272327
as_mike = self.get_session(user='mike', password='12345')
23282328

23292329
# can't replace an existing function without ALTER permission on the parent ks
2330-
if self.cluster.version() < LooseVersion('4.2'):
2330+
if self.cluster.version() < LooseVersion('4.0'):
23312331
cql = "CREATE OR REPLACE FUNCTION ks.plus_one( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript as '1 + input'"
23322332
else:
23332333
cql = "CREATE OR REPLACE FUNCTION ks.plus_one( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java as 'return 1 + input;'"
@@ -2370,7 +2370,7 @@ def test_udf_permissions_validation(self):
23702370
InvalidRequest)
23712371

23722372
# can't create a new function without CREATE on the parent keyspace's collection of functions
2373-
if self.cluster.version() < LooseVersion('4.2'):
2373+
if self.cluster.version() < LooseVersion('4.0'):
23742374
cql = "CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'"
23752375
else:
23762376
cql = "CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'"
@@ -2390,7 +2390,7 @@ def test_drop_role_cleans_up_udf_permissions(self):
23902390
"""
23912391
self.setup_table()
23922392
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
2393-
if self.cluster.version() < LooseVersion('4.2'):
2393+
if self.cluster.version() < LooseVersion('4.0'):
23942394
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
23952395
else:
23962396
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2421,7 +2421,7 @@ def test_drop_function_and_keyspace_cleans_up_udf_permissions(self):
24212421
"""
24222422
self.setup_table()
24232423
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
2424-
if self.cluster.version() < LooseVersion('4.2'):
2424+
if self.cluster.version() < LooseVersion('4.0'):
24252425
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
24262426
else:
24272427
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2452,7 +2452,7 @@ def test_udf_with_overloads_permissions(self):
24522452
"""
24532453
self.setup_table()
24542454
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
2455-
if self.cluster.version() < LooseVersion('4.2'):
2455+
if self.cluster.version() < LooseVersion('4.0'):
24562456
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
24572457
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input double ) CALLED ON NULL INPUT RETURNS double LANGUAGE javascript AS 'input + 1'")
24582458
else:
@@ -2499,7 +2499,7 @@ def test_drop_keyspace_cleans_up_function_level_permissions(self):
24992499
"""
25002500
self.setup_table()
25012501
self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND LOGIN = true")
2502-
if self.cluster.version() < LooseVersion('4.2'):
2502+
if self.cluster.version() < LooseVersion('4.0'):
25032503
self.superuser.execute("CREATE FUNCTION ks.state_func (a int, b int) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'a + b'")
25042504
else:
25052505
self.superuser.execute("CREATE FUNCTION ks.state_func (a int, b int) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return a + b;'")
@@ -2555,7 +2555,7 @@ def verify_udf_permissions(self, cql):
25552555
@param cql The statement to verify. Should contain the UDF ks.plus_one
25562556
"""
25572557
self.setup_table()
2558-
if self.cluster.version() < LooseVersion('4.2'):
2558+
if self.cluster.version() < LooseVersion('4.0'):
25592559
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
25602560
else:
25612561
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2579,7 +2579,7 @@ def test_inheritence_of_udf_permissions(self):
25792579
self.setup_table()
25802580
self.superuser.execute("CREATE ROLE function_user")
25812581
self.superuser.execute("GRANT EXECUTE ON ALL FUNCTIONS IN KEYSPACE ks TO function_user")
2582-
if self.cluster.version() < LooseVersion('4.2'):
2582+
if self.cluster.version() < LooseVersion('4.0'):
25832583
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
25842584
else:
25852585
self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")

cqlsh_tests/test_cqlsh.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class TestCqlsh(Tester, CqlshMixin):
107107
def fixture_dtest_setup_overrides(self, dtest_config):
108108
dtest_setup_overrides = DTestSetupOverrides()
109109

110-
if '3.0' <= dtest_config.cassandra_version_from_build < '4.2':
110+
if '3.0' <= dtest_config.cassandra_version_from_build < '4.0':
111111
dtest_setup_overrides.cluster_options = ImmutableMapping({'enable_user_defined_functions': 'true',
112112
'enable_scripted_user_defined_functions': 'true'})
113113
else:

schema_metadata_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ def fixture_set_cluster_settings(self, fixture_dtest_setup):
507507
cluster = fixture_dtest_setup.cluster
508508
cluster.schema_event_refresh_window = 0
509509

510-
if cluster.version() >= '4.2':
510+
if cluster.version() >= '4.0':
511511
cluster.set_configuration_options({'enable_user_defined_functions': 'true'})
512512
elif cluster.version() >= '3.0':
513513
cluster.set_configuration_options({'enable_user_defined_functions': 'true',

upgrade_tests/upgrade_through_versions_test.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,8 @@ def upgrade_to_version(self, version_meta, partial=False, nodes=None, internode_
564564
logger.debug("Set new cassandra dir for %s: %s" % (node.name, node.get_install_dir()))
565565
if internode_ssl and (LooseVersion(version_meta.family) >= CASSANDRA_4_0):
566566
node.set_configuration_options({'server_encryption_options': {'enabled': True, 'enable_legacy_ssl_storage_port': True}})
567-
if LooseVersion(version_meta.family) >= CASSANDRA_5_0:
567+
568+
if LooseVersion(version_meta.family) >= CASSANDRA_4_0:
568569
# only clusters starting from <5.0 will have enable_scripted_user_defined_functions=true
569570
node.set_configuration_options({'enable_scripted_user_defined_functions': 'false'})
570571

@@ -817,7 +818,7 @@ def _bootstrap_new_node(self):
817818
logger.debug("Adding a node to the cluster")
818819
nnode = new_node(self.cluster, remote_debug_port=str(2000 + len(self.cluster.nodes)), data_center=self.cluster.nodelist()[0].data_center)
819820

820-
if nnode.get_cassandra_version() >= '4.2':
821+
if nnode.get_cassandra_version() >= '4.0':
821822
nnode.set_configuration_options({'enable_scripted_user_defined_functions': 'false'})
822823

823824
nnode.start(use_jna=True, wait_other_notice=240, wait_for_binary_proto=True)
@@ -831,7 +832,7 @@ def _bootstrap_new_node_multidc(self):
831832
logger.debug("Adding a node to the cluster")
832833
nnode = new_node(self.cluster, remote_debug_port=str(2000 + len(self.cluster.nodes)), data_center='dc2')
833834

834-
if nnode.get_cassandra_version() >= '4.2':
835+
if nnode.get_cassandra_version() >= '4.0':
835836
nnode.set_configuration_options({'enable_scripted_user_defined_functions': 'false'})
836837

837838
nnode.start(use_jna=True, wait_other_notice=240, wait_for_binary_proto=True)

user_functions_test.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class TestUserFunctions(Tester):
2424
def fixture_dtest_setup_overrides(self, dtest_config):
2525
dtest_setup_overrides = DTestSetupOverrides()
2626

27-
if '3.0' <= dtest_config.cassandra_version_from_build < '4.2':
27+
if '3.0' <= dtest_config.cassandra_version_from_build < '4.0':
2828
dtest_setup_overrides.cluster_options = ImmutableMapping({'enable_user_defined_functions': 'true',
2929
'enable_scripted_user_defined_functions': 'true'})
3030
else:
@@ -147,7 +147,7 @@ def test_udf_overload(self):
147147
session.execute("CREATE OR REPLACE FUNCTION overloaded(v ascii) called on null input RETURNS text LANGUAGE java AS 'return \"f1\";'")
148148

149149
# ensure that works with correct specificity
150-
if self.cluster.version() < LooseVersion('4.1'):
150+
if self.cluster.version() < LooseVersion('4.0'):
151151
assert_invalid(session, "SELECT v FROM tab WHERE k = overloaded('foo')")
152152
else:
153153
assert_none(session, "SELECT v FROM tab WHERE k = overloaded('foo')")
@@ -170,7 +170,7 @@ def test_udf_overload(self):
170170
# should now work - unambiguous
171171
session.execute("DROP FUNCTION overloaded")
172172

173-
@since('3.0', max_version='4.1.x')
173+
@since('3.0', max_version='4.0.x')
174174
def test_udf_scripting(self):
175175
session = self.prepare()
176176
session.execute("create table nums (key int primary key, val double);")
@@ -211,7 +211,7 @@ def test_default_aggregate(self):
211211
assert_one(session, "SELECT avg(val) FROM nums", [5.0])
212212
assert_one(session, "SELECT count(*) FROM nums", [9])
213213

214-
if self.cluster.version() < LooseVersion('4.2'):
214+
if self.cluster.version() < LooseVersion('4.0'):
215215
session.execute("create function test(a int, b double) called on null input returns int language javascript as 'a + b;'")
216216
else:
217217
session.execute("create function test(a int, b double) called on null input returns int language java as 'return a + Integer.valueOf(b.intValue());'")

0 commit comments

Comments
 (0)