(compute_api, wished_server)
| 422 | |
| 423 | |
| 424 | def 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 | |
| 477 | def restart_strategy(compute_api, wished_server): |
nothing calls this directly
no test coverage detected