Use UpdateResourceMeta to apply Komodo deployment tags

This commit is contained in:
2026-09-17 09:45:18 -04:00
parent 516dfeb4c3
commit 1cd4eb6f09
3 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -243,7 +243,7 @@ async function applyDeploymentTags(deployment: string, gameTagName: string, mapT
const res = await komodoUpdateTagsOnResource('Deployment', deployment, tagIds);
if (!res.ok) {
console.warn(`[createServer] UpdateTagsOnResource for ${deployment}: ${res.message}`);
console.warn(`[createServer] UpdateResourceMeta (tags) for ${deployment}: ${res.message}`);
}
} catch (err) {
console.warn(`[createServer] tag application for ${deployment} threw:`, err);
+4 -2
View File
@@ -617,7 +617,7 @@ async function findTagByName(name: string): Promise<KomodoTagResult | null> {
/**
* Resolve a tag by name, creating it if it doesn't exist. Returns the tag's
* Komodo id (Mongo ObjectId string) for use in UpdateTagsOnResource.
* Komodo id (Mongo ObjectId string) for use in UpdateResourceMeta.
*
* Best-effort: callers should treat failure as "skip tagging", not "roll back
* the whole operation". Tags are cosmetic organization inside Komodo.
@@ -685,7 +685,9 @@ export async function komodoUpdateTagsOnResource(
if (!komodoConfigured()) {
return { ok: false, kind: 'unconfigured', message: 'komodo not configured' };
}
return postAndClassify('write/UpdateTagsOnResource', {
// UpdateResourceMeta owns tags; omit the other optional metadata fields
// so the deployment's description and template flag remain unchanged.
return postAndClassify('write/UpdateResourceMeta', {
target: { type: targetType, id: targetName },
tags: tagIds
});
+1 -1
View File
@@ -45,7 +45,7 @@ describe('Komodo tags', () => {
expect(fetchMock.mock.calls.map(([url]) => url)).toEqual([
'http://komodo.test/read/ListTags',
'http://komodo.test/read/ListTags',
'http://komodo.test/write/UpdateTagsOnResource'
'http://komodo.test/write/UpdateResourceMeta'
]);
expect(JSON.parse(fetchMock.mock.calls[2][1]!.body as string)).toEqual({
target: { type: 'Deployment', id: 't5-sumpf-1' }, tags: [gameId, mapId]