Skip to content

Commit 63bd82f

Browse files
committed
Connector reachability
1 parent c9bacd5 commit 63bd82f

File tree

5 files changed

+49
-5
lines changed

5 files changed

+49
-5
lines changed

ark_sdk_python/models/actions/services/ark_sia_exec_action_consts.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@
1414
)
1515
from ark_sdk_python.models.cli_services.sia.policies_editor.db import ArkSIADBGeneratePolicy
1616
from ark_sdk_python.models.cli_services.sia.policies_editor.vm import ArkSIAVMGeneratePolicy
17-
from ark_sdk_python.models.services.sia.access import ArkSIAGetConnectorSetupScript, ArkSIAInstallConnector, ArkSIAUninstallConnector
17+
from ark_sdk_python.models.services.sia.access import (
18+
ArkSIAGetConnectorSetupScript,
19+
ArkSIAInstallConnector,
20+
ArkSIATestConnectorReachability,
21+
ArkSIAUninstallConnector,
22+
)
1823
from ark_sdk_python.models.services.sia.certificates import (
1924
ArkSIACertificatesFilter,
2025
ArkSIACreateCertificate,
@@ -249,6 +254,7 @@
249254
'connector-setup-script': ArkSIAGetConnectorSetupScript,
250255
'install-connector': ArkSIAInstallConnector,
251256
'uninstall-connector': ArkSIAUninstallConnector,
257+
'test-connector-reachability': ArkSIATestConnectorReachability,
252258
}
253259
ACCESS_ACTION: Final[ArkServiceActionDefinition] = ArkServiceActionDefinition(
254260
action_name='access',

ark_sdk_python/models/services/sia/access/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
from ark_sdk_python.models.services.sia.access.ark_sia_connector_setup_script import ArkSIAConnectorSetupScript
33
from ark_sdk_python.models.services.sia.access.ark_sia_get_connector_setup_script import ArkSIAGetConnectorSetupScript
44
from ark_sdk_python.models.services.sia.access.ark_sia_install_connector import ArkSIAInstallConnector
5+
from ark_sdk_python.models.services.sia.access.ark_sia_test_connector_reachability import ArkSIATestConnectorReachability
56
from ark_sdk_python.models.services.sia.access.ark_sia_uninstall_connector import ArkSIAUninstallConnector
67

78
__all__ = [
89
'ArkSIAGetConnectorSetupScript',
910
'ArkSIAConnectorSetupScript',
1011
'ArkSIAInstallConnector',
1112
'ArkSIAUninstallConnector',
13+
'ArkSIATestConnectorReachability',
1214
'serialize_access_workspace_type',
1315
]

ark_sdk_python/services/sia/access/ark_sia_access_service.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,18 @@
2222
ArkSIAConnectorSetupScript,
2323
ArkSIAGetConnectorSetupScript,
2424
ArkSIAInstallConnector,
25+
ArkSIATestConnectorReachability,
2526
ArkSIAUninstallConnector,
2627
serialize_access_workspace_type,
2728
)
29+
from ark_sdk_python.models.services.sia.access.ark_sia_test_connector_reachability import ArkSIATestConnectorReachabilityResponse
2830
from ark_sdk_python.services.ark_service import ArkService
2931

3032
SERVICE_CONFIG: Final[ArkServiceConfig] = ArkServiceConfig(
3133
service_name='sia-access', required_authenticator_names=['isp'], optional_authenticator_names=[]
3234
)
3335
CONNECTORS_SETUP_SCRIPT_API: Final[str] = 'api/connectors/setup-script'
36+
TEST_CONNECTOR_REACHABILITY_API: Final[str] = 'api/connectors/{connector_id}/reachability'
3437

