Skip to content

Commit 653fde5

Browse files
authored
Merge pull request #107 from cloudblue/LITE-25362_LITE-25285
LITE-25362, LITE-25285 handle list of variables in setup response ins…
2 parents 47abbc4 + e791b3d commit 653fde5

File tree

10 files changed

+88
-42
lines changed

10 files changed

+88
-42
lines changed

connect/eaas/runner/config.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ def logging_level(self):
7171

7272
@property
7373
def variables(self):
74-
return self.dyn_config.variables if self.dyn_config else {}
74+
return (
75+
{var['name']: var['value'] for var in self.dyn_config.variables or {}}
76+
if self.dyn_config else {}
77+
)
7578

7679
@property
7780
def metadata(self):

connect/eaas/runner/handlers/events.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,5 +179,8 @@ def get_variables(self):
179179
return self._extension_class.get_variables()
180180

181181
def get_extension_class(self):
182-
ext_class = next(iter_entry_points('connect.eaas.ext', 'extension'), None)
182+
ext_class = next(
183+
iter_entry_points('connect.eaas.ext', 'eventsapp'),
184+
next(iter_entry_points('connect.eaas.ext', 'extension'), None),
185+
)
183186
return ext_class.load() if ext_class else None

poetry.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ connect-openapi-client = ">=25.13"
3232
logzio-python-handler = "^3.0.0"
3333
backoff = "^1.11.1"
3434
uvloop = "^0.16.0"
35-
connect-eaas-core = ">=26.4,<27"
35+
connect-eaas-core = ">=26.5,<27"
3636
httpx = "^0.23.0"
3737
rich = "^12.5.1"
3838
pyfiglet = "^0.8.post1"

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ async def async_ext_method(self, request):
6767
@pytest.fixture(scope='session')
6868
def settings_payload():
6969
return {
70-
'variables': {'conf1': 'val1'},
70+
'variables': [{'name': 'conf1', 'value': 'val1', 'secure': False}],
7171
'environment_type': 'development',
7272
'logging': {
7373
'logging_api_key': None,

tests/handlers/test_events.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from importlib.metadata import EntryPoint
22

3+
import pytest
4+
35
from connect.eaas.core.proto import Logging, LogMeta, SetupResponse
46
from connect.eaas.runner.config import ConfigHelper
57
from connect.eaas.runner.handlers.events import EventsApp
@@ -38,7 +40,11 @@ def test_get_method(mocker, settings_payload, extension_cls):
3840
)
3941

4042

41-
def test_get_extension_class(mocker, settings_payload):
43+
@pytest.mark.parametrize(
44+
'entrypoint_name',
45+
('eventsapp', 'extension'),
46+
)
47+
def test_get_extension_class(mocker, settings_payload, entrypoint_name):
4248

4349
config = ConfigHelper()
4450
dyn_config = SetupResponse(
@@ -74,7 +80,7 @@ def get_variables(cls):
7480
mocker.patch(
7581
'connect.eaas.runner.handlers.events.iter_entry_points',
7682
return_value=iter([
77-
EntryPoint('extension', None, 'connect.eaas.ext'),
83+
EntryPoint(entrypoint_name, None, 'connect.eaas.ext'),
7884
]),
7985
)
8086

tests/test_config.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def test_update_dynamic_config(mocker):
2525
mocker.patch('connect.eaas.runner.config.logging.getLogger')
2626
config = ConfigHelper()
2727
payload = SetupResponse(
28-
variables={'var': 'value'},
28+
variables=[{'name': 'var', 'value': 'value'}],
2929
environment_type='production',
3030
logging=Logging(
3131
log_level='DEBUG',
@@ -42,7 +42,7 @@ def test_update_dynamic_config(mocker):
4242
)
4343

4444
config.update_dynamic_config(payload)
45-
assert config.variables == payload.variables
45+
assert config.variables == {var['name']: var['value'] for var in payload.variables}
4646
assert config.service_id == payload.logging.meta.service_id
4747
assert config.products == payload.logging.meta.products
4848
assert config.hub_id == payload.logging.meta.hub_id
@@ -59,7 +59,7 @@ def test_update_dynamic_config(mocker):
5959
)
6060

6161
config.update_dynamic_config(payload2)
62-
assert config.variables == payload.variables
62+
assert config.variables == {var['name']: var['value'] for var in payload.variables}
6363
assert config.service_id == payload.logging.meta.service_id
6464
assert config.products == payload.logging.meta.products
6565
assert config.hub_id == payload.logging.meta.hub_id
@@ -69,11 +69,11 @@ def test_update_dynamic_config(mocker):
6969
assert config.environment_type == payload.environment_type
7070

7171
payload3 = SetupResponse(
72-
variables={'var2': 'value2'},
72+
variables=[{'name': 'var2', 'value': 'value2'}],
7373
)
7474

7575
config.update_dynamic_config(payload3)
76-
assert config.variables == payload3.variables
76+
assert config.variables == {var['name']: var['value'] for var in payload3.variables}
7777
assert config.service_id == payload.logging.meta.service_id
7878
assert config.products == payload.logging.meta.products
7979
assert config.hub_id == payload.logging.meta.hub_id

tests/workers/test_anvil.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,10 @@ def get_descriptor(cls):
9595

9696
handler.assert_received(msg.dict())
9797

98-
assert worker.config.variables == settings_payload['variables']
98+
assert worker.config.variables == {
99+
var['name']: var['value']
100+
for var in settings_payload['variables']
101+
}
99102
assert worker.config.logging_api_key == settings_payload['logging']['logging_api_key']
100103
assert worker.config.environment_type == settings_payload['environment_type']
101104
assert worker.config.account_id == settings_payload['logging']['meta']['account_id']

tests/workers/test_events.py

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
import copy
23
import logging
34
import time
45

@@ -111,7 +112,10 @@ def get_descriptor(cls):
111112
).dict(),
112113
)
113114

