def ADD_VM(url, token, name, project):

    #  create a new vm

    astakos = AstakosClient(url, token, name)

    service_type = CycladesComputeClient.service_type
    endpoint = astakos.get_endpoint_url(service_type)
    compute = CycladesComputeClient(endpoint, token)

    vm_name = name
    flavor = '260'
    image = 'eca2f4ef-b428-4096-a47d-29ddf5ed68d9'

    # server = compute.create_server(name=vm_name, flavor_id=flavor, image_id=image)

    server = compute.create_server(name=vm_name,
                                   key_name='cluster key',
                                   flavor_id=flavor,
                                   image_id=image,
                                   project_id=project)
    print(server['status'])

    with open(vm_name + '.info', "w") as f:
        for s in server:
            f.write(s)

    active = compute.wait_server_until(server['id'], 'ACTIVE')
    if active != 'ACTIVE':
        print('Waiting for server to build...')
Ejemplo n.º 2
0
AUTHENTICATION_URL = "https://astakos.example.com/identity/v2.0"
TOKEN = "User-Token"
astakos = AstakosClient(AUTHENTICATION_URL, TOKEN)

service_type = CycladesComputeClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
compute = CycladesComputeClient(endpoint, TOKEN)

#  Create a server (automatic IP)
name = "My public server"
flavor = "420"
image = "image-id-for-debian"
project = "a1234567-a890-1234-56ae-78f90bb1c2db"

server = compute.create_server(name, flavor, image, project=project)
print "Server status is {0}".server["status"]

new_status = compute.wait_server_until(server["id"], "ACTIVE")
if new_status != "ACTIVE":
    print "Waiting for server to build: time out..., server is in {0}".format(
        new_status)
else:
    #  Find ip
    nics = filter(lambda nic: bool(nic["ipv4"]), server["attachments"])
    ip = nics[0]["ipv4"]

    #  Create server
    print "Server {id} is now {status}\n\tName: {name}\n\tIP: {ip}".format(
        id=server["id"], status=server["status"], name=server["name"], ip=ip)
Ejemplo n.º 3
0
astakos = AstakosClient(AUTHENTICATION_URL, TOKEN)

#  Initialize CycladesComputeClient
service_type = CycladesComputeClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
compute = CycladesComputeClient(endpoint, TOKEN)

#  Create a public server (with IP)
name = "My public server"
flavor = "420"
image = "image-id-for-debian"
IP = "123.45.67.89"
network_id_for_this_ip = 204
networks = dict(uuid=network_id_for_this_ip, fixed_ip=IP)
project = "a1234567-a890-1234-56ae-78f90bb1c2db"

public_server = compute.create_server(name,
                                      flavor,
                                      image,
                                      networks=networks,
                                      project=project)

#  Create a private server (without networking)
name = "My private server"
networks = []
private_server = compute.create_server(name,
                                       flavor,
                                       image,
                                       networks=networks,
                                       project=project)
Ejemplo n.º 4
0
service_type = CycladesNetworkClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
network = CycladesNetworkClient(endpoint, TOKEN)

#  Create VPN and reserve an IP
type_ = CycladesNetworkClient.types[0]
vpn = network.create_network(type_, name="Cluster Network")
unused_ips = filter(lambda ip: not ip["port_id"], network.list_floatingips())
ip = unused_ips[0] if unused_ips else network.create_floatingip()
ip_net = ip["floating_network_id"]

#  Server data
flavor = 420
image = "image-id-for-a-debian-image"

#  Create nodes
networks = [
    dict(uuid=vpn["id"]),
]
node_1 = compute.create_server("Node 1", flavor, image, networks=networks)
node_2 = compute.create_server("Node 2", flavor, image, networks=networks)

#  Create gateway
networks.append(dict(uuid=ip_net, fixed_ip=ip["floating_ip_address"]))
gateway = compute.create_server("Gateway", flavor, image, networks=networks)

#  Wait servers to get ready
compute.wait_server_until(node_1["id"], "ACTIVE")
compute.wait_server_until(node_2["id"], "ACTIVE")
compute.wait_server_until(gateway["id"], "ACTIVE")
Ejemplo n.º 5
0
compute = CycladesComputeClient(endpoint, TOKEN)

service_type = CycladesNetworkClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
network = CycladesNetworkClient(endpoint, TOKEN)

#  Create VPN and reserve an IP
type_ = CycladesNetworkClient.types[0]
vpn = network.create_network(type_, name="Cluster Network")
unused_ips = filter(lambda ip: not ip["port_id"], network.list_floatingips())
ip = unused_ips[0] if unused_ips else network.create_floatingip()
ip_net = ip["floating_network_id"]

#  Server data
flavor = 420
image = "image-id-for-a-debian-image"

#  Create nodes
networks = [dict(uuid=vpn["id"]), ]
node_1 = compute.create_server("Node 1", flavor, image, networks=networks)
node_2 = compute.create_server("Node 2", flavor, image, networks=networks)

#  Create gateway
networks.append(dict(uuid=ip_net, fixed_ip=ip["floating_ip_address"]))
gateway = compute.create_server("Gateway", flavor, image, networks=networks)

#  Wait servers to get ready
compute.wait_server_until(node_1["id"], "ACTIVE")
compute.wait_server_until(node_2["id"], "ACTIVE")
compute.wait_server_until(gateway["id"], "ACTIVE")
Ejemplo n.º 6
0
from kamaki.clients.astakos import AstakosClient
from kamaki.clients.cyclades import CycladesComputeClient

#  Initialize Astakos
AUTHENTICATION_URL = "https://astakos.example.com/identity/v2.0"
TOKEN = "User-Token"
astakos = AstakosClient(AUTHENTICATION_URL, TOKEN)

#  Initialize CycladesComputeClient
service_type = CycladesComputeClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
compute = CycladesComputeClient(endpoint, TOKEN)

#  Create a public server (with IP)
name = "My public server"
flavor = "420"
image = "image-id-for-debian"
IP = "123.45.67.89"
network_id_for_this_ip = 204
networks = dict(uuid=network_id_for_this_ip, fixed_ip=IP)
project = "a1234567-a890-1234-56ae-78f90bb1c2db"

public_server = compute.create_server(
    name, flavor, image, networks=networks, project=project)

#  Create a private server (without networking)
name = "My private server"
networks = []
private_server = compute.create_server(
    name, flavor, image, networks=networks, project=project)