3538
# Linux / Darwin Commands
3639
UNIX_STOP_CONNECTOR_SERVICE_CMD: Final[str] = 'sudo systemctl stop cyberark-dpa-connector'
@@ -177,6 +180,34 @@ def __uninstall_connector_on_machine(
177180
connection.run_command(ArkConnectionCommand(command=cmdset['remove-connector-service']))
178181
connection.run_command(ArkConnectionCommand(command=cmdset['remove-connector-files']))
179182

183+
def test_connector_reachability(
184+
self, test_connector_reachability: ArkSIATestConnectorReachability
185+
) -> ArkSIATestConnectorReachabilityResponse:
186+
"""
187+
Tests reachability to backend endpoints and target hostname/port from specified connector
188+
189+
Args:
190+
test_connector_reachability (ArkSIATestConnectorReachability): _description_
191+
192+
Raises:
193+
ArkServiceException: _description_
194+
195+
Returns:
196+
Reachability test result: _description_
197+
"""
198+
body = {
199+
'checkBackendEndpoints': test_connector_reachability.check_backend_endpoints,
200+
}
201+
if test_connector_reachability.target_hostname and test_connector_reachability.target_port:
202+
body['targets'] = [{'hostname': test_connector_reachability.target_hostname, 'port': test_connector_reachability.target_port}]
203+
resp: Response = self.__client.post(
204+
TEST_CONNECTOR_REACHABILITY_API.format(connector_id=test_connector_reachability.connector_id),
205+
json=body,
206+
)
207+
if resp.status_code == HTTPStatus.OK:
208+
return ArkSIATestConnectorReachabilityResponse(**resp.json())
209+
raise ArkServiceException(f'Failed to test connector reachability [{resp.text}] - [{resp.status_code}]')
210+
180211
def connector_setup_script(self, get_connector_setup_script: ArkSIAGetConnectorSetupScript) -> ArkSIAConnectorSetupScript:
181212
"""
182213
Retrieves a new connector installation setup script

docs/examples/commands_examples.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,17 +130,17 @@ ark_public exec sia secrets vm add-secret --secret-type ProvisionerUser --provis
130130
ark exec sia access connector-setup-script -ct onprem -co windows -cpi 588741d5-e059-479d-b4c4-3d821a87f012
131131
```
132132

133-
### Install a DPA Windows Connector Remotely
133+
### Install a SIA Windows Connector Remotely
134134
```shell
135135
ark exec sia access install-connector --connector-pool-id abcd --connector-type onprem --connector-os windows --target-machine 1.2.3.4 --username myuser --password mypassword
136136
```
137137

138-
### Install a DPA Linux Connector Remotely
138+
### Install a SIA Linux Connector Remotely
139139
```shell
140140
ark exec sia access install-connector --connector-pool-id abcd --connector-type aws --connector-os linux --target-machine 1.2.3.4 --username ec2-user --private-key-path /path/to/key.pem
141141
```
142142

143-
### Delete and uninstall a DPA Connector
143+
### Delete and uninstall a SIA Connector
144144
```shell
145145
ark exec sia access delete-connector --connector-id=CMSConnector_e9685e0d-a92e-4097-ad4d-b54eadb69bcb_81fa03c5-d0d3-4157-95f8-6a1903900fa0 --uninstall-connector --target-machine 1.2.3.4 --username ec2-user --private-key-path /path/to/key.pem
146146
```
@@ -294,3 +294,8 @@ ark exec cmgr add-network --name mynetwork
294294
```shell
295295
ark exec cmgr add-pool --name mypool --assigned-network-ids mynetwork_id
296296
```
297+
298+
### Test SIA Connector Reachability
299+
```shell
300+
ark exec sia access test-connector-reachability --connector-id CMSConnector_588741d5-e059-479d-b4c4-3d821a87f012_66e0646d-4702-4b9c-81c3-b5b9b4ee2955 --check-backend-endpoints --target-hostname myhost.com --target-port 22
301+
```

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "ark-sdk-python"
3-
version = "2.1.1"
3+
version = "2.1.2"
44
description='Official Ark SDK / CLI for CyberArk Identity Security Platform'
55
authors = ["CyberArk <[email protected]>", "Ofir Iluz <[email protected]"]
66
readme = "README.md"

0 commit comments

Comments
 (0)