Example #1
0
import logging
import os
import platform
import subprocess
import yaml

from cekit.cache.artifact import ArtifactCache
from cekit.config import Config
from cekit.errors import CekitError
from cekit.generator.base import Generator
from cekit.descriptor.resource import _PlainResource
from cekit.tools import get_brew_url

logger = logging.getLogger('cekit')
config = Config()


class DockerGenerator(Generator):
    def __init__(self, descriptor_path, target, builder, overrides, params):
        self._params = params
        super(DockerGenerator, self).__init__(descriptor_path, target, builder,
                                              overrides, params)
        self._fetch_repos = True

    def _prepare_content_sets(self, content_sets):
        if not config.cfg['common']['redhat']:
            return False

        arch = platform.machine()
        if arch not in content_sets:
            raise CekitError(
Example #2
0
from cekit.generator.base import Generator

module_desc = {
    'schema_version': 1,
    'name': 'master_mod',
    'modules': {
        'repositories': [
            {
                'name': 'module',
                'path': 'tests/modules/repo_1',
            },
        ]
    }
}

config = Config()
config.cfg['common'] = {'work_dir': '/tmp'}


def test_modules_repos(tmpdir):
    tmpdir = str(tmpdir.mkdir('target'))
    module = Module(module_desc, os.getcwd(), '/tmp')
    module.fetch_dependencies(tmpdir)
    assert 'foo' in [m['name'] for m in modules]


def test_issue_322(tmpdir):
    """tests a particular inheritance issue reported as GitHub issue #322"""
    target_dir = str(tmpdir.mkdir('target'))
    artifact_dir = str(tmpdir.mkdir('artifacts'))
    clone_dir = str(tmpdir.mkdir('clone'))
Example #3
0
from cekit.config import Config
from cekit.descriptor import Repository
from cekit.version import version as cekit_version
from cekit.tools import Chdir
from cekit.template_helper import TemplateHelper

from click.testing import CliRunner

basic_config = {
    'release': 1,
    'version': 1,
    'from': 'fromimage',
    'name': 'testimage'
}

config = Config()
config.cfg['common'] = {'redhat': True}


def print_test_name(value):
    if str(value).startswith('test'):
        return value
    return "\b"


@pytest.mark.parametrize('name, desc_part, exp_regex', [
    ('test_run_user', {
        'run': {
            'user': 1347,
            'cmd': ['whoami']
        }
Example #4
0
import shutil

import yaml

from jinja2 import Environment, FileSystemLoader
from packaging.version import LegacyVersion, parse as parse_version

import cekit
from cekit import tools, __version__ as cekit_version
from cekit.config import Config
from cekit.descriptor import Env, Image, Label, Module, Overrides, Repository
from cekit.errors import CekitError
from cekit.template_helper import TemplateHelper

LOGGER = logging.getLogger('cekit')
CONFIG = Config()


try:
    from odcs.client.odcs import ODCS, AuthMech
    # Requests is a dependency of ODCS client, so this should be safe
    import requests
except ImportError:
    pass


class Generator(object):
    """
    This class process Image descriptor(self.image) and uses it to generate
    target directory by fetching all dependencies and artifacts
Example #5
0
def test_config_key_exists():
    config = Config()
    config.configure('/dev/null', {})

    assert not config.get('common', 'redhat')
Example #6
0
import pytest
import yaml

from cekit.config import Config
from cekit.errors import CekitError
from cekit.descriptor import Label, Port, Env, Volume, Packages, Image, Osbs, \
    Repository

config = Config()
config.configure('/dev/null', {'redhat': True})


def test_label():
    label = Label(
        yaml.safe_load("""
      name: "io.k8s.display-name"
      value: "JBoss A-MQ 6.2"
"""))
    assert label['name'] == "io.k8s.display-name"
    assert label['value'] == "JBoss A-MQ 6.2"


def test_env():
    env = Env(
        yaml.safe_load("""
      name: "io.k8s.display-name"
      value: "JBoss A-MQ 6.2"
"""))
    assert env['name'] == "io.k8s.display-name"
    assert env['value'] == "JBoss A-MQ 6.2"