Example #1
0
def environment_create(chef_env_attr, planet, service, runtime):
    # retrieve provision object storage type
    prov_obj_store_type = planet.services['prov-object-store'].get('type')

    # initalize results container
    result = dict()

    # create temporary directory and file
    with skybase.utils.make_temp_directory() as tdir:
        with open(os.path.join(tdir, (planet.planet + '.json')), 'w') as env_attr_file:
            # dump chef environment attributes as JSON
            env_attr_file.write(json.dumps(chef_env_attr))
            env_attr_file.seek(0)

            # upload tar file for each stack-role to provider object store
            for stack_id in service.deploy.stack_launch_list:
                result[stack_id] = dict()

                for role_name in service.deploy.get_stack_roles(stack_id):

                    result[stack_id][role_name] = {
                        'prov_obj_store_type': prov_obj_store_type
                    }

                    result[stack_id][role_name]['upload_to_object_store'] = upload_to_object_store(
                        obj_store_type = prov_obj_store_type,
                        local_tar_src=env_attr_file.name,
                        planet=planet,
                        key_path=get_target_path(planet, service, runtime, stack_id, role_name),
                        archive_file=planet.planet + '.tar.gz')

    return result
Example #2
0
def cookbook_upload(planet, service, runtime):

    # retrieve provision object storage type
    prov_obj_store_type = planet.services['prov-object-store'].get('type')

    # initialize results container
    result = dict()

    # upload tar file for each stack-role to provider object store
    for stack_id in service.deploy.stack_launch_list:
        result[stack_id] = dict()

        for role_name in service.deploy.get_stack_roles(stack_id):

            result[stack_id][role_name] = {
                'prov_obj_store_type': prov_obj_store_type
            }

            result[stack_id][role_name][
                'upload_to_object_store'] = upload_to_object_store(
                    obj_store_type=prov_obj_store_type,
                    local_tar_src=service.install.cookbook_path,
                    planet=planet,
                    key_path=get_target_path(planet, service, runtime,
                                             stack_id, role_name),
                    archive_file='cookbooks.tar.gz')

    return result
Example #3
0
def role_create(chef_role_attr, stack_id, role_name, planet, service, runtime):
    # retrieve provision object storage type
    prov_obj_store_type = planet.services['prov-object-store'].get('type')

    # initalize results container
    result = dict()

    # create temporary directory and file
    with skybase.utils.make_temp_directory() as tdir:
        with open(os.path.join(tdir, (role_name + '.json')),
                  'w') as role_attr_file:
            # dump chef role attributes as JSON
            role_attr_file.write(json.dumps(chef_role_attr))
            role_attr_file.seek(0)

            # upload tar file for stack-role to provider object store
            result['upload_to_object_store'] = upload_to_object_store(
                obj_store_type=prov_obj_store_type,
                local_tar_src=role_attr_file.name,
                planet=planet,
                key_path=get_target_path(planet, service, runtime, stack_id,
                                         role_name),
                archive_file=role_name + '.tar.gz')

    return result
Example #4
0
def environment_create(chef_env_attr, planet, service, runtime):
    # retrieve provision object storage type
    prov_obj_store_type = planet.services['prov-object-store'].get('type')

    # initalize results container
    result = dict()

    # create temporary directory and file
    with skybase.utils.make_temp_directory() as tdir:
        with open(os.path.join(tdir, (planet.planet + '.json')),
                  'w') as env_attr_file:
            # dump chef environment attributes as JSON
            env_attr_file.write(json.dumps(chef_env_attr))
            env_attr_file.seek(0)

            # upload tar file for each stack-role to provider object store
            for stack_id in service.deploy.stack_launch_list:
                result[stack_id] = dict()

                for role_name in service.deploy.get_stack_roles(stack_id):

                    result[stack_id][role_name] = {
                        'prov_obj_store_type': prov_obj_store_type
                    }

                    result[stack_id][role_name][
                        'upload_to_object_store'] = upload_to_object_store(
                            obj_store_type=prov_obj_store_type,
                            local_tar_src=env_attr_file.name,
                            planet=planet,
                            key_path=get_target_path(planet, service, runtime,
                                                     stack_id, role_name),
                            archive_file=planet.planet + '.tar.gz')

    return result
Example #5
0
def role_create(chef_role_attr, stack_id, role_name, planet, service, runtime):
    # retrieve provision object storage type
    prov_obj_store_type = planet.services['prov-object-store'].get('type')

    # initalize results container
    result = dict()

    # create temporary directory and file
    with skybase.utils.make_temp_directory() as tdir:
        with open(os.path.join(tdir, (role_name + '.json')), 'w') as role_attr_file:
            # dump chef role attributes as JSON
            role_attr_file.write(json.dumps(chef_role_attr))
            role_attr_file.seek(0)

            # upload tar file for stack-role to provider object store
            result['upload_to_object_store'] = upload_to_object_store(
                obj_store_type = prov_obj_store_type,
                local_tar_src=role_attr_file.name,
                planet=planet,
                key_path=get_target_path(planet, service, runtime, stack_id, role_name),
                archive_file=role_name + '.tar.gz')

    return result
Example #6
0
def cookbook_upload(planet, service, runtime):

    # retrieve provision object storage type
    prov_obj_store_type = planet.services['prov-object-store'].get('type')

    # initialize results container
    result = dict()

    # upload tar file for each stack-role to provider object store
    for stack_id in service.deploy.stack_launch_list:
        result[stack_id] = dict()

        for role_name in service.deploy.get_stack_roles(stack_id):

            result[stack_id][role_name] = {'prov_obj_store_type': prov_obj_store_type}

            result[stack_id][role_name]['upload_to_object_store'] = upload_to_object_store(
                obj_store_type = prov_obj_store_type,
                local_tar_src=service.install.cookbook_path,
                planet=planet,
                key_path=get_target_path(planet, service, runtime, stack_id, role_name),
                archive_file='cookbooks.tar.gz')

    return result