1
0

Cloud-init, Exception Handling

This commit is contained in:
Philipp Klüter
2020-05-22 16:42:02 +02:00
parent c8248ef7bf
commit 6e194e0c52
5 changed files with 51 additions and 33 deletions

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from hcloud import Client from hcloud import Client, APIException
from hcloud import APIException
from hcloud.server_types.domain import ServerType from hcloud.server_types.domain import ServerType
from hcloud.images.domain import Image from hcloud.images.domain import Image
import argparse import argparse
@@ -10,6 +9,8 @@ parser = argparse.ArgumentParser()
parser.add_argument("serverName") parser.add_argument("serverName")
parser.add_argument("serverType") parser.add_argument("serverType")
parser.add_argument("serverImage") parser.add_argument("serverImage")
parser.add_argument('-ci', '--cloudInit', dest='ciFile', metavar='cloud-init filepath')
parser.add_argument("apiKey") parser.add_argument("apiKey")
args = parser.parse_args() args = parser.parse_args()
@@ -18,12 +19,15 @@ serverName = args.serverName
serverType = args.serverType serverType = args.serverType
serverImage = args.serverImage serverImage = args.serverImage
apiKey = args.apiKey apiKey = args.apiKey
ciFile = args.ciFile
try: try:
with open('/Users/Philipp/Documents/Server/cloud-init/default.yaml', 'r') as file: if ciFile:
cloud_init = file.read() with open(ciFile, 'r') as file:
cloud_init = file.read()
else:
cloud_init=''
# Please paste your API token here between the quotes
client = Client(token=apiKey) client = Client(token=apiKey)
response = client.servers.create(name=serverName, server_type=ServerType( response = client.servers.create(name=serverName, server_type=ServerType(
name=serverType), image=Image(name=serverImage), user_data=cloud_init) name=serverType), image=Image(name=serverImage), user_data=cloud_init)

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from hcloud import Client from hcloud import Client, APIException
import argparse import argparse
# Get Servername # Get Servername
@@ -12,14 +12,19 @@ args = parser.parse_args()
serverName = args.serverName serverName = args.serverName
apiKey = args.apiKey apiKey = args.apiKey
# Please paste your API token here between the quotes
client = Client(token=apiKey)
server = client.servers.get_by_name(name=serverName) try:
print("Deleting: ", server.name) client = Client(token=apiKey)
response = client.servers.delete(server) server = client.servers.get_by_name(name=serverName)
print("Deleting: ", server.name)
response = client.servers.delete(server)
print("Remaining servers: ") print("Remaining servers: ")
servers = client.servers.get_all() servers = client.servers.get_all()
for server in servers: for server in servers:
print(server.name) print(server.name)
except APIException as e:
print("API Error ", e)

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from hcloud import Client from hcloud import Client, APIException
import argparse import argparse
# Get Servername # Get Servername
@@ -12,9 +12,12 @@ args = parser.parse_args()
serverName = args.serverName serverName = args.serverName
apiKey = args.apiKey apiKey = args.apiKey
# Please paste your API token here between the quotes try:
client = Client(token=apiKey) client = Client(token=apiKey)
server = client.servers.get_by_name(serverName) server = client.servers.get_by_name(serverName)
print("Name: ", server.name) print("Name: ", server.name)
print("Status: ", server.status) print("Status: ", server.status)
print("Type: ", server.server_type.name) print("Type: ", server.server_type.name)
except APIException as e:
print("API Error ", e)

18
list.py
View File

@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from hcloud import Client from hcloud import Client, APIException
import argparse import argparse
# Get Servername # Get Servername
@@ -8,10 +8,14 @@ parser.add_argument("apiKey")
args = parser.parse_args() args = parser.parse_args()
apiKey = args.apiKey apiKey = args.apiKey
# Please paste your API token here between the quotes
client = Client(token=apiKey)
servers = client.servers.get_all() try:
for server in servers: client = Client(token=apiKey)
print("Servername:", server.name)
print("Servername:", server.status) servers = client.servers.get_all()
for server in servers:
print("Servername:", server.name)
print("Servername:", server.status)
except APIException as e:
print("API Error ", e)

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from hcloud import Client from hcloud import Client, APIException
from hcloud.server_types.domain import ServerType from hcloud.server_types.domain import ServerType
import time import time
import argparse import argparse
import sys
# Get Servername # Get Servername
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
@@ -18,10 +18,12 @@ serverType = args.serverType
apiKey = args.apiKey apiKey = args.apiKey
try: try:
# Please paste your API token here between the quotes
client = Client(token=apiKey) client = Client(token=apiKey)
server = client.servers.get_by_name(name=serverName) server = client.servers.get_by_name(name=serverName)
if server.server_type.name == serverType:
sys.exit('Server type is already: %s' % serverType)
if server.status != "off": if server.status != "off":
print("Stopping: ", server.name) print("Stopping: ", server.name)
response = client.servers.power_off(server) response = client.servers.power_off(server)