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,16 +826,18 @@ 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
|
@keyword('Cleanup Files')
|
||||||
def cleanup_file(filename: str):
|
def cleanup_file(*filename_list):
|
||||||
|
|
||||||
|
for filename in filename_list:
|
||||||
if os.path.isfile(filename):
|
if os.path.isfile(filename):
|
||||||
try:
|
try:
|
||||||
os.remove(filename)
|
os.remove(filename)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
raise Exception("Error: '%s' - %s." % (e.filename, e.strerror))
|
raise Exception("Error: '%s' - %s." % (e.filename, e.strerror))
|
||||||
else:
|
else:
|
||||||
raise Exception("Error: '%s' file not found" % filename)
|
logger.warn("Error: '%s' file not found" % filename)
|
||||||
|
|
||||||
logger.info("File '%s' has been deleted." % filename)
|
logger.info("File '%s' has been deleted." % filename)
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ Basic ACL Operations
|
||||||
Check Public Container
|
Check Public Container
|
||||||
Check Read-Only Container
|
Check Read-Only Container
|
||||||
|
|
||||||
|
[Teardown] Cleanup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -282,3 +283,9 @@ Check Read-Only Container
|
||||||
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}
|
|
@ -21,23 +21,20 @@ BearerToken Operations
|
||||||
Generate Keys
|
Generate Keys
|
||||||
Generate file
|
Generate file
|
||||||
Prepare eACL Role rules
|
Prepare eACL Role rules
|
||||||
Check Bearer
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*** Keywords ***
|
|
||||||
|
|
||||||
|
|
||||||
Check Bearer
|
|
||||||
Check Container Inaccessible and Allow All Bearer
|
Check Container Inaccessible and Allow All Bearer
|
||||||
Check eACL Deny 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 Equal
|
||||||
Check eACL Deny and Allow All Bearer Filter OID NotEqual
|
Check eACL Deny and Allow All Bearer Filter OID NotEqual
|
||||||
|
|
||||||
|
Check eACL Deny and Allow All Bearer Filter UserHeader Equal
|
||||||
|
|
||||||
|
[Teardown] Cleanup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*** Keywords ***
|
||||||
|
|
||||||
Generate Keys
|
Generate Keys
|
||||||
${WALLET} = Init wallet
|
${WALLET} = Init wallet
|
||||||
|
@ -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,8 +1,6 @@
|
||||||
*** Settings ***
|
*** Settings ***
|
||||||
Variables ../../variables/common.py
|
Variables ../../variables/common.py
|
||||||
|
|
||||||
Library Collections
|
Library Collections
|
||||||
|
|
||||||
Library ${RESOURCES}/neofs.py
|
Library ${RESOURCES}/neofs.py
|
||||||
Library ${RESOURCES}/payment_neogo.py
|
Library ${RESOURCES}/payment_neogo.py
|
||||||
|
|
||||||
|
@ -25,6 +23,7 @@ Extended ACL Operations
|
||||||
Check Actions
|
Check Actions
|
||||||
Check Filters
|
Check Filters
|
||||||
|
|
||||||
|
[Teardown] Cleanup
|
||||||
|
|
||||||
|
|
||||||
*** Keywords ***
|
*** Keywords ***
|
||||||
|
@ -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}
|
||||||
|
|
||||||
|
@ -60,6 +60,7 @@ NeoFS Simple Netmap
|
||||||
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 ***
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,7 @@ NeoFS Complex Object Operations
|
||||||
|
|
||||||
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
|
||||||
|
@ -98,11 +99,15 @@ NeoFS Complex 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
|
||||||
|
|
||||||
Cleanup File ${FILE}
|
[Teardown] Cleanup ${FILE}
|
||||||
Cleanup File s_file_read
|
|
||||||
Cleanup File h_file_read
|
|
||||||
Cleanup File s_get_range
|
*** Keywords ***
|
||||||
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}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -87,11 +87,19 @@ 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
|
||||||
|
|
||||||
Cleanup File ${FILE}
|
[Teardown] Cleanup ${FILE}
|
||||||
Cleanup File s_file_read
|
|
||||||
Cleanup File h_file_read
|
|
||||||
Cleanup File s_get_range
|
|
||||||
Cleanup File h_get_range
|
*** Keywords ***
|
||||||
|
|
||||||
|
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,9 +30,11 @@ 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
|
${CID} = Create container ${PRIV_KEY} ${EMPTY} REP 2 IN X CBF 1 SELECT 4 FROM * AS X
|
||||||
Container Existing ${PRIV_KEY} ${CID}
|
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}
|
||||||
|
|
||||||
|
@ -43,3 +45,7 @@ NeoFS Object Replication
|
||||||
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}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue