mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
add test_encrypted_disk integration test
This commit is contained in:
parent
928c8bf1de
commit
9029ca8c36
0
tests/integration/test_encrypted_disk/__init__.py
Normal file
0
tests/integration/test_encrypted_disk/__init__.py
Normal file
58
tests/integration/test_encrypted_disk/configs/storage.xml
Normal file
58
tests/integration/test_encrypted_disk/configs/storage.xml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<yandex>
|
||||||
|
<storage_configuration>
|
||||||
|
<disks>
|
||||||
|
<disk_s3>
|
||||||
|
<type>s3</type>
|
||||||
|
<endpoint>http://minio1:9001/root/data/</endpoint>
|
||||||
|
<access_key_id>minio</access_key_id>
|
||||||
|
<secret_access_key>minio123</secret_access_key>
|
||||||
|
</disk_s3>
|
||||||
|
<disk_memory>
|
||||||
|
<type>memory</type>
|
||||||
|
</disk_memory>
|
||||||
|
<disk_local>
|
||||||
|
<type>local</type>
|
||||||
|
<path>/disk/</path>
|
||||||
|
</disk_local>
|
||||||
|
<disk_s3_encrypted>
|
||||||
|
<type>encrypted</type>
|
||||||
|
<disk>disk_s3</disk>
|
||||||
|
<path>encrypted/</path>
|
||||||
|
<key>1234567812345678</key>
|
||||||
|
</disk_s3_encrypted>
|
||||||
|
<disk_local_encrypted>
|
||||||
|
<type>encrypted</type>
|
||||||
|
<disk>disk_local</disk>
|
||||||
|
<path>encrypted/</path>
|
||||||
|
<key>abcdefghijklmnop</key>
|
||||||
|
</disk_local_encrypted>
|
||||||
|
</disks>
|
||||||
|
<policies>
|
||||||
|
<encrypted_policy>
|
||||||
|
<volumes>
|
||||||
|
<main>
|
||||||
|
<disk>disk_local_encrypted</disk>
|
||||||
|
</main>
|
||||||
|
</volumes>
|
||||||
|
</encrypted_policy>
|
||||||
|
<local_policy>
|
||||||
|
<volumes>
|
||||||
|
<main>
|
||||||
|
<disk>disk_local</disk>
|
||||||
|
</main>
|
||||||
|
<external>
|
||||||
|
<disk>disk_local_encrypted</disk>
|
||||||
|
</external>
|
||||||
|
</volumes>
|
||||||
|
</local_policy>
|
||||||
|
<s3_policy>
|
||||||
|
<volumes>
|
||||||
|
<main>
|
||||||
|
<disk>disk_s3</disk>
|
||||||
|
</main>
|
||||||
|
</volumes>
|
||||||
|
</s3_policy>
|
||||||
|
</policies>
|
||||||
|
</storage_configuration>
|
||||||
|
</yandex>
|
68
tests/integration/test_encrypted_disk/test.py
Normal file
68
tests/integration/test_encrypted_disk/test.py
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
import pytest
|
||||||
|
from helpers.cluster import ClickHouseCluster
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module")
|
||||||
|
def cluster():
|
||||||
|
try:
|
||||||
|
cluster = ClickHouseCluster(__file__)
|
||||||
|
node = cluster.add_instance("node",
|
||||||
|
main_configs=["configs/storage.xml"],
|
||||||
|
tmpfs=["/disk:size=100M"],
|
||||||
|
with_minio=True)
|
||||||
|
cluster.start()
|
||||||
|
yield cluster
|
||||||
|
finally:
|
||||||
|
cluster.shutdown()
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("policy", ["encrypted_policy", "local_policy", "s3_policy"])
|
||||||
|
def test_encrypted_disk(cluster, policy):
|
||||||
|
node = cluster.instances["node"]
|
||||||
|
node.query(
|
||||||
|
"""
|
||||||
|
CREATE TABLE encrypted_test (
|
||||||
|
id Int64,
|
||||||
|
data String
|
||||||
|
) ENGINE=MergeTree()
|
||||||
|
ORDER BY id
|
||||||
|
SETTINGS storage_policy='{}'
|
||||||
|
""".format(policy)
|
||||||
|
)
|
||||||
|
|
||||||
|
node.query("INSERT INTO encrypted_test VALUES (0,'data'),(1,'data')")
|
||||||
|
select_query = "SELECT * FROM encrypted_test ORDER BY id FORMAT Values"
|
||||||
|
assert node.query(select_query) == "(0,'data'),(1,'data')"
|
||||||
|
|
||||||
|
node.query("INSERT INTO encrypted_test VALUES (2,'data'),(3,'data')")
|
||||||
|
node.query("OPTIMIZE TABLE encrypted_test FINAL")
|
||||||
|
assert node.query(select_query) == "(0,'data'),(1,'data'),(2,'data'),(3,'data')"
|
||||||
|
|
||||||
|
node.query("DROP TABLE IF EXISTS encrypted_test NO DELAY")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("policy,disk,encrypted_disk", [("local_policy", "disk_local", "disk_local_encrypted"), ('s3_policy', 'disk_s3', 'disk_s3_encrypted')])
|
||||||
|
def test_part_move(cluster, policy, disk, encrypted_disk):
|
||||||
|
node = cluster.instances["node"]
|
||||||
|
node.query(
|
||||||
|
"""
|
||||||
|
CREATE TABLE encrypted_test (
|
||||||
|
id Int64,
|
||||||
|
data String
|
||||||
|
) ENGINE=MergeTree()
|
||||||
|
ORDER BY id
|
||||||
|
SETTINGS storage_policy='{}'
|
||||||
|
""".format(policy)
|
||||||
|
)
|
||||||
|
|
||||||
|
node.query("INSERT INTO encrypted_test VALUES (0,'data'),(1,'data')")
|
||||||
|
select_query = "SELECT * FROM encrypted_test ORDER BY id FORMAT Values"
|
||||||
|
assert node.query(select_query) == "(0,'data'),(1,'data')"
|
||||||
|
|
||||||
|
node.query("ALTER TABLE encrypted_test MOVE PART 'all_1_1_0' TO DISK '{}'".format(encrypted_disk))
|
||||||
|
assert node.query(select_query) == "(0,'data'),(1,'data')"
|
||||||
|
|
||||||
|
node.query("ALTER TABLE encrypted_test MOVE PART 'all_1_1_0' TO DISK '{}'".format(disk))
|
||||||
|
assert node.query(select_query) == "(0,'data'),(1,'data')"
|
||||||
|
node.query("DROP TABLE IF EXISTS encrypted_test NO DELAY")
|
Loading…
Reference in New Issue
Block a user