def sync(self, request, pk): """ Dispatches a sync task. """ repository = self.get_object() serializer = RepositorySyncURLSerializer( data=request.data, context={"request": request, "repository_pk": repository.pk} ) serializer.is_valid(raise_exception=True) remote = serializer.validated_data.get("remote") remote.cast() if isinstance(remote, RoleRemote): sync_func = role_sync elif isinstance(remote, CollectionRemote): sync_func = collection_sync mirror = serializer.validated_data.get("mirror", False) result = enqueue_with_reservation( sync_func, [repository, remote], kwargs={"remote_pk": remote.pk, "repository_pk": repository.pk, "mirror": mirror}, ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Synchronizes a repository. The ``repository`` field has to be provided. """ serializer = RepositorySyncURLSerializer(data=request.data, context={ "request": request, "repository_pk": pk }) serializer.is_valid(raise_exception=True) repository = self.get_object() remote = serializer.validated_data.get("remote", repository.remote) mirror = serializer.validated_data.get("mirror", False) result = dispatch( tasks.synchronize, [repository, remote], kwargs={ "remote_pk": str(remote.pk), "repository_pk": str(repository.pk), "mirror": mirror, }, ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ <!-- User-facing documentation, rendered as html--> Trigger an asynchronous task to sync python content. The sync task will retrieve Python content from the specified `Remote` and " update the specified `Respository`, creating a new `RepositoryVersion`. """ repository = self.get_object() serializer = RepositorySyncURLSerializer( data=request.data, context={'request': request} ) serializer.is_valid(raise_exception=True) remote = serializer.validated_data.get('remote') mirror = serializer.validated_data.get('mirror') result = enqueue_with_reservation( tasks.sync, [repository, remote], kwargs={ 'remote_pk': remote.pk, 'repository_pk': repository.pk, 'mirror': mirror } ) return core_viewsets.OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Dispatches a sync task. """ repository = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={ "request": request, "repository_pk": pk }) # Validate synchronously to return 400 errors. serializer.is_valid(raise_exception=True) remote = serializer.validated_data.get("remote", repository.remote) mirror = serializer.validated_data.get("mirror", True) result = dispatch( func=tasks.synchronize, exclusive_resources=[repository], shared_resources=[remote], kwargs={ "remote_pk": remote.pk, "repository_pk": repository.pk, "mirror": mirror, }, ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Synchronizes a repository. The ``repository`` field has to be provided. """ repository = self.get_object() serializer = RepositorySyncURLSerializer( data=request.data, context={'request': request} ) # Validate synchronously to return 400 errors. serializer.is_valid(raise_exception=True) remote = serializer.validated_data.get('remote') mirror = serializer.validated_data.get('mirror') result = enqueue_with_reservation( tasks.synchronize, [repository, remote], kwargs={ 'remote_pk': remote.pk, 'repository_pk': repository.pk, 'mirror': mirror } ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ <!-- User-facing documentation, rendered as html--> Trigger an asynchronous task to sync python content. The sync task will retrieve Python content from the specified `Remote` and " update the specified `Respository`, creating a new `RepositoryVersion`. """ remote = self.get_object() serializer = RepositorySyncURLSerializer( data=request.data, context={'request': request} ) serializer.is_valid(raise_exception=True) repository = serializer.validated_data.get('repository') mirror = serializer.validated_data.get('mirror') result = enqueue_with_reservation( tasks.sync, [repository, remote], kwargs={ 'remote_pk': remote.pk, 'repository_pk': repository.pk, 'mirror': mirror } ) return platform.OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Synchronizes a repository. The ``repository`` field has to be provided. """ remote = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={"request": request}) serializer.is_valid(raise_exception=True) repository = serializer.validated_data.get("repository") mirror = serializer.validated_data["mirror"] result = enqueue_with_reservation( tasks.synchronize, [repository, remote], kwargs={"remote_pk": remote.pk, "repository_pk": repository.pk, "mirror": mirror}, ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Dispatches a sync task. """ remote = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={'request': request}) serializer.is_valid(raise_exception=True) repository = serializer.validated_data.get('repository') result = enqueue_with_reservation(tasks.synchronize, [repository, remote], kwargs={ 'remote_pk': remote.pk, 'repository_pk': repository.pk }) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Dispatches a sync task. """ repository = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={"request": request}) # Validate synchronously to return 400 errors. serializer.is_valid(raise_exception=True) remote = serializer.validated_data.get("remote") mirror = serializer.validated_data.get("mirror", True) result = enqueue_with_reservation( tasks.synchronize, [repository, remote], kwargs={"remote_pk": remote.pk, "repository_pk": repository.pk, "mirror": mirror}, ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Dispatches a Collection sync task. """ collection_remote = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={"request": request}) serializer.is_valid(raise_exception=True) repository = serializer.validated_data.get("repository") mirror = serializer.validated_data.get("mirror", False) kwargs = { "remote_pk": collection_remote.pk, "repository_pk": repository.pk, "mirror": mirror, } result = enqueue_with_reservation( collection_sync, [repository, collection_remote], kwargs=kwargs ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Synchronizes a repository. The ``repository`` field has to be provided. """ remote = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={'request': request}) # Validate synchronously to return 400 errors. serializer.is_valid(raise_exception=True) repository = serializer.validated_data.get('repository') result = enqueue_with_reservation( tasks.synchronize, [repository, remote], kwargs={ 'remote_pk': remote.pk, 'repository_pk': repository.pk } ) return OperationPostponedResponse(result, request)
def sync(self, request, pk): """ Dispatches a sync task. """ repository = self.get_object() serializer = RepositorySyncURLSerializer(data=request.data, context={"request": request}) serializer.is_valid(raise_exception=True) remote = serializer.validated_data.get("remote") result = dispatch( tasks.synchronize, kwargs={ "remote_pk": remote.pk, "repository_pk": repository.pk }, exclusive_resources=[repository], shared_resources=[remote], ) return core.OperationPostponedResponse(result, request)
def synchronize(self, request, pk): """ Dispatches a sync task. """ remote = self.get_object() serializer = RepositorySyncURLSerializer( data=request.data, context={'request': request} ) serializer.is_valid(raise_exception=True) repository = serializer.validated_data.get('repository') result = enqueue_with_reservation( tasks.synchronize, [repository, remote], kwargs={ 'remote_pk': remote.pk, 'repository_pk': repository.pk } ) return OperationPostponedResponse(result, request)