def main(argv):
    if len(argv) != 1:
        print "usage: list-ha-server-acls UUID";
        return

    init_pyrax()

    for ha in pyrax.cloud_databases.list_ha():
        if ha.id == argv[0]:
            print ha.list_acls()
            break
def main(argv):
    if len(argv) != 2:
        print "usage: add-ha-server-acl UUID address";
        return

    init_pyrax()

    for ha in pyrax.cloud_databases.list_ha():
        if ha.id == argv[0]:
            ha.add_acl(argv[1])
            break
def main(argv):
    if len(argv) != 1:
        print "usage: delete-ha-server UUID";
        return

    init_pyrax()

    for ha in pyrax.cloud_databases.list_ha():
        if ha.id == argv[0]:
            ha.delete()
            break
def main(argv):
    if len(argv) != 2:
        print "usage: delete-ha-server-acl UUID address";
        return

    init_pyrax()

    for ha in pyrax.cloud_databases.list_ha():
        if ha.id == argv[0]:
            for acl in ha.list_acls():
                if acl.address == argv[1]:
                    acl.delete()
def main(argv):
    if len(argv) != 1:
        print "usage: ha-server-details UUID";
        return

    init_pyrax()

    for ha in pyrax.cloud_databases.list_ha():
        if ha.id == argv[0]:
            ha.get()
            print ha
            break
def main(argv):
    if (len(argv) < 4):
        print "usage: new-ha-cluster NAME NUM_SLAVES VOLUME FLAVOR_ID"
        return

    init_pyrax()

    #the master
    master = CloudDatabaseSpec(argv[0] + "_master", argv[2], int(argv[3]))

    #build a list of slaves
    slaves = []
    for i in xrange(int(argv[1])):
        slaves.append(CloudDatabaseSpec(argv[0] + "_slave_" + str(i), argv[2], int(argv[3])))

    print pyrax.cloud_databases.create_ha(argv[0], "MYSQL", "5.6", master, slaves)
def main(argv):
    argLen = len(argv)

    if (argLen < 3):
        print "Usage: create-server.py NAME FLAVOR_ID IMAGE_NAME [ADDNL_VOLUME_NAME] [ADDNL_VOLUME_SIZE]"
        return 1

    name = argv[0]
    flavorId = argv[1]
    imageName = argv[2]
    addnlVolumeName = None
    addnlVolumeSize = None

    if argLen > 4:
        addnlVolumeName = argv[3]
        addnlVolumeSize = argv[4]

    common.init_pyrax()

    cs = pyrax.cloudservers

    #find the image the user wants to use
    foundImage = None
    for image in cs.list_images():
        if image.name == imageName:
            foundImage = image

    if not foundImage:
        print "Could not locate image " + imageName
        return 2

    if not name:
        print "Server name cannot be blank"
        return 3

    server = cs.servers.create(name, foundImage.id, flavorId)
    fullServer = pyrax.utils.wait_for_build(server)
    _print_server_info(fullServer)

    if addnlVolumeName:
        cbs = pyrax.cloud_blockstorage
        vol = cbs.create(name=addnlVolumeName, size=addnlVolumeSize, volume_type="SSD")
        pyrax.utils.wait_for_build(vol)
        vol.attach_to_instance(server, mountpoint="/dev/xvdb")

    return 0
def main(argv):
    init_pyrax()

    for ha in pyrax.cloud_databases.list_ha():
        print ha
import pyrax
import common

common.init_pyrax()

cs = pyrax.cloudservers

for image in cs.list_images():
    print image.id + ": " + image.name
def main(argv):
    init_pyrax()

    for flav in pyrax.cloud_databases.list_flavors():
        print flav