forked from TrueCloudLab/frostfs-testcases
Merge pull request #2 from nspcc-dev/feature/acl_bearer_extension
Cleanup Teardown, fixes, acl bear token with user filters scenario
This commit is contained in:
commit
8e8a51098c
9 changed files with 318 additions and 236 deletions
|
@ -826,18 +826,20 @@ def verify_file_hash(filename, expected_hash):
|
||||||
else:
|
else:
|
||||||
raise Exception("File hash '{}' is not equal to {}".format(file_hash, expected_hash))
|
raise Exception("File hash '{}' is not equal to {}".format(file_hash, expected_hash))
|
||||||
|
|
||||||
@keyword('Cleanup File')
|
|
||||||
# remove temp files
|
|
||||||
def cleanup_file(filename: str):
|
|
||||||
if os.path.isfile(filename):
|
|
||||||
try:
|
|
||||||
os.remove(filename)
|
|
||||||
except OSError as e:
|
|
||||||
raise Exception("Error: '%s' - %s." % (e.filename, e.strerror))
|
|
||||||
else:
|
|
||||||
raise Exception("Error: '%s' file not found" % filename)
|
|
||||||
|
|
||||||
logger.info("File '%s' has been deleted." % filename)
|
@keyword('Cleanup Files')
|
||||||
|
def cleanup_file(*filename_list):
|
||||||
|
|
||||||
|
for filename in filename_list:
|
||||||
|
if os.path.isfile(filename):
|
||||||
|
try:
|
||||||
|
os.remove(filename)
|
||||||
|
except OSError as e:
|
||||||
|
raise Exception("Error: '%s' - %s." % (e.filename, e.strerror))
|
||||||
|
else:
|
||||||
|
logger.warn("Error: '%s' file not found" % filename)
|
||||||
|
|
||||||
|
logger.info("File '%s' has been deleted." % filename)
|
||||||
|
|
||||||
|
|
||||||
@keyword('Put object to NeoFS')
|
@keyword('Put object to NeoFS')
|
||||||
|
|
|
@ -1,28 +1,29 @@
|
||||||
*** Settings ***
|
*** Settings ***
|
||||||
Variables ../../variables/common.py
|
Variables ../../variables/common.py
|
||||||
|
|
||||||
Library ${RESOURCES}/neofs.py
|
Library ${RESOURCES}/neofs.py
|
||||||
Library ${RESOURCES}/payment_neogo.py
|
Library ${RESOURCES}/payment_neogo.py
|
||||||
|
|
||||||
|
|
||||||
*** Variables ***
|
*** Variables ***
|
||||||
${RULE_FOR_ALL} = REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
${RULE_FOR_ALL} = REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
||||||
|
|
||||||
|
|
||||||
*** Test cases ***
|
*** Test cases ***
|
||||||
Basic ACL Operations
|
Basic ACL Operations
|
||||||
[Documentation] Testcase to validate NeoFS operations with ACL.
|
[Documentation] Testcase to validate NeoFS operations with ACL.
|
||||||
[Tags] ACL NeoFS NeoCLI
|
[Tags] ACL NeoFS NeoCLI
|
||||||
[Timeout] 20 min
|
[Timeout] 20 min
|
||||||
|
|
||||||
Generate Keys
|
Generate Keys
|
||||||
Create Containers
|
Create Containers
|
||||||
|
|
||||||
Generate file
|
|
||||||
Check Private Container
|
|
||||||
Check Public Container
|
|
||||||
Check Read-Only Container
|
|
||||||
|
|
||||||
|
Generate file
|
||||||
|
Check Private Container
|
||||||
|
Check Public Container
|
||||||
|
Check Read-Only Container
|
||||||
|
|
||||||
|
[Teardown] Cleanup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,18 +59,18 @@ Generate Keys
|
||||||
Payment Operations
|
Payment Operations
|
||||||
[Arguments] ${WALLET} ${ADDR} ${KEY}
|
[Arguments] ${WALLET} ${ADDR} ${KEY}
|
||||||
|
|
||||||
${TX} = Transfer Mainnet Gas wallets/wallet.json NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx ${ADDR} 55
|
${TX} = Transfer Mainnet Gas wallets/wallet.json NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx ${ADDR} 55
|
||||||
Wait Until Keyword Succeeds 1 min 15 sec
|
Wait Until Keyword Succeeds 1 min 15 sec
|
||||||
... Transaction accepted in block ${TX}
|
... Transaction accepted in block ${TX}
|
||||||
Get Transaction ${TX}
|
Get Transaction ${TX}
|
||||||
Expexted Mainnet Balance ${ADDR} 55
|
Expexted Mainnet Balance ${ADDR} 55
|
||||||
|
|
||||||
${SCRIPT_HASH} = Get ScripHash ${KEY}
|
${SCRIPT_HASH} = Get ScripHash ${KEY}
|
||||||
|
|
||||||
${TX_DEPOSIT} = NeoFS Deposit ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
${TX_DEPOSIT} = NeoFS Deposit ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
||||||
Wait Until Keyword Succeeds 1 min 15 sec
|
Wait Until Keyword Succeeds 1 min 15 sec
|
||||||
... Transaction accepted in block ${TX_DEPOSIT}
|
... Transaction accepted in block ${TX_DEPOSIT}
|
||||||
Get Transaction ${TX_DEPOSIT}
|
Get Transaction ${TX_DEPOSIT}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,176 +110,182 @@ Check Private Container
|
||||||
# Expected: User - pass, Other - fail, System(IR) - pass (+ System(Container node) - pass, Non-container node - fail).
|
# Expected: User - pass, Other - fail, System(IR) - pass (+ System(Container node) - pass, Non-container node - fail).
|
||||||
|
|
||||||
# Put
|
# Put
|
||||||
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Put object to NeoFS ${OTHER_KEY} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
... Put object to NeoFS ${OTHER_KEY} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Put object to NeoFS ${SYSTEM_KEY_IR} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
... Put object to NeoFS ${SYSTEM_KEY_IR} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
||||||
${S_OID_SYS_SN} = Put object to NeoFS ${SYSTEM_KEY_SN} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
${S_OID_SYS_SN} = Put object to NeoFS ${SYSTEM_KEY_SN} ${FILE_S} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Get
|
# Get
|
||||||
Get object from NeoFS ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get object from NeoFS ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
... Get object from NeoFS ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get object from NeoFS ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
... Get object from NeoFS ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
|
|
||||||
# Get Range
|
# Get Range
|
||||||
Get Range ${USER_KEY} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${USER_KEY} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get Range ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
... Get Range ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get Range ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
... Get Range ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get Range ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
... Get Range ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
|
|
||||||
# Get Range Hash
|
# Get Range Hash
|
||||||
Get Range Hash ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get Range Hash ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
... Get Range Hash ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
@{S_OBJ_PRIV} = Create List ${S_OID_USER} ${S_OID_SYS_SN}
|
@{S_OBJ_PRIV} = Create List ${S_OID_USER} ${S_OID_SYS_SN}
|
||||||
Search object ${USER_KEY} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${USER_KEY} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Search object ${OTHER_KEY} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
... Search object ${OTHER_KEY} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
Search object ${SYSTEM_KEY_IR} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${SYSTEM_KEY_IR} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
Search object ${SYSTEM_KEY_SN} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${SYSTEM_KEY_SN} ${PRIV_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
|
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
Head object ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Head object ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
... Head object ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
# Delete
|
# Delete
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Delete object ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
... Delete object ${OTHER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Delete object ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
... Delete object ${SYSTEM_KEY_IR} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Delete object ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
... Delete object ${SYSTEM_KEY_SN} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Delete object ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
Delete object ${USER_KEY} ${PRIV_CID} ${S_OID_USER} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
Check Public Container
|
Check Public Container
|
||||||
|
|
||||||
# Put
|
# Put
|
||||||
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
||||||
${S_OID_OTHER} = Put object to NeoFS ${OTHER_KEY} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
${S_OID_OTHER} = Put object to NeoFS ${OTHER_KEY} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
||||||
# https://github.com/nspcc-dev/neofs-node/issues/178
|
# https://github.com/nspcc-dev/neofs-node/issues/178
|
||||||
${S_OID_SYS_IR} = Put object to NeoFS ${SYSTEM_KEY_IR} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
${S_OID_SYS_IR} = Put object to NeoFS ${SYSTEM_KEY_IR} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
||||||
${S_OID_SYS_SN} = Put object to NeoFS ${SYSTEM_KEY_SN} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
${S_OID_SYS_SN} = Put object to NeoFS ${SYSTEM_KEY_SN} ${FILE_S} ${PUBLIC_CID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
# Get
|
# Get
|
||||||
Get object from NeoFS ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
|
|
||||||
# Get Range
|
# Get Range
|
||||||
Get Range ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Get Range ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Get Range ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Get Range ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
|
|
||||||
|
|
||||||
# Get Range Hash
|
# Get Range Hash
|
||||||
Get Range Hash ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
@{S_OBJ_PRIV} = Create List ${S_OID_USER} ${S_OID_OTHER} ${S_OID_SYS_SN} ${S_OID_SYS_IR}
|
@{S_OBJ_PRIV} = Create List ${S_OID_USER} ${S_OID_OTHER} ${S_OID_SYS_SN} ${S_OID_SYS_IR}
|
||||||
Search object ${USER_KEY} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${USER_KEY} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
Search object ${OTHER_KEY} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${OTHER_KEY} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
Search object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
Search object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
Search object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_PRIV}
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
Head object ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${USER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
Head object ${USER_KEY} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
Head object ${USER_KEY} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
Head object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
Head object ${USER_KEY} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
Head object ${USER_KEY} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
||||||
Head object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
Head object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
# Delete
|
# Delete
|
||||||
# https://github.com/nspcc-dev/neofs-node/issues/178
|
# https://github.com/nspcc-dev/neofs-node/issues/178
|
||||||
Delete object ${USER_KEY} ${PUBLIC_CID} ${S_OID_SYS_IR} ${EMPTY}
|
Delete object ${USER_KEY} ${PUBLIC_CID} ${S_OID_SYS_IR} ${EMPTY}
|
||||||
Delete object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY}
|
Delete object ${OTHER_KEY} ${PUBLIC_CID} ${S_OID_SYS_SN} ${EMPTY}
|
||||||
Delete object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY}
|
Delete object ${SYSTEM_KEY_IR} ${PUBLIC_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Delete object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY}
|
Delete object ${SYSTEM_KEY_SN} ${PUBLIC_CID} ${S_OID_OTHER} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
Check Read-Only Container
|
Check Read-Only Container
|
||||||
# Check Read Only container:
|
# Check Read Only container:
|
||||||
|
|
||||||
# Put
|
# Put
|
||||||
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Put object to NeoFS ${OTHER_KEY} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
... Put object to NeoFS ${OTHER_KEY} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Put object to NeoFS ${SYSTEM_KEY_IR} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
... Put object to NeoFS ${SYSTEM_KEY_IR} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
||||||
${S_OID_SYS_SN} = Put object to NeoFS ${SYSTEM_KEY_SN} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
${S_OID_SYS_SN} = Put object to NeoFS ${SYSTEM_KEY_SN} ${FILE_S} ${READONLY_CID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
# Get
|
# Get
|
||||||
Get object from NeoFS ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
Get object from NeoFS ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
Get object from NeoFS ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY} s_file_read
|
||||||
|
|
||||||
# Get Range
|
# Get Range
|
||||||
Get Range ${USER_KEY} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${USER_KEY} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Get Range ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Get Range ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Get Range ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
|
|
||||||
|
|
||||||
# Get Range Hash
|
# Get Range Hash
|
||||||
Get Range Hash ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
Get Range Hash ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
Get Range Hash ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY} 0:256
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
@{S_OBJ_RO} = Create List ${S_OID_USER} ${S_OID_SYS_SN}
|
@{S_OBJ_RO} = Create List ${S_OID_USER} ${S_OID_SYS_SN}
|
||||||
Search object ${USER_KEY} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
Search object ${USER_KEY} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
||||||
Search object ${OTHER_KEY} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
Search object ${OTHER_KEY} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
||||||
Search object ${SYSTEM_KEY_IR} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
Search object ${SYSTEM_KEY_IR} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
||||||
Search object ${SYSTEM_KEY_SN} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
Search object ${SYSTEM_KEY_SN} ${READONLY_CID} ${EMPTY} ${EMPTY} ${EMPTY} @{S_OBJ_RO}
|
||||||
|
|
||||||
|
|
||||||
# Head
|
# Head
|
||||||
Head object ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
Head object ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
Head object ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
# Delete
|
# Delete
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Delete object ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
... Delete object ${OTHER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Delete object ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
... Delete object ${SYSTEM_KEY_IR} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Delete object ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
... Delete object ${SYSTEM_KEY_SN} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
||||||
Delete object ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
Delete object ${USER_KEY} ${READONLY_CID} ${S_OID_USER} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Cleanup
|
||||||
|
@{CLEANUP_FILES} = Create List ${FILE_S} s_file_read s_get_range
|
||||||
|
Cleanup Files @{CLEANUP_FILES}
|
|
@ -14,31 +14,28 @@ ${RULE_FOR_ALL} = REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
||||||
|
|
||||||
*** Test cases ***
|
*** Test cases ***
|
||||||
BearerToken Operations
|
BearerToken Operations
|
||||||
[Documentation] Testcase to validate NeoFS operations with BearerToken.
|
[Documentation] Testcase to validate NeoFS operations with BearerToken.
|
||||||
[Tags] ACL NeoFS NeoCLI BearerToken
|
[Tags] ACL NeoFS NeoCLI BearerToken
|
||||||
[Timeout] 20 min
|
[Timeout] 20 min
|
||||||
|
|
||||||
Generate Keys
|
Generate Keys
|
||||||
Generate file
|
Generate file
|
||||||
Prepare eACL Role rules
|
Prepare eACL Role rules
|
||||||
Check Bearer
|
|
||||||
|
Check Container Inaccessible and Allow All Bearer
|
||||||
|
Check eACL Deny and Allow All Bearer
|
||||||
|
|
||||||
|
Check eACL Deny and Allow All Bearer Filter OID Equal
|
||||||
|
Check eACL Deny and Allow All Bearer Filter OID NotEqual
|
||||||
|
|
||||||
|
Check eACL Deny and Allow All Bearer Filter UserHeader Equal
|
||||||
|
|
||||||
|
[Teardown] Cleanup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*** Keywords ***
|
*** Keywords ***
|
||||||
|
|
||||||
|
|
||||||
Check Bearer
|
|
||||||
Check Container Inaccessible and Allow All Bearer
|
|
||||||
Check eACL Deny and Allow All Bearer
|
|
||||||
|
|
||||||
Check eACL Deny and Allow All Bearer Filter OID Equal
|
|
||||||
Check eACL Deny and Allow All Bearer Filter OID NotEqual
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Generate Keys
|
Generate Keys
|
||||||
${WALLET} = Init wallet
|
${WALLET} = Init wallet
|
||||||
Generate wallet ${WALLET}
|
Generate wallet ${WALLET}
|
||||||
|
@ -68,18 +65,18 @@ Generate Keys
|
||||||
Payment Operations
|
Payment Operations
|
||||||
[Arguments] ${WALLET} ${ADDR} ${KEY}
|
[Arguments] ${WALLET} ${ADDR} ${KEY}
|
||||||
|
|
||||||
${TX} = Transfer Mainnet Gas wallets/wallet.json NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx ${ADDR} 55
|
${TX} = Transfer Mainnet Gas wallets/wallet.json NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx ${ADDR} 55
|
||||||
Wait Until Keyword Succeeds 1 min 15 sec
|
Wait Until Keyword Succeeds 1 min 15 sec
|
||||||
... Transaction accepted in block ${TX}
|
... Transaction accepted in block ${TX}
|
||||||
Get Transaction ${TX}
|
Get Transaction ${TX}
|
||||||
Expexted Mainnet Balance ${ADDR} 55
|
Expexted Mainnet Balance ${ADDR} 55
|
||||||
|
|
||||||
${SCRIPT_HASH} = Get ScripHash ${KEY}
|
${SCRIPT_HASH} = Get ScripHash ${KEY}
|
||||||
|
|
||||||
${TX_DEPOSIT} = NeoFS Deposit ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
${TX_DEPOSIT} = NeoFS Deposit ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
||||||
Wait Until Keyword Succeeds 1 min 15 sec
|
Wait Until Keyword Succeeds 1 min 15 sec
|
||||||
... Transaction accepted in block ${TX_DEPOSIT}
|
... Transaction accepted in block ${TX_DEPOSIT}
|
||||||
Get Transaction ${TX_DEPOSIT}
|
Get Transaction ${TX_DEPOSIT}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -285,8 +282,60 @@ Check eACL Deny and Allow All Bearer Filter OID NotEqual
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Check eACL Deny and Allow All Bearer Filter UserHeader Equal
|
||||||
|
${CID} = Create Container Public
|
||||||
|
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${FILE_USR_HEADER}
|
||||||
|
${S_OID_USER_2} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${EMPTY}
|
||||||
|
${D_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${FILE_USR_HEADER_DEL}
|
||||||
|
@{S_OBJ_H} = Create List ${S_OID_USER}
|
||||||
|
|
||||||
#Check eACL Deny and Allow All Bearer Filter UserHeader Equal
|
|
||||||
#Check eACL Deny and Allow All Bearer Filter UserHeader NotEqual
|
Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${FILE_OTH_HEADER}
|
||||||
#Check eACL Deny and Allow All Bearer for big object
|
Get object from NeoFS ${USER_KEY} ${CID} ${S_OID_USER} ${EMPTY} local_file_eacl
|
||||||
#Check eACL Deny and Allow All Bearer Filter UserHeader Equal for big object
|
Search object ${USER_KEY} ${CID} ${EMPTY} ${EMPTY} ${FILE_USR_HEADER} @{S_OBJ_H}
|
||||||
|
Head object ${USER_KEY} ${CID} ${S_OID_USER} ${EMPTY}
|
||||||
|
Get Range ${USER_KEY} ${CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
|
Delete object ${USER_KEY} ${CID} ${D_OID_USER} ${EMPTY}
|
||||||
|
|
||||||
|
Set eACL ${USER_KEY} ${CID} ${EACL_DENY_ALL_USER} --await
|
||||||
|
|
||||||
|
Form BearerToken file filter for all ops bearer_allow_all_user ${USER_KEY} ${CID} ALLOW USER 100500 STRING_EQUAL key2 abc
|
||||||
|
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${FILE_USR_HEADER}
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Get object from NeoFS ${USER_KEY} ${CID} ${S_OID_USER} ${EMPTY} local_file_eacl
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Search object ${USER_KEY} ${CID} ${EMPTY} ${EMPTY} ${FILE_USR_HEADER} @{S_OBJ_H}
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Head object ${USER_KEY} ${CID} ${S_OID_USER} ${EMPTY}
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Get Range ${USER_KEY} ${CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Delete object ${USER_KEY} ${CID} ${S_OID_USER} ${EMPTY}
|
||||||
|
|
||||||
|
# Search is allowed without filter condition.
|
||||||
|
Search object ${USER_KEY} ${CID} ${EMPTY} bearer_allow_all_user ${FILE_USR_HEADER} @{S_OBJ_H}
|
||||||
|
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} bearer_allow_all_user ${FILE_OTH_HEADER}
|
||||||
|
Run Keyword And Expect Error *
|
||||||
|
... Get object from NeoFS ${USER_KEY} ${CID} ${S_OID_USER_2} bearer_allow_all_user local_file_eacl
|
||||||
|
|
||||||
|
# Preiodical issue: https://github.com/nspcc-dev/neofs-node/issues/225
|
||||||
|
Get object from NeoFS ${USER_KEY} ${CID} ${S_OID_USER} bearer_allow_all_user local_file_eacl
|
||||||
|
Get Range ${USER_KEY} ${CID} ${S_OID_USER} s_get_range bearer_allow_all_user 0:256
|
||||||
|
|
||||||
|
# https://github.com/nspcc-dev/neofs-node/issues/215
|
||||||
|
# Head object ${USER_KEY} ${CID} ${S_OID_USER} bearer_allow_all_user
|
||||||
|
# Delete object ${USER_KEY} ${CID} ${D_OID_USER} bearer_allow_all_user
|
||||||
|
|
||||||
|
# Check eACL Deny and Allow All Bearer Filter UserHeader NotEqual
|
||||||
|
# Check eACL Deny and Allow All Bearer for big object
|
||||||
|
# Check eACL Deny and Allow All Bearer Filter UserHeader Equal for big object
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Cleanup
|
||||||
|
@{CLEANUP_FILES} = Create List ${FILE_S} local_file_eacl s_get_range bearer_allow_all_user
|
||||||
|
Cleanup Files @{CLEANUP_FILES}
|
|
@ -1,10 +1,8 @@
|
||||||
*** Settings ***
|
*** Settings ***
|
||||||
Variables ../../variables/common.py
|
Variables ../../variables/common.py
|
||||||
|
Library Collections
|
||||||
Library Collections
|
Library ${RESOURCES}/neofs.py
|
||||||
|
Library ${RESOURCES}/payment_neogo.py
|
||||||
Library ${RESOURCES}/neofs.py
|
|
||||||
Library ${RESOURCES}/payment_neogo.py
|
|
||||||
|
|
||||||
*** Variables ***
|
*** Variables ***
|
||||||
${FILE_USR_HEADER} = key1=1,key2=abc
|
${FILE_USR_HEADER} = key1=1,key2=abc
|
||||||
|
@ -14,31 +12,32 @@ ${RULE_FOR_ALL} = REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
||||||
|
|
||||||
*** Test cases ***
|
*** Test cases ***
|
||||||
Extended ACL Operations
|
Extended ACL Operations
|
||||||
[Documentation] Testcase to validate NeoFS operations with extended ACL.
|
[Documentation] Testcase to validate NeoFS operations with extended ACL.
|
||||||
[Tags] ACL eACL NeoFS NeoCLI
|
[Tags] ACL eACL NeoFS NeoCLI
|
||||||
[Timeout] 20 min
|
[Timeout] 20 min
|
||||||
|
|
||||||
Generate Keys
|
Generate Keys
|
||||||
Generate file
|
Generate file
|
||||||
Prepare eACL Role rules
|
Prepare eACL Role rules
|
||||||
|
|
||||||
Check Actions
|
Check Actions
|
||||||
Check Filters
|
Check Filters
|
||||||
|
|
||||||
|
[Teardown] Cleanup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*** Keywords ***
|
*** Keywords ***
|
||||||
|
|
||||||
Check Actions
|
Check Actions
|
||||||
Check eACL Deny and Allow All Other
|
Check eACL Deny and Allow All Other
|
||||||
Check eACL Deny and Allow All User
|
Check eACL Deny and Allow All User
|
||||||
Check eACL Deny and Allow All System
|
Check eACL Deny and Allow All System
|
||||||
Check eACL Deny All Other and Allow All Pubkey
|
Check eACL Deny All Other and Allow All Pubkey
|
||||||
|
|
||||||
|
|
||||||
Check Filters
|
Check Filters
|
||||||
Check eACL MatchType String Equal
|
Check eACL MatchType String Equal
|
||||||
Check eACL MatchType String Not Equal
|
Check eACL MatchType String Not Equal
|
||||||
|
|
||||||
|
|
||||||
Check eACL MatchType String Equal
|
Check eACL MatchType String Equal
|
||||||
|
@ -55,7 +54,7 @@ Check eACL MatchType String Equal
|
||||||
${EACL_CUSTOM} = Form eACL json file eacl_custom GET DENY STRING_EQUAL $Object:objectID ${ID_value} OTHERS
|
${EACL_CUSTOM} = Form eACL json file eacl_custom GET DENY STRING_EQUAL $Object:objectID ${ID_value} OTHERS
|
||||||
Set eACL ${USER_KEY} ${CID} ${EACL_CUSTOM} --await
|
Set eACL ${USER_KEY} ${CID} ${EACL_CUSTOM} --await
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get object from NeoFS ${OTHER_KEY} ${CID} ${S_OID_USER} ${EMPTY} local_file_eacl
|
... Get object from NeoFS ${OTHER_KEY} ${CID} ${S_OID_USER} ${EMPTY} local_file_eacl
|
||||||
|
|
||||||
|
|
||||||
Log Set eACL for Deny GET operation with StringEqual Object Extended User Header
|
Log Set eACL for Deny GET operation with StringEqual Object Extended User Header
|
||||||
|
@ -70,7 +69,6 @@ Check eACL MatchType String Equal
|
||||||
|
|
||||||
Check eACL MatchType String Not Equal
|
Check eACL MatchType String Not Equal
|
||||||
${CID} = Create Container Public
|
${CID} = Create Container Public
|
||||||
${FILE_S_2} = Generate file of bytes 2048
|
|
||||||
|
|
||||||
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${FILE_USR_HEADER}
|
${S_OID_USER} = Put object to NeoFS ${USER_KEY} ${FILE_S} ${CID} ${EMPTY} ${FILE_USR_HEADER}
|
||||||
${S_OID_OTHER} = Put object to NeoFS ${OTHER_KEY} ${FILE_S_2} ${CID} ${EMPTY} ${FILE_OTH_HEADER}
|
${S_OID_OTHER} = Put object to NeoFS ${OTHER_KEY} ${FILE_S_2} ${CID} ${EMPTY} ${FILE_OTH_HEADER}
|
||||||
|
@ -154,12 +152,15 @@ Create Container Public
|
||||||
|
|
||||||
|
|
||||||
Generate file
|
Generate file
|
||||||
${FILE_S_GEN} = Generate file of bytes 1024
|
${FILE_S_GEN_1} = Generate file of bytes 1024
|
||||||
Set Global Variable ${FILE_S} ${FILE_S_GEN}
|
${FILE_S_GEN_2} = Generate file of bytes 2048
|
||||||
|
Set Global Variable ${FILE_S} ${FILE_S_GEN_1}
|
||||||
|
Set Global Variable ${FILE_S_2} ${FILE_S_GEN_2}
|
||||||
|
|
||||||
|
|
||||||
Prepare eACL Role rules
|
Prepare eACL Role rules
|
||||||
Log Set eACL for different Role cases
|
Log Set eACL for different Role cases
|
||||||
|
|
||||||
Set Global Variable ${EACL_DENY_ALL_OTHER} robot/resources/lib/eacl/eacl_encoded_deny_all
|
Set Global Variable ${EACL_DENY_ALL_OTHER} robot/resources/lib/eacl/eacl_encoded_deny_all
|
||||||
Set Global Variable ${EACL_ALLOW_ALL_OTHER} robot/resources/lib/eacl/eacl_encoded_allow_all
|
Set Global Variable ${EACL_ALLOW_ALL_OTHER} robot/resources/lib/eacl/eacl_encoded_allow_all
|
||||||
|
|
||||||
|
@ -356,3 +357,6 @@ Check eACL Deny and Allow All
|
||||||
Get Range ${KEY} ${CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
Get Range ${KEY} ${CID} ${S_OID_USER} s_get_range ${EMPTY} 0:256
|
||||||
Delete object ${KEY} ${CID} ${S_OID_USER} ${EMPTY}
|
Delete object ${KEY} ${CID} ${S_OID_USER} ${EMPTY}
|
||||||
|
|
||||||
|
Cleanup
|
||||||
|
@{CLEANUP_FILES} = Create List ${FILE_S} ${FILE_S_2} local_file_eacl eacl_custom s_get_range
|
||||||
|
Cleanup Files @{CLEANUP_FILES}
|
|
@ -12,8 +12,8 @@ NeoFS Simple Netmap
|
||||||
[Timeout] 20 min
|
[Timeout] 20 min
|
||||||
|
|
||||||
Generate Key and Pre-payment
|
Generate Key and Pre-payment
|
||||||
Generate file
|
|
||||||
|
|
||||||
|
Generate file
|
||||||
|
|
||||||
Validate Policy REP 2 IN X CBF 2 SELECT 2 FROM * AS X 2 @{EMPTY}
|
Validate Policy REP 2 IN X CBF 2 SELECT 2 FROM * AS X 2 @{EMPTY}
|
||||||
|
|
||||||
|
@ -59,7 +59,8 @@ NeoFS Simple Netmap
|
||||||
Log Put operation should be failed with error "not enough nodes to SELECT from: 'X'"
|
Log Put operation should be failed with error "not enough nodes to SELECT from: 'X'"
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Validate Policy REP 2 IN X CBF 2 SELECT 6 FROM * AS X 2 @{EMPTY}
|
... Validate Policy REP 2 IN X CBF 2 SELECT 6 FROM * AS X 2 @{EMPTY}
|
||||||
|
|
||||||
|
[Teardown] Cleanup Files ${FILE}
|
||||||
|
|
||||||
*** Keywords ***
|
*** Keywords ***
|
||||||
|
|
||||||
|
|
|
@ -74,21 +74,22 @@ NeoFS Complex Object Operations
|
||||||
Verify file hash s_file_read ${FILE_HASH}
|
Verify file hash s_file_read ${FILE_HASH}
|
||||||
Verify file hash h_file_read ${FILE_HASH}
|
Verify file hash h_file_read ${FILE_HASH}
|
||||||
|
|
||||||
Get Range Hash ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY} 0:10
|
Get Range Hash ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY} 0:10
|
||||||
Get Range Hash ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} 0:10
|
Get Range Hash ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} 0:10
|
||||||
|
|
||||||
Get Range ${PRIV_KEY} ${CID} ${S_OID} s_get_range ${EMPTY} 0:10
|
Get Range ${PRIV_KEY} ${CID} ${S_OID} s_get_range ${EMPTY} 0:10
|
||||||
Get Range ${PRIV_KEY} ${CID} ${H_OID} h_get_range ${EMPTY} 0:10
|
Get Range ${PRIV_KEY} ${CID} ${H_OID} h_get_range ${EMPTY} 0:10
|
||||||
|
|
||||||
Search object ${PRIV_KEY} ${CID} --root ${EMPTY} ${EMPTY} @{S_OBJ_ALL}
|
Search object ${PRIV_KEY} ${CID} --root ${EMPTY} ${EMPTY} @{S_OBJ_ALL}
|
||||||
Search object ${PRIV_KEY} ${CID} --root ${EMPTY} ${FILE_USR_HEADER} @{S_OBJ_H}
|
Search object ${PRIV_KEY} ${CID} --root ${EMPTY} ${FILE_USR_HEADER} @{S_OBJ_H}
|
||||||
Search object ${PRIV_KEY} ${CID} --root ${EMPTY} ${FILE_USR_HEADER_OTH} @{S_OBJ_H_OTH}
|
Search object ${PRIV_KEY} ${CID} --root ${EMPTY} ${FILE_USR_HEADER_OTH} @{S_OBJ_H_OTH}
|
||||||
|
|
||||||
Head object ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY}
|
Head object ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY}
|
||||||
Head object ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} ${FILE_USR_HEADER}
|
Head object ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} ${FILE_USR_HEADER}
|
||||||
|
|
||||||
Delete object ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY}
|
Delete object ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY}
|
||||||
Delete object ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY}
|
Delete object ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY}
|
||||||
|
|
||||||
#Verify Head tombstone ${PRIV_KEY} ${CID} ${S_OID}
|
#Verify Head tombstone ${PRIV_KEY} ${CID} ${S_OID}
|
||||||
|
|
||||||
Sleep 2min
|
Sleep 2min
|
||||||
|
@ -97,13 +98,17 @@ NeoFS Complex Object Operations
|
||||||
... Get object from NeoFS ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY} s_file_read
|
... Get object from NeoFS ${PRIV_KEY} ${CID} ${S_OID} ${EMPTY} s_file_read
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get object from NeoFS ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} h_file_read
|
... Get object from NeoFS ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} h_file_read
|
||||||
|
|
||||||
|
[Teardown] Cleanup ${FILE}
|
||||||
|
|
||||||
Cleanup File ${FILE}
|
|
||||||
Cleanup File s_file_read
|
*** Keywords ***
|
||||||
Cleanup File h_file_read
|
Cleanup
|
||||||
Cleanup File s_get_range
|
[Arguments] ${FILE}
|
||||||
Cleanup File h_get_range
|
|
||||||
|
@{CLEANUP_FILES} = Create List ${FILE} s_file_read h_file_read s_get_range h_get_range
|
||||||
|
Cleanup Files @{CLEANUP_FILES}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -86,12 +86,20 @@ NeoFS Simple Object Operations
|
||||||
|
|
||||||
Run Keyword And Expect Error *
|
Run Keyword And Expect Error *
|
||||||
... Get object from NeoFS ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} h_file_read
|
... Get object from NeoFS ${PRIV_KEY} ${CID} ${H_OID} ${EMPTY} h_file_read
|
||||||
|
|
||||||
|
[Teardown] Cleanup ${FILE}
|
||||||
|
|
||||||
Cleanup File ${FILE}
|
|
||||||
Cleanup File s_file_read
|
|
||||||
Cleanup File h_file_read
|
*** Keywords ***
|
||||||
Cleanup File s_get_range
|
|
||||||
Cleanup File h_get_range
|
Cleanup
|
||||||
|
[Arguments] ${FILE}
|
||||||
|
|
||||||
|
@{CLEANUP_FILES} = Create List ${FILE} s_file_read h_file_read s_get_range h_get_range
|
||||||
|
Cleanup Files @{CLEANUP_FILES}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,10 @@ NeoFS Object Replication
|
||||||
|
|
||||||
Sleep 1 min
|
Sleep 1 min
|
||||||
|
|
||||||
${CID} = Create container ${PRIV_KEY} ${EMPTY} REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
|
||||||
Container Existing ${PRIV_KEY} ${CID}
|
${CID} = Create container ${PRIV_KEY} ${EMPTY} REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
||||||
|
Container Existing ${PRIV_KEY} ${CID}
|
||||||
|
|
||||||
|
|
||||||
${FILE} = Generate file of bytes 1024
|
${FILE} = Generate file of bytes 1024
|
||||||
${FILE_HASH} = Get file hash ${FILE}
|
${FILE_HASH} = Get file hash ${FILE}
|
||||||
|
@ -42,4 +44,8 @@ NeoFS Object Replication
|
||||||
@{NODES_OBJ_STOPPED} = Stop nodes 1 @{NODES_OBJ}
|
@{NODES_OBJ_STOPPED} = Stop nodes 1 @{NODES_OBJ}
|
||||||
Sleep 1 min
|
Sleep 1 min
|
||||||
Validate storage policy for object ${PRIV_KEY} 2 ${CID} ${S_OID}
|
Validate storage policy for object ${PRIV_KEY} 2 ${CID} ${S_OID}
|
||||||
Start nodes @{NODES_OBJ_STOPPED}
|
Start nodes @{NODES_OBJ_STOPPED}
|
||||||
|
|
||||||
|
[Teardown] Cleanup Files ${FILE}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ NeoFS Deposit and Withdraw
|
||||||
|
|
||||||
${SCRIPT_HASH} = Get ScripHash ${PRIV_KEY}
|
${SCRIPT_HASH} = Get ScripHash ${PRIV_KEY}
|
||||||
|
|
||||||
${TX_DEPOSIT} = NeoFS Deposit ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
${TX_DEPOSIT} = NeoFS Deposit ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
||||||
Wait Until Keyword Succeeds 1 min 15 sec
|
Wait Until Keyword Succeeds 1 min 15 sec
|
||||||
... Transaction accepted in block ${TX_DEPOSIT}
|
... Transaction accepted in block ${TX_DEPOSIT}
|
||||||
Get Transaction ${TX_DEPOSIT}
|
Get Transaction ${TX_DEPOSIT}
|
||||||
|
@ -33,13 +33,13 @@ NeoFS Deposit and Withdraw
|
||||||
Expexted Mainnet Balance ${ADDR} 4.86192020
|
Expexted Mainnet Balance ${ADDR} 4.86192020
|
||||||
${NEOFS_BALANCE} = Get Balance ${PRIV_KEY}
|
${NEOFS_BALANCE} = Get Balance ${PRIV_KEY}
|
||||||
|
|
||||||
${TX} = Withdraw Mainnet Gas ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
${TX} = Withdraw Mainnet Gas ${WALLET} ${ADDR} ${SCRIPT_HASH} 50
|
||||||
Wait Until Keyword Succeeds 1 min 15 sec
|
Wait Until Keyword Succeeds 1 min 15 sec
|
||||||
... Transaction accepted in block ${TX}
|
... Transaction accepted in block ${TX}
|
||||||
|
|
||||||
Sleep 1 min
|
Sleep 1 min
|
||||||
Get Balance ${PRIV_KEY}
|
Get Balance ${PRIV_KEY}
|
||||||
Expected Balance ${PRIV_KEY} ${NEOFS_BALANCE} -50
|
Expected Balance ${PRIV_KEY} ${NEOFS_BALANCE} -50
|
||||||
Expexted Mainnet Balance ${ADDR} 54.82554860
|
Expexted Mainnet Balance ${ADDR} 54.82554860
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue