Everything that should be in the next agent protocol update: * [x] Protocol versioning - A singe number field would suffice. Agents are shipped with Nimrod, so this isn't a problem. * [ ] SSH key path field - So SSH transfer targets can be used securely - Or embed the key directly * [x] state info in `agent.pong` - for accounting and debugging purposes * [ ] a new "resync" message - If agents get out-of-sync for some reason, the master can force-reset them. * [x] a new `CommandResult.Status` enum value of `Failed` - Used for explicitly stating a process has returned nonzero. Blocks #16 * [x] add a timestamp field to each message - [x] To AMQPBasicProperties (POSIX timestamp) - [x] timestamp field (ISO8601) - [x] `X-NimrodG-Sent-At` header (ISO8601) - time the message was actually sent * [x] message signing - [x] `NIM1-HMAC-SHA224` - [x] `NIM1-HMAC-SHA256` - [x] `NIM1-HMAC-SHA384` - [x] `NIM1-HMAC-SHA512` - [x] Change datestamp to timestamp - [x] ~~Use nonce~~ - [x] Add a nonce field. For future use. * [x] `agent.submit` `token` field - See https://github.com/UQ-RCC/nimrodg/issues/29
Everything that should be in the next agent protocol update:
agent.pongCommandResult.Statusenum value ofFailedX-NimrodG-Sent-Atheader (ISO8601)NIM1-HMAC-SHA224NIM1-HMAC-SHA256NIM1-HMAC-SHA384NIM1-HMAC-SHA512Use nonceagent.submittokenfield