nexuscli.api.repository package¶
Submodules¶
nexuscli.api.repository.collection module¶
-
class
nexuscli.api.repository.collection.
RepositoryCollection
(client=None)¶ Bases:
object
A class to manage Nexus 3 repositories.
Parameters: client (nexuscli.nexus_client.NexusClient) – the client instance that will be used to perform operations against the Nexus 3 service. You must provide this at instantiation or set it before calling any methods that require connectivity to Nexus. -
create
(repository)¶ Creates a Nexus repository with the given format and type.
Parameters: repository (type(repository)Repository) – the instance containing the settings for the repository to be created. Raises: NexusClientCreateRepositoryError – error creating repository.
-
get_by_name
(name)¶ Get a Nexus 3 repository by its name.
Parameters: name (str) – name of the repository wanted Return type: nexuscli.api.repository.model.Repository Raises: exception.NexusClientInvalidRepository – when a repository with the given name isn’t found.
-
get_raw_by_name
(name)¶ Return the raw dict for the repository called
name
. Remember torefresh()
to get the latest from the server.Parameters: name (str) – name of wanted repository Returns: the repository, if found. Return type: dict Raises: IndexError – if no repository named name
is found.
-
raw_list
()¶ A raw representation of the Nexus repositories.
Returns: for the format, see List Repositories. Return type: dict
-
refresh
()¶ Refresh local list of repositories with latest from service. A raw representation of repositories can be fetched using
raw_list()
.
-
-
nexuscli.api.repository.collection.
get_repository_class
(raw_repo)¶ Parameters: raw_repo – Returns: Return type: type
-
nexuscli.api.repository.collection.
raw_repo_to_args_kwargs
(raw_repo)¶
-
nexuscli.api.repository.collection.
raw_repo_to_class_name
(raw_repo)¶
-
nexuscli.api.repository.collection.
raw_repo_to_recipe
(raw_repo)¶
nexuscli.api.repository.model module¶
-
class
nexuscli.api.repository.model.
HostedRepository
(name, write_policy='ALLOW', **kwargs)¶ Bases:
nexuscli.api.repository.model.Repository
A hosted Nexus repository.
Parameters: - name (str) – name of the repository.
- write_policy (str) – one of
WRITE_POLICIES
. See Nexus documentation for details. - kwargs – see
Repository
-
TYPE
= 'hosted'¶
-
WRITE_POLICIES
= ['ALLOW', 'ALLOW_ONCE', 'DENY']¶ Nexus 3 repository write policies supported by this class.
-
configuration
¶ As per
Repository.configuration
but specific to this repository recipe and type.Return type: str
-
upload_directory
(src_dir, dst_dir, recurse=True, flatten=False)¶ Uploads all files in a directory to the specified destination directory in this repository, honouring options flatten and recurse.
Parameters: - src_dir – path to local directory to be uploaded
- dst_dir – destination directory in dst_repo
- recurse (bool) – when True, upload directory recursively.
- flatten – when True, the source directory tree isn’t replicated on the destination.
Returns: number of files uploaded
Return type:
-
upload_file
(src_file, dst_dir, dst_file=None)¶ Uploads a singe file to the directory and file name specified.
Parameters: - src_file – path to the local file to be uploaded.
- dst_dir – directory under dst_repo to place file in.
- dst_file – destination file name. If not given, the basename of
src_file
name is used.
-
class
nexuscli.api.repository.model.
MavenHostedRepository
(name, write_policy='ALLOW', **kwargs)¶ Bases:
nexuscli.api.repository.model.HostedRepository
,nexuscli.api.repository.model.MavenRepository
A Maven hosted Nexus repository.
See
HostedRepository
andMavenRepository
-
class
nexuscli.api.repository.model.
MavenProxyRepository
(name, layout_policy='PERMISSIVE', version_policy='RELEASE', **kwargs)¶ Bases:
nexuscli.api.repository.model.MavenRepository
,nexuscli.api.repository.model.ProxyRepository
A Maven proxy Nexus repository.
See
MavenRepository
andProxyRepository
-
class
nexuscli.api.repository.model.
MavenRepository
(name, layout_policy='PERMISSIVE', version_policy='RELEASE', **kwargs)¶ Bases:
nexuscli.api.repository.model.Repository
A base Maven Nexus repository.
Parameters: - name (str) – name of the repository.
- layout_policy – one of
LAYOUT_POLICIES
. See Nexus documentation for details. - version_policy – one of
VERSION_POLICIES
. See Nexus documentation for details. - kwargs – see
Repository
-
LAYOUT_POLICIES
= ('PERMISSIVE', 'STRICT')¶ Maven layout policies
-
RECIPES
= ('maven',)¶
-
VERSION_POLICIES
= ('RELEASE', 'SNAPSHOT', 'MIXED')¶ Maven version policies
-
configuration
¶ As per
Repository.configuration
but specific to this repository recipe and type.Return type: str
-
class
nexuscli.api.repository.model.
ProxyRepository
(name, remote_url=None, auto_block=True, content_max_age=1440, metadata_max_age=1440, negative_cache_enabled=True, negative_cache_ttl=1440, **kwargs)¶ Bases:
nexuscli.api.repository.model.Repository
A proxy Nexus repository.
Parameters: - name (str) – name of the repository.
- remote_url (str) – The URL of the repository being proxied, including the protocol scheme.
- auto_block (bool) – Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.
- content_max_age (int) – How long (in minutes) to cache artifacts before rechecking the remote repository. Release repositories should use -1.
- metadata_max_age (int) – How long (in minutes) to cache metadata before rechecking the remote repository.
- negative_cache_enabled (bool) – Cache responses for content not present in the proxied repository
- negative_cache_ttl (int) – How long to cache the fact that a file was not found in the repository (in minutes)
- kwargs – see
Repository
-
TYPE
= 'proxy'¶
-
configuration
¶ As per
Repository.configuration
but specific to this repository recipe and type.Return type: str
-
class
nexuscli.api.repository.model.
Repository
(name, nexus_client=None, recipe='raw', blob_store_name='default', strict_content_type_validation=False, cleanup_policy=None)¶ Bases:
object
A base Nexus repository.
Nexus 3 repository recipes (formats) supported by this class:
Parameters: - name (str) – name of the repository.
- nexus_client (nexuscli.nexus_client.NexusClient) – the
NexusClient
instance that will be used to perform operations against the Nexus 3 service. You must provide this at instantiation or set it before calling any methods that require connectivity to Nexus. - recipe (str) – format (recipe) of the new repository. Must be one of
RECIPES
. See Nexus documentation for details. - blob_store_name (str) – name of an existing blob store; ‘default’ should work on most installations.
- strict_content_type_validation (bool) – Whether to validate file extension against its content type.
- cleanup_policy (str) – name of an existing repository clean-up policy.
-
RECIPES
= ('bower', 'npm', 'nuget', 'pypi', 'raw', 'rubygems')¶
-
TYPE
= None¶
-
configuration
¶ Repository configuration represented as a python dict. The dict returned by this property can be converted to JSON for use with the
nexus3-cli-repository-create
groovy script created by thecreate()
method.Example structure and attributes common to all repositories:
>>> common_configuration = { >>> 'name': 'my-repository', >>> 'online': True, >>> 'recipeName': 'raw', >>> '_state': 'present', >>> 'attributes': { >>> 'storage': { >>> 'blobStoreName': 'default', >>> }, >>> 'cleanup': { >>> 'policyName': None, >>> } >>> } >>> }
Depending on the repository type and format (recipe), other attributes will be present.
Returns: repository configuration Return type: dict
-
recipe_name
¶ The Nexus 3 name for this repository’s recipe (format). This is almost always the same as
name
withmaven
being the notable exception.
-
class
nexuscli.api.repository.model.
YumHostedRepository
(name, write_policy='ALLOW', **kwargs)¶ Bases:
nexuscli.api.repository.model.HostedRepository
,nexuscli.api.repository.model.YumRepository
A Yum hosted Nexus repository.
See
HostedRepository
andYumRepository
-
class
nexuscli.api.repository.model.
YumProxyRepository
(name, remote_url=None, auto_block=True, content_max_age=1440, metadata_max_age=1440, negative_cache_enabled=True, negative_cache_ttl=1440, **kwargs)¶ Bases:
nexuscli.api.repository.model.ProxyRepository
,nexuscli.api.repository.model.YumRepository
A Yum proxy Nexus repository.
See
ProxyRepository
andYumRepository
-
class
nexuscli.api.repository.model.
YumRepository
(name, depth=1, **kwargs)¶ Bases:
nexuscli.api.repository.model.Repository
A Yum base Nexus repository.
Parameters: - name (str) – name of the repository.
- depth (int) – The Yum
repodata
depth. Usually 1. - kwargs – see
Repository
-
RECIPES
= ('yum',)¶
-
configuration
¶ As per
Repository.configuration
but specific to this repository recipe and type.Return type: str
nexuscli.api.repository.upload module¶
Methods to implement upload for specific repository formats (recipes)
-
nexuscli.api.repository.upload.
upload_file_raw
(repository, src_file, dst_dir, dst_file)¶ Upload a single file to a raw repository.
Parameters: - repository (nexuscli.api.repository.model.Repository) – repository instance used to access Nexus 3 service.
- src_file – path to the local file to be uploaded.
- dst_dir – directory under dst_repo to place file in. When None, the file is placed under the root of the raw repository
- dst_file – destination file name.
Raises: - exception.NexusClientInvalidRepositoryPath – invalid repository path.
- exception.NexusClientAPIError – unknown response from Nexus API.
-
nexuscli.api.repository.upload.
upload_file_yum
(repository, src_file, dst_dir, dst_file)¶ Upload a single file to a yum repository.
Parameters: - repository (nexuscli.api.repository.model.Repository) – repository instance used to access Nexus 3 service.
- src_file – path to the local file to be uploaded.
- dst_dir – directory under dst_repo to place file in.
- dst_file – destination file name.
Raises: exception.NexusClientAPIError – unknown response from Nexus API.
nexuscli.api.repository.util module¶
-
nexuscli.api.repository.util.
get_files
(src_dir, recurse=True)¶ Walks the given directory and collects files to be uploaded. If recurse option is False, only the files on the root of the directory will be returned.
Parameters: - src_dir – location of files
- recurse – If false, only the files on the root of src_dir are returned
Returns: file set to be used with upload_directory
Return type:
-
nexuscli.api.repository.util.
get_upload_subdirectory
(dst_dir, file_path, flatten=False)¶ Find the destination subdirectory based on given parameters. This is mostly so the flatten option is honoured.
Parameters: - dst_dir – destination directory
- file_path – file path, using REMOTE_PATH_SEPARATOR as the directory separator.
- flatten (bool) – when True, sub_directory will be flattened (ie: file_path structure will not be present in the destination directory)
Returns: the appropriate sub directory in the destination directory.
Return type:
nexuscli.api.repository.validations module¶
-
nexuscli.api.repository.validations.
ensure_known
(target, value, known)¶ Validate whether the a target argument is known and supported. The
target
is only used to provide a friendlier message to the user. The givenvalue
is checked againstknown
andsupported
.Parameters: Raises: ValueError – if given value is not in
known
.