libcloud and DigitalOcean droplet


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python

from libcloud.compute.types import Provider, NodeState
from libcloud.compute.providers import get_driver

driver = get_driver(Provider.DIGITAL_OCEAN)
cloud = driver([CLIENT_ID], [API_KEY])

# Get all nodes (droplet)
nodes = cloud.list_nodes()

# Show all attributes
for node in nodes:
print("===" * 5)
for key in node.__dict__.keys():
print("{0}: {1}".format(key, node.__dict__[key]))

# Reboot running node
cloud.reboot_node([n for n in nodes if n.state == NodeState.RUNNING])

# Destroy terminated node
cloud.destroy_node([n for n in nodes if n.state == NodeState.TERMINATED])

參考