<div dir="ltr"><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 16, 2019 at 10:47 AM Juan Cabrera <<a href="mailto:juan.cabrera@unamur.be">juan.cabrera@unamur.be</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  

    
  
  <div bgcolor="#FFFFFF">
    <p>Hi again,</p>
    <p>I made a script for the work flow: create repo - create remote -
      synchronize - create publisher - create publication - create
      distribution,  that works well.</p>
    <p>Now I try using a repo with local rpm. I can not create a
      publication I get <tt>duplicate key value violates unique
        constraint </tt><br>
    </p>
    <p>I use this versions:</p>
    <p>pulp_source_dir:
      <a class="gmail-m_-5700604426949457445moz-txt-link-rfc2396E" href="mailto:git+https://github.com/pulp/pulpcore.git@3.0.0rc1" target="_blank">"git+https://github.com/pulp/pulpcore.git@3.0.0rc1"</a><br>
      pulp_plugin_source_dir:
      <a class="gmail-m_-5700604426949457445moz-txt-link-rfc2396E" href="mailto:git+https://github.com/pulp/pulpcore-plugin.git@0.1.0rc1" target="_blank">"git+https://github.com/pulp/pulpcore-plugin.git@0.1.0rc1"</a><br>
      pulp_install_plugins:<br>
        pulp-rpm:<br>
          app_label: "rpm"<br>
          source_dir: <a class="gmail-m_-5700604426949457445moz-txt-link-rfc2396E" href="mailto:git+https://github.com/pulp/pulp_rpm.git@3.0.0b2" target="_blank">"git+https://github.com/pulp/pulp_rpm.git@3.0.0b2"</a><br>
    </p>
    <p>This is what I do:</p>
    <p><tt>sudo yum install yum-utils<br>
        PORT=:24817<br>
        # get somme rpm <br>
        yumdownloader --resolve --destdir=mypackages/ httpd<br>
        # create a repo<br>
        export REPO_HREF=$(http POST $PORT/pulp/api/v3/repositories/
        name=local_repo | jq -r '._href')<br>
        <br>
        # add rpm packages<br>
        for p in `ls mypackages`; do<br>
          export ARTIFACT_REF=$(http --form POST
        $PORT/pulp/api/v3/artifacts/ <a class="gmail-m_-5700604426949457445moz-txt-link-abbreviated" href="mailto:file@./mypackages/$p" target="_blank">file@./mypackages/$p</a> | jq -r
        '._href')<br>
          export CONTENT_HREF=$(http POST
        $PORT/pulp/api/v3/content/rpm/packages/
        _artifact="$ARTIFACT_REF" filename="$p" | jq -r '._href')<br></tt></p></div></blockquote><div>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. <br></div><div><br></div><div>[0] <a href="https://pulp-rpm.readthedocs.io/en/latest/restapi.html#operation/content_rpm_packages_create">https://pulp-rpm.readthedocs.io/en/latest/restapi.html#operation/content_rpm_packages_create</a><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF"><p><tt>
          http POST $PORT${REPO_HREF}versions/
        add_content_units:="[\"$CONTENT_HREF\"]"<br>
        done<br>
        <br>
        # Create publisher<br>
        export PUBLISHER_HREF=$(http POST
        $PORT/pulp/api/v3/publishers/rpm/rpm/ name=ptci | jq -r
        '._href')<br>
        # Create publication<br>
        export TASK=$(http POST $PORT${PUBLISHER_HREF}publish/
        repository=$REPO_HREF | jq -r '.task')<br>
        <br>
        http $PORT$TASK<br>
      </tt></p>
    <p><tt>HTTP/1.1 200 OK</tt><tt><br>
      </tt><tt>Allow: GET, DELETE, HEAD, OPTIONS</tt><tt><br>
      </tt><tt>Connection: close</tt><tt><br>
      </tt><tt>Content-Length: 3416</tt><tt><br>
      </tt><tt>Content-Type: application/json</tt><tt><br>
      </tt><tt>Date: Thu, 16 May 2019 14:30:27 GMT</tt><tt><br>
      </tt><tt>Server: gunicorn/19.9.0</tt><tt><br>
      </tt><tt>Vary: Accept, Cookie</tt><tt><br>
      </tt><tt>X-Frame-Options: SAMEORIGIN</tt><tt><br>
      </tt><tt><br>
      </tt><tt>{</tt><tt><br>
      </tt><tt>    "_created": "2019-05-16T14:15:55.721616Z", </tt><tt><br>
      </tt><tt>    "_href":
        "/pulp/api/v3/tasks/799ba82c-b289-4054-aca3-2c35eab208ff/", </tt><tt><br>
      </tt><tt>    "created_resources": [], </tt><tt><br>
      </tt><tt>    "error": {</tt><tt><br>
      </tt><tt>        "code": null, </tt><tt><br>
      </tt><tt>        "description": "<b>duplicate key value violates
          unique constraint</b>
\"core_publishedartifact_publication_id_relative__97f785f4_uniq\"\nDETAIL: 
        Key (publication_id,
        relative_path)=(f76de19c-22a6-485f-93bd-3e3578de9405, ) already
        exists.\n", </tt><tt><br>
      </tt><tt>        "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"</tt><tt><br>
      </tt><tt>    }, </tt><tt><br>
      </tt><tt>    "finished_at": "2019-05-16T14:15:55.807566Z", </tt><tt><br>
      </tt><tt>    "name": "pulp_rpm.app.tasks.publishing.publish", </tt><tt><br>
      </tt><tt>    "non_fatal_errors": [], </tt><tt><br>
      </tt><tt>    "parent": null, </tt><tt><br>
      </tt><tt>    "progress_reports": [], </tt><tt><br>
      </tt><tt>    "spawned_tasks": [], </tt><tt><br>
      </tt><tt>    "started_at": "2019-05-16T14:15:55.773242Z", </tt><tt><br>
      </tt><tt>    "state": "failed", </tt><tt><br>
      </tt><tt>    "worker":
        "/pulp/api/v3/workers/a9f1e265-fd17-467b-afd5-58af626dab1d/"</tt><tt><br>
      </tt><tt>}</tt><br>
      <br>
    </p>
    <div class="gmail-m_-5700604426949457445moz-signature">I do not know were this duplicate key
      comes. I use a clean Vagran VM. And there is no publications</div>
    <div class="gmail-m_-5700604426949457445moz-signature"><br>
    </div>
    <div class="gmail-m_-5700604426949457445moz-signature"><br>
    </div>
    <div class="gmail-m_-5700604426949457445moz-signature"><tt>http $PORT/pulp/api/v3/publications/</tt></div>
    <div class="gmail-m_-5700604426949457445moz-signature"><tt><br>
      </tt></div>
    <div class="gmail-m_-5700604426949457445moz-signature"><tt></tt><tt>HTTP/1.1 200 OK</tt><tt><br>
      </tt><tt>Allow: GET, HEAD, OPTIONS</tt><tt><br>
      </tt><tt>Connection: close</tt><tt><br>
      </tt><tt>Content-Length: 52</tt><tt><br>
      </tt><tt>Content-Type: application/json</tt><tt><br>
      </tt><tt>Date: Thu, 16 May 2019 14:42:40 GMT</tt><tt><br>
      </tt><tt>Server: gunicorn/19.9.0</tt><tt><br>
      </tt><tt>Vary: Accept, Cookie</tt><tt><br>
      </tt><tt>X-Frame-Options: SAMEORIGIN</tt><tt><br>
      </tt><tt><br>
      </tt><tt>{</tt><tt><br>
      </tt><tt>    "count": 0, </tt><tt><br>
      </tt><tt>    "next": null, </tt><tt><br>
      </tt><tt>    "previous": null, </tt><tt><br>
      </tt><tt>    "results": []</tt><tt><br>
      </tt><tt>}</tt><br>
      <br>
    </div>
    <div class="gmail-m_-5700604426949457445moz-signature">I did something wrong ?<br>
    </div>
    <div class="gmail-m_-5700604426949457445moz-signature"><br>
    </div>
    <div class="gmail-m_-5700604426949457445moz-signature">Juan</div>
    <div class="gmail-m_-5700604426949457445moz-signature"><br>
    </div>
    <div class="gmail-m_-5700604426949457445moz-signature">-- <br>
      <div style="font-family:Verdana,Helvetica,Arial,sans-serif;font-size:8pt;font-weight:normal;color:rgb(97,99,101)"> <img src="cid:16ac17b415094a6a8871" style="display: block; margin: 1em 0em;">
        <p style="margin:1em"> <span style="font-weight:bold">Juan
            CABRERA</span><br>
          <span style="color:rgb(105,190,40)">Correspondant informatique</span><br>
          <span>Département de Mathématiques</span> </p>
        <p style="margin:1em">
          <span style="font-weight:bold">T.</span> 081724919<br>
          <a style="color:rgb(105,190,40)" href="mailto:juan.cabrera@unamur.be" target="_blank">juan.cabrera@unamur.be</a><br>
          <a style="color:rgb(105,190,40)" href="http://staff.unamur.be/jbcabrer" target="_blank">http://staff.unamur.be/jbcabrer</a>
        </p>
        <p style="margin:1em"> <span style="font-weight:bold;font-size:8pt">Université de Namur ASBL</span><br>
          <span>Rue de Bruxelles 61 - 5000 Namur</span><br>
          <span>Belgique</span><br>
        </p>
        <p style="margin:1em;font-size:6pt;color:rgb(105,190,40)"> <span>Let’s
            respect the environment together.</span><br>
          <span style="font-weight:bold">Only print this message if
            necessary!</span><br>
        </p>
      </div>
    </div>
  </div>

_______________________________________________<br>
Pulp-list mailing list<br>
<a href="mailto:Pulp-list@redhat.com" target="_blank">Pulp-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-list" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-list</a></blockquote></div></div></div>