Skip to content
This repository was archived by the owner on Apr 30, 2025. It is now read-only.

Commit e3b7e91

Browse files
committed
[uniconfig] Add find-schema-resources-RPC
1 parent 2bba67f commit e3b7e91

File tree

4 files changed

+771
-695
lines changed

4 files changed

+771
-695
lines changed

uniconfig/python/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,6 @@
6767

6868
# 3.0.2
6969
- Fix missing SNMP support in connection-manager UniConfig workers.
70+
71+
# 3.1.0
72+
- Add find-schema-resources RPC
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import requests
2+
from frinx.common.frinx_rest import UNICONFIG_HEADERS
3+
from frinx.common.frinx_rest import UNICONFIG_REQUEST_PARAMS
4+
from frinx.common.frinx_rest import UNICONFIG_URL_BASE
5+
from frinx.common.worker.service import ServiceWorkersImpl
6+
from frinx.common.worker.task_def import TaskDefinition
7+
from frinx.common.worker.task_def import TaskExecutionProperties
8+
from frinx.common.worker.task_def import TaskInput
9+
from frinx.common.worker.task_def import TaskOutput
10+
from frinx.common.worker.task_result import TaskResult
11+
from frinx.common.worker.worker import WorkerImpl
12+
from frinx_api.uniconfig import OperationsFindSchemaResourcesPostResponse
13+
14+
from . import class_to_json
15+
from . import handle_response
16+
from . import uniconfig_zone_to_cookie
17+
18+
19+
class SchemaResourcesWorkers(ServiceWorkersImpl):
20+
class FindSchemaResources(WorkerImpl):
21+
from frinx_api.uniconfig.rest_api import FindSchemaResources as UniconfigApi
22+
from frinx_api.uniconfig.schema.resources.findschemaresources import Input
23+
24+
class ExecutionProperties(TaskExecutionProperties):
25+
exclude_empty_inputs: bool = True
26+
transform_string_to_json_valid: bool = True
27+
28+
class WorkerDefinition(TaskDefinition):
29+
name: str = "UNICONFIG_Find_schema_resources_RPC"
30+
description: str = "Find schema resources"
31+
32+
class WorkerInput(TaskInput):
33+
repository_name: str
34+
keywords: list[str]
35+
transaction_id: str | None = None
36+
uniconfig_server_id: str | None = None
37+
uniconfig_url_base: str = UNICONFIG_URL_BASE
38+
39+
class WorkerOutput(TaskOutput):
40+
output: OperationsFindSchemaResourcesPostResponse
41+
42+
def execute(self, worker_input: WorkerInput) -> TaskResult[WorkerOutput]:
43+
if self.UniconfigApi.request is None:
44+
raise Exception(f"Failed to create request {self.UniconfigApi.request}")
45+
46+
response = requests.request(
47+
url=worker_input.uniconfig_url_base + self.UniconfigApi.uri,
48+
method=self.UniconfigApi.method,
49+
data=class_to_json(
50+
self.UniconfigApi.request(
51+
input=self.Input(
52+
repository_name=worker_input.repository_name,
53+
keywords=worker_input.keywords,
54+
)
55+
)
56+
),
57+
cookies=uniconfig_zone_to_cookie(
58+
uniconfig_server_id=worker_input.uniconfig_server_id, transaction_id=worker_input.transaction_id
59+
),
60+
headers=dict(UNICONFIG_HEADERS),
61+
params=UNICONFIG_REQUEST_PARAMS,
62+
)
63+
64+
return handle_response(response, self.WorkerOutput)
65+

0 commit comments

Comments
 (0)