Example #1
0
    def get_appliance(stream,
                      timeout=12 * 60,
                      provision_timeout=60,
                      version=None,
                      date=None,
                      desc=None,
                      override_ram=None,
                      override_cpu=None,
                      provider=None):
        # Creating an appliance
        sr = SproutProvisioningRequest(group=stream,
                                       count=1,
                                       version=version,
                                       date=date,
                                       lease_time=timeout,
                                       provision_timeout=provision_timeout,
                                       desc=desc,
                                       cpu=override_cpu,
                                       ram=override_ram,
                                       provider=provider)
        print(sr)
        sm = SproutManager()
        appliance_data = sm.request_appliances(sr)
        while not sm.check_fullfilled():
            print("waiting for fullfillment of appliance_data....")
            time.sleep(10)
        sm.reset_timer()
        print("appliance data:")
        for app in appliance_data:
            print("    {}: {}\n".format(app['name'], app['ip_address']))

        return [app['ip_address'] for app in appliance_data].pop()
Example #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'
        )
Example #3
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')
Example #4
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")