114-
assert worker.config.variables == settings_payload['variables']
115+
assert worker.config.variables == {
116+
var['name']: var['value']
117+
for var in settings_payload['variables']
118+
}
115119
assert worker.config.logging_api_key == settings_payload['logging']['logging_api_key']
116120
assert worker.config.environment_type == settings_payload['environment_type']
117121
assert worker.config.account_id == settings_payload['logging']['meta']['account_id']
@@ -1188,10 +1192,18 @@ def get_descriptor(cls):
11881192
version=2,
11891193
message_type=MessageType.SETUP_RESPONSE,
11901194
data=SetupResponse(
1191-
variables={
1192-
'var1': 'value1',
1193-
'var2': 'value2',
1194-
},
1195+
variables=[
1196+
{
1197+
'name': 'var1',
1198+
'value': 'value1',
1199+
'secure': False,
1200+
},
1201+
{
1202+
'name': 'var2',
1203+
'value': 'value2',
1204+
'secure': False,
1205+
},
1206+
],
11951207
logging={'logging_api_key': 'token'},
11961208
environment_type='development',
11971209
),
@@ -1272,10 +1284,18 @@ def get_descriptor(cls):
12721284
version=2,
12731285
message_type=MessageType.SETUP_RESPONSE,
12741286
data=SetupResponse(
1275-
variables={
1276-
'var1': 'value1',
1277-
'var2': 'value2',
1278-
},
1287+
variables=[
1288+
{
1289+
'name': 'var1',
1290+
'value': 'value1',
1291+
'secure': False,
1292+
},
1293+
{
1294+
'name': 'var2',
1295+
'value': 'value2',
1296+
'secure': False,
1297+
},
1298+
],
12791299
logging={'logging_api_key': 'token'},
12801300
environment_type='development',
12811301
),
@@ -1356,10 +1376,18 @@ def get_descriptor(cls):
13561376
version=2,
13571377
message_type=MessageType.SETUP_RESPONSE,
13581378
data=SetupResponse(
1359-
variables={
1360-
'var1': 'value1',
1361-
'var2': 'value2',
1362-
},
1379+
variables=[
1380+
{
1381+
'name': 'var1',
1382+
'value': 'value1',
1383+
'secure': False,
1384+
},
1385+
{
1386+
'name': 'var2',
1387+
'value': 'value2',
1388+
'secure': False,
1389+
},
1390+
],
13631391
logging={'logging_api_key': 'token'},
13641392
environment_type='development',
13651393
),
@@ -1758,8 +1786,9 @@ def get_descriptor(cls):
17581786
)
17591787

17601788
dyn_config = SetupResponse(**settings_payload)
1761-
settings_payload['variables'] = {'conf2': 'val2'}
1762-
updated_config = SetupResponse(**settings_payload)
1789+
second_payload = copy.deepcopy(settings_payload)
1790+
second_payload['variables'] = [{'name': 'conf2', 'value': 'val2', 'secure': False}]
1791+
updated_config = SetupResponse(**second_payload)
17631792

17641793
data_to_send = [
17651794
Message(
@@ -1789,7 +1818,6 @@ def get_descriptor(cls):
17891818
await asyncio.sleep(.5)
17901819
worker.stop()
17911820
await task
1792-
17931821
assert worker.config.variables == {'conf2': 'val2'}
17941822

17951823

tests/workers/test_web.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,10 @@ def get_descriptor(cls):
109109

110110
handler.assert_received(msg.dict())
111111

112-
assert worker.config.variables == settings_payload['variables']
112+
assert worker.config.variables == {
113+
var['name']: var['value']
114+
for var in settings_payload['variables']
115+
}
113116
assert worker.config.logging_api_key == settings_payload['logging']['logging_api_key']
114117
assert worker.config.environment_type == settings_payload['environment_type']
115118
assert worker.config.account_id == settings_payload['logging']['meta']['account_id']

0 commit comments

Comments
 (0)