Exemplo n.º 1
0
def main():
    s = StarWatts("conf.yml")
    test_instance = s.conn.get_instance_by_tags({'name':
                                                 'node_blender_job0'})[0]
    app = s.new_cloud_app("blender",
                          "2.72",
                          "prod",
                          "job0",
                          instance=test_instance,
                          debug=True)

    # Direct connection works
    app.ssh_client.connect("171.33.90.69", username='******')
    (stdin, stdout,
     stderr) = app.ssh_client.exec_command("echo 'Hello World !'")
    for line in stdout.readlines():
        print(line)
    app.ssh_client.close()

    # Proxy connection doesn't
    (stdin, stdout, stderr) = app.through('bastion').connect(
        use_key=False).command("echo 'Hello World !'")
    for line in stdout.readlines():
        print(line)
    app.disconnect()
Exemplo n.º 2
0
def new_instance(request):
    from starwatts import StarWatts
    s = StarWatts(access_key=os.environ['ACCESS_KEY'], secret_key=os.environ['PRIVATE_KEY'])
    c = s.get_connection()
    inst = c.quick_instance('pytest-new', 'ami-14506474', 't1.micro', private=False)
    inst.wait_for('running')

    def teardown():
        c.delete_key_pair(inst.key_name)
        inst.terminate()
    request.addfinalizer(teardown)

    return inst
Exemplo n.º 3
0
def attached_volume(request):
    from starwatts import StarWatts
    s = StarWatts(access_key=os.environ['ACCESS_KEY'],
                  secret_key=os.environ['PRIVATE_KEY'])
    c = s.get_connection()
    inst = c.quick_instance('pytest-volume', 'ami-14506474', 't1.micro')
    inst.wait_for('running')

    def teardown():
        c.delete_key_pair(inst.key_name)
        inst.terminate()

    request.addfinalizer(teardown)

    return inst.get_all_attached_volumes()[0]
Exemplo n.º 4
0
def volume(request):
    from starwatts import StarWatts
    s = StarWatts(access_key=os.environ['ACCESS_KEY'], secret_key=os.environ['PRIVATE_KEY'])
    c = s.get_connection()
    zone = c.get_all_volumes()[0].zone
    fixture_volume = c.create_volume(1, zone)
    fixture_volume.wait_for('available')

    def teardown():
        try:
            fixture_volume.delete()
        except EC2ResponseError:
            pass
    request.addfinalizer(teardown)

    return fixture_volume
Exemplo n.º 5
0
def main():
    s = StarWatts('conf.yml')
    c = s.get_connection()
    sg_dc = dict()
    for sg in c.get_all_security_groups():
        for i in sg.instances():
            if i.id in sg_dc:
                sg_dc[i.id].append(sg.name)
            else:
                sg_dc[i.id] = [sg.name, ]

    for inst in c.get_only_instances():
        print("{name:20}{id}\t{sg}".format(
            name=inst.tags.get('name', 'No Name'),
            id=inst.id,
            sg=", ".join(sg_dc.get(inst.id, [])),
        ))
Exemplo n.º 6
0
def main():
    s = StarWatts("conf.yml")
    test_instance = s.conn.get_instance_by_tags({'name': 'node_blender_job0'})[0]
    app = s.new_cloud_app("blender", "2.72", "prod", "job0", instance=test_instance, debug=True)

    # Direct connection works
    app.ssh_client.connect("171.33.90.69", username='******')
    (stdin, stdout, stderr) = app.ssh_client.exec_command("echo 'Hello World !'")
    for line in stdout.readlines():
        print(line)
    app.ssh_client.close()

    # Proxy connection doesn't
    (stdin, stdout, stderr) = app.through('bastion').connect(use_key=False).command("echo 'Hello World !'")
    for line in stdout.readlines():
        print(line)
    app.disconnect()
