forked from TrueCloudLab/frostfs-testcases
Add shell parameter to head_object calls
Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
This commit is contained in:
parent
3de4d574d3
commit
b38403699c
4 changed files with 32 additions and 32 deletions
|
@ -140,6 +140,7 @@ class TestStorageGroup:
|
|||
EACLRule(operation=op, access=EACLAccess.ALLOW, role=EACLRole.USER)
|
||||
for op in EACLOperation
|
||||
],
|
||||
shell=client_shell,
|
||||
)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.main_wallet, cid, objects, object_size, client_shell, bearer_file
|
||||
|
@ -174,9 +175,7 @@ class TestStorageGroup:
|
|||
"""
|
||||
storage_group = put_storagegroup(wallet, cid, obj_list, bearer)
|
||||
verify_list_storage_group(wallet, cid, storage_group, bearer)
|
||||
verify_get_storage_group(
|
||||
wallet, cid, storage_group, obj_list, object_size, shell, bearer
|
||||
)
|
||||
verify_get_storage_group(wallet, cid, storage_group, obj_list, object_size, shell, bearer)
|
||||
delete_storagegroup(wallet, cid, storage_group, bearer)
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -380,7 +380,7 @@ def test_replication(prepare_wallet_and_deposit, after_run_start_all_nodes, host
|
|||
|
||||
@pytest.mark.node_mgmt
|
||||
@allure.title("NeoFS object could be dropped using control command")
|
||||
def test_drop_object(prepare_wallet_and_deposit, hosting: Hosting):
|
||||
def test_drop_object(prepare_wallet_and_deposit, client_shell: Shell, hosting: Hosting):
|
||||
"""
|
||||
Test checks object could be dropped using `neofs-cli control drop-objects` command.
|
||||
"""
|
||||
|
@ -389,37 +389,42 @@ def test_drop_object(prepare_wallet_and_deposit, hosting: Hosting):
|
|||
|
||||
locode = get_locode()
|
||||
rule = f"REP 1 CBF 1 SELECT 1 FROM * FILTER 'UN-LOCODE' EQ '{locode}' AS LOC"
|
||||
cid = create_container(wallet, rule=rule)
|
||||
oid_simple = put_object(wallet, file_path_simple, cid)
|
||||
oid_complex = put_object(wallet, file_path_complex, cid)
|
||||
cid = create_container(wallet, rule=rule, shell=client_shell)
|
||||
oid_simple = put_object(wallet, file_path_simple, cid, shell=client_shell)
|
||||
oid_complex = put_object(wallet, file_path_complex, cid, shell=client_shell)
|
||||
|
||||
for oid in (oid_simple, oid_complex):
|
||||
get_object(wallet, cid, oid)
|
||||
head_object(wallet, cid, oid)
|
||||
get_object(wallet, cid, oid, client_shell)
|
||||
head_object(wallet, cid, oid, client_shell)
|
||||
|
||||
nodes = get_nodes_with_object(wallet, cid, oid_simple)
|
||||
nodes = get_nodes_with_object(wallet, cid, oid_simple, shell=client_shell)
|
||||
node_name = choice(
|
||||
[name for name, config in NEOFS_NETMAP_DICT.items() if config.get("rpc") in nodes]
|
||||
)
|
||||
|
||||
for oid in (oid_simple, oid_complex):
|
||||
with allure.step(f"Drop object {oid}"):
|
||||
get_object(wallet, cid, oid)
|
||||
head_object(wallet, cid, oid)
|
||||
get_object(wallet, cid, oid, shell=client_shell)
|
||||
head_object(wallet, cid, oid, shell=client_shell)
|
||||
drop_object(hosting, node_name, cid, oid)
|
||||
wait_for_obj_dropped(wallet, cid, oid, get_object)
|
||||
wait_for_obj_dropped(wallet, cid, oid, head_object)
|
||||
wait_for_obj_dropped(wallet, cid, oid, client_shell, get_object)
|
||||
wait_for_obj_dropped(wallet, cid, oid, client_shell, head_object)
|
||||
|
||||
|
||||
@pytest.mark.node_mgmt
|
||||
@pytest.mark.skip(reason="Need to clarify scenario")
|
||||
@allure.title("Control Operations with storage nodes")
|
||||
def test_shards(prepare_wallet_and_deposit, create_container_and_pick_node, hosting: Hosting):
|
||||
def test_shards(
|
||||
prepare_wallet_and_deposit,
|
||||
create_container_and_pick_node,
|
||||
client_shell: Shell,
|
||||
hosting: Hosting,
|
||||
):
|
||||
wallet = prepare_wallet_and_deposit
|
||||
file_path = generate_file()
|
||||
|
||||
cid, node_name = create_container_and_pick_node
|
||||
original_oid = put_object(wallet, file_path, cid)
|
||||
original_oid = put_object(wallet, file_path, cid, shell=client_shell)
|
||||
|
||||
# for mode in ('read-only', 'degraded'):
|
||||
for mode in ("degraded",):
|
||||
|
@ -433,13 +438,12 @@ def test_shards(prepare_wallet_and_deposit, create_container_and_pick_node, host
|
|||
assert shards
|
||||
|
||||
with pytest.raises(RuntimeError):
|
||||
put_object(wallet, file_path, cid)
|
||||
put_object(wallet, file_path, cid, shell=client_shell)
|
||||
|
||||
with pytest.raises(RuntimeError):
|
||||
delete_object(wallet, cid, original_oid)
|
||||
delete_object(wallet, cid, original_oid, shell=client_shell)
|
||||
|
||||
# head_object(wallet, cid, original_oid)
|
||||
get_object(wallet, cid, original_oid)
|
||||
get_object(wallet, cid, original_oid, shell=client_shell)
|
||||
|
||||
for shard in shards:
|
||||
node_shard_set_mode(hosting, node_name, shard, "read-write")
|
||||
|
@ -447,8 +451,8 @@ def test_shards(prepare_wallet_and_deposit, create_container_and_pick_node, host
|
|||
shards = node_shard_list(hosting, node_name)
|
||||
assert shards
|
||||
|
||||
oid = put_object(wallet, file_path, cid)
|
||||
delete_object(wallet, cid, oid)
|
||||
oid = put_object(wallet, file_path, cid, shell=client_shell)
|
||||
delete_object(wallet, cid, oid, shell=client_shell)
|
||||
|
||||
|
||||
@allure.step("Validate object has {expected_copies} copies")
|
||||
|
@ -515,10 +519,10 @@ def wait_for_expected_object_copies(
|
|||
|
||||
|
||||
@allure.step("Wait for object to be dropped")
|
||||
def wait_for_obj_dropped(wallet: str, cid: str, oid: str, checker) -> None:
|
||||
def wait_for_obj_dropped(wallet: str, cid: str, oid: str, shell: Shell, checker) -> None:
|
||||
for _ in range(3):
|
||||
try:
|
||||
checker(wallet, cid, oid)
|
||||
checker(wallet, cid, oid, shell=shell)
|
||||
wait_for_gc_pass_on_storage_nodes()
|
||||
except Exception as err:
|
||||
if error_matches_status(err, OBJECT_NOT_FOUND):
|
||||
|
|
|
@ -49,9 +49,7 @@ def put_storagegroup(
|
|||
|
||||
|
||||
@allure.step("List Storagegroup")
|
||||
def list_storagegroup(
|
||||
wallet: str, cid: str, bearer: str = "", wallet_config: str = WALLET_CONFIG
|
||||
):
|
||||
def list_storagegroup(wallet: str, cid: str, bearer: str = "", wallet_config: str = WALLET_CONFIG):
|
||||
"""
|
||||
Wrapper for `neofs-cli storagegroup list`. This operation
|
||||
requires SEARCH allowed for `wallet` in `cid`.
|
||||
|
@ -160,9 +158,7 @@ def verify_list_storage_group(
|
|||
bearer: str = None,
|
||||
wallet_config: str = WALLET_CONFIG,
|
||||
):
|
||||
storage_groups = list_storagegroup(
|
||||
wallet, cid, bearer=bearer, wallet_config=wallet_config
|
||||
)
|
||||
storage_groups = list_storagegroup(wallet, cid, bearer=bearer, wallet_config=wallet_config)
|
||||
assert storagegroup in storage_groups
|
||||
|
||||
|
||||
|
@ -187,6 +183,7 @@ def verify_get_storage_group(
|
|||
wallet,
|
||||
cid,
|
||||
link_oid,
|
||||
shell=shell,
|
||||
is_raw=True,
|
||||
bearer=bearer,
|
||||
wallet_config=wallet_config,
|
||||
|
|
|
@ -11,8 +11,8 @@ def verify_head_tombstone(wallet_path: str, cid: str, oid_ts: str, oid: str, she
|
|||
header = head_object(wallet_path, cid, oid_ts, shell=shell)["header"]
|
||||
assert header["containerID"] == cid, "Tombstone Header CID is wrong"
|
||||
|
||||
with open(wallet_path, "r") as fout:
|
||||
wlt_data = json.loads(fout.read())
|
||||
with open(wallet_path, "r") as file:
|
||||
wlt_data = json.loads(file.read())
|
||||
wlt = wallet.Wallet.from_json(wlt_data, password="")
|
||||
addr = wlt.accounts[0].address
|
||||
|
||||
|
|
Loading…
Reference in a new issue