mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-19 10:21:30 +00:00
Reformat everything.
This commit is contained in:
parent
3f2213791a
commit
340ff8586d
1008 changed files with 61301 additions and 58309 deletions
|
|
@ -187,21 +187,15 @@ import time
|
|||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible_collections.community.general.plugins.module_utils.datetime import now
|
||||
from ansible_collections.community.general.plugins.module_utils.scaleway import SCALEWAY_LOCATION, scaleway_argument_spec, Scaleway
|
||||
|
||||
SCALEWAY_SERVER_STATES = (
|
||||
'stopped',
|
||||
'stopping',
|
||||
'starting',
|
||||
'running',
|
||||
'locked'
|
||||
from ansible_collections.community.general.plugins.module_utils.scaleway import (
|
||||
SCALEWAY_LOCATION,
|
||||
scaleway_argument_spec,
|
||||
Scaleway,
|
||||
)
|
||||
|
||||
SCALEWAY_TRANSITIONS_STATES = (
|
||||
"stopping",
|
||||
"starting",
|
||||
"pending"
|
||||
)
|
||||
SCALEWAY_SERVER_STATES = ("stopped", "stopping", "starting", "running", "locked")
|
||||
|
||||
SCALEWAY_TRANSITIONS_STATES = ("stopping", "starting", "pending")
|
||||
|
||||
|
||||
def check_image_id(compute_api, image_id):
|
||||
|
|
@ -220,7 +214,7 @@ def fetch_state(compute_api, server):
|
|||
return "absent"
|
||||
|
||||
if not response.ok:
|
||||
msg = f'Error during state fetching: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during state fetching: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
try:
|
||||
|
|
@ -264,7 +258,7 @@ def public_ip_payload(compute_api, public_ip):
|
|||
# We check that the IP we want to attach exists, if so its ID is returned
|
||||
response = compute_api.get("ips")
|
||||
if not response.ok:
|
||||
msg = f'Error during public IP validation: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during public IP validation: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
ip_list = []
|
||||
|
|
@ -281,13 +275,14 @@ def public_ip_payload(compute_api, public_ip):
|
|||
def create_server(compute_api, server):
|
||||
compute_api.module.debug("Starting a create_server")
|
||||
target_server = None
|
||||
data = {"enable_ipv6": server["enable_ipv6"],
|
||||
"tags": server["tags"],
|
||||
"commercial_type": server["commercial_type"],
|
||||
"image": server["image"],
|
||||
"dynamic_ip_required": server["dynamic_ip_required"],
|
||||
"name": server["name"]
|
||||
}
|
||||
data = {
|
||||
"enable_ipv6": server["enable_ipv6"],
|
||||
"tags": server["tags"],
|
||||
"commercial_type": server["commercial_type"],
|
||||
"image": server["image"],
|
||||
"dynamic_ip_required": server["dynamic_ip_required"],
|
||||
"name": server["name"],
|
||||
}
|
||||
|
||||
if server["project"]:
|
||||
data["project"] = server["project"]
|
||||
|
|
@ -301,7 +296,7 @@ def create_server(compute_api, server):
|
|||
response = compute_api.post(path="servers", data=data)
|
||||
|
||||
if not response.ok:
|
||||
msg = f'Error during server creation: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during server creation: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
try:
|
||||
|
|
@ -327,10 +322,9 @@ def start_server(compute_api, server):
|
|||
|
||||
|
||||
def perform_action(compute_api, server, action):
|
||||
response = compute_api.post(path=f"servers/{server['id']}/action",
|
||||
data={"action": action})
|
||||
response = compute_api.post(path=f"servers/{server['id']}/action", data={"action": action})
|
||||
if not response.ok:
|
||||
msg = f'Error during server {action}: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during server {action}: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
wait_to_complete_state_transition(compute_api=compute_api, server=server)
|
||||
|
|
@ -342,7 +336,7 @@ def remove_server(compute_api, server):
|
|||
compute_api.module.debug("Starting remove server strategy")
|
||||
response = compute_api.delete(path=f"servers/{server['id']}")
|
||||
if not response.ok:
|
||||
msg = f'Error during server deletion: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during server deletion: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
wait_to_complete_state_transition(compute_api=compute_api, server=server)
|
||||
|
|
@ -364,14 +358,17 @@ def present_strategy(compute_api, wished_server):
|
|||
else:
|
||||
target_server = query_results[0]
|
||||
|
||||
if server_attributes_should_be_changed(compute_api=compute_api, target_server=target_server,
|
||||
wished_server=wished_server):
|
||||
if server_attributes_should_be_changed(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
):
|
||||
changed = True
|
||||
|
||||
if compute_api.module.check_mode:
|
||||
return changed, {"status": f"Server {target_server['id']} attributes would be changed."}
|
||||
|
||||
target_server = server_change_attributes(compute_api=compute_api, target_server=target_server, wished_server=wished_server)
|
||||
target_server = server_change_attributes(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
)
|
||||
|
||||
return changed, target_server
|
||||
|
||||
|
|
@ -398,7 +395,7 @@ def absent_strategy(compute_api, wished_server):
|
|||
response = stop_server(compute_api=compute_api, server=target_server)
|
||||
|
||||
if not response.ok:
|
||||
err_msg = f'Error while stopping a server before removing it [{response.status_code}: {response.json}]'
|
||||
err_msg = f"Error while stopping a server before removing it [{response.status_code}: {response.json}]"
|
||||
compute_api.module.fail_json(msg=err_msg)
|
||||
|
||||
wait_to_complete_state_transition(compute_api=compute_api, server=target_server, wait=True)
|
||||
|
|
@ -406,7 +403,7 @@ def absent_strategy(compute_api, wished_server):
|
|||
response = remove_server(compute_api=compute_api, server=target_server)
|
||||
|
||||
if not response.ok:
|
||||
err_msg = f'Error while removing server [{response.status_code}: {response.json}]'
|
||||
err_msg = f"Error while removing server [{response.status_code}: {response.json}]"
|
||||
compute_api.module.fail_json(msg=err_msg)
|
||||
|
||||
return changed, {"status": f"Server {target_server['id']} deleted"}
|
||||
|
|
@ -426,14 +423,17 @@ def running_strategy(compute_api, wished_server):
|
|||
else:
|
||||
target_server = query_results[0]
|
||||
|
||||
if server_attributes_should_be_changed(compute_api=compute_api, target_server=target_server,
|
||||
wished_server=wished_server):
|
||||
if server_attributes_should_be_changed(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
):
|
||||
changed = True
|
||||
|
||||
if compute_api.module.check_mode:
|
||||
return changed, {"status": f"Server {target_server['id']} attributes would be changed before running it."}
|
||||
|
||||
target_server = server_change_attributes(compute_api=compute_api, target_server=target_server, wished_server=wished_server)
|
||||
target_server = server_change_attributes(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
)
|
||||
|
||||
current_state = fetch_state(compute_api=compute_api, server=target_server)
|
||||
if current_state not in ("running", "starting"):
|
||||
|
|
@ -445,7 +445,7 @@ def running_strategy(compute_api, wished_server):
|
|||
|
||||
response = start_server(compute_api=compute_api, server=target_server)
|
||||
if not response.ok:
|
||||
msg = f'Error while running server [{response.status_code}: {response.json}]'
|
||||
msg = f"Error while running server [{response.status_code}: {response.json}]"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
return changed, target_server
|
||||
|
|
@ -458,7 +458,6 @@ def stop_strategy(compute_api, wished_server):
|
|||
changed = False
|
||||
|
||||
if not query_results:
|
||||
|
||||
if compute_api.module.check_mode:
|
||||
return changed, {"status": "A server would be created before being stopped."}
|
||||
|
||||
|
|
@ -469,15 +468,17 @@ def stop_strategy(compute_api, wished_server):
|
|||
|
||||
compute_api.module.debug("stop_strategy: Servers are found.")
|
||||
|
||||
if server_attributes_should_be_changed(compute_api=compute_api, target_server=target_server,
|
||||
wished_server=wished_server):
|
||||
if server_attributes_should_be_changed(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
):
|
||||
changed = True
|
||||
|
||||
if compute_api.module.check_mode:
|
||||
return changed, {
|
||||
"status": f"Server {target_server['id']} attributes would be changed before stopping it."}
|
||||
return changed, {"status": f"Server {target_server['id']} attributes would be changed before stopping it."}
|
||||
|
||||
target_server = server_change_attributes(compute_api=compute_api, target_server=target_server, wished_server=wished_server)
|
||||
target_server = server_change_attributes(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
)
|
||||
|
||||
wait_to_complete_state_transition(compute_api=compute_api, server=target_server)
|
||||
|
||||
|
|
@ -495,7 +496,7 @@ def stop_strategy(compute_api, wished_server):
|
|||
compute_api.module.debug(response.ok)
|
||||
|
||||
if not response.ok:
|
||||
msg = f'Error while stopping server [{response.status_code}: {response.json}]'
|
||||
msg = f"Error while stopping server [{response.status_code}: {response.json}]"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
return changed, target_server
|
||||
|
|
@ -515,16 +516,17 @@ def restart_strategy(compute_api, wished_server):
|
|||
else:
|
||||
target_server = query_results[0]
|
||||
|
||||
if server_attributes_should_be_changed(compute_api=compute_api,
|
||||
target_server=target_server,
|
||||
wished_server=wished_server):
|
||||
if server_attributes_should_be_changed(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
):
|
||||
changed = True
|
||||
|
||||
if compute_api.module.check_mode:
|
||||
return changed, {
|
||||
"status": f"Server {target_server['id']} attributes would be changed before rebooting it."}
|
||||
return changed, {"status": f"Server {target_server['id']} attributes would be changed before rebooting it."}
|
||||
|
||||
target_server = server_change_attributes(compute_api=compute_api, target_server=target_server, wished_server=wished_server)
|
||||
target_server = server_change_attributes(
|
||||
compute_api=compute_api, target_server=target_server, wished_server=wished_server
|
||||
)
|
||||
|
||||
changed = True
|
||||
if compute_api.module.check_mode:
|
||||
|
|
@ -536,14 +538,14 @@ def restart_strategy(compute_api, wished_server):
|
|||
response = restart_server(compute_api=compute_api, server=target_server)
|
||||
wait_to_complete_state_transition(compute_api=compute_api, server=target_server)
|
||||
if not response.ok:
|
||||
msg = f'Error while restarting server that was running [{response.status_code}: {response.json}].'
|
||||
msg = f"Error while restarting server that was running [{response.status_code}: {response.json}]."
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
if fetch_state(compute_api=compute_api, server=target_server) in ("stopped",):
|
||||
response = restart_server(compute_api=compute_api, server=target_server)
|
||||
wait_to_complete_state_transition(compute_api=compute_api, server=target_server)
|
||||
if not response.ok:
|
||||
msg = f'Error while restarting server that was stopped [{response.status_code}: {response.json}].'
|
||||
msg = f"Error while restarting server that was stopped [{response.status_code}: {response.json}]."
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
return changed, target_server
|
||||
|
|
@ -554,18 +556,17 @@ state_strategy = {
|
|||
"restarted": restart_strategy,
|
||||
"stopped": stop_strategy,
|
||||
"running": running_strategy,
|
||||
"absent": absent_strategy
|
||||
"absent": absent_strategy,
|
||||
}
|
||||
|
||||
|
||||
def find(compute_api, wished_server, per_page=1):
|
||||
compute_api.module.debug("Getting inside find")
|
||||
# Only the name attribute is accepted in the Compute query API
|
||||
response = compute_api.get("servers", params={"name": wished_server["name"],
|
||||
"per_page": per_page})
|
||||
response = compute_api.get("servers", params={"name": wished_server["name"], "per_page": per_page})
|
||||
|
||||
if not response.ok:
|
||||
msg = f'Error during server search: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during server search: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
search_results = response.json["servers"]
|
||||
|
|
@ -596,8 +597,12 @@ def server_attributes_should_be_changed(compute_api, target_server, wished_serve
|
|||
for key in PATCH_MUTABLE_SERVER_ATTRIBUTES:
|
||||
if key in target_server and key in wished_server:
|
||||
# When you are working with dict, only ID matter as we ask user to put only the resource ID in the playbook
|
||||
if isinstance(target_server[key], dict) and wished_server[key] and "id" in target_server[key].keys(
|
||||
) and target_server[key]["id"] != wished_server[key]:
|
||||
if (
|
||||
isinstance(target_server[key], dict)
|
||||
and wished_server[key]
|
||||
and "id" in target_server[key].keys()
|
||||
and target_server[key]["id"] != wished_server[key]
|
||||
):
|
||||
return True
|
||||
# Handling other structure compare simply the two objects content
|
||||
elif not isinstance(target_server[key], dict) and target_server[key] != wished_server[key]:
|
||||
|
|
@ -623,10 +628,9 @@ def server_change_attributes(compute_api, target_server, wished_server):
|
|||
elif not isinstance(target_server[key], dict):
|
||||
patch_payload[key] = wished_server[key]
|
||||
|
||||
response = compute_api.patch(path=f"servers/{target_server['id']}",
|
||||
data=patch_payload)
|
||||
response = compute_api.patch(path=f"servers/{target_server['id']}", data=patch_payload)
|
||||
if not response.ok:
|
||||
msg = f'Error during server attributes patching: ({response.status_code}) {response.json}'
|
||||
msg = f"Error during server attributes patching: ({response.status_code}) {response.json}"
|
||||
compute_api.module.fail_json(msg=msg)
|
||||
|
||||
try:
|
||||
|
|
@ -650,9 +654,9 @@ def core(module):
|
|||
"tags": module.params["tags"],
|
||||
"organization": module.params["organization"],
|
||||
"project": module.params["project"],
|
||||
"security_group": module.params["security_group"]
|
||||
"security_group": module.params["security_group"],
|
||||
}
|
||||
module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"]
|
||||
module.params["api_url"] = SCALEWAY_LOCATION[region]["api_endpoint"]
|
||||
|
||||
compute_api = Scaleway(module=module)
|
||||
|
||||
|
|
@ -668,35 +672,37 @@ def core(module):
|
|||
|
||||
def main():
|
||||
argument_spec = scaleway_argument_spec()
|
||||
argument_spec.update(dict(
|
||||
image=dict(required=True),
|
||||
name=dict(),
|
||||
region=dict(required=True, choices=list(SCALEWAY_LOCATION.keys())),
|
||||
commercial_type=dict(required=True),
|
||||
enable_ipv6=dict(default=False, type="bool"),
|
||||
public_ip=dict(default="absent"),
|
||||
state=dict(choices=list(state_strategy.keys()), default='present'),
|
||||
tags=dict(type="list", elements="str", default=[]),
|
||||
organization=dict(),
|
||||
project=dict(),
|
||||
wait=dict(type="bool", default=False),
|
||||
wait_timeout=dict(type="int", default=300),
|
||||
wait_sleep_time=dict(type="int", default=3),
|
||||
security_group=dict(),
|
||||
))
|
||||
argument_spec.update(
|
||||
dict(
|
||||
image=dict(required=True),
|
||||
name=dict(),
|
||||
region=dict(required=True, choices=list(SCALEWAY_LOCATION.keys())),
|
||||
commercial_type=dict(required=True),
|
||||
enable_ipv6=dict(default=False, type="bool"),
|
||||
public_ip=dict(default="absent"),
|
||||
state=dict(choices=list(state_strategy.keys()), default="present"),
|
||||
tags=dict(type="list", elements="str", default=[]),
|
||||
organization=dict(),
|
||||
project=dict(),
|
||||
wait=dict(type="bool", default=False),
|
||||
wait_timeout=dict(type="int", default=300),
|
||||
wait_sleep_time=dict(type="int", default=3),
|
||||
security_group=dict(),
|
||||
)
|
||||
)
|
||||
module = AnsibleModule(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
mutually_exclusive=[
|
||||
('organization', 'project'),
|
||||
("organization", "project"),
|
||||
],
|
||||
required_one_of=[
|
||||
('organization', 'project'),
|
||||
("organization", "project"),
|
||||
],
|
||||
)
|
||||
|
||||
core(module)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue