Exemplo n.º 1
0
def checkout(appliances, timeout, provision_timeout, group, version, date,
             desc, override_ram, override_cpu, populate_yaml, provider,
             provider_type, template_type, preconfigured, sprout_user_key):
    """checks out a sprout provisioning request, and returns it on exit"""
    override_cpu = override_cpu or None
    override_ram = override_ram or None
    sr = SproutProvisioningRequest(group=group,
                                   count=appliances,
                                   version=version,
                                   date=date,
                                   lease_time=timeout,
                                   provision_timeout=provision_timeout,
                                   desc=desc,
                                   cpu=override_cpu,
                                   ram=override_ram,
                                   provider=provider,
                                   provider_type=provider_type,
                                   template_type=template_type,
                                   preconfigured=preconfigured)
    print(sr)
    sm = SproutManager(sprout_user_key=sprout_user_key)

    def exit_gracefully(signum, frame):
        sm.destroy_pool()
        sys.exit(0)

    signal.signal(signal.SIGINT, exit_gracefully)
    signal.signal(signal.SIGTERM, exit_gracefully)
    try:
        appliance_data = sm.request_appliances(sr)
        while not sm.check_fullfilled():
            print("waiting...")
            time.sleep(10)
        sm.reset_timer()
        for app in appliance_data:
            print("{}: {}".format(app['name'], app['ip_address']))
        if populate_yaml:
            populate_config_from_appliances(appliance_data)
        print("Appliance checked out, hit ctrl+c to checkin")

        while True:
            time.sleep(10)

    except KeyboardInterrupt:
        try:
            sm.destroy_pool()
        except Exception:
            print("Error in pool destroy")

    except AuthException:
        print(
            '\nERROR: Sprout client unauthenticated, please provide env vars or --user-key'
        )
Exemplo n.º 2
0
def checkout(appliances, timeout, provision_timeout, group, version, date, desc,
             override_ram, override_cpu, populate_yaml, provider, provider_type, template_type,
             preconfigured, sprout_user_key):
    """checks out a sprout provisioning request, and returns it on exit"""
    override_cpu = override_cpu or None
    override_ram = override_ram or None
    sr = SproutProvisioningRequest(group=group, count=appliances, version=version, date=date,
                                   lease_time=timeout, provision_timeout=provision_timeout,
                                   desc=desc, cpu=override_cpu, ram=override_ram, provider=provider,
                                   provider_type=provider_type, template_type=template_type,
                                   preconfigured=preconfigured)
    print(sr)
    sm = SproutManager(sprout_user_key=sprout_user_key)

    def exit_gracefully(signum, frame):
        sm.destroy_pool()
        sys.exit(0)

    signal.signal(signal.SIGINT, exit_gracefully)
    signal.signal(signal.SIGTERM, exit_gracefully)
    try:
        appliance_data = sm.request_appliances(sr)
        while not sm.check_fullfilled():
            print("waiting...")
            time.sleep(10)
        sm.reset_timer()
        for app in appliance_data:
            print("{}: {}".format(app['name'], app['ip_address']))
        if populate_yaml:
            populate_config_from_appliances(appliance_data)
        print("Appliance checked out, hit ctrl+c to checkin")

        while True:
            time.sleep(10)

    except KeyboardInterrupt:
        try:
            sm.destroy_pool()
        except Exception:
            print("Error in pool destroy")

    except AuthException:
        print('\nERROR: Sprout client unauthenticated, please provide env vars or --user-key')
Exemplo n.º 3
0
def checkout(appliances, timeout, provision_timeout, group, version, date,
             desc, override_ram, override_cpu, populate_yaml, provider):
    """Function to show the given credentials, takes either a provider key or a credential key"""
    override_cpu = override_cpu or None
    override_ram = override_ram or None
    sr = SproutProvisioningRequest(group=group,
                                   count=appliances,
                                   version=version,
                                   date=date,
                                   lease_time=timeout,
                                   provision_timeout=provision_timeout,
                                   desc=desc,
                                   cpu=override_cpu,
                                   ram=override_ram,
                                   provider=provider)
    sm = SproutManager()

    def exit_gracefully(signum, frame):
        sm.destroy_pool()
        sys.exit(0)

    signal.signal(signal.SIGINT, exit_gracefully)
    signal.signal(signal.SIGTERM, exit_gracefully)
    try:
        appliance_data = sm.request_appliances(sr)
        while not sm.check_fullfilled():
            print("waiting...")
            time.sleep(10)
        sm.reset_timer()
        for app in appliance_data:
            print "{}: {}".format(app['name'], app['ip_address'])
        if populate_yaml:
            file_name = conf_path.join('env.local.yaml').strpath
            if os.path.exists(file_name):
                with open(file_name) as f:
                    y_data = yaml.load(f)
                if not y_data:
                    y_data = {}
            else:
                y_data = {}
            if y_data:
                with open(conf_path.join('env.local.backup').strpath,
                          'w') as f:
                    yaml.dump(y_data, f, default_flow_style=False)

            y_data['appliances'] = []
            for app in appliance_data:
                y_data['appliances'].append(
                    {'base_url': 'https://{}/'.format(app['ip_address'])})
            with open(file_name, 'w') as f:
                try:
                    del y_data['base_url']
                except KeyError:
                    pass
                yaml.dump(y_data, f, default_flow_style=False)

        print("Appliance checked out, hit ctrl+c to checkin")

        while True:
            time.sleep(10)

    except KeyboardInterrupt:
        try:
            sm.destroy_pool()
        except:
            print("Error in pool destroy")