fix(monitor): preserve Docker web link ordering

This commit is contained in:
VAIO73
2026-10-19 08:16:16 +00:00
parent cfb90a094c
commit 8775fd30c5
2 changed files with 14 additions and 1 deletions
+1 -1
View File
@@ -281,7 +281,7 @@ def cached_web_links(vmid, lookup):
result.append({**endpoint, 'container_name': record['name'],
'service_name': meta['name'], 'service_slug': meta['slug'],
'image': record['image'], 'web_path': '/', 'logo_url': meta['logo_url']})
return result
return sorted(result, key=lambda item: (item["service_name"].lower(), item["host_port"]))
def filter_candidates(result, suggestions, apps):
@@ -202,6 +202,19 @@ class Cache(unittest.TestCase):
self.assertEqual(lxc_apps._probe_docker_web_links(101)[0]['host_port'], 8080)
execute.assert_not_called()
def test_shared_links_keep_existing_name_then_port_order(self):
value = copy.deepcopy(self.value)
value['_containers'][0]['name'] = 'z-last'
second = copy.deepcopy(value['_containers'][0]); second['name'] = 'a-first'
second['endpoints'] = [{'host_port':9090,'container_port':8080,'scheme':'http'},
{'host_port':8080,'container_port':8080,'scheme':'http'}]
value['_containers'].append(second)
lookup = lambda service,name,image: {'slug':None,'name':name,'logo_url':None}
with patch.object(docker,'scan',return_value=value): docker.discover(101)
links = docker.cached_web_links(101,lookup)
self.assertEqual([(x['service_name'],x['host_port']) for x in links],
[('a-first',8080),('a-first',9090),('z-last',8080)])
def test_registered_container_image_app_or_existing_port_is_not_duplicated(self):
item = self.value['candidates'][0]
for app in [{'discovery_id': item['discovery_id']}, {'container_name': item['container_name']},