diff --git a/src/components/AgentTable.vue b/src/components/AgentTable.vue index 357de6b..80b4d42 100644 --- a/src/components/AgentTable.vue +++ b/src/components/AgentTable.vue @@ -511,9 +511,10 @@ export default { }, 500); }, runFavScript(scriptpk, agentpk) { + let default_timeout = this.favoriteScripts.find(i => i.value === scriptpk).timeout; const data = { pk: agentpk, - timeout: 900, + timeout: default_timeout, scriptPK: scriptpk, output: "forget", args: [], @@ -532,7 +533,7 @@ export default { } this.favoriteScripts = r.data .filter(k => k.favorite === true) - .map(script => ({ label: script.name, value: script.id })) + .map(script => ({ label: script.name, value: script.id, timeout: script.default_timeout })) .sort((a, b) => a.label.localeCompare(b.label)); }); }, diff --git a/src/components/ScriptManager.vue b/src/components/ScriptManager.vue index df35c30..0b9dff0 100644 --- a/src/components/ScriptManager.vue +++ b/src/components/ScriptManager.vue @@ -291,6 +291,7 @@ props.row.description }} + {{ props.row.default_timeout }} @@ -368,8 +369,15 @@ export default { align: "left", sortable: false, }, + { + name: "default_timeout", + label: "Default Timeout (seconds)", + field: "default_timeout", + align: "left", + sortable: true, + }, ], - visibleColumns: ["favorite", "name", "category", "desc", "shell"], + visibleColumns: ["favorite", "name", "category", "desc", "shell", "default_timeout"], }; }, methods: { diff --git a/src/components/modals/agents/BulkAction.vue b/src/components/modals/agents/BulkAction.vue index 5d71514..4967a8c 100644 --- a/src/components/modals/agents/BulkAction.vue +++ b/src/components/modals/agents/BulkAction.vue @@ -92,6 +92,7 @@ map-options emit-value options-dense + @input="setDefaultTimeout" /> @@ -138,11 +139,7 @@ style="max-width: 150px" label="Timeout (seconds)" stack-label - :rules="[ - val => !!val || '*Required', - val => val >= 10 || 'Minimum is 10 seconds', - val => val <= 25200 || 'Maximum is 25,200 seconds', - ]" + :rules="[val => !!val || '*Required', val => val >= 5 || 'Minimum is 5 seconds']" /> @@ -200,6 +197,9 @@ export default { }, }, methods: { + setDefaultTimeout() { + this.timeout = this.scriptOptions.find(i => i.value === this.scriptPK).timeout; + }, getScripts() { let scripts; this.$axios.get("/scripts/scripts/").then(r => { @@ -209,7 +209,7 @@ export default { scripts = r.data.filter(i => i.script_type !== "builtin"); } this.scriptOptions = scripts - .map(script => ({ label: script.name, value: script.id })) + .map(script => ({ label: script.name, value: script.id, timeout: script.default_timeout })) .sort((a, b) => a.label.localeCompare(b.label)); }); }, diff --git a/src/components/modals/agents/RunScript.vue b/src/components/modals/agents/RunScript.vue index 93ce732..31b6603 100644 --- a/src/components/modals/agents/RunScript.vue +++ b/src/components/modals/agents/RunScript.vue @@ -17,6 +17,7 @@ map-options emit-value options-dense + @input="setDefaultTimeout" /> @@ -73,11 +74,7 @@ style="max-width: 150px" label="Timeout (seconds)" stack-label - :rules="[ - val => !!val || '*Required', - val => val >= 10 || 'Minimum is 10 seconds', - val => val <= 25200 || 'Maximum is 25,200 seconds', - ]" + :rules="[val => !!val || '*Required', val => val >= 5 || 'Minimum is 5 seconds']" /> @@ -92,7 +89,7 @@