From e02e6272d2c9713d53d9f3cc1800ca14433d68e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Kl=C3=BCter?= Date: Sun, 17 May 2020 22:44:14 +0200 Subject: [PATCH] initial dev commit --- create.py | 13 ++++++++++++ delete.py | 14 +++++++++++++ details.py | 13 ++++++++++++ downscale_server.py | 49 +++++++++++++++++++++++++++++++++++++++++++++ list.py | 7 +++++++ upscale_server.py | 44 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 140 insertions(+) create mode 100644 create.py create mode 100644 delete.py create mode 100644 details.py create mode 100644 downscale_server.py create mode 100644 list.py create mode 100644 upscale_server.py diff --git a/create.py b/create.py new file mode 100644 index 0000000..ddefb08 --- /dev/null +++ b/create.py @@ -0,0 +1,13 @@ +from hcloud import Client +from hcloud.server_types.domain import ServerType +from hcloud.images.domain import Image + +with open('/Users/Philipp/Documents/Server/cloud-init/default.yaml', 'r') as file: + cloud_init = file.read() + +client = Client(token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") # Please paste your API token here between the quotes +response = client.servers.create(name="my-server", server_type=ServerType(name="cx11"), image=Image(name="centos-8"), user_data=cloud_init) +server = response.server +print(server) +print("Root Password: " + response.root_password) +print("IP: " + response.server.public_net.ipv4.ip) diff --git a/delete.py b/delete.py new file mode 100644 index 0000000..808e24f --- /dev/null +++ b/delete.py @@ -0,0 +1,14 @@ +from hcloud import Client + + +client = Client(token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") # Please paste your API token here between the quotes + +server = client.servers.get_by_name(name="my-server") +print("Deleting: ", server.name) +response = client.servers.delete(server) + + +print("Remaining servers: ") +servers = client.servers.get_all() +for server in servers: + print(server.name) \ No newline at end of file diff --git a/details.py b/details.py new file mode 100644 index 0000000..3d1257f --- /dev/null +++ b/details.py @@ -0,0 +1,13 @@ +from hcloud import Client +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("serverName") +args = parser.parse_args() +serverName = args.serverName +print(serverName) + +client = Client(token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") # Please paste your API token here between the quotes + +server = client.servers.get_by_name(serverName) +print("Status: ", server.status) diff --git a/downscale_server.py b/downscale_server.py new file mode 100644 index 0000000..c2d7a4b --- /dev/null +++ b/downscale_server.py @@ -0,0 +1,49 @@ +from hcloud import Client +from hcloud.server_types.domain import ServerType +import time +import argparse + + +# Get Servername +parser = argparse.ArgumentParser() +parser.add_argument("serverName") +serverName = parser.parse_args() +print args.serverName + +# Please paste your API token here between the quotes +client = Client( + token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") + +server = client.servers.get_by_name(name=serverName) +if server.status != "off": + print("Stopping: ", server.name) + response = client.servers.power_off(server) + +while server.status != "off": + print("Server not yet powerd off, waiting 2 seconds") + time.sleep(2) + server = client.servers.get_by_name(name=serverName) + +print("Change Server Type: ", server.name, " to: cx11") +response = client.servers.change_type( + server, server_type=ServerType(name="cx11"), upgrade_disk="false") + +print("Change server type initiated. Waiting 10 seconds.") +time.sleep(10) +server = client.servers.get_by_name(name=serverName) + +while server.status == "migrating": + print("Server is migrating, waiting 10 seconds.") + time.sleep(10) + server = client.servers.get_by_name(name=serverName) + +while server.status == "starting": + print("Server is starting, waiting 5 seconds.") + time.sleep(5) + server = client.servers.get_by_name(name=serverName) + +if server.status == "running": + print("Server finished migration successfully") +else: + print("Server finished migration with unexpected status.") + print("Server status: ", server.status) diff --git a/list.py b/list.py new file mode 100644 index 0000000..d97070a --- /dev/null +++ b/list.py @@ -0,0 +1,7 @@ +from hcloud import Client + +client = Client(token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") # Please paste your API token here between the quotes +servers = client.servers.get_all() +for server in servers: + print("Servername:", server.name) + print("Servername:", server.status) \ No newline at end of file diff --git a/upscale_server.py b/upscale_server.py new file mode 100644 index 0000000..2bdf31d --- /dev/null +++ b/upscale_server.py @@ -0,0 +1,44 @@ +from hcloud import Client +from hcloud.server_types.domain import ServerType +import time + + +# Please paste your API token here between the quotes +client = Client( + token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") +serverName="my-server" + + +server = client.servers.get_by_name(name=serverName) +if server.status != "off": + print("Stopping: ", server.name) + response = client.servers.power_off(server) + +while server.status != "off": + print("Server not yet powerd off, waiting 2 seconds") + time.sleep(2) + server = client.servers.get_by_name(name=serverName) + +print("Change server type : ", server.name, " to: CPX31") +response = client.servers.change_type( + server, server_type=ServerType(name="cpx31"), upgrade_disk="false") + +print("Change server type initiated. Waiting 10 seconds.") +time.sleep(10) +server = client.servers.get_by_name(name=serverName) + +while server.status == "migrating": + print("Server is migrating, waiting 10 seconds.") + time.sleep(10) + server = client.servers.get_by_name(name=serverName) + +while server.status == "starting": + print("Server is starting, waiting 5 seconds.") + time.sleep(5) + server = client.servers.get_by_name(name=serverName) + +if server.status == "running": + print("Server finished migration successfully") +else: + print("Server finished migration with unexpected status.") + print("Server status: ", server.status)