[#246] Get pubkey

Signed-off-by: Elizaveta Chichindaeva <elizaveta@nspcc.ru>
This commit is contained in:
Elizaveta Chichindaeva 2022-07-22 10:04:26 +03:00
parent a5764da57b
commit da9b723498
4 changed files with 23 additions and 11 deletions

View file

@ -10,7 +10,7 @@ from enum import Enum, auto
import base58 import base58
from cli_helpers import _cmd_run from cli_helpers import _cmd_run
from common import ASSETS_DIR, NEOFS_ENDPOINT, WALLET_CONFIG from common import ASSETS_DIR, NEOFS_ENDPOINT, WALLET_CONFIG
from neo3 import wallet from data_formatters import pub_key_hex
from robot.api import logger from robot.api import logger
from robot.api.deco import keyword from robot.api.deco import keyword
@ -174,12 +174,8 @@ def eacl_rules(access: str, verbs: list, user: str):
(list): a list of eACL rules (list): a list of eACL rules
""" """
if user not in ('others', 'user'): if user not in ('others', 'user'):
wallet_content = '' pubkey = pub_key_hex(user)
with open(user) as out: user = f"pubkey:{pubkey}"
wallet_content = json.load(out)
wallet_from_json = wallet.Wallet.from_json(wallet_content, password="")
pub_key_64 = str(wallet_from_json.accounts[0].public_key)
user = f"pubkey:{pub_key_64}"
rules = [] rules = []
for verb in verbs: for verb in verbs:

View file

@ -1,3 +1,6 @@
import json
from neo3 import wallet
def dict_to_attrs(attrs: dict) -> str: def dict_to_attrs(attrs: dict) -> str:
""" """
@ -11,3 +14,13 @@ def dict_to_attrs(attrs: dict) -> str:
(str): string in "a=b,c=d" format. (str): string in "a=b,c=d" format.
""" """
return ",".join(f"{key}={value}" for key, value in attrs.items()) return ",".join(f"{key}={value}" for key, value in attrs.items())
def pub_key_hex(wallet_path: str, wallet_password=""):
wallet_content = ''
with open(wallet_path) as out:
wallet_content = json.load(out)
wallet_from_json = wallet.Wallet.from_json(wallet_content, password=wallet_password)
pub_key_64 = str(wallet_from_json.accounts[0].public_key)
return pub_key_64

View file

@ -6,13 +6,14 @@ import uuid
from enum import Enum from enum import Enum
import boto3 import boto3
from data_formatters import pub_key_hex
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
import urllib3 import urllib3
from robot.api import logger from robot.api import logger
from robot.api.deco import keyword from robot.api.deco import keyword
from cli_helpers import _run_with_passwd, log_command_execution from cli_helpers import _run_with_passwd, log_command_execution
from common import GATE_PUB_KEY, NEOFS_ENDPOINT, S3_GATE from common import NEOFS_ENDPOINT, S3_GATE, S3_GATE_WALLET_PATH, S3_GATE_WALLET_PASS
########################################################## ##########################################################
# Disabling warnings on self-signed certificate which the # Disabling warnings on self-signed certificate which the
@ -33,12 +34,13 @@ class VersioningStatus(Enum):
@keyword('Init S3 Credentials') @keyword('Init S3 Credentials')
def init_s3_credentials(wallet, s3_bearer_rules_file: str = None): def init_s3_credentials(wallet_path, s3_bearer_rules_file: str = None):
bucket = str(uuid.uuid4()) bucket = str(uuid.uuid4())
s3_bearer_rules = s3_bearer_rules_file or 'robot/resources/files/s3_bearer_rules.json' s3_bearer_rules = s3_bearer_rules_file or 'robot/resources/files/s3_bearer_rules.json'
gate_pub_key = pub_key_hex(S3_GATE_WALLET_PATH, S3_GATE_WALLET_PASS)
cmd = ( cmd = (
f'{NEOFS_EXEC} --debug --with-log --timeout {CREDENTIALS_CREATE_TIMEOUT} ' f'{NEOFS_EXEC} --debug --with-log --timeout {CREDENTIALS_CREATE_TIMEOUT} '
f'issue-secret --wallet {wallet} --gate-public-key={GATE_PUB_KEY} ' f'issue-secret --wallet {wallet_path} --gate-public-key={gate_pub_key} '
f'--peer {NEOFS_ENDPOINT} --container-friendly-name {bucket} ' f'--peer {NEOFS_ENDPOINT} --container-friendly-name {bucket} '
f'--bearer-rules {s3_bearer_rules}' f'--bearer-rules {s3_bearer_rules}'
) )

View file

@ -31,7 +31,6 @@ NEOFS_CONTRACT = os.getenv("NEOFS_IR_CONTRACTS_NEOFS")
ASSETS_DIR = os.getenv("ASSETS_DIR", "TemporaryDir/") ASSETS_DIR = os.getenv("ASSETS_DIR", "TemporaryDir/")
MORPH_MAGIC = os.getenv("MORPH_MAGIC") MORPH_MAGIC = os.getenv("MORPH_MAGIC")
GATE_PUB_KEY = '0313b1ac3a8076e155a7e797b24f0b650cccad5941ea59d7cfd51a024a8b2a06bf'
STORAGE_NODE_1 = os.getenv('DATA_NODE_1', 's01.neofs.devenv:8080') STORAGE_NODE_1 = os.getenv('DATA_NODE_1', 's01.neofs.devenv:8080')
STORAGE_NODE_2 = os.getenv('DATA_NODE_2', 's02.neofs.devenv:8080') STORAGE_NODE_2 = os.getenv('DATA_NODE_2', 's02.neofs.devenv:8080')
@ -69,6 +68,8 @@ IR_WALLET_PATH = f"{DEVENV_SERVICES_PATH}/ir/wallet01.json"
IR_WALLET_CONFIG = f"{os.getcwd()}/neofs_cli_configs/one_wallet_password.yml" IR_WALLET_CONFIG = f"{os.getcwd()}/neofs_cli_configs/one_wallet_password.yml"
IR_WALLET_PASS = 'one' IR_WALLET_PASS = 'one'
STORAGE_WALLET_PATH = f"{DEVENV_SERVICES_PATH}/storage/wallet01.json" STORAGE_WALLET_PATH = f"{DEVENV_SERVICES_PATH}/storage/wallet01.json"
S3_GATE_WALLET_PATH = f"{DEVENV_SERVICES_PATH}/s3_gate/wallet.json"
S3_GATE_WALLET_PASS = 's3'
CONTROL_NODE_USER = os.getenv('CONTROL_NODE_USER', 'root') CONTROL_NODE_USER = os.getenv('CONTROL_NODE_USER', 'root')
CONTROL_NODE_PWD = os.getenv('CONTROL_NODE_PWD') CONTROL_NODE_PWD = os.getenv('CONTROL_NODE_PWD')