(#122) neofs-cli control drop-objects test case
Signed-off-by: Elizaveta Chichindaeva <elizaveta@nspcc.ru>
This commit is contained in:
parent
1fe540fce9
commit
42ba6ac462
4 changed files with 103 additions and 5 deletions
|
@ -763,6 +763,15 @@ def get_control_endpoint_with_wif(endpoint_number: str = ''):
|
||||||
return endpoint_num, endpoint_control, wif
|
return endpoint_num, endpoint_control, wif
|
||||||
|
|
||||||
|
|
||||||
|
@keyword('Get Locode')
|
||||||
|
def get_locode():
|
||||||
|
endpoint_values = random.choice(list(NEOFS_NETMAP_DICT.values()))
|
||||||
|
locode = endpoint_values['UN-LOCODE']
|
||||||
|
logger.info(f'Random locode chosen: {locode}')
|
||||||
|
|
||||||
|
return locode
|
||||||
|
|
||||||
|
|
||||||
@keyword('Get Nodes Log Latest Timestamp')
|
@keyword('Get Nodes Log Latest Timestamp')
|
||||||
def get_logs_latest_timestamp():
|
def get_logs_latest_timestamp():
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
*** Settings ***
|
||||||
|
Variables ../../../variables/common.py
|
||||||
|
Variables ../../../variables/acl.py
|
||||||
|
|
||||||
|
Library Process
|
||||||
|
Library contract_keywords.py
|
||||||
|
Library neofs.py
|
||||||
|
Library String
|
||||||
|
|
||||||
|
Library payment_neogo.py
|
||||||
|
|
||||||
|
Resource setup_teardown.robot
|
||||||
|
Resource payment_operations.robot
|
||||||
|
Resource storage.robot
|
||||||
|
|
||||||
|
*** Variables ***
|
||||||
|
${CONTAINER_WAIT_INTERVAL} = 1 min
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
Drop command in control group
|
||||||
|
[Documentation] Testcase to check drop-objects command from control group.
|
||||||
|
[Tags] NeoFSCLI
|
||||||
|
[Timeout] 10 min
|
||||||
|
|
||||||
|
[Setup] Setup
|
||||||
|
|
||||||
|
${NODE_NUM} ${NODE} ${WIF} = Get control endpoint with wif
|
||||||
|
${LOCODE} = Get Locode
|
||||||
|
|
||||||
|
${FILE_SIMPLE} = Generate file of bytes ${SIMPLE_OBJ_SIZE}
|
||||||
|
${FILE_COMPLEX} = Generate file of bytes ${COMPLEX_OBJ_SIZE}
|
||||||
|
|
||||||
|
${WALLET} ${ADDR} ${USER_KEY} = Init Wallet with Address ${ASSETS_DIR}
|
||||||
|
Payment Operations ${ADDR} ${USER_KEY}
|
||||||
|
|
||||||
|
${PRIV_CID} = Create container ${USER_KEY} ${PRIVATE_ACL} REP 1 CBF 1 SELECT 1 FROM * FILTER 'UN-LOCODE' EQ '${LOCODE}' AS LOC
|
||||||
|
Wait Until Keyword Succeeds ${MORPH_BLOCK_TIME} ${CONTAINER_WAIT_INTERVAL}
|
||||||
|
... Container Existing ${USER_KEY} ${PRIV_CID}
|
||||||
|
|
||||||
|
#########################
|
||||||
|
# Dropping simple object
|
||||||
|
#########################
|
||||||
|
|
||||||
|
${S_OID} = Put object ${USER_KEY} ${FILE_SIMPLE} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
||||||
|
Get object ${USER_KEY} ${PRIV_CID} ${S_OID} ${EMPTY} s_file_read
|
||||||
|
Head object ${NEOFS_IR_WIF} ${PRIV_CID} ${S_OID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
Drop object ${NODE} ${WIF} ${PRIV_CID} ${S_OID}
|
||||||
|
|
||||||
|
Wait Until Keyword Succeeds 3x ${SHARD_0_GC_SLEEP}
|
||||||
|
... Run Keyword And Expect Error Error:*
|
||||||
|
... Get object ${USER_KEY} ${PRIV_CID} ${S_OID} ${EMPTY} s_file_read options='--ttl 1'
|
||||||
|
Run Keyword And Expect Error Error:*
|
||||||
|
... Head object ${NEOFS_IR_WIF} ${PRIV_CID} ${S_OID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
Drop object ${NODE} ${WIF} ${PRIV_CID} ${S_OID}
|
||||||
|
|
||||||
|
##########################
|
||||||
|
# Dropping complex object
|
||||||
|
##########################
|
||||||
|
|
||||||
|
${C_OID} = Put object ${USER_KEY} ${FILE_COMPLEX} ${PRIV_CID} ${EMPTY} ${EMPTY}
|
||||||
|
Get object ${USER_KEY} ${PRIV_CID} ${C_OID} ${EMPTY} s_file_read
|
||||||
|
Head object ${NEOFS_IR_WIF} ${PRIV_CID} ${C_OID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
Drop object ${NODE} ${WIF} ${PRIV_CID} ${C_OID}
|
||||||
|
|
||||||
|
Get object ${USER_KEY} ${PRIV_CID} ${C_OID} ${EMPTY} s_file_read
|
||||||
|
Head object ${NEOFS_IR_WIF} ${PRIV_CID} ${C_OID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
@{SPLIT_OIDS} = Get Split objects ${USER_KEY} ${PRIV_CID} ${C_OID}
|
||||||
|
FOR ${CHILD_OID} IN @{SPLIT_OIDS}
|
||||||
|
Drop object ${NODE} ${WIF} ${PRIV_CID} ${CHILD_OID}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
Wait Until Keyword Succeeds 3x ${SHARD_0_GC_SLEEP}
|
||||||
|
... Run Keyword And Expect Error Error:*
|
||||||
|
... Get object ${USER_KEY} ${PRIV_CID} ${C_OID} ${EMPTY} s_file_read options='--ttl 1'
|
||||||
|
Run Keyword And Expect Error Error:*
|
||||||
|
... Head object ${NEOFS_IR_WIF} ${PRIV_CID} ${C_OID} ${EMPTY} ${EMPTY}
|
||||||
|
|
||||||
|
|
||||||
|
[Teardown] Teardown netmap_control_drop
|
|
@ -1,4 +1,4 @@
|
||||||
PUBLIC_ACL = "0x1FFFFFFF"
|
PUBLIC_ACL = "0x1FFFFFFF"
|
||||||
PRIVATE_ACL = "0x18888888"
|
PRIVATE_ACL = "0x18888888"
|
||||||
READONLY_ACL = "0x1FFF88FF"
|
READONLY_ACL = "0x1FFF88FF"
|
||||||
INACCESSIBLE_ACL = "0x40000000 "
|
INACCESSIBLE_ACL = "0x40000000"
|
||||||
|
|
|
@ -20,6 +20,7 @@ MAINNET_BLOCK_TIME = os.getenv('MAINNET_BLOCK_TIME', "15s")
|
||||||
MAINNET_TIMEOUT = os.getenv('MAINNET_TIMEOUT', "1min")
|
MAINNET_TIMEOUT = os.getenv('MAINNET_TIMEOUT', "1min")
|
||||||
MORPH_BLOCK_TIME = os.getenv("MORPH_BLOCK_TIME", '1s')
|
MORPH_BLOCK_TIME = os.getenv("MORPH_BLOCK_TIME", '1s')
|
||||||
NEOFS_CONTRACT_CACHE_TIMEOUT = os.getenv("NEOFS_CONTRACT_CACHE_TIMEOUT", "30s")
|
NEOFS_CONTRACT_CACHE_TIMEOUT = os.getenv("NEOFS_CONTRACT_CACHE_TIMEOUT", "30s")
|
||||||
|
SHARD_0_GC_SLEEP = os.getenv("NEOFS_STORAGE_SHARD_0_GC_REMOVER_SLEEP_INTERVAL", "1m")
|
||||||
|
|
||||||
NEOFS_IR_WIF = os.getenv("NEOFS_IR_WIF", "KxyjQ8eUa4FHt3Gvioyt1Wz29cTUrE4eTqX3yFSk1YFCsPL8uNsY")
|
NEOFS_IR_WIF = os.getenv("NEOFS_IR_WIF", "KxyjQ8eUa4FHt3Gvioyt1Wz29cTUrE4eTqX3yFSk1YFCsPL8uNsY")
|
||||||
NEOFS_SN_WIF = os.getenv("NEOFS_SN_WIF", "Kwk6k2eC3L3QuPvD8aiaNyoSXgQ2YL1bwS5CP1oKoA9waeAze97s")
|
NEOFS_SN_WIF = os.getenv("NEOFS_SN_WIF", "Kwk6k2eC3L3QuPvD8aiaNyoSXgQ2YL1bwS5CP1oKoA9waeAze97s")
|
||||||
|
@ -46,15 +47,19 @@ GATE_PUB_KEY = '0313b1ac3a8076e155a7e797b24f0b650cccad5941ea59d7cfd51a024a8b2a06
|
||||||
|
|
||||||
NEOFS_NETMAP_DICT = {'s01': {'rpc': 's01.neofs.devenv:8080',
|
NEOFS_NETMAP_DICT = {'s01': {'rpc': 's01.neofs.devenv:8080',
|
||||||
'control': 's01.neofs.devenv:8081',
|
'control': 's01.neofs.devenv:8081',
|
||||||
'wif': 'Kwk6k2eC3L3QuPvD8aiaNyoSXgQ2YL1bwS5CP1oKoA9waeAze97s'},
|
'wif': 'Kwk6k2eC3L3QuPvD8aiaNyoSXgQ2YL1bwS5CP1oKoA9waeAze97s',
|
||||||
|
'UN-LOCODE': 'RU MOW'},
|
||||||
's02': {'rpc': 's02.neofs.devenv:8080',
|
's02': {'rpc': 's02.neofs.devenv:8080',
|
||||||
'control': 's02.neofs.devenv:8081',
|
'control': 's02.neofs.devenv:8081',
|
||||||
'wif': 'L1NdHdnrTNGQZH1fJSrdUZJyeYFHvaQSSHZHxhK3udiGFdr5YaZ6'},
|
'wif': 'L1NdHdnrTNGQZH1fJSrdUZJyeYFHvaQSSHZHxhK3udiGFdr5YaZ6',
|
||||||
|
'UN-LOCODE': 'RU LED'},
|
||||||
's03': {'rpc': 's03.neofs.devenv:8080',
|
's03': {'rpc': 's03.neofs.devenv:8080',
|
||||||
'control': 's03.neofs.devenv:8081',
|
'control': 's03.neofs.devenv:8081',
|
||||||
'wif': 'KzN38k39af6ACWJjK8YrnARWo86ddcc1EuBWz7xFEdcELcP3ZTym'},
|
'wif': 'KzN38k39af6ACWJjK8YrnARWo86ddcc1EuBWz7xFEdcELcP3ZTym',
|
||||||
|
'UN-LOCODE': 'SE STO'},
|
||||||
's04': {'rpc': 's04.neofs.devenv:8080',
|
's04': {'rpc': 's04.neofs.devenv:8080',
|
||||||
'control': 's04.neofs.devenv:8081',
|
'control': 's04.neofs.devenv:8081',
|
||||||
'wif': 'Kzk1Z3dowAqfNyjqeYKWenZMduFV3NAKgXg9K1sA4jRKYxEc8HEW'}
|
'wif': 'Kzk1Z3dowAqfNyjqeYKWenZMduFV3NAKgXg9K1sA4jRKYxEc8HEW',
|
||||||
|
'UN-LOCODE': 'FI HEL'}
|
||||||
}
|
}
|
||||||
NEOFS_NETMAP = [i['rpc'] for i in NEOFS_NETMAP_DICT.values()]
|
NEOFS_NETMAP = [i['rpc'] for i in NEOFS_NETMAP_DICT.values()]
|
Loading…
Reference in a new issue