Skip to content

Commit 465f427

Browse files
committed
Add discovery server
1 parent 0f7097d commit 465f427

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

cloudquery/sdk/internal/servers/discovery_v1/__init__.py

Whitespace-only changes.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from typing import List
2+
3+
from cloudquery.discovery_v1 import discovery_pb2, discovery_pb2_grpc
4+
5+
6+
class DiscoveryServicer(discovery_pb2_grpc.DiscoveryServicer):
7+
def __init__(self, versions: List[int]):
8+
self._versions = versions
9+
10+
def GetVersions(self, request, context):
11+
return discovery_pb2.GetVersions.Response(versions=self._versions)

cloudquery/sdk/internal/servers/plugin_v3/plugin.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
1+
import pyarrow as pa
12

2-
import grpc
3-
from concurrent import futures
4-
import logging
53
from cloudquery.plugin_v3 import plugin_pb2, plugin_pb2_grpc
64
from cloudquery.sdk.plugin.plugin import Plugin
75
from cloudquery.sdk.schema import tables_to_arrow_schemas
8-
import pyarrow as pa
96

107

118
class PluginServicer(plugin_pb2_grpc.PluginServicer):
129
def __init__(self, plugin: Plugin):
1310
self._plugin = plugin
14-
pass
1511

1612
def GetName(self, request, context):
1713
return plugin_pb2.GetName.Response(name=self._plugin.name())
@@ -28,13 +24,13 @@ def GetTables(self, request: plugin_pb2.GetTables.Request, context):
2824
schema = tables_to_arrow_schemas(tables)
2925
tablesBytes = []
3026
for s in schema:
31-
sink = pa.BufferOutputStream()
32-
writer = pa.ipc.new_stream(sink, s)
33-
writer.close()
34-
buf = sink.getvalue().to_pybytes()
35-
tablesBytes.append(buf)
27+
sink = pa.BufferOutputStream()
28+
writer = pa.ipc.new_stream(sink, s)
29+
writer.close()
30+
buf = sink.getvalue().to_pybytes()
31+
tablesBytes.append(buf)
3632

37-
return plugin_pb2.GetTables.Response(tables=[])
33+
return plugin_pb2.GetTables.Response(tables=tablesBytes)
3834

3935
def Sync(self, request, context):
4036
plugin_pb2.Sync.Response()

cloudquery/sdk/serve/plugin.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import grpc
55
import sys
66

7+
from cloudquery.discovery_v1 import discovery_pb2_grpc
78
from cloudquery.plugin_v3 import plugin_pb2_grpc
89
from cloudquery.sdk.docs.generator import Generator
10+
from cloudquery.sdk.internal.servers.discovery_v1.discovery import DiscoveryServicer
911
from cloudquery.sdk.internal.servers.plugin_v3 import PluginServicer
1012
from cloudquery.sdk.plugin.plugin import Plugin
1113

@@ -56,6 +58,8 @@ def run(self, args):
5658

5759
def _serve(self, args):
5860
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
61+
discovery_pb2_grpc.add_DiscoveryServicer_to_server(
62+
DiscoveryServicer([3]), server)
5963
plugin_pb2_grpc.add_PluginServicer_to_server(
6064
PluginServicer(self._plugin), server)
6165
server.add_insecure_port(args.address)
@@ -65,5 +69,5 @@ def _serve(self, args):
6569

6670
def _generate_docs(self, args):
6771
print("Generating docs in format: " + args.format)
68-
generator = Generator(self._plugin.name(), self._plugin.get_tables([], []))
72+
generator = Generator(self._plugin.name(), self._plugin.get_tables(tables=["*"], skip_tables=[]))
6973
generator.generate(args.directory, args.format)

0 commit comments

Comments
 (0)