Skip to content

Commit

Permalink
Update 3.0 branch w/ recent core changes
Browse files Browse the repository at this point in the history
* Rename importer to remote
* Rename remote.feed_url to remote.url

re: #3491
https://pulp.plan.io/issues/3491
re: #3543
https://pulp.plan.io/issues/3543
  • Loading branch information
dralley committed Apr 8, 2018
1 parent 0e0be85 commit 3c10be7
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 87 deletions.
47 changes: 0 additions & 47 deletions AUTHORS

This file was deleted.

12 changes: 6 additions & 6 deletions README.rst
Expand Up @@ -75,23 +75,23 @@ Create a repository ``foo``
``$ export REPO_HREF=$(http :8000/api/v3/repositories/ | jq -r '.results[] | select(.name == "foo") | ._href')``

Create a new importer ``bar``
Create a new remote ``bar``
-----------------------------

``$ http POST http://localhost:8000/api/v3/importers/rpm/ name='bar' download_policy='immediate'
sync_mode='mirror' feed_url='https://repos.fedorapeople.org/pulp/pulp/fixtures/rpm-unsigned/'``
``$ http POST http://localhost:8000/api/v3/remotes/rpm/ name='bar' download_policy='immediate'
sync_mode='mirror' url='https://repos.fedorapeople.org/pulp/pulp/fixtures/rpm-unsigned/'``

