Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DR-853 Recude Controller API calls #1352

Merged
merged 1 commit into from
Jan 6, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions keepercommander/commands/discover/__init__.py
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@
import logging
from ..base import Command
from ..pam.config_facades import PamConfigurationRecordFacade
from ..pam import gateway_helper
from ..pam.router_helper import get_response_payload
from ..pam.gateway_helper import get_all_gateways
from ..ksm import KSMCommand
@@ -33,7 +32,14 @@ def __init__(self, configuration: KeeperRecord, facade: PamConfigurationRecordFa
self._shared_folders = None

@staticmethod
def from_configuration_uid(params: KeeperParams, configuration_uid: str):
def all_gateways(params: KeeperParams):
return get_all_gateways(params)

@staticmethod
def from_configuration_uid(params: KeeperParams, configuration_uid: str, gateways: Optional[List] = None):

if gateways is None:
gateways = GatewayContext.all_gateways(KeeperParams)

configuration_record = vault.KeeperRecord.load(params, configuration_uid)
if not isinstance(configuration_record, vault.TypedRecord):
@@ -44,7 +50,7 @@ def from_configuration_uid(params: KeeperParams, configuration_uid: str):
configuration_facade.record = configuration_record

gateway_uid = configuration_facade.controller_uid
gateway = next((x for x in gateway_helper.get_all_gateways(params)
gateway = next((x for x in gateways
if utils.base64_url_encode(x.controllerUid) == gateway_uid),
None)

5 changes: 4 additions & 1 deletion keepercommander/commands/discover/job_remove.py
Original file line number Diff line number Diff line change
@@ -27,10 +27,13 @@ def execute(self, params, **kwargs):

# Get all the PAM configuration records
configuration_records = list(vault_extensions.find_records(params, "pam.*Configuration"))
all_gateways = GatewayContext.all_gateways(params)

for configuration_record in configuration_records:

gateway_context = GatewayContext.from_configuration_uid(params, configuration_record.record_uid)
gateway_context = GatewayContext.from_configuration_uid(params=params,
configuration_uid=configuration_record.record_uid,
gateways=all_gateways)
if gateway_context is None:
continue

5 changes: 4 additions & 1 deletion keepercommander/commands/discover/job_status.py
Original file line number Diff line number Diff line change
@@ -240,13 +240,16 @@ def execute(self, params, **kwargs):
max_gateway_name = 12

all_jobs = []
all_gateways = GatewayContext.all_gateways(params)

# For each configuration/ gateway, we are going to get all jobs.
# We are going to query the gateway for any updated status.
gateway_context = None
for configuration_record in configuration_records:

gateway_context = GatewayContext.from_configuration_uid(params, configuration_record.record_uid)
gateway_context = GatewayContext.from_configuration_uid(params=params,
configuration_uid=configuration_record.record_uid,
gateways=all_gateways)
if gateway_context is None:
continue

6 changes: 5 additions & 1 deletion keepercommander/commands/discover/result_process.py
Original file line number Diff line number Diff line change
@@ -1221,10 +1221,14 @@ def execute(self, params: KeeperParams, **kwargs):
dry_run = kwargs.get("dry_run", False)
debug_level = kwargs.get("debug_level", 0)

all_gateways = GatewayContext.all_gateways(params)

configuration_records = list(vault_extensions.find_records(params, "pam.*Configuration"))
for configuration_record in configuration_records:

gateway_context = GatewayContext.from_configuration_uid(params, configuration_record.record_uid)
gateway_context = GatewayContext.from_configuration_uid(params=params,
configuration_uid=configuration_record.record_uid,
gateways=all_gateways)
if gateway_context is None:
continue