File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/fileserver/__pycache__/svnfs.cpython-310.pyc
Back
o ;j2d � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlmZ ddl Z ddlZ ddlZ ddl Z ddlZ ddlZ ddlZ ddlZ ddlZ ddlmZ ddlmZ ddlmZ dZdZzddlZd Ze�� ZW n eys Y nw e�e �Z!d Z"dZ#dd � Z$dd� Z%dd� Z&dd� Z'dd� Z(dd� Z)d3dd�Z*d3dd�Z+dd� Z,dd� Z-d4d d!�Z.d"d#� Z/d5d%d&�Z0d'd(� Z1d)d*� Z2d+d,� Z3d-d.� Z4d/d0� Z5d1d2� Z6dS )6a Subversion Fileserver Backend After enabling this backend, branches and tags in a remote subversion repository are exposed to salt as different environments. To enable this backend, add ``svnfs`` to the :conf_master:`fileserver_backend` option in the Master config file. .. code-block:: yaml fileserver_backend: - svnfs .. note:: ``svn`` also works here. Prior to the 2018.3.0 release, *only* ``svn`` would work. This backend assumes a standard svn layout with directories for ``branches``, ``tags``, and ``trunk``, at the repository root. :depends: - subversion - pysvn .. versionchanged:: 2014.7.0 The paths to the trunk, branches, and tags have been made configurable, via the config options :conf_master:`svnfs_trunk`, :conf_master:`svnfs_branches`, and :conf_master:`svnfs_tags`. :conf_master:`svnfs_mountpoint` was also added. Finally, support for per-remote configuration parameters was added. See the :conf_master:`documentation <svnfs_remotes>` for more information. � N)�datetime)�DEFAULT_HASH_TYPE��FileserverConfigError)�tagify)� mountpoint�root�trunk�branches�tagsFT�svnfs)�svnc C s� t td vrdS tst�d� dS g } dD ]}tj�t| �r*| �d� |t| �� q| r>| D ]}t�|� q/t�d� dS t S )z. Only load if subversion is available Zfileserver_backendFzfSubversion fileserver backend is enabled in configuration but could not be loaded, is pysvn installed?)Zsvnfs_trunkZsvnfs_branchesZ svnfs_tagszJMaster configuration parameter '{}' (value: {}) cannot be an absolute pathz-Subversion fileserver backed will be disabled) �__virtualname__�__opts__�HAS_SVN�log�error�os�path�isabs�append�format)�errors�paramr � r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/fileserver/svnfs.py�__virtual__M s* ��� r c C sp z t t�| d ��� �}W n% tjjttt fy2 } zt �d| d | d |� W Y d}~dS d}~ww |d jS )z% Returns revision ID of repo �repozCError retrieving revision ID for svnfs remote %s (cachedir: %s): %s�urlN�revision) �dict�CLIENT�info�items�pysvn�_pysvn�ClientError� TypeError�KeyError�AttributeErrorr r �number)r Z repo_info�excr r r �_revh s ��� r, c C s t d��)zB Fatal fileserver configuration issue, raise an exception z%Failed to load svn fileserver backendr r r r r � _failhardz s r- c C s t j�td d�} d}g }i }tD ] }ttd|� � �||<