Source code for pubtools.pulplib._impl.model.distributor

import datetime

from .common import PulpObject, Deletable, DetachedException
from .attr import pulp_attrib
from ..schema import load_schema
from .. import compat_attr as attr


[docs]@attr.s(kw_only=True, frozen=True) class Distributor(PulpObject, Deletable): """Represents a Pulp distributor.""" _SCHEMA = load_schema("repository", "distributor") id = pulp_attrib(type=str, pulp_field="id") """ID of this distributor (str). This is an arbitrary string, though often matches exactly the `type_id`. """ type_id = pulp_attrib(type=str, pulp_field="distributor_type_id") """Type ID of this distributor (str). The type ID of a distributor determines which content may be handled and which steps may be performed by the distributor. For example, distributors of type `yum_distributor` may be used to create yum repositories. """ repo_id = pulp_attrib(type=str, default=None, pulp_field="repo_id") """The :class:`pubtools.pulplib.Repository` ID this distributor is attached to.""" relative_url = pulp_attrib(type=str, default=None, pulp_field="config.relative_url") """Default distribution URL for the repository which the distributor is attached to, relative to the Pulp content root.""" last_publish = pulp_attrib( default=None, type=datetime.datetime, pulp_field="last_publish" ) """The :class:`~datetime.datetime` at which this distributor was last published, if known.""" is_rsync = attr.ib( default=attr.Factory( lambda self: self.type_id in ( "rpm_rsync_distributor", "iso_rsync_distributor", "docker_rsync_distributor", ), takes_self=True, ) ) """True for distributors in the 'rsync distributor' family (e.g. ``rpm_rsync_distributor``). """
[docs] def delete(self): """Delete this distributor from Pulp. Returns: Future[list[:class:`~pubtools.pulplib.Task`]] A future which is resolved when the distributor deletion has completed. The future contains a list of zero or more tasks triggered and awaited during the delete operation. This object also becomes detached from the client; no further updates are possible. Raises: DetachedException If this instance is not attached to a Pulp client or repository. .. versionadded:: 2.3.0 """ if not self.repo_id: raise DetachedException() return self._delete("repositories/%s/distributors" % self.repo_id, self.id)