示例#1
0
    def __init__(self,
                 tasker,
                 workflow,
                 pulp_registry_name,
                 load_squashed_image=None,
                 load_exported_image=None,
                 image_names=None,
                 pulp_secret_path=None,
                 username=None,
                 password=None,
                 dockpulp_loglevel=None):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/dockpulp.conf
        :param load_squashed_image: obsolete name for load_exported_image, please don't use
        :param load_exported_image: bool, use exported tar instead of image from Docker
        :param image_names: list of additional image names
        :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise
        :param username: pulp username, used in preference to certificate and key
        :param password: pulp password, used in preference to certificate and key
        """
        # call parent constructor
        super(PulpPushPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.image_names = image_names
        if load_squashed_image is not None and load_exported_image is not None and \
                (load_squashed_image != load_exported_image):
            raise RuntimeError(
                'Can\'t use load_squashed_image and load_exported_image with different values'
            )
        if load_squashed_image is not None:
            self.log.warning(
                'load_squashed_image argument is obsolete and will be removed in a future version;'
                'please use load_exported_image instead')
        self.load_exported_image = load_exported_image or load_squashed_image or False
        self.pulp_secret_path = pulp_secret_path
        self.username = username
        self.password = password

        found_self = False
        self.publish = True
        for plugin in self.workflow.postbuild_plugins_conf or []:
            if plugin['name'] == self.key:
                found_self = True
                continue

            if found_self and plugin['name'] == PulpSyncPlugin.key:
                self.publish = False
                break

        if dockpulp_loglevel is not None:
            logger = setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %r: %r",
                               dockpulp_loglevel, ex)
    def __init__(self, tasker, workflow, pulp_registry_name, load_squashed_image=False,
                 image_names=None, pulp_secret_path=None, username=None, password=None,
                 dockpulp_loglevel=None):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/dockpulp.conf
        :param load_squashed_image: bool, when running squash plugin with `dont_load=True`,
                                    you may load the squashed tar with this switch
        :param image_names: list of additional image names
        :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise
        :param username: pulp username, used in preference to certificate and key
        :param password: pulp password, used in preference to certificate and key
        """
        # call parent constructor
        super(PulpPushPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.image_names = image_names
        self.load_squashed_image = load_squashed_image
        self.pulp_secret_path = pulp_secret_path
        self.username = username
        self.password = password

        if dockpulp_loglevel is not None:
            logger = setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %s: %s",
                               repr(dockpulp_loglevel), repr(ex))
    def __init__(self,
                 tasker,
                 workflow,
                 pulp_registry_name,
                 docker_registry,
                 delete_from_registry=False,
                 pulp_secret_path=None,
                 registry_secret_path=None,
                 insecure_registry=None,
                 dockpulp_loglevel=None,
                 pulp_repo_prefix=None,
                 publish=True):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use,
               specified in /etc/dockpulp.conf
        :param docker_registry: str, URL of docker registry to sync from
               including scheme e.g. https://registry.example.com
        :param delete_from_registry: bool, whether to delete the image
               from the docker v2 registry after sync
        :param pulp_secret_path: path to pulp.cer and pulp.key
        :param registry_secret_path: path to .dockercfg for the V2 registry
        :param insecure_registry: True if SSL validation should be skipped
        :param dockpulp_loglevel: int, logging level for dockpulp
        :param pulp_repo_prefix: str, prefix for pulp repo IDs
        """
        # call parent constructor
        super(PulpSyncPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.docker_registry = docker_registry
        self.pulp_secret_path = pulp_secret_path
        self.registry_secret_path = registry_secret_path
        self.insecure_registry = insecure_registry
        self.pulp_repo_prefix = pulp_repo_prefix

        if dockpulp_loglevel is not None:
            logger = dockpulp.setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %r: %r",
                               dockpulp_loglevel, ex)

        if delete_from_registry:
            self.log.error("will not delete from registry as instructed: "
                           "not implemented")

        self.publish = (
            publish
            and not are_plugins_in_order(self.workflow.postbuild_plugins_conf,
                                         self.key, PLUGIN_PULP_PUSH_KEY))
示例#4
0
    def __init__(self, tasker, workflow,
                 pulp_registry_name,
                 docker_registry,
                 delete_from_registry=False,
                 pulp_secret_path=None,
                 registry_secret_path=None,
                 insecure_registry=None,
                 dockpulp_loglevel=None,
                 pulp_repo_prefix=None,
                 publish=True):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use,
               specified in /etc/dockpulp.conf
        :param docker_registry: str, URL of docker registry to sync from
               including scheme e.g. https://registry.example.com
        :param delete_from_registry: bool, whether to delete the image
               from the docker v2 registry after sync
        :param pulp_secret_path: path to pulp.cer and pulp.key
        :param registry_secret_path: path to .dockercfg for the V2 registry
        :param insecure_registry: True if SSL validation should be skipped
        :param dockpulp_loglevel: int, logging level for dockpulp
        :param pulp_repo_prefix: str, prefix for pulp repo IDs
        """
        # call parent constructor
        super(PulpSyncPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.docker_registry = docker_registry
        self.pulp_secret_path = pulp_secret_path
        self.registry_secret_path = registry_secret_path
        self.insecure_registry = insecure_registry
        self.pulp_repo_prefix = pulp_repo_prefix

        if dockpulp_loglevel is not None:
            logger = dockpulp.setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %r: %r",
                               dockpulp_loglevel, ex)

        if delete_from_registry:
            self.log.error("will not delete from registry as instructed: "
                           "not implemented")

        self.publish = (publish and
                        not are_plugins_in_order(self.workflow.postbuild_plugins_conf,
                                                 self.key,
                                                 PLUGIN_PULP_PUSH_KEY))
    def __init__(
        self,
        tasker,
        workflow,
        pulp_registry_name,
        load_squashed_image=None,
        load_exported_image=None,
        image_names=None,
        pulp_secret_path=None,
        username=None,
        password=None,
        dockpulp_loglevel=None,
    ):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/dockpulp.conf
        :param load_squashed_image: obsolete name for load_exported_image, please don't use
        :param load_exported_image: bool, use exported tar instead of image from Docker
        :param image_names: list of additional image names
        :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise
        :param username: pulp username, used in preference to certificate and key
        :param password: pulp password, used in preference to certificate and key
        """
        # call parent constructor
        super(PulpPushPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.image_names = image_names
        if (
            load_squashed_image is not None
            and load_exported_image is not None
            and (load_squashed_image != load_exported_image)
        ):
            raise RuntimeError("Can't use load_squashed_image and load_exported_image with different values")
        if load_squashed_image is not None:
            self.log.warning(
                "load_squashed_image argument is obsolete and will be removed in a future version;"
                "please use load_exported_image instead"
            )
        self.load_exported_image = load_exported_image or load_squashed_image or False
        self.pulp_secret_path = pulp_secret_path
        self.username = username
        self.password = password

        if dockpulp_loglevel is not None:
            logger = setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %s: %s", repr(dockpulp_loglevel), repr(ex))
    def __init__(self, tasker, workflow, pulp_registry_name, load_squashed_image=None,
                 load_exported_image=None, image_names=None, pulp_secret_path=None,
                 username=None, password=None, dockpulp_loglevel=None):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/dockpulp.conf
        :param load_squashed_image: obsolete name for load_exported_image, please don't use
        :param load_exported_image: bool, use exported tar instead of image from Docker
        :param image_names: list of additional image names
        :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise
        :param username: pulp username, used in preference to certificate and key
        :param password: pulp password, used in preference to certificate and key
        """
        # call parent constructor
        super(PulpPushPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.image_names = image_names
        if load_squashed_image is not None and load_exported_image is not None and \
                (load_squashed_image != load_exported_image):
            raise RuntimeError(
                'Can\'t use load_squashed_image and load_exported_image with different values')
        if load_squashed_image is not None:
            self.log.warning(
                'load_squashed_image argument is obsolete and will be removed in a future version;'
                'please use load_exported_image instead')
        self.load_exported_image = load_exported_image or load_squashed_image or False
        self.pulp_secret_path = pulp_secret_path
        self.username = username
        self.password = password

        found_self = False
        self.publish = True
        for plugin in self.workflow.postbuild_plugins_conf or []:
            if plugin['name'] == self.key:
                found_self = True
                continue

            if found_self and plugin['name'] == PulpSyncPlugin.key:
                self.publish = False
                break

        if dockpulp_loglevel is not None:
            logger = setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %r: %r", dockpulp_loglevel, ex)
示例#7
0
    def __init__(self, workflow, pulp_instance, log,
                 pulp_secret_path=None,
                 username=None, password=None, dockpulp_loglevel=None):
        self.workflow = workflow
        self.pulp_instance = pulp_instance
        self.pulp_secret_path = pulp_secret_path
        self.log = log
        # U/N & password has bigger prio than secret cert
        self.username = username
        self.password = password
        self.p = None

        if dockpulp_loglevel is not None:
            logger = setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %r: %r", dockpulp_loglevel, ex)
示例#8
0
    def __init__(self, tasker, workflow,
                 pulp_registry_name,
                 docker_registry,
                 delete_from_registry=False,
                 pulp_secret_path=None,
                 username=None, password=None,
                 dockpulp_loglevel=None):
        """
        constructor

        :param tasker: DockerTasker instance
        :param workflow: DockerBuildWorkflow instance
        :param pulp_registry_name: str, name of pulp registry to use,
               specified in /etc/dockpulp.conf
        :param docker_registry: str, URL of docker registry to sync from
        :param delete_from_registry: bool, whether to delete the image
               from the docker v2 registry after sync
        :param pulp_secret_path: path to pulp.cer and pulp.key
        :param username: pulp username, used in preference to
               certificate and key
        :param password: pulp password, used in preference to
               certificate and key
        """
        # call parent constructor
        super(PulpSyncPlugin, self).__init__(tasker, workflow)
        self.pulp_registry_name = pulp_registry_name
        self.docker_registry = docker_registry
        self.pulp_secret_path = pulp_secret_path
        self.username = username
        self.password = password

        if dockpulp_loglevel is not None:
            logger = dockpulp.setup_logger(dockpulp.log)
            try:
                logger.setLevel(dockpulp_loglevel)
            except (ValueError, TypeError) as ex:
                self.log.error("Can't set provided log level %r: %r",
                               dockpulp_loglevel, ex)

        if delete_from_registry:
            self.log.error("will not delete from registry as instructed: "
                           "not implemented")
示例#9
0
import requests
import sys

try:
    # Python 2.6 and earlier
    import simplejson as json
except ImportError:
    if sys.version_info[0] > 2 or sys.version_info[1] > 6:
        import json
    else:
        # json on python 2.6 does not behave like simplejson
        raise

import dockpulp

log = dockpulp.setup_logger(dockpulp.log)

def get_opts():
    usage="""%prog [options] environment config.json
Restore configuration to a Pulp environment based on a json dump."""
    parser = OptionParser(usage=usage)
    parser.add_option('-d', '--debug', default=False, action='store_true',
        help='turn on debugging output')
    parser.add_option('-p', '--password', help='specify the account password')
    parser.add_option('-u', '--username', default='admin',
        help='provide an account besides "admin"')
    opts, args = parser.parse_args()
    if len(args) != 2:
        parser.error('Please specify an environment to restore and a json file')
    if not os.path.exists(args[1]):
        parser.error('Could not find %s' % args[1])
示例#10
0
 def __init__(self):
     if dockpulp:
         self.pulp_log = dockpulp.setup_logger(dockpulp.log)
     else:
         self.pulp_log = logging.getLogger(__name__)
示例#11
0
 def __init__(self):
     if dockpulp:
         self.pulp_log = dockpulp.setup_logger(dockpulp.log)
     else:
         self.pulp_log = logging.getLogger(__name__)
示例#12
0
import os.path
import sys

try:
    # Python 2.6 and earlier
    import simplejson as json
except ImportError:
    if sys.version_info[0] > 2 or sys.version_info[1] > 6:
        import json
    else:
        # json on python 2.6 does not behave like simplejson
        raise

import dockpulp

log = dockpulp.setup_logger(dockpulp.log)


def get_opts():
    usage = """%prog [options] environment config.json
Restore configuration to a Pulp environment based on a json dump."""
    parser = OptionParser(usage=usage)
    parser.add_option('-d',
                      '--debug',
                      default=False,
                      action='store_true',
                      help='turn on debugging output')
    parser.add_option('-p', '--password', help='specify the account password')
    parser.add_option('-u',
                      '--username',
                      default='admin',