MCPcopy Create free account
hub / github.com/tiann/hapi / updateMachineMetadata

Method updateMachineMetadata

cli/src/api/apiMachine.ts:310–341  ·  view source on GitHub ↗
(handler: (metadata: MachineMetadata | null) => MachineMetadata)

Source from the content-addressed store, hash-verified

308 }
309
310 async updateMachineMetadata(handler: (metadata: MachineMetadata | null) => MachineMetadata): Promise<void> {
311 await backoff(async () => {
312 const updated = handler(this.machine.metadata)
313
314 const answer = await this.socket.emitWithAck('machine-update-metadata', {
315 machineId: this.machine.id,
316 metadata: updated,
317 expectedVersion: this.machine.metadataVersion
318 }) as unknown
319
320 applyVersionedAck(answer, {
321 valueKey: 'metadata',
322 parseValue: (value) => {
323 const parsed = MachineMetadataSchema.safeParse(value)
324 return parsed.success ? parsed.data : null
325 },
326 applyValue: (value) => {
327 this.machine.metadata = value
328 },
329 applyVersion: (version) => {
330 this.machine.metadataVersion = version
331 },
332 logInvalidValue: (context, version) => {
333 const suffix = context === 'success' ? 'ack' : 'version-mismatch ack'
334 logger.debug(`[API MACHINE] Ignoring invalid metadata value from ${suffix}`, { version })
335 },
336 invalidResponseMessage: 'Invalid machine-update-metadata response',
337 errorMessage: 'Machine metadata update failed',
338 versionMismatchMessage: 'Metadata version mismatch'
339 })
340 })
341 }
342
343 async updateRunnerState(handler: (state: RunnerState | null) => RunnerState): Promise<void> {
344 await backoff(async () => {

Callers 1

connectMethod · 0.95

Calls 3

applyVersionedAckFunction · 0.90
handlerFunction · 0.85
debugMethod · 0.80

Tested by

no test coverage detected