~nskaggs/juju-ci-tools/add-essential-operations

1387.2.1 by Martin Packman
Add clean_maas.py script for releasing machines
1
#!/usr/bin/env python
2
"""Delete all machines from given MAAS environment."""
3
4
from __future__ import print_function
5
6
import argparse
7
import sys
8
9
import jujuconfig
10
import substrate
11
12
13
def main(argv):
14
    parser = argparse.ArgumentParser(description="Delete all machines in MAAS")
15
    parser.add_argument("name", help="Name of the MAAS in juju config.")
16
    args = parser.parse_args(argv[1:])
17
    environments = jujuconfig.get_environments()
18
    if args.name not in environments:
19
        parser.error("No maas '{}' found in juju config".format(args.name))
20
    config = environments[args.name]
21
    with substrate.maas_account_from_config(config) as manager:
22
        machines = manager.get_allocated_nodes()
23
        print("Found {} machines: {}".format(len(machines), machines.keys()))
24
        manager.terminate_instances(machine["resource_uri"]
25
                                    for machine in machines.values())
26
        print("Released.")
27
    return 0
28
29
30
if __name__ == "__main__":
31
    sys.exit(main(sys.argv))