I filed the issue[0] that I mentioned in the last email. Please note that we plan on releasing a new beta of the RPM plugin on Monday. This beta is going to contain a new upload API that will allow the user to just upload a file without providing any metadata. The server extracts the metadata from the uploaded package automatically. The docs[1] for this new API are incomplete right now, but I just filed an issue[2] for us to fix that. We will include the improved docs with the next beta on Monday.
[0] https://pulp.plan.io/issues/4835 [1] https://pulp-rpm.readthedocs.io/en/latest/restapi.html#operation/rpm_upload_create [2] https://pulp.plan.io/issues/4836 On Thu, May 16, 2019 at 12:32 PM Dennis Kliban <[email protected]> wrote: > > On Thu, May 16, 2019 at 10:47 AM Juan Cabrera <[email protected]> > wrote: > >> Hi again, >> >> I made a script for the work flow: create repo - create remote - >> synchronize - create publisher - create publication - create distribution, >> that works well. >> >> Now I try using a repo with local rpm. I can not create a publication I >> get duplicate key value violates unique constraint >> >> I use this versions: >> >> pulp_source_dir: "git+https://github.com/pulp/[email protected]" >> <git+https://github.com/pulp/[email protected]> >> pulp_plugin_source_dir: >> "git+https://github.com/pulp/[email protected]" >> <git+https://github.com/pulp/[email protected]> >> pulp_install_plugins: >> pulp-rpm: >> app_label: "rpm" >> source_dir: "git+https://github.com/pulp/[email protected]" >> <git+https://github.com/pulp/[email protected]> >> >> This is what I do: >> >> sudo yum install yum-utils >> PORT=:24817 >> # get somme rpm >> yumdownloader --resolve --destdir=mypackages/ httpd >> # create a repo >> export REPO_HREF=$(http POST $PORT/pulp/api/v3/repositories/ >> name=local_repo | jq -r '._href') >> >> # add rpm packages >> for p in `ls mypackages`; do >> export ARTIFACT_REF=$(http --form POST $PORT/pulp/api/v3/artifacts/ >> file@./mypackages/$p | jq -r '._href') >> export CONTENT_HREF=$(http POST $PORT/pulp/api/v3/content/rpm/packages/ >> _artifact="$ARTIFACT_REF" filename="$p" | jq -r '._href') >> > You need to specify 'relative_path' when creating an rpm package content > unit. This should be the file name. Our REST API docs[0] don't specify that > this is requiered, but it is. I'll file an issue. > > [0] > https://pulp-rpm.readthedocs.io/en/latest/restapi.html#operation/content_rpm_packages_create > > >> http POST $PORT${REPO_HREF}versions/ >> add_content_units:="[\"$CONTENT_HREF\"]" >> done >> >> # Create publisher >> export PUBLISHER_HREF=$(http POST $PORT/pulp/api/v3/publishers/rpm/rpm/ >> name=ptci | jq -r '._href') >> # Create publication >> export TASK=$(http POST $PORT${PUBLISHER_HREF}publish/ >> repository=$REPO_HREF | jq -r '.task') >> >> http $PORT$TASK >> >> HTTP/1.1 200 OK >> Allow: GET, DELETE, HEAD, OPTIONS >> Connection: close >> Content-Length: 3416 >> Content-Type: application/json >> Date: Thu, 16 May 2019 14:30:27 GMT >> Server: gunicorn/19.9.0 >> Vary: Accept, Cookie >> X-Frame-Options: SAMEORIGIN >> >> { >> "_created": "2019-05-16T14:15:55.721616Z", >> "_href": "/pulp/api/v3/tasks/799ba82c-b289-4054-aca3-2c35eab208ff/", >> "created_resources": [], >> "error": { >> "code": null, >> "description": "*duplicate key value violates unique constraint* >> \"core_publishedartifact_publication_id_relative__97f785f4_uniq\"\nDETAIL: >> Key (publication_id, relative_path)=(f76de19c-22a6-485f-93bd-3e3578de9405, >> ) already exists.\n", >> "traceback": " File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py\", line >> 799, in perform_job\n rv = job.perform()\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py\", line 600, >> in perform\n self._result = self._execute()\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py\", line 606, >> in _execute\n return self.func(*self.args, **self.kwargs)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/pulp_rpm/app/tasks/publishing.py\", >> line 104, in publish\n populate(publication)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/pulp_rpm/app/tasks/publishing.py\", >> line 217, in populate\n published_artifact.save()\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/base.py\", >> line 741, in save\n force_update=force_update, >> update_fields=update_fields)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/base.py\", >> line 779, in save_base\n force_update, using, update_fields,\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/base.py\", >> line 870, in _save_table\n result = self._do_insert(cls._base_manager, >> using, fields, update_pk, raw)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/base.py\", >> line 908, in _do_insert\n using=using, raw=raw)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/manager.py\", >> line 82, in manager_method\n return getattr(self.get_queryset(), >> name)(*args, **kwargs)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/query.py\", >> line 1186, in _insert\n return >> query.get_compiler(using=using).execute_sql(return_id)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/sql/compiler.py\", >> line 1335, in execute_sql\n cursor.execute(sql, params)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/backends/utils.py\", >> line 67, in execute\n return self._execute_with_wrappers(sql, params, >> many=False, executor=self._execute)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/backends/utils.py\", >> line 76, in _execute_with_wrappers\n return executor(sql, params, many, >> context)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/backends/utils.py\", >> line 84, in _execute\n return self.cursor.execute(sql, params)\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/utils.py\", >> line 89, in __exit__\n raise dj_exc_value.with_traceback(traceback) from >> exc_value\n File >> \"/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/backends/utils.py\", >> line 84, in _execute\n return self.cursor.execute(sql, params)\n" >> }, >> "finished_at": "2019-05-16T14:15:55.807566Z", >> "name": "pulp_rpm.app.tasks.publishing.publish", >> "non_fatal_errors": [], >> "parent": null, >> "progress_reports": [], >> "spawned_tasks": [], >> "started_at": "2019-05-16T14:15:55.773242Z", >> "state": "failed", >> "worker": "/pulp/api/v3/workers/a9f1e265-fd17-467b-afd5-58af626dab1d/" >> } >> >> I do not know were this duplicate key comes. I use a clean Vagran VM. And >> there is no publications >> >> >> http $PORT/pulp/api/v3/publications/ >> >> HTTP/1.1 200 OK >> Allow: GET, HEAD, OPTIONS >> Connection: close >> Content-Length: 52 >> Content-Type: application/json >> Date: Thu, 16 May 2019 14:42:40 GMT >> Server: gunicorn/19.9.0 >> Vary: Accept, Cookie >> X-Frame-Options: SAMEORIGIN >> >> { >> "count": 0, >> "next": null, >> "previous": null, >> "results": [] >> } >> >> I did something wrong ? >> >> Juan >> >> -- >> >> Juan CABRERA >> Correspondant informatique >> Département de Mathématiques >> >> T. 081724919 >> [email protected] >> http://staff.unamur.be/jbcabrer >> >> Université de Namur ASBL >> Rue de Bruxelles 61 - 5000 Namur >> Belgique >> >> Let’s respect the environment together. >> Only print this message if necessary! >> _______________________________________________ >> Pulp-list mailing list >> [email protected] >> https://www.redhat.com/mailman/listinfo/pulp-list > >
_______________________________________________ Pulp-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/pulp-list
