|
1 | 1 | import { ApiServerClient } from '../../clients-external/apiserverclient.js'; |
2 | | -import { ApiServerClientListResult, BasePaths, PublicRepoUrl } from '../../types.js'; |
3 | | -import { dataService } from '../../../request.js'; |
| 2 | +import { ApiServerClientListResult } from '../../types.js'; |
4 | 3 | import { DefinitionsManager } from '../../results/DefinitionsManager.js'; |
5 | 4 | import logger from '../../../logger.js'; |
6 | | -import { Account } from '../../../../types.js'; |
7 | 5 |
|
8 | 6 | const { log, error } = logger('lib: engage: utils: agents: getters'); |
9 | 7 |
|
@@ -56,49 +54,17 @@ export const getEnvironmentId = async ( |
56 | 54 | return resource.data?.metadata ? resource.data.metadata.id || '' : ''; |
57 | 55 | }; |
58 | 56 |
|
59 | | -export const getLatestAgentVersion = async (agent: string, account: Account): Promise<string> => { |
| 57 | +export const getLatestAgentVersion = async (client: ApiServerClient, agentName: string): Promise<string> => { |
60 | 58 | try { |
61 | | - const service = await dataService({ account, baseUrl: PublicRepoUrl + BasePaths.DockerAgentAPIRepoPath }); |
62 | | - |
63 | | - const response = await service.get( |
64 | | - `/${agent}/tags/list`, |
65 | | - { |
66 | | - // docker api requires auth, even if its just anonymous |
67 | | - Authorization: `Basic ${Buffer.from('anonymous:').toString('base64')}`, |
68 | | - }, |
69 | | - true |
70 | | - ); |
71 | | - |
72 | | - if (response.tags.length === 0) { |
73 | | - return 'latest'; |
| 59 | + const componentDef = await client.getComponentDefinitionsByName(agentName); |
| 60 | + const version = componentDef.spec?.latest?.version; |
| 61 | + if (version) { |
| 62 | + log(`Latest Version (${agentName}): ${version}`); |
| 63 | + return version; |
74 | 64 | } |
75 | | - const latestVersion = response.tags.reduce((prev: string, current: string) => { |
76 | | - // skip any tags that are latest |
77 | | - if (prev === 'latest') { |
78 | | - return current; |
79 | | - } else if (current === 'latest') { |
80 | | - return prev; |
81 | | - } |
82 | | - |
83 | | - // find the largest tag |
84 | | - const [ pMajor, pMinor, pPatch ] = prev.split('.').map(Number); |
85 | | - const [ cMajor, cMinor, cPatch ] = current.split('.').map(Number); |
86 | | - |
87 | | - if (cMajor > pMajor) { |
88 | | - return current; |
89 | | - } |
90 | | - if (cMajor === pMajor && cMinor > pMinor) { |
91 | | - return current; |
92 | | - } |
93 | | - if (cMajor === pMajor && cMinor === pMinor && cPatch > pPatch) { |
94 | | - return current; |
95 | | - } |
96 | | - return prev; |
97 | | - }); |
98 | | - log(`Latest Version (${agent}): ${latestVersion}`); |
99 | | - return latestVersion; |
| 65 | + return 'latest'; |
100 | 66 | } catch (e: any) { |
101 | | - error('Error hit retrieving latest version of agent, setting tag to latest'); |
| 67 | + error('Error retrieving latest version, setting tag to latest'); |
102 | 68 | error(e); |
103 | 69 | return 'latest'; |
104 | 70 | } |
|
0 commit comments