diff --git a/src/components/agents/DetailsModal.vue b/src/components/agents/DetailsModal.vue index 1797d66..343e158 100644 --- a/src/components/agents/DetailsModal.vue +++ b/src/components/agents/DetailsModal.vue @@ -3,6 +3,7 @@ import { inject, reactive } from "vue"; import { useAgentStore } from "../../stores/agentStore"; import { useCoreDisplayStore } from "../../stores/coreDisplayStore"; import { storeToRefs } from "pinia"; +import { getAgentStatus } from "@/utils/agentUtil.js"; const $api = inject("$api"); @@ -17,20 +18,6 @@ let validation = reactive({ watchdogTimer: "" }); -function getAgentStatus(agent) { - if (!agent.last_seen) return ''; - let lastSeen = new Date(agent.last_seen).getTime(); - let msSinceSeen = Date.now() - lastSeen; - // Give a buffer of 1 minute to mark an agent dead - let isAlive = (msSinceSeen < (agent.sleep_max * 1000)); - - if (msSinceSeen <= 60000 && agent.sleep_min === 3 && agent.sleep_max === 3 && agent.watchdog === 1) { - return 'pending kill' - } else { - return msSinceSeen <= 60000 || isAlive ? 'alive' : 'dead'; - } -} - function saveAgent() { // Validate group if (!selectedAgent.value.group) { diff --git a/src/components/operations/AgentDetailsModal.vue b/src/components/operations/AgentDetailsModal.vue index 3423938..b1a6b01 100644 --- a/src/components/operations/AgentDetailsModal.vue +++ b/src/components/operations/AgentDetailsModal.vue @@ -3,6 +3,7 @@ import { inject, reactive, ref } from "vue"; import { useAgentStore } from "../../stores/agentStore"; import { useCoreDisplayStore } from "../../stores/coreDisplayStore"; import { storeToRefs } from "pinia"; +import { getAgentStatus } from "@/utils/agentUtil.js"; const $api = inject("$api"); @@ -19,25 +20,6 @@ let validation = reactive({ let showDetails = ref(false); let showActions = ref(false); -function getAgentStatus(agent) { - if (!agent.last_seen) return ""; - let lastSeen = new Date(agent.last_seen).getTime(); - let msSinceSeen = Date.now() - lastSeen; - // Give a buffer of 1 minute to mark an agent dead - let isAlive = msSinceSeen < agent.sleep_max * 1000; - - if ( - msSinceSeen <= 60000 && - agent.sleep_min === 3 && - agent.sleep_max === 3 && - agent.watchdog === 1 - ) { - return "pending kill"; - } else { - return msSinceSeen <= 60000 || isAlive ? "alive" : "dead"; - } -} - function saveAgent() { // Validate group if (!selectedAgent.value.group) { diff --git a/src/stores/agentStore.js b/src/stores/agentStore.js index 5fb1488..94aec1b 100644 --- a/src/stores/agentStore.js +++ b/src/stores/agentStore.js @@ -57,13 +57,8 @@ export const useAgentStore = defineStore("agentStore", { } }, async killAgent($api, agentPaw) { - const reqBody = { - watchdog: 1, - sleep_min: 3, - sleep_max: 3 - }; try { - const response = await $api.patch(`/api/v2/agents/${agentPaw}`, reqBody); + const response = await $api.post(`/api/v2/agents/kill/${agentPaw}`); return response.data; } catch(error) { throw error; diff --git a/src/utils/agentUtil.js b/src/utils/agentUtil.js index 6654e61..b11db5f 100644 --- a/src/utils/agentUtil.js +++ b/src/utils/agentUtil.js @@ -3,15 +3,5 @@ export { }; function getAgentStatus(agent) { - if (!agent.last_seen) return ''; - let lastSeen = new Date(agent.last_seen).getTime(); - let msSinceSeen = Date.now() - lastSeen; - // Give a buffer of 1 minute to mark an agent dead - let isAlive = (msSinceSeen < (agent.sleep_max * 1000)); - - if (msSinceSeen <= 60000 && agent.sleep_min === 3 && agent.sleep_max === 3 && agent.watchdog === 1) { - return 'pending kill' - } else { - return msSinceSeen <= 60000 || isAlive ? 'alive' : 'dead'; - } + return agent.status; }