.. code:: json
{
"_href": "http://localhost:8000/api/v3/importers/rpm/13ac2d63-7b7b-401d-b71b-9a5af05aab3c/",
"_href": "http://localhost:8000/api/v3/remotes/rpm/13ac2d63-7b7b-401d-b71b-9a5af05aab3c/",
...
}
``$ export IMPORTER_HREF=$(http :8000/api/v3/importers/rpm/ | jq -r '.results[] | select(.name ==
``$ export IMPORTER_HREF=$(http :8000/api/v3/remotes/rpm/ | jq -r '.results[] | select(.name ==
"bar") | ._href')``

Sync repository ``foo`` using importer ``bar``
Sync repository ``foo`` using remote ``bar``
----------------------------------------------

``$ http POST $IMPORTER_HREF'sync/' repository=$REPO_HREF``
Expand Down
6 changes: 3 additions & 3 deletions pulp_rpm/app/models.py
@@ -1,6 +1,6 @@
from logging import getLogger

from pulpcore.plugin.models import Content, Importer, Publisher
from pulpcore.plugin.models import Content, Remote, Publisher


log = getLogger(__name__)
Expand Down Expand Up @@ -30,9 +30,9 @@ class RpmContent(Content):
# )


class RpmImporter(Importer):
class RpmRemote(Remote):
"""
Importer for "rpm" content.
Remote for "rpm" content.
"""
TYPE = 'rpm'

Expand Down
16 changes: 8 additions & 8 deletions pulp_rpm/app/serializers.py
@@ -1,6 +1,6 @@
from pulpcore.plugin.serializers import ContentSerializer, ImporterSerializer, PublisherSerializer
from pulpcore.plugin.serializers import ContentSerializer, RemoteSerializer, PublisherSerializer

from .models import RpmContent, RpmImporter, RpmPublisher
from pulp_rpm.app.models import RpmContent, RpmRemote, RpmPublisher


class RpmContentSerializer(ContentSerializer):
Expand All @@ -27,23 +27,23 @@ class Meta:
model = RpmContent


class RpmImporterSerializer(ImporterSerializer):
class RpmRemoteSerializer(RemoteSerializer):
"""
A Serializer for RpmImporter.
A Serializer for RpmRemote.
Add any new fields if defined on RpmImporter.
Add any new fields if defined on RpmRemote.
Similar to the example above, in RpmContentSerializer.
Additional validators can be added to the parent validators list
For example::
class Meta:
validators = ImporterSerializer.Meta.validators + [myValidator1, myValidator2]
validators = RemoteSerializer.Meta.validators + [myValidator1, myValidator2]
"""

class Meta:
fields = ImporterSerializer.Meta.fields
model = RpmImporter
fields = RemoteSerializer.Meta.fields
model = RpmRemote


class RpmPublisherSerializer(PublisherSerializer):
Expand Down
20 changes: 10 additions & 10 deletions pulp_rpm/app/tasks/synchronizing.py
Expand Up @@ -7,37 +7,37 @@
from pulpcore.plugin.models import Repository # , RepositoryVersion
from pulpcore.plugin.tasking import UserFacingTask # , WorkingDirectory

from pulp_rpm.app.models import RpmImporter
from pulp_rpm.app.models import RpmRemote


log = logging.getLogger(__name__)


@shared_task(base=UserFacingTask)
def synchronize(importer_pk, repository_pk):
def synchronize(remote_pk, repository_pk):
"""
Create a new version of the repository that is synchronized with the remote
as specified by the importer.
as specified by the remote.
Args:
importer_pk (str): The importer PK.
remote_pk (str): The remote PK.
repository_pk (str): The repository PK.
Raises:
ValueError: When feed_url is empty.
ValueError: When remote has no url specified.
"""
importer = RpmImporter.objects.get(pk=importer_pk)
remote = RpmRemote.objects.get(pk=remote_pk)
repository = Repository.objects.get(pk=repository_pk)
# base_version = RepositoryVersion.latest(repository)

if not importer.feed_url:
raise ValueError(_('An importer must have a feed_url specified to synchronize.'))
if not remote.url:
raise ValueError(_('A remote must have a url specified to synchronize.'))

log.info(
_('Synchronizing: repository=%(r)s importer=%(p)s'),
_('Synchronizing: repository=%(r)s remote=%(p)s'),
{
'r': repository.name,
'p': importer.name
'p': remote.name
})

# implement sync here
26 changes: 13 additions & 13 deletions pulp_rpm/app/viewsets.py
Expand Up @@ -7,13 +7,13 @@

from pulpcore.plugin.viewsets import (
ContentViewSet,
ImporterViewSet,
RemoteViewSet,
OperationPostponedResponse,
PublisherViewSet)

from . import tasks
from .models import RpmContent, RpmImporter, RpmPublisher
from .serializers import RpmContentSerializer, RpmImporterSerializer, RpmPublisherSerializer
from .models import RpmContent, RpmRemote, RpmPublisher
from .serializers import RpmContentSerializer, RpmRemoteSerializer, RpmPublisherSerializer


class RpmContentViewSet(ContentViewSet):
Expand All @@ -31,28 +31,28 @@ class RpmContentViewSet(ContentViewSet):
serializer_class = RpmContentSerializer


class RpmImporterViewSet(ImporterViewSet):
class RpmRemoteViewSet(RemoteViewSet):
"""
A ViewSet for RpmImporter.
A ViewSet for RpmRemote.
"""
endpoint_name = 'rpm'
queryset = RpmImporter.objects.all()
serializer_class = RpmImporterSerializer
queryset = RpmRemote.objects.all()
serializer_class = RpmRemoteSerializer

@detail_route(methods=('post',))
def sync(self, request, pk):
importer = self.get_object()
def synchronize(self, request, pk):
remote = self.get_object()
try:
repository_uri = request.data['repository']
except KeyError:
raise serializers.ValidationError(detail=_('Repository URI must be specified.'))
repository = self.get_resource(repository_uri, Repository)
if not importer.feed_url:
raise serializers.ValidationError(detail=_('A feed_url must be specified.'))
if not remote.url:
raise serializers.ValidationError(detail=_('A url must be specified.'))
result = tasks.synchronize.apply_async_with_reservation(
[repository, importer],
[repository, remote],
kwargs={
'importer_pk': importer.pk,
'remote_pk': remote.pk,
'repository_pk': repository.pk
}
)
Expand Down

0 comments on commit 3c10be7

Please sign in to comment.