Commit Graph

73 Commits

Author SHA1 Message Date
Frédéric Péters 7cef54cb70 split status-window and session-name parameters 2021-01-30 20:44:13 +01:00
Frédéric Péters f0ab4feea3 add support for passing command args 2021-01-30 20:44:13 +01:00
Frédéric Péters c2bf345bcb force ssh pty allocation 2021-01-30 20:44:13 +01:00
Frédéric Péters c28881c972 use full-upgrade 2021-01-30 20:44:13 +01:00
Frédéric Péters a228a501c9 bump parallel jobs to 10
test results, eoptasks -k test /bin/true (52 servers)

 * 5 jobs: 48 seconds
 * 10 jobs: 29 seconds
 * 20 jobs: 28 seconds
2021-01-30 20:44:13 +01:00
Frédéric Péters 493ad8f5e7 add hobo-agent.restart command 2021-01-30 20:44:13 +01:00
Frédéric Péters a88d3e042f fix moonlight progress order 2021-01-30 20:44:13 +01:00
Frédéric Péters 5e75af334f add combo.reload special command 2021-01-30 20:44:13 +01:00
Frédéric Péters 1962287758 add examples 2021-01-30 20:44:13 +01:00
Frédéric Péters 61570f5008 add unmodified group name to keywords 2021-01-30 20:44:13 +01:00
Frédéric Péters c536958fe7 add ignorelist
(so it's not necessary to keep local commits in the puppet repository to
disable servers such as villejuif-test)
2021-01-30 20:44:13 +01:00
Frédéric Péters 1342001811 add curses/emoji status screen 2021-01-30 20:44:13 +01:00
Frédéric Péters 47db1cc1c8 use an independent process for status window 2021-01-30 20:44:13 +01:00
Frédéric Péters 2eca6b4e1e refactor into multiple functions 2021-01-30 20:44:13 +01:00
Frédéric Péters ca1a9ec137 add moonlight progress indicator
(this keeps a window always open, so hacks to handle final serial
processes are removed)
2021-01-30 20:44:13 +01:00
Frédéric Péters 048ee86c08 add servername parts as keywords
This make it possible to have filters such as node1.dev or entrouvert.org
2021-01-30 20:44:13 +01:00
Frédéric Péters b1ca82e646 add option to exclude keywords
eoptasks -k node1,node2,-database will give all node1/node2 servers
except database.node1 and database.node2.
2021-01-30 20:44:13 +01:00
Frédéric Péters 18549759d4 add flag to list selected servers 2021-01-30 20:44:13 +01:00
Frédéric Péters f6f5b309be add configuration file/do not hardcode my path 2021-01-30 20:44:13 +01:00
Frédéric Péters f1e6ae9b49 randomize servers 2021-01-30 20:44:13 +01:00
Frédéric Péters 9df1dcc4ac add collectstatic command 2021-01-30 20:44:13 +01:00
Frédéric Péters 818d28fbfe add new script to run commands on servers
This script provides parallel remote execution of commands, while having
some special knownledge of servers that should *not* be handled in parallel.

It defers terminal-handling to tmux(1).

It has some targeting capacities using keywords. Commas for 'OR' and slashes
for 'AND', ex: ext/test,saas/test/passerelle will select all external test
servers + all passerelle servers on the SaaS.

It takes any shell command and has some builtin shortcuts such as apt.update
and apt.upgrade. (that's the whole lot, actually).

Regarding actual performance benefits, apt upgrade with no packages to
upgrade:

 $ time eoptasks -k ext/test apt.upgrade
real    0m24,249s
user    0m0,140s
sys     0m0,025s

 $ time eotasks -g ext_test apt.upgrade
real    6m9,956s
user    3m32,096s
sys     0m2,322s
2021-01-30 20:44:04 +01:00
Frédéric Péters 507dfa7001 license as GPL 2021-01-30 20:43:20 +01:00