MCPcopy
hub / github.com/trailofbits/algo / stop_strategy

Function stop_strategy

library/scaleway_compute.py:424–474  ·  view source on GitHub ↗
(compute_api, wished_server)

Source from the content-addressed store, hash-verified

422
423
424def stop_strategy(compute_api, wished_server):
425 compute_api.module.debug("Starting stop strategy")
426 query_results = find(compute_api=compute_api, wished_server=wished_server, per_page=1)
427
428 changed = False
429
430 if not query_results:
431 if compute_api.module.check_mode:
432 return changed, {"status": "A server would be created before being stopped."}
433
434 target_server = create_server(compute_api=compute_api, server=wished_server)
435 changed = True
436 else:
437 target_server = query_results[0]
438
439 compute_api.module.debug("stop_strategy: Servers are found.")
440
441 if server_attributes_should_be_changed(
442 compute_api=compute_api, target_server=target_server, wished_server=wished_server
443 ):
444 changed = True
445
446 if compute_api.module.check_mode:
447 return changed, {
448 "status": "Server %s attributes would be changed before stopping it." % target_server["id"]
449 }
450
451 target_server = server_change_attributes(
452 compute_api=compute_api, target_server=target_server, wished_server=wished_server
453 )
454
455 wait_to_complete_state_transition(compute_api=compute_api, server=target_server)
456
457 current_state = fetch_state(compute_api=compute_api, server=target_server)
458 if current_state not in ("stopped",):
459 compute_api.module.debug("stop_strategy: Server in state: %s" % current_state)
460
461 changed = True
462
463 if compute_api.module.check_mode:
464 return changed, {"status": "Server %s would be stopped." % target_server["id"]}
465
466 response = stop_server(compute_api=compute_api, server=target_server)
467 compute_api.module.debug(response.json)
468 compute_api.module.debug(response.ok)
469
470 if not response.ok:
471 msg = f"Error while stopping server [{response.status_code}: {response.json}]"
472 compute_api.module.fail_json(msg=msg)
473
474 return changed, target_server
475
476
477def restart_strategy(compute_api, wished_server):

Callers

nothing calls this directly

Calls 8

findFunction · 0.85
create_serverFunction · 0.85
server_change_attributesFunction · 0.85
fetch_stateFunction · 0.85
stop_serverFunction · 0.85
fail_jsonMethod · 0.80

Tested by

no test coverage detected