From 30600b8856753059f49ca51d44895d0ff1211e2d Mon Sep 17 00:00:00 2001
From: Yulia Kovshova <y.kovshova@yadro.com>
Date: Fri, 18 Nov 2022 11:56:57 +0300
Subject: [PATCH] add password for s3

Signed-off-by: Yulia Kovshova <y.kovshova@yadro.com>
---
 pytest_tests/steps/s3_gate_base.py | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/pytest_tests/steps/s3_gate_base.py b/pytest_tests/steps/s3_gate_base.py
index 0ae97c8b..955ed2ac 100644
--- a/pytest_tests/steps/s3_gate_base.py
+++ b/pytest_tests/steps/s3_gate_base.py
@@ -12,14 +12,9 @@ import urllib3
 from botocore.config import Config
 from botocore.exceptions import ClientError
 from cli_helpers import _cmd_run, _configure_aws_cli, _run_with_passwd
-from common import (
-    NEOFS_AUTHMATE_EXEC,
-    NEOFS_ENDPOINT,
-    S3_GATE,
-    S3_GATE_WALLET_PASS,
-    S3_GATE_WALLET_PATH,
-)
+from common import NEOFS_AUTHMATE_EXEC, NEOFS_ENDPOINT, S3_GATE, S3_GATE_WALLET_PATH
 from data_formatters import get_wallet_public_key
+from neofs_testlib.hosting import Hosting
 from neofs_testlib.shell import Shell
 from python_keywords.container import list_containers
 
@@ -43,7 +38,7 @@ class TestS3GateBase:
 
     @pytest.fixture(scope="class", autouse=True)
     @allure.title("[Class/Autouse]: Create S3 client")
-    def s3_client(self, prepare_wallet_and_deposit, client_shell: Shell, request):
+    def s3_client(self, prepare_wallet_and_deposit, client_shell: Shell, request, hosting: Hosting):
         wallet = prepare_wallet_and_deposit
         s3_bearer_rules_file = f"{os.getcwd()}/robot/resources/files/s3_bearer_rules.json"
         policy = None if isinstance(request.param, str) else request.param[1]
@@ -53,7 +48,7 @@ class TestS3GateBase:
             access_key_id,
             secret_access_key,
             owner_private_key,
-        ) = init_s3_credentials(wallet, s3_bearer_rules_file=s3_bearer_rules_file, policy=policy)
+        ) = init_s3_credentials(wallet, hosting, s3_bearer_rules_file=s3_bearer_rules_file)
         containers_list = list_containers(wallet, shell=client_shell)
         assert cid in containers_list, f"Expected cid {cid} in {containers_list}"
 
@@ -65,13 +60,23 @@ class TestS3GateBase:
         TestS3GateBase.wallet = wallet
 
 
+def get_wallet_password(hosting: Hosting, s3_service_name: str) -> str:
+    service_config = hosting.get_service_config(s3_service_name)
+    return service_config.attributes.get("wallet_password")
+
+
 @allure.step("Init S3 Credentials")
 def init_s3_credentials(
-    wallet_path: str, s3_bearer_rules_file: Optional[str] = None, policy: Optional[dict] = None
+    wallet_path: str,
+    hosting: Hosting,
+    s3_bearer_rules_file: Optional[str] = None,
+    policy: Optional[dict] = None,
+    s3_service_name: str = "s3-gate01",
 ):
     bucket = str(uuid.uuid4())
     s3_bearer_rules = s3_bearer_rules_file or "robot/resources/files/s3_bearer_rules.json"
-    gate_public_key = get_wallet_public_key(S3_GATE_WALLET_PATH, S3_GATE_WALLET_PASS)
+    s3_password = get_wallet_password(hosting, s3_service_name)
+    gate_public_key = get_wallet_public_key(S3_GATE_WALLET_PATH, s3_password)
     cmd = (
         f"{NEOFS_AUTHMATE_EXEC} --debug --with-log --timeout {CREDENTIALS_CREATE_TIMEOUT} "
         f"issue-secret --wallet {wallet_path} --gate-public-key={gate_public_key} "