Vladimir Domnich
6e23e7d454
Remove default SSH key path. Replace multiple fixtures for file generation with single function. Rename references to keyword modules. Update pytest test cases to be consistent with new keywords. Remove gas balance checks from container operations. Add logic to run initial gas transfer only if storage is not free. Remove robot testsuites for s3 and http gateways. S3 and http tests are covered and will be maintained in the future in pytest. Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
80 lines
2.9 KiB
Text
80 lines
2.9 KiB
Text
*** Settings ***
|
|
Variables common.py
|
|
Variables wellknown_acl.py
|
|
|
|
Library container.py
|
|
Library epoch.py
|
|
Library neofs_verbs.py
|
|
Library node_management.py
|
|
Library storage_policy.py
|
|
Library utility_keywords.py
|
|
|
|
Library Collections
|
|
|
|
Resource payment_operations.robot
|
|
Resource setup_teardown.robot
|
|
|
|
*** Variables ***
|
|
${EXPECTED_COPIES} = ${2}
|
|
|
|
*** Test cases ***
|
|
NeoFS Object Replication
|
|
[Documentation] Testcase to validate NeoFS object replication.
|
|
[Tags] Migration Replication
|
|
[Timeout] 25 min
|
|
|
|
[Setup] Setup
|
|
|
|
Log Check replication mechanism
|
|
Check Replication
|
|
Log Check Sticky Bit with SYSTEM Group via replication mechanism
|
|
Check Replication ${STICKYBIT_PUB_ACL}
|
|
|
|
[Teardown] Teardown replication
|
|
|
|
*** Keywords ***
|
|
Check Replication
|
|
[Arguments] ${ACL}=${EMPTY}
|
|
|
|
${WALLET} ${_} ${_} = Prepare Wallet And Deposit
|
|
${CID} = Create Container ${WALLET} basic_acl=${ACL}
|
|
|
|
${FILE} ${_} = Generate file ${SIMPLE_OBJ_SIZE}
|
|
|
|
${S_OID} = Put Object ${WALLET} ${FILE} ${CID}
|
|
|
|
${COPIES} = Get Object Copies Simple ${WALLET} ${CID} ${S_OID}
|
|
Should Be Equal ${EXPECTED_COPIES} ${COPIES}
|
|
|
|
@{NODES_OBJ} = Get Nodes With Object ${WALLET} ${CID} ${S_OID}
|
|
|
|
@{NODES_OBJ_STOPPED} = Stop Nodes 1 ${NODES_OBJ}
|
|
@{NETMAP} = Convert To List ${NEOFS_NETMAP}
|
|
Remove Values From List ${NETMAP} ${NODES_OBJ_STOPPED}
|
|
|
|
# We expect that during two epochs the missed copy will be replicated.
|
|
FOR ${i} IN RANGE 2
|
|
${COPIES} = Get Object Copies Simple ${WALLET} ${CID} ${S_OID}
|
|
${PASSED} = Run Keyword And Return Status
|
|
... Should Be Equal ${EXPECTED_COPIES} ${COPIES}
|
|
Exit For Loop If ${PASSED}
|
|
Tick Epoch
|
|
Sleep ${NEOFS_CONTRACT_CACHE_TIMEOUT}
|
|
END
|
|
Run Keyword Unless ${PASSED} Fail
|
|
... Storage policy for object ${S_OID} in container ${CID} isn't valid
|
|
|
|
Start Nodes ${NODES_OBJ_STOPPED}
|
|
Tick Epoch
|
|
|
|
# We have 2 or 3 copies. Expected behaviour: during two epochs potential 3rd copy should be removed.
|
|
FOR ${i} IN RANGE 2
|
|
${COPIES} = Get Object Copies Simple ${WALLET} ${CID} ${S_OID}
|
|
${PASSED} = Run Keyword And Return Status
|
|
... Should Be Equal ${EXPECTED_COPIES} ${COPIES}
|
|
Exit For Loop If ${PASSED}
|
|
Tick Epoch
|
|
Sleep ${NEOFS_CONTRACT_CACHE_TIMEOUT}
|
|
END
|
|
Run Keyword Unless ${PASSED} Fail
|
|
... Storage policy for object ${S_OID} in container ${CID} isn't valid
|