From c8248ef7bf75e48b6f84ca9321921d87bf9f95e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Kl=C3=BCter?= Date: Sun, 17 May 2020 23:25:02 +0200 Subject: [PATCH] Added Argparse --- create.py | 39 ++++++++++++++++++++++++------ delete.py | 21 ++++++++++++---- details.py | 13 +++++++--- downscale_server.py | 49 ------------------------------------- list.py | 12 ++++++++- rescale_server.py | 59 +++++++++++++++++++++++++++++++++++++++++++++ upscale_server.py | 44 --------------------------------- 7 files changed, 127 insertions(+), 110 deletions(-) mode change 100644 => 100755 create.py mode change 100644 => 100755 delete.py mode change 100644 => 100755 details.py delete mode 100644 downscale_server.py mode change 100644 => 100755 list.py create mode 100755 rescale_server.py delete mode 100644 upscale_server.py diff --git a/create.py b/create.py old mode 100644 new mode 100755 index ddefb08..2f28795 --- a/create.py +++ b/create.py @@ -1,13 +1,36 @@ +#!/usr/bin/env python3 from hcloud import Client +from hcloud import APIException from hcloud.server_types.domain import ServerType from hcloud.images.domain import Image +import argparse -with open('/Users/Philipp/Documents/Server/cloud-init/default.yaml', 'r') as file: - cloud_init = file.read() +# Get Servername +parser = argparse.ArgumentParser() +parser.add_argument("serverName") +parser.add_argument("serverType") +parser.add_argument("serverImage") +parser.add_argument("apiKey") -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) +args = parser.parse_args() + +serverName = args.serverName +serverType = args.serverType +serverImage = args.serverImage +apiKey = args.apiKey + +try: + with open('/Users/Philipp/Documents/Server/cloud-init/default.yaml', 'r') as file: + cloud_init = file.read() + + # Please paste your API token here between the quotes + client = Client(token=apiKey) + response = client.servers.create(name=serverName, server_type=ServerType( + name=serverType), image=Image(name=serverImage), user_data=cloud_init) + server = response.server + print(server) + print("Root Password: " + response.root_password) + print("IP: " + response.server.public_net.ipv4.ip) + +except APIException as e: + print("API Error ", e) diff --git a/delete.py b/delete.py old mode 100644 new mode 100755 index 808e24f..ef86617 --- a/delete.py +++ b/delete.py @@ -1,14 +1,25 @@ +#!/usr/bin/env python3 from hcloud import Client +import argparse +# Get Servername +parser = argparse.ArgumentParser() +parser.add_argument("serverName") +parser.add_argument("apiKey") -client = Client(token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") # Please paste your API token here between the quotes +args = parser.parse_args() -server = client.servers.get_by_name(name="my-server") +serverName = args.serverName +apiKey = args.apiKey + +# Please paste your API token here between the quotes +client = Client(token=apiKey) + +server = client.servers.get_by_name(name=serverName) 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 +for server in servers: + print(server.name) diff --git a/details.py b/details.py old mode 100644 new mode 100755 index 3d1257f..808c045 --- a/details.py +++ b/details.py @@ -1,13 +1,20 @@ +#!/usr/bin/env python3 from hcloud import Client import argparse +# Get Servername parser = argparse.ArgumentParser() parser.add_argument("serverName") +parser.add_argument("apiKey") + args = parser.parse_args() + serverName = args.serverName -print(serverName) - -client = Client(token="JalvbaPbizgErC2PoBSmDiFX0TKW0WLzbarxwFyNtJpx1xCvnEx3LI1B2Thl836f") # Please paste your API token here between the quotes +apiKey = args.apiKey +# Please paste your API token here between the quotes +client = Client(token=apiKey) server = client.servers.get_by_name(serverName) +print("Name: ", server.name) print("Status: ", server.status) +print("Type: ", server.server_type.name) diff --git a/downscale_server.py b/downscale_server.py deleted file mode 100644 index c2d7a4b..0000000 --- a/downscale_server.py +++ /dev/null @@ -1,49 +0,0 @@ -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 old mode 100644 new mode 100755 index d97070a..6f78970 --- a/list.py +++ b/list.py @@ -1,6 +1,16 @@ +#!/usr/bin/env python3 from hcloud import Client +import argparse + +# Get Servername +parser = argparse.ArgumentParser() +parser.add_argument("apiKey") +args = parser.parse_args() +apiKey = args.apiKey + +# Please paste your API token here between the quotes +client = Client(token=apiKey) -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) diff --git a/rescale_server.py b/rescale_server.py new file mode 100755 index 0000000..1be757f --- /dev/null +++ b/rescale_server.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +from hcloud import Client +from hcloud.server_types.domain import ServerType +import time +import argparse + + +# Get Servername +parser = argparse.ArgumentParser() +parser.add_argument("serverName") +parser.add_argument("serverType") +parser.add_argument("apiKey") + +args = parser.parse_args() + +serverName = args.serverName +serverType = args.serverType +apiKey = args.apiKey + +try: + # Please paste your API token here between the quotes + client = Client(token=apiKey) + + 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: ", serverType) + response = client.servers.change_type( + server, server_type=ServerType(name=serverType), 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) + +except APIException as e: + print("API Error ", e) \ No newline at end of file diff --git a/upscale_server.py b/upscale_server.py deleted file mode 100644 index 2bdf31d..0000000 --- a/upscale_server.py +++ /dev/null @@ -1,44 +0,0 @@ -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)