예제 #1
0
def import_repository(url, branch=None, temp_dir=None, logger=None):
    with git.make_clone_dir(temp_dir) as clone_dir:
        try:
            git.clone_repository(url, clone_dir, branch=branch)
        except Exception as e:
            raise exc.RepositoryError(e)
        return load_repository(clone_dir, logger)
예제 #2
0
    def _validate_metadata_role_name(self, metadata_role_name):
        """Validate meta/main.yml role_name.

        If role is not new, and metadata_role_name matches existing name,
        then do not validate. This allows legacy role names with dashes.
        """

        if not metadata_role_name:
            return

        if self.repo_obj.content_objects.filter():
            role_obj = self.repo_obj.content_objects.get()
            if getattr(role_obj, 'name') == metadata_role_name:
                self.log.debug('metadata role_name matches existing role name')
                return

        if not re.match(constants.NAME_REGEXP, metadata_role_name):
            raise exc.RepositoryError(
                'meta/main.yml role_name does not match NAME_REGEXP')