Пример #1
0
def detach_volume(profile, cluster, instance, volume, secret_key,
                  log_write_url, girder_callback_info):

    playbook = os.path.join(get_playbook_directory(), 'volumes', 'ec2',
                            'detach.yml')

    extra_vars = {
        'girder_volume_id': volume['_id'],
        'girder_cluster_id': cluster['_id'],
        'volume_id': volume['ec2']['id'],
        'instance_id': instance['instance_id'],
        'path': volume['path'],
        'region': profile['regionName'],
        'ansible_ssh_private_key_file': _key_path(profile),
        'ansible_user': cluster['config']['ssh']['user']
    }

    extra_vars.update(girder_callback_info)

    env = os.environ.copy()
    env.update({
        'AWS_ACCESS_KEY_ID': profile['accessKeyId'],
        'AWS_SECRET_ACCESS_KEY': secret_key,
        'ANSIBLE_HOST_KEY_CHECKING': 'false',
        'ANSIBLE_CALLBACK_PLUGINS': get_callback_plugins_path(),
        'LOG_WRITE_URL': log_write_url,
        'GIRDER_TOKEN': girder_callback_info['girder_token'],
        'ANSIBLE_LIBRARY': get_library_path()
    })

    inventory = simple_inventory({'head': [instance['public_ip']]})

    with inventory.to_tempfile() as inventory_path:
        run_playbook(playbook, inventory_path, extra_vars, verbose=2, env=env)
Пример #2
0
def detach_volume(profile, cluster, instance, volume,
                  secret_key, girder_callback_info):

    playbook = os.path.join(get_playbook_directory(),
                            'volumes', 'ec2', 'detach.yml')

    extra_vars = {
        'girder_volume_id': volume['_id'],
        'girder_cluster_id': cluster['_id'],
        'volume_id': volume['ec2']['id'],
        'instance_id': instance['instance_id'],
        'path': volume['path'],
        'region': profile['regionName'],
        'ansible_ssh_private_key_file': _key_path(profile),
        'ansible_user': cluster['config']['ssh']['user']
    }

    extra_vars.update(girder_callback_info)

    env = os.environ.copy()
    env.update({'AWS_ACCESS_KEY_ID': profile['accessKeyId'],
                'AWS_SECRET_ACCESS_KEY': secret_key,
                'ANSIBLE_HOST_KEY_CHECKING': 'false',
                'ANSIBLE_CALLBACK_PLUGINS': get_callback_plugins_path(),
                'ANSIBLE_LIBRARY': get_library_path()})

    inventory = simple_inventory({'head': [instance['public_ip']]})

    with inventory.to_tempfile() as inventory_path:
        run_playbook(playbook, inventory_path,
                     extra_vars, verbose=2, env=env)
Пример #3
0
def delete_volume(profile, volume, secret_key, girder_callback_info):

    playbook = os.path.join(get_playbook_directory(),
                            'volumes', 'ec2', 'delete.yml')

    extra_vars = {
        'girder_volume_id': volume['_id'],
        'volume_id': volume['ec2']['id'],
        'region': profile['regionName'],
        'ansible_ssh_private_key_file': _key_path(profile),
    }

    extra_vars.update(girder_callback_info)

    env = os.environ.copy()
    env.update({'AWS_ACCESS_KEY_ID': profile['accessKeyId'],
                'AWS_SECRET_ACCESS_KEY': secret_key,
                'ANSIBLE_HOST_KEY_CHECKING': 'false',
                'ANSIBLE_CALLBACK_PLUGINS': get_callback_plugins_path(),
                'ANSIBLE_LIBRARY': get_library_path()})

    inventory = simple_inventory('localhost')

    with inventory.to_tempfile() as inventory_path:
        run_playbook(playbook, inventory_path,
                     extra_vars, verbose=2, env=env)
Пример #4
0
    def setUpClass(cls):
        # Create a temporary directory
        cls.tempdir = tempfile.mkdtemp()
        cls.playbookdir = os.path.join(cls.tempdir, "playbooks")

        # Copy in the playbook directory from the source tree
        shutil.copytree(get_playbook_directory(), cls.playbookdir)

        # Copy in test fixtures
        fixtures = os.path.join(os.path.dirname(__file__),
                                "fixtures", "ansible", "*.yml")
        for pth in glob.glob(fixtures):
            shutil.copy(pth, cls.playbookdir)

        # Copy dummy inventory
        shutil.copy(os.path.join(os.path.dirname(__file__),
                                 "fixtures", "ansible", "inventory"),
                    cls.playbookdir)