Skip to content

Commit

Permalink
extract common profile code into ml utility
Browse files Browse the repository at this point in the history
Signed-off-by: Shaanjot Gill <[email protected]>
  • Loading branch information
shaangill025 committed Jul 28, 2023
1 parent 8d3daa7 commit bcb1e4d
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 38 deletions.
23 changes: 4 additions & 19 deletions aries_cloudagent/askar/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from ..ledger.indy_vdr import IndyVdrLedger, IndyVdrLedgerPool
from ..storage.base import BaseStorage, BaseStorageSearch
from ..storage.vc_holder.base import VCHolder
from ..utils.multi_ledger import get_write_ledger_config_for_profile
from ..wallet.base import BaseWallet
from ..wallet.crypto import validate_seed

Expand Down Expand Up @@ -124,26 +125,10 @@ def bind_providers(self):
self.settings.get("ledger.ledger_config_list")
and len(self.settings.get("ledger.ledger_config_list")) >= 1
):
write_ledger_config = None
prod_write_ledger_pool = []
non_prod_write_ledger_pool = []
for ledger_config in self.settings.get("ledger.ledger_config_list"):
if ledger_config.get("is_production") and ledger_config.get("is_write"):
prod_write_ledger_pool.append(ledger_config)
elif not ledger_config.get("is_production") and ledger_config.get(
"is_write"
):
non_prod_write_ledger_pool.append(ledger_config)
write_ledger_config = get_write_ledger_config_for_profile(
settings=self.settings
)
cache = self.context.injector.inject_or(BaseCache)
if len(prod_write_ledger_pool) >= 1:
write_ledger_config = prod_write_ledger_pool[0]
elif len(non_prod_write_ledger_pool) >= 1:
write_ledger_config = non_prod_write_ledger_pool[0]
else:
raise ProfileError(
"No write ledger configuration found in ledger_config_list which "
"was provided with --genesis-transactions-list"
)
injector.bind_provider(
BaseLedger,
ClassProvider(
Expand Down
23 changes: 4 additions & 19 deletions aries_cloudagent/indy/sdk/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from ...ledger.indy import IndySdkLedger, IndySdkLedgerPool
from ...storage.base import BaseStorage, BaseStorageSearch
from ...storage.vc_holder.base import VCHolder
from ...utils.multi_ledger import get_write_ledger_config_for_profile
from ...wallet.base import BaseWallet
from ...wallet.indy import IndySdkWallet
from ..holder import IndyHolder
Expand Down Expand Up @@ -92,26 +93,10 @@ def bind_providers(self):
self.settings.get("ledger.ledger_config_list")
and len(self.settings.get("ledger.ledger_config_list")) >= 1
):
write_ledger_config = None
prod_write_ledger_pool = []
non_prod_write_ledger_pool = []
for ledger_config in self.settings.get("ledger.ledger_config_list"):
if ledger_config.get("is_production") and ledger_config.get("is_write"):
prod_write_ledger_pool.append(ledger_config)
elif not ledger_config.get("is_production") and ledger_config.get(
"is_write"
):
non_prod_write_ledger_pool.append(ledger_config)
write_ledger_config = get_write_ledger_config_for_profile(
settings=self.settings
)
cache = self.context.injector.inject_or(BaseCache)
if len(prod_write_ledger_pool) >= 1:
write_ledger_config = prod_write_ledger_pool[0]
elif len(non_prod_write_ledger_pool) >= 1:
write_ledger_config = non_prod_write_ledger_pool[0]
else:
raise ProfileError(
"No write ledger configuration found in ledger_config_list which "
"was provided with --genesis-transactions-list"
)
injector.bind_provider(
BaseLedger,
ClassProvider(
Expand Down
26 changes: 26 additions & 0 deletions aries_cloudagent/utils/multi_ledger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"""Multiledger related utility methods."""

from ..core.error import ProfileError
from ..config.settings import BaseSettings


def get_write_ledger_config_for_profile(settings: BaseSettings) -> dict:
"""Return initial/default write ledger config on profile creation."""
write_ledger_config = None
prod_write_ledger_pool = []
non_prod_write_ledger_pool = []
for ledger_config in settings.get("ledger.ledger_config_list"):
if ledger_config.get("is_production") and ledger_config.get("is_write"):
prod_write_ledger_pool.append(ledger_config)
elif not ledger_config.get("is_production") and ledger_config.get("is_write"):
non_prod_write_ledger_pool.append(ledger_config)
if len(prod_write_ledger_pool) >= 1:
write_ledger_config = prod_write_ledger_pool[0]
elif len(non_prod_write_ledger_pool) >= 1:
write_ledger_config = non_prod_write_ledger_pool[0]
else:
raise ProfileError(
"No write ledger configuration found in ledger_config_list which "
"was provided with --genesis-transactions-list"
)
return write_ledger_config

0 comments on commit bcb1e4d

Please sign in to comment.