def cli(instance_id):
    s = StarWatts('conf.yml')
    c = s.get_connection()
    try:
        inst_list = c.get_only_instances([instance_id])
    except EC2ResponseError:
        click.secho("This instance could not be found.", fg='red')
        sys.exit(1)
    if len(inst_list) > 0:
        inst = inst_list[0]
    else:
        click.secho("This instance could not be found.", fg='red')
        sys.exit(1)
    click.secho("Instance found, now working...", fg='green')
    log = inst.set_private()
    click.secho("The instance was set to private.", fg='green')
    for t in log:
        click.secho("{} => {}".format(t[0], t[1]), fg='green')
Exemplo n.º 8
0
def volume(request):
    from starwatts import StarWatts
    s = StarWatts(access_key=os.environ['ACCESS_KEY'],
                  secret_key=os.environ['PRIVATE_KEY'])
    c = s.get_connection()
    zone = c.get_all_volumes()[0].zone
    fixture_volume = c.create_volume(1, zone)
    fixture_volume.wait_for('available')

    def teardown():
        try:
            fixture_volume.delete()
        except EC2ResponseError:
            pass

    request.addfinalizer(teardown)

    return fixture_volume
Exemplo n.º 9
0
def main():
    s = StarWatts('conf.yml')
    c = s.get_connection()
    sg_dc = dict()
    for sg in c.get_all_security_groups():
        for i in sg.instances():
            if i.id in sg_dc:
                sg_dc[i.id].append(sg.name)
            else:
                sg_dc[i.id] = [
                    sg.name,
                ]

    for inst in c.get_only_instances():
        print("{name:20}{id}\t{sg}".format(
            name=inst.tags.get('name', 'No Name'),
            id=inst.id,
            sg=", ".join(sg_dc.get(inst.id, [])),
        ))
Exemplo n.º 10
0
def test_init_empty():
    assert isinstance(StarWatts(), StarWatts)
Exemplo n.º 11
0
def test_get_connection():
    s = StarWatts()
    assert s.get_connection() is None
    s = StarWatts(access_key="wrong", secret_key="wrong")
    assert isinstance(s.get_connection(), EC2Connection)
Exemplo n.º 12
0
def stw():
    from starwatts import StarWatts
    return StarWatts(access_key=os.environ['ACCESS_KEY'],
                     secret_key=os.environ['PRIVATE_KEY'])
Exemplo n.º 13
0
def test_init_good_file():
    StarWatts("tests/data/valid.yml")
Exemplo n.º 14
0
def test_init_wrong_file():
    with pytest.raises(ValueError):
        StarWatts("tests/data/wrong.yml")
Exemplo n.º 15
0
def cli(output, local):
    s = StarWatts('conf.yml')
    output.write(s.generate_ssh_config(local=local))
    output.flush()
def cli(output, local):
    s = StarWatts('conf.yml')
    output.write(s.generate_ansible_hosts_file(local=local))
    output.flush()
Exemplo n.º 17
0
def test_load_configuration():
    s = StarWatts()
    s.load_configuration("tests/data/valid.yml")
Exemplo n.º 18
0
def test_init_missing_arg():
    with pytest.raises(ValueError):
        StarWatts(access_key="0xSw4G")
    with pytest.raises(ValueError):
        StarWatts(secret_key="0xSw4G")
Exemplo n.º 19
0
def instance():
    from starwatts import StarWatts
    s = StarWatts(access_key=os.environ['ACCESS_KEY'],
                  secret_key=os.environ['PRIVATE_KEY'])
    return s.conn.get_only_instances()[0]
Exemplo n.º 20
0
def test_init_wrong_keys():
    s = StarWatts(access_key="wrong", secret_key="wrong")
    c = s.get_connection()
    with pytest.raises(EC2ResponseError):
        c.get_only_instances()
Exemplo n.º 21
0
def cli(output, local):
    s = StarWatts('conf.yml')
    output.write(s.generate_ssh_config(local=local))
    output.flush()
Exemplo n.º 22
0
def cli(output, local):
    s = StarWatts('conf.yml')
    output.write(s.generate_ansible_hosts_file(local=local))
    output.flush()