Reformat everything.

This commit is contained in:
Felix Fontein
2025-11-01 12:08:41 +01:00
parent 3f2213791a
commit 340ff8586d
1008 changed files with 61301 additions and 58309 deletions

View File

@@ -119,57 +119,60 @@ from ansible.module_utils.basic import AnsibleModule, is_executable
def main():
arg_spec = dict(
name=dict(type='str', required=True),
config=dict(type='path'),
server_url=dict(type='str'),
username=dict(type='str'),
password=dict(type='str', no_log=True),
supervisorctl_path=dict(type='path'),
state=dict(type='str', required=True, choices=['present', 'started', 'restarted', 'stopped', 'absent', 'signalled']),
stop_before_removing=dict(type='bool', default=False),
signal=dict(type='str'),
name=dict(type="str", required=True),
config=dict(type="path"),
server_url=dict(type="str"),
username=dict(type="str"),
password=dict(type="str", no_log=True),
supervisorctl_path=dict(type="path"),
state=dict(
type="str", required=True, choices=["present", "started", "restarted", "stopped", "absent", "signalled"]
),
stop_before_removing=dict(type="bool", default=False),
signal=dict(type="str"),
)
module = AnsibleModule(
argument_spec=arg_spec,
supports_check_mode=True,
required_if=[('state', 'signalled', ['signal'])],
required_if=[("state", "signalled", ["signal"])],
)
name = module.params['name']
name = module.params["name"]
is_group = False
if name.endswith(':'):
if name.endswith(":"):
is_group = True
name = name.rstrip(':')
state = module.params['state']
stop_before_removing = module.params.get('stop_before_removing')
config = module.params.get('config')
server_url = module.params.get('server_url')
username = module.params.get('username')
password = module.params.get('password')
supervisorctl_path = module.params.get('supervisorctl_path')
signal = module.params.get('signal')
name = name.rstrip(":")
state = module.params["state"]
stop_before_removing = module.params.get("stop_before_removing")
config = module.params.get("config")
server_url = module.params.get("server_url")
username = module.params.get("username")
password = module.params.get("password")
supervisorctl_path = module.params.get("supervisorctl_path")
signal = module.params.get("signal")
# we check error message for a pattern, so we need to make sure that's in C locale
module.run_command_environ_update = dict(LANG='C', LC_ALL='C', LC_MESSAGES='C', LC_CTYPE='C')
module.run_command_environ_update = dict(LANG="C", LC_ALL="C", LC_MESSAGES="C", LC_CTYPE="C")
if supervisorctl_path:
if os.path.exists(supervisorctl_path) and is_executable(supervisorctl_path):
supervisorctl_args = [supervisorctl_path]
else:
module.fail_json(
msg=f"Provided path to supervisorctl does not exist or isn't executable: {supervisorctl_path}")
msg=f"Provided path to supervisorctl does not exist or isn't executable: {supervisorctl_path}"
)
else:
supervisorctl_args = [module.get_bin_path('supervisorctl', True)]
supervisorctl_args = [module.get_bin_path("supervisorctl", True)]
if config:
supervisorctl_args.extend(['-c', config])
supervisorctl_args.extend(["-c", config])
if server_url:
supervisorctl_args.extend(['-s', server_url])
supervisorctl_args.extend(["-s", server_url])
if username:
supervisorctl_args.extend(['-u', username])
supervisorctl_args.extend(["-u", username])
if password:
supervisorctl_args.extend(['-p', password])
supervisorctl_args.extend(["-p", password])
def run_supervisorctl(cmd, name=None, **kwargs):
args = list(supervisorctl_args) # copy the master args
@@ -180,21 +183,21 @@ def main():
def get_matched_processes():
matched = []
rc, out, err = run_supervisorctl('status')
rc, out, err = run_supervisorctl("status")
for line in out.splitlines():
# One status line may look like one of these two:
# process not in group:
# echo_date_lonely RUNNING pid 7680, uptime 13:22:18
# process in group:
# echo_date_group:echo_date_00 RUNNING pid 7681, uptime 13:22:18
fields = [field for field in line.split(' ') if field != '']
fields = [field for field in line.split(" ") if field != ""]
process_name = fields[0]
status = fields[1]
if is_group:
# If there is ':', this process must be in a group.
if ':' in process_name:
group = process_name.split(':')[0]
if ":" in process_name:
group = process_name.split(":")[0]
if group != name:
continue
else:
@@ -222,47 +225,49 @@ def main():
module.exit_json(changed=True)
for process_name in to_take_action_on:
rc, out, err = run_supervisorctl(action, process_name, check_rc=True)
if f'{process_name}: {expected_result}' not in out:
if f"{process_name}: {expected_result}" not in out:
module.fail_json(msg=out)
if exit_module:
module.exit_json(changed=True, name=name, state=state, affected=to_take_action_on)
if state == 'restarted':
rc, out, err = run_supervisorctl('update', check_rc=True)
if state == "restarted":
rc, out, err = run_supervisorctl("update", check_rc=True)
processes = get_matched_processes()
if len(processes) == 0:
module.fail_json(name=name, msg="ERROR (no such process)")
take_action_on_processes(processes, lambda s: True, 'restart', 'started')
take_action_on_processes(processes, lambda s: True, "restart", "started")
processes = get_matched_processes()
if state == 'absent':
if state == "absent":
if len(processes) == 0:
module.exit_json(changed=False, name=name, state=state)
if stop_before_removing:
take_action_on_processes(processes, lambda s: s in ('RUNNING', 'STARTING'), 'stop', 'stopped', exit_module=False)
take_action_on_processes(
processes, lambda s: s in ("RUNNING", "STARTING"), "stop", "stopped", exit_module=False
)
if module.check_mode:
module.exit_json(changed=True)
run_supervisorctl('reread', check_rc=True)
rc, out, err = run_supervisorctl('remove', name)
if f'{name}: removed process group' in out:
run_supervisorctl("reread", check_rc=True)
rc, out, err = run_supervisorctl("remove", name)
if f"{name}: removed process group" in out:
module.exit_json(changed=True, name=name, state=state)
else:
module.fail_json(msg=out, name=name, state=state)
if state == 'present':
if state == "present":
if len(processes) > 0:
module.exit_json(changed=False, name=name, state=state)
if module.check_mode:
module.exit_json(changed=True)
run_supervisorctl('reread', check_rc=True)
dummy, out, dummy = run_supervisorctl('add', name)
if f'{name}: added process group' in out:
run_supervisorctl("reread", check_rc=True)
dummy, out, dummy = run_supervisorctl("add", name)
if f"{name}: added process group" in out:
module.exit_json(changed=True, name=name, state=state)
else:
module.fail_json(msg=out, name=name, state=state)
@@ -271,15 +276,15 @@ def main():
if len(processes) == 0:
module.fail_json(name=name, msg="ERROR (no such process)")
if state == 'started':
take_action_on_processes(processes, lambda s: s not in ('RUNNING', 'STARTING'), 'start', 'started')
if state == "started":
take_action_on_processes(processes, lambda s: s not in ("RUNNING", "STARTING"), "start", "started")
if state == 'stopped':
take_action_on_processes(processes, lambda s: s in ('RUNNING', 'STARTING'), 'stop', 'stopped')
if state == "stopped":
take_action_on_processes(processes, lambda s: s in ("RUNNING", "STARTING"), "stop", "stopped")
if state == 'signalled':
take_action_on_processes(processes, lambda s: s in ('RUNNING',), f"signal {signal}", 'signalled')
if state == "signalled":
take_action_on_processes(processes, lambda s: s in ("RUNNING",), f"signal {signal}", "signalled")
if __name__ == '__main__':
if __name__ == "__main__":
main()