-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoci_start_instance.py
49 lines (39 loc) · 1.54 KB
/
oci_start_instance.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import os, oci
from oci.config import validate_config
from dotenv import load_dotenv
load_dotenv()
instance_dict = {}
config = {
"user": os.environ.get('authUserID'),
"key_file": os.environ.get('ociKeyPath'),
"fingerprint": os.environ.get('keyFingerPrint'),
"tenancy": os.environ.get('tenancyID'),
"region": "us-ashburn-1"
}
def start_instance(ociID):
compute.instance_action(ociID, "START")
def print_row(id, instance_name, status, shape, region):
print " %-10s %-40s %30s %20s %20s" % (id, instance_name, shape, status, region)
def request_instance():
try:
instance_id = raw_input('\nDigite o ID da instancia/shape que deseja iniciar:')
item = float(instance_id)
print ("A instancia de OCID {} sera iniciada....aguarde".format(instance_dict[item]))
start_instance(instance_dict[item])
except KeyboardInterrupt:
print('\nPrograma abortado\n')
except ValueError:
print('\nO valor ingressado esta incorreto\n')
except Exception as exception:
print('\nOcorreu um erro: {}'.format(exception))
compartmentId = os.environ.get('compartmentID')
validate_config(config)
compute = oci.core.ComputeClient(config)
instance_list = compute.list_instances(compartmentId, lifecycle_state = "STOPPED")
instances = instance_list.data
print("\ntotal de instancias em seu compartimento que estao parados: {}\n".format(len(instances)))
for idx, instance in enumerate(instances):
instance_dict[idx] = instance.id
print_row(idx, instance.display_name, instance.lifecycle_state, instance.shape, instance.region)
if (len(instances) > 0):
request_instance()