Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-04-28T14:17:39ZPulp
Planio Debian Support - Issue #8645 (CLOSED - CURRENTRELEASE): Deprecation warnings with distributionhttps://pulp.plan.io/issues/86452021-04-28T14:17:39Zknzivid
<p>When I run the latest version of <code>pulp/pulp</code> image from docker, I notice these warnings when I use an apt distribution.</p>
<blockquote>
<p>pulp [None]: pulpcore.deprecation:WARNING: BaseDistribution is deprecated and could be removed as early as pulpcore==3.13; use pulpcore.plugin.models.Distribution instead.</p>
</blockquote>
<p>I am not sure if this is an pulp core issue or something in the pulp_deb plugin.</p> Container Support - Issue #8224 (CLOSED - DUPLICATE): Remove # coding=utf-8 from our testshttps://pulp.plan.io/issues/82242021-02-08T16:36:39Zggainey
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_container/486":<a href="https://github.com/pulp/pulp_container/issues/486" class="external">https://github.com/pulp/pulp_container/issues/486</a></p>
<hr>
<p>Python3 defaults to utf8 now.</p> Docker Support - Issue #7697 (CLOSED - WONTFIX): docker repo_repository_id name restrictions seem...https://pulp.plan.io/issues/76972020-10-12T20:03:36Zjpasqualetto
<p>While the code states that:</p>
<p>" Docker registry repos are restricted to lower case letters, numbers, hyphens, underscores, and
periods. Additionally, we allow a single slash for namespacing purposes."</p>
<p>pulp is returning error for any docker_registry_id containing this sequence of characters:</p>
<pre><code> _-_
</code></pre>
<p>Example:</p>
<pre><code># pulp-admin docker repo create --repo-id=docker_test --repo-registry-id "my_-_repo"
A validation error occurred.
The value specified for repo-registry-id: 'my_-_repo' is invalid. Registry id
must contain only lower case letters, integers, hyphens, periods, and may
include a single slash.
</code></pre>
<p>Also, the error message doesn't say anything about accepting underscores.</p> Debian Support - Issue #7390 (CLOSED - DUPLICATE): As a user i want to upload package to a reposi...https://pulp.plan.io/issues/73902020-08-25T14:37:40Zmntzn
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_deb/393":<a href="https://github.com/pulp/pulp_deb/issues/393" class="external">https://github.com/pulp/pulp_deb/issues/393</a></p>
<hr>
<p>Current workflow is to:</p>
<ol>
<li>
<p>upload content (package)</p>
</li>
<li>
<p>add content to repo</p>
</li>
<li>
<p>create publication from repo</p>
</li>
<li>
<p>create/update distribution with latest publication</p>
</li>
</ol>
<p>Steps 3, 4 can be omitted and package that have been uploaded to a repository should be immediately available in distribution (as alternative to current workflow)</p> Debian Support - Issue #6882 (CLOSED - CURRENTRELEASE): Add description to pypi.orghttps://pulp.plan.io/issues/68822020-06-02T14:48:26Zquba42
<p>At minimum a link to the pulp website and the pulp_deb issue tracker would be good to have here:</p>
<p><a href="https://pypi.org/project/pulp-deb/" class="external">https://pypi.org/project/pulp-deb/</a></p> Debian Support - Issue #6869 (CLOSED - CURRENTRELEASE): Pulp 3 - pulp-deb : Add "Date" metadata i...https://pulp.plan.io/issues/68692020-06-01T14:27:40Zswisscom
<p>Dear support team,</p>
<p>In order to avoid warnings when connecting Debian or Ubuntu hosts APT client to a DEB repo published by Pulp, would it be possible to add the "Date" metadata in the Release file ?</p>
<p>To avoid these warnings, I fixed it by modifying pulp_deb/app/tasks/publishing.py as following (class _ReleaseHelper, line 208).
Before :</p>
<pre><code class="python syntaxhl" data-language="python"> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span>
<span class="bp">self</span><span class="p">,</span> <span class="n">publication</span><span class="p">,</span> <span class="n">codename</span><span class="p">,</span> <span class="n">components</span><span class="p">,</span> <span class="n">architectures</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="bp">None</span>
<span class="p">):</span>
<span class="bp">self</span><span class="p">.</span><span class="n">publication</span> <span class="o">=</span> <span class="n">publication</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span> <span class="o">=</span> <span class="n">deb822</span><span class="p">.</span><span class="n">Release</span><span class="p">()</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Codename"</span><span class="p">]</span> <span class="o">=</span> <span class="n">codename</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Architectures"</span><span class="p">]</span> <span class="o">=</span> <span class="s">" "</span><span class="p">.</span><span class="n">join</span><span class="p">(</span><span class="n">architectures</span><span class="p">)</span>
<span class="k">if</span> <span class="n">label</span><span class="p">:</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Label"</span><span class="p">]</span> <span class="o">=</span> <span class="n">label</span>
<span class="k">if</span> <span class="n">description</span><span class="p">:</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Description"</span><span class="p">]</span> <span class="o">=</span> <span class="n">description</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"MD5sum"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"SHA1"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"SHA256"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"SHA512"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">architectures</span> <span class="o">=</span> <span class="n">architectures</span>
<span class="bp">self</span><span class="p">.</span><span class="n">components</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">_ComponentHelper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">components</span><span class="p">}</span>
<span class="bp">self</span><span class="p">.</span><span class="n">signing_service</span> <span class="o">=</span> <span class="n">publication</span><span class="p">.</span><span class="n">signing_service</span>
</code></pre>
<p>After :</p>
<pre><code class="python syntaxhl" data-language="python"> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span>
<span class="bp">self</span><span class="p">,</span> <span class="n">publication</span><span class="p">,</span> <span class="n">codename</span><span class="p">,</span> <span class="n">components</span><span class="p">,</span> <span class="n">architectures</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="bp">None</span>
<span class="p">):</span>
<span class="bp">self</span><span class="p">.</span><span class="n">publication</span> <span class="o">=</span> <span class="n">publication</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span> <span class="o">=</span> <span class="n">deb822</span><span class="p">.</span><span class="n">Release</span><span class="p">()</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Codename"</span><span class="p">]</span> <span class="o">=</span> <span class="n">codename</span>
<span class="c1"># Ugly fix Lionel Widmer
</span> <span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Date"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"Sat, 09 May 2020 09:51:02 UTC"</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Architectures"</span><span class="p">]</span> <span class="o">=</span> <span class="s">" "</span><span class="p">.</span><span class="n">join</span><span class="p">(</span><span class="n">architectures</span><span class="p">)</span>
<span class="k">if</span> <span class="n">label</span><span class="p">:</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Label"</span><span class="p">]</span> <span class="o">=</span> <span class="n">label</span>
<span class="k">if</span> <span class="n">description</span><span class="p">:</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"Description"</span><span class="p">]</span> <span class="o">=</span> <span class="n">description</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"MD5sum"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"SHA1"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"SHA256"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">release</span><span class="p">[</span><span class="s">"SHA512"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="p">.</span><span class="n">architectures</span> <span class="o">=</span> <span class="n">architectures</span>
<span class="bp">self</span><span class="p">.</span><span class="n">components</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">_ComponentHelper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">components</span><span class="p">}</span>
<span class="bp">self</span><span class="p">.</span><span class="n">signing_service</span> <span class="o">=</span> <span class="n">publication</span><span class="p">.</span><span class="n">signing_service</span>
<span class="k">def</span> <span class="nf">add_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">metadata</span><span class="p">):</span>
<span class="n">artifact</span> <span class="o">=</span> <span class="n">metadata</span><span class="p">.</span><span class="n">_artifacts</span><span class="p">.</span><span class="n">get</span><span class="p">()</span>
</code></pre>
<p>Of course hardcoding a date is ugly but it was for a test, to validate it removes the warning, and it does.</p>
<p>According to Debian, the "Date" field in Release file is purely informational. However, it produces warnings if it is not present... <a href="https://wiki.debian.org/DebianRepository/Format" class="external">https://wiki.debian.org/DebianRepository/Format</a></p>
<p>Thanks for your support</p> Container Support - Issue #5736 (CLOSED - CURRENTRELEASE): An exception is raised when trying to ...https://pulp.plan.io/issues/57362019-11-17T15:44:27Zlmjachky
<p>During regular synchronization, the exception "Cannot connect to host production.cloudflare.docker.com:443 ssl:default [Connect call failed ('104.18.121.25', 443)]" is raised from time to time. It looks like there may be present some connectivity issues during the sync process. I am not experiencing this problem when I am directly connected to Red Hat's network, disregarding the VPN. This behavior could be, therefore, caused by the obscure network configuration provided by the local Internet provider (UPC) too.</p>
<p>I stumbled upon this issue a few weeks ago while trying to sync the content from home. The issue can be still relevant to the old pulp_docker plugin.</p>
<p>I strove to resolve the issue by my own. I noticed that when I had changed the download_concurrency, for example, to 2 (<a href="https://pulp-docker.readthedocs.io/en/latest/restapi.html#operation/remotes_docker_docker_create" class="external">https://pulp-docker.readthedocs.io/en/latest/restapi.html#operation/remotes_docker_docker_create</a>, the default value is 20), everything worked fine. On the other hand, by lowering a number of concurrent connections, the overall performance rapidly decreased. But this was expected.</p>
<p>Please, find below the steps to reproduce the behavior. Note the attached script which was used to sync the content.</p>
<p>1. Clean up the database and run the sync.</p>
<pre><code class="text syntaxhl" data-language="text">$ pclean && pstart
$ bash dockersync.bash
</code></pre>
<pre><code class="text syntaxhl" data-language="text">HTTP/1.1 201 Created
Allow: GET, POST, HEAD, OPTIONS
Connection: close
Content-Length: 314
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:15:58 GMT
Location: /pulp/api/v3/repositories/container/container/b1e6372c-ad1d-40b1-b05a-a8c68fe5589e/
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"description": null,
"latest_version_href": null,
"name": "foo",
"pulp_created": "2019-11-17T12:15:57.994754Z",
"pulp_href": "/pulp/api/v3/repositories/container/container/b1e6372c-ad1d-40b1-b05a-a8c68fe5589e/",
"versions_href": "/pulp/api/v3/repositories/container/container/b1e6372c-ad1d-40b1-b05a-a8c68fe5589e/versions/"
}
HTTP/1.1 201 Created
Allow: GET, POST, HEAD, OPTIONS
Connection: close
Content-Length: 437
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:15:58 GMT
Location: /pulp/api/v3/remotes/container/container/4213f1b8-1078-4829-a5dc-9a774baf8548/
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"ca_cert": null,
"client_cert": null,
"client_key": null,
"download_concurrency": 20,
"name": "library/busybox",
"policy": "immediate",
"proxy_url": null,
"pulp_created": "2019-11-17T12:15:58.735655Z",
"pulp_href": "/pulp/api/v3/remotes/container/container/4213f1b8-1078-4829-a5dc-9a774baf8548/",
"pulp_last_updated": "2019-11-17T12:15:58.735668Z",
"tls_validation": true,
"upstream_name": "busybox",
"url": "https://registry-1.docker.io",
"whitelist_tags": null
}
HTTP/1.1 202 Accepted
Allow: POST, OPTIONS
Connection: close
Content-Length: 67
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:15:59 GMT
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"task": "/pulp/api/v3/tasks/4e93f3bf-d7fd-426d-8a72-0ad63cd49843/"
}
</code></pre>
<p>2. Check the status of the task.</p>
<pre><code class="text syntaxhl" data-language="text">$ http :24817/pulp/api/v3/tasks/4e93f3bf-d7fd-426d-8a72-0ad63cd49843/
</code></pre>
<pre><code class="text syntaxhl" data-language="text">HTTP/1.1 200 OK
Allow: GET, PATCH, DELETE, HEAD, OPTIONS
Connection: close
Content-Length: 4320
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:17:25 GMT
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"created_resources": [],
"error": {
"description": "Cannot connect to host production.cloudflare.docker.com:443 ssl:default [Connect call failed ('104.18.121.25', 443)]",
"traceback": " File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/worker.py\", line 822, in perform_job\n rv = job.perform()\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py\", line 605, in perform\n self._result = self._execute()\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py\", line 611, in _execute\n return self.func(*self.args, **self.kwargs)\n File \"/home/vagrant/devel/pulp_container/pulp_container/app/tasks/synchronize.py\", line 44, in synchronize\n dv.create()\n File \"/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/declarative_version.py\", line 149, in create\n loop.run_until_complete(pipeline)\n File \"/usr/lib64/python3.7/asyncio/base_events.py\", line 584, in run_until_complete\n return future.result()\n File \"/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/api.py\", line 209, in create_pipeline\n await asyncio.gather(*futures)\n File \"/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/api.py\", line 43, in __call__\n await self.run()\n File \"/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/artifact_stages.py\", line 132, in run\n pb.done += task.result() # download_count\n File \"/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/artifact_stages.py\", line 157, in _handle_content_unit\n await asyncio.gather(*downloaders_for_content)\n File \"/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/models.py\", line 81, in download\n download_result = await downloader.run(extra_data=self.extra_data)\n File \"/home/vagrant/devel/pulpcore/pulpcore/download/base.py\", line 221, in run\n return await self._run(extra_data=extra_data)\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/backoff/_async.py\", line 133, in retry\n ret = await target(*args, **kwargs)\n File \"/home/vagrant/devel/pulp_container/pulp_container/app/downloaders.py\", line 61, in _run\n async with self.session.get(self.url, headers=headers, proxy=self.proxy) as response:\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/client.py\", line 1012, in __aenter__\n self._resp = await self._coro\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/client.py\", line 483, in _request\n timeout=real_timeout\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/connector.py\", line 523, in connect\n proto = await self._create_connection(req, traces, timeout)\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/connector.py\", line 859, in _create_connection\n req, traces, timeout)\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/connector.py\", line 1004, in _create_direct_connection\n raise last_exc\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/connector.py\", line 986, in _create_direct_connection\n req=req, client_error=client_error)\n File \"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/connector.py\", line 943, in _wrap_create_connection\n raise client_error(req.connection_key, exc) from exc\n"
},
"finished_at": "2019-11-17T12:16:43.184042Z",
"name": "pulp_container.app.tasks.synchronize.synchronize",
"parent": null,
"progress_reports": [
{
"code": "downloading.tag_list",
"done": 1,
"message": "Downloading tag list",
"state": "completed",
"suffix": null,
"total": 1
},
{
"code": "downloading.artifacts",
"done": 644,
"message": "Downloading Artifacts",
"state": "failed",
"suffix": null,
"total": null
},
{
"code": "associating.content",
"done": 834,
"message": "Associating Content",
"state": "canceled",
"suffix": null,
"total": null
},
{
"code": "processing.tag",
"done": 139,
"message": "Processing Tags",
"state": "completed",
"suffix": null,
"total": 139
}
],
"pulp_created": "2019-11-17T12:15:59.455435Z",
"pulp_href": "/pulp/api/v3/tasks/4e93f3bf-d7fd-426d-8a72-0ad63cd49843/",
"reserved_resources_record": [
"/pulp/api/v3/remotes/container/container/4213f1b8-1078-4829-a5dc-9a774baf8548/",
"/pulp/api/v3/repositories/container/container/b1e6372c-ad1d-40b1-b05a-a8c68fe5589e/"
],
"spawned_tasks": [],
"started_at": "2019-11-17T12:15:59.541635Z",
"state": "failed",
"worker": "/pulp/api/v3/workers/ebc6615a-2149-4618-8aba-61050edb48ec/"
}
</code></pre>
<p>3. Wait at least 5 minutes to let the server restore its cache. Otherwise, it immediately crashes on the same error after a start. Clean up the database and run the sync again with updated download_concurrency.</p>
<pre><code class="text syntaxhl" data-language="text">$ pclean && pstart
$ bash dockersync.bash
</code></pre>
<pre><code class="text syntaxhl" data-language="text">HTTP/1.1 201 Created
Allow: GET, POST, HEAD, OPTIONS
Connection: close
Content-Length: 314
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:36:44 GMT
Location: /pulp/api/v3/repositories/container/container/d5f0f584-1e8e-4b11-843d-98116ce962ee/
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"description": null,
"latest_version_href": null,
"name": "foo",
"pulp_created": "2019-11-17T12:36:44.516158Z",
"pulp_href": "/pulp/api/v3/repositories/container/container/d5f0f584-1e8e-4b11-843d-98116ce962ee/",
"versions_href": "/pulp/api/v3/repositories/container/container/d5f0f584-1e8e-4b11-843d-98116ce962ee/versions/"
}
HTTP/1.1 201 Created
Allow: GET, POST, HEAD, OPTIONS
Connection: close
Content-Length: 436
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:36:45 GMT
Location: /pulp/api/v3/remotes/container/container/603ef7c0-f961-4a78-a8ee-d690d7fa287f/
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"ca_cert": null,
"client_cert": null,
"client_key": null,
"download_concurrency": 2,
"name": "library/busybox",
"policy": "immediate",
"proxy_url": null,
"pulp_created": "2019-11-17T12:36:45.355781Z",
"pulp_href": "/pulp/api/v3/remotes/container/container/603ef7c0-f961-4a78-a8ee-d690d7fa287f/",
"pulp_last_updated": "2019-11-17T12:36:45.355795Z",
"tls_validation": true,
"upstream_name": "busybox",
"url": "https://registry-1.docker.io",
"whitelist_tags": null
}
HTTP/1.1 202 Accepted
Allow: POST, OPTIONS
Connection: close
Content-Length: 67
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:36:46 GMT
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"task": "/pulp/api/v3/tasks/1e3b4439-4abb-4c7c-980c-071460ce1f6e/"
}
</code></pre>
<p>4. Check the status of the task.</p>
<pre><code class="text syntaxhl" data-language="text">$ http :24817/pulp/api/v3/tasks/1e3b4439-4abb-4c7c-980c-071460ce1f6e/
</code></pre>
<pre><code class="text syntaxhl" data-language="text">HTTP/1.1 200 OK
Allow: GET, PATCH, DELETE, HEAD, OPTIONS
Connection: close
Content-Length: 1212
Content-Type: application/json
Date: Sun, 17 Nov 2019 12:50:05 GMT
Server: gunicorn/20.0.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"created_resources": [
"/pulp/api/v3/repositories/container/container/d5f0f584-1e8e-4b11-843d-98116ce962ee/versions/1/"
],
"error": null,
"finished_at": "2019-11-17T12:49:22.160145Z",
"name": "pulp_container.app.tasks.synchronize.synchronize",
"parent": null,
"progress_reports": [
{
"code": "downloading.tag_list",
"done": 1,
"message": "Downloading tag list",
"state": "completed",
"suffix": null,
"total": 1
},
{
"code": "processing.tag",
"done": 139,
"message": "Processing Tags",
"state": "completed",
"suffix": null,
"total": 139
},
{
"code": "downloading.artifacts",
"done": 1490,
"message": "Downloading Artifacts",
"state": "completed",
"suffix": null,
"total": null
},
{
"code": "associating.content",
"done": 1785,
"message": "Associating Content",
"state": "completed",
"suffix": null,
"total": null
}
],
"pulp_created": "2019-11-17T12:36:46.112538Z",
"pulp_href": "/pulp/api/v3/tasks/1e3b4439-4abb-4c7c-980c-071460ce1f6e/",
"reserved_resources_record": [
"/pulp/api/v3/remotes/container/container/603ef7c0-f961-4a78-a8ee-d690d7fa287f/",
"/pulp/api/v3/repositories/container/container/d5f0f584-1e8e-4b11-843d-98116ce962ee/"
],
"spawned_tasks": [],
"started_at": "2019-11-17T12:36:46.199769Z",
"state": "completed",
"worker": "/pulp/api/v3/workers/eccc84fa-2436-44d7-922b-0512545fff74/"
}
</code></pre>
<p>Do you think this issue can be resolved in pulp_container, or even in pulpcore?</p> CertGuard - Issue #4891 (CLOSED - CURRENTRELEASE): The client side ssl cert for pulp should follo...https://pulp.plan.io/issues/48912019-05-30T14:37:04ZAnonymous
<p>The client side cert is currently coming in via SSL_CLIENT_CERTIFICATE</p>
<p>It should probably be change to conform to the X-header standards and be X-SSL_CLIENT_CERTIFICATE</p>
<p>The is for the certguard plugin for pulp3.</p> Debian Support - Issue #3658 (CLOSED - WORKSFORME): problem with install and setuphttps://pulp.plan.io/issues/36582018-05-03T14:09:11Zdtkloc
<p>I am probably doing something wrong and need some assistance and could not find somewhere else to reach out for help. I am trying to mirror the apt repo for Ubuntu and runing into some issues,<br>
Here are the commands i run:</p>
<p>pulp-admin deb repo create --repo-id 'xenial-amd64' --feed '<a href="http://mirror.umd.edu/ubuntu" class="external">http://mirror.umd.edu/ubuntu</a>' --releases 'xenial' --components 'main' --architectures 'amd64'<br>
pulp-admin deb repo sync run --repo-id 'xenial-amd64'</p>
<p>Both ot theses work fine and i can browse the repo, However when i attempt to point a client to the pulp server I get errors that the the xenial Release does not have a release file. I am i missing some instructions? How do I get around this?</p>
<p>this is contents of the pulp website I have built</p>
<p>Pulp Repository Content</p>
<p>Parent Directory<br>
main/<br>
Release</p> Docker Support - Issue #3397 (CLOSED - WONTFIX): Replace "Unit query step (things)" with more pre...https://pulp.plan.io/issues/33972018-02-27T01:32:23Zrmcgoverrmcgover@redhat.com
<p>When I publish a repo with docker_rsync_distributor, the resulting task has a progress report having 4 steps with the same label: "Unit query step (things)".</p>
<p>Could these please use different labels, e.g. the unit type being queried?</p>
<p>As a user of Pulp, I would like to have different labels for each step in a publish, so that I can monitor relevant performance of each individual step and determine unambiguously which step failed when a publish has failed.</p> Crane - Issue #2992 (CLOSED - WONTFIX): GET by manifest digest should infer media typehttps://pulp.plan.io/issues/29922017-08-29T09:43:58Ztwaughtwaugh@redhat.com
<p>When issuing a GET request for a manifest (schema 1, schema 2 image manifest, or schema 2 manifest list) by its digest, the Docker Distribution registry returns the requested object regardless of any Accept: header in the request.</p>
<p>Is it possible for Crane to do this? I guess it isn't because it would need to be told the full inventory of manifest digests... just noting the discrepancy and asking the question. I'm not away of any specific problem this causes right now.</p>
<p>Right now if there is (for example) a manifest list at sha256:0123456..., a GET request for /v2/{name}/manifests/sha256:012346... but without any Accept: header redirects the client to /pulp/docker/.../manifests/1/sha256:012346..., not to the .../list/... location.</p>
<p>Perhaps there is a way of achieving this using symbolic links in /pulp/docker?</p> Debian Support - Issue #2967 (CLOSED - NOTABUG): Unable to sync debian repos using URL as feedhttps://pulp.plan.io/issues/29672017-08-08T20:46:05Zkersom
<p>As a user, I should be able to specify an URL to a feed, and be able to use the sync command to synchronize debian packages from an URL.</p>
<p>A guest during test day attempted to create and sync a debian repo using a debian mirror and sync fails.</p>
<ul>
<li>Pulp packages and plugins:</li>
</ul>
<pre><code>rpm -qa | grep pulp
python-pulp-puppet-common-2.14.0-0.3.rc.fc25.noarch
pulp-puppet-plugins-2.14.0-0.3.rc.fc25.noarch
pulp-ostree-plugins-1.3.0-0.3.rc.fc25.noarch
python-pulp-streamer-2.14.0-0.3.rc.fc25.noarch
python-pulp-bindings-2.14.0-0.3.rc.fc25.noarch
pulp-deb-plugins-1.5.2-0.2.beta.fc25.noarch
python-pulp-docker-common-3.0.0-0.3.rc.fc25.noarch
python-pulp-oid_validation-2.14.0-0.3.rc.fc25.noarch
pulp-docker-plugins-3.0.0-0.3.rc.fc25.noarch
pulp-puppet-admin-extensions-2.14.0-0.3.rc.fc25.noarch
pulp-ostree-admin-extensions-1.3.0-0.3.rc.fc25.noarch
python-pulp-common-2.14.0-0.3.rc.fc25.noarch
pulp-docker-admin-extensions-3.0.0-0.3.rc.fc25.noarch
python-pulp-python-common-2.0.1-0.3.rc.fc25.noarch
pulp-python-plugins-2.0.1-0.3.rc.fc25.noarch
python-pulp-rpm-common-2.14.0-0.3.rc.fc25.noarch
pulp-rpm-plugins-2.14.0-0.3.rc.fc25.noarch
pulp-admin-client-2.14.0-0.3.rc.fc25.noarch
pulp-deb-admin-extensions-1.5.2-0.2.beta.fc25.noarch
python-pulp-repoauth-2.14.0-0.3.rc.fc25.noarch
pulp-rpm-admin-extensions-2.14.0-0.3.rc.fc25.noarch
python-pulp-client-lib-2.14.0-0.3.rc.fc25.noarch
python-pulp-deb-common-1.5.2-0.2.beta.fc25.noarch
pulp-selinux-2.14.0-0.3.rc.fc25.noarch
pulp-server-2.14.0-0.3.rc.fc25.noarch
python-pulp-ostree-common-1.3.0-0.3.rc.fc25.noarch
pulp-python-admin-extensions-2.0.1-0.3.rc.fc25.noarch
</code></pre>
<pre><code>[test@fedora25-base214 ~]$ cat /etc/redhat-release
Fedora release 25 (Twenty Five)
</code></pre>
<pre><code>pulp-admin status
+----------------------------------------------------------------------+
Status of the server
+----------------------------------------------------------------------+
Api Version: 2
Database Connection:
Connected: True
Known Workers:
_id: scheduler@fedora25-base214
_ns: workers
Last Heartbeat: 2017-08-13T15:43:56Z
_id: resource_manager@fedora25-base214
_ns: workers
Last Heartbeat: 2017-08-13T15:43:57Z
_id: reserved_resource_worker-0@fedora25-base214
_ns: workers
Last Heartbeat: 2017-08-13T15:43:57Z
_id: reserved_resource_worker-1@fedora25-base214
_ns: workers
Last Heartbeat: 2017-08-13T15:43:57Z
Messaging Connection:
Connected: True
Versions:
Platform Version: 2.14rc3
</code></pre>
<pre><code>
[test@fedora25-base214 ~]$ pulp-admin deb repo create --repo-id debian-repo --feed http://ftp.debian.org/debian/dists/stable/
Successfully created repository [debian-repo]
[test@fedora25-base214 ~]$ pulp-admin deb repo sync run --repo-id=debian-repo
+----------------------------------------------------------------------+
Synchronizing Repository [debian-repo]
+----------------------------------------------------------------------+
This command may be exited via ctrl+c without affecting the request.
Task Failed
[Errno 2] No such file or directory:
u'/var/cache/pulp/reserved_resource_worker-0@fedora25-base214/21a48ad3-6a97-4738
-9294-4ed9f37b8e15/Release'
</code></pre>
<pre><code>[test@fedora25-base214 ~]$ journalctl -f > debian.test.logs &
</code></pre>
<pre><code>
Aug 13 12:09:10 fedora25-base214 pulp[2584]: celery.worker.job:INFO: Task pulp.server.async.tasks._release_resource[19b9b8b9-01ed-4f1e-b1d3-9882b90b536a] succeeded in 0.0236528830001s: None
Aug 13 12:09:30 fedora25-base214 gnome-terminal-[2370]: Allocating size to GtkScrollbar 0x7caf495390 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Aug 13 12:09:32 fedora25-base214 gnome-terminal-[2370]: Allocating size to GtkScrollbar 0x7caf2508e0 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Aug 13 12:10:16 fedora25-base214 pulp[2577]: celery.worker.strategy:INFO: Received task: pulp.server.async.tasks._queue_reserved_task[043bcbd4-3f65-4d6b-9247-912e476590c8]
Aug 13 12:10:16 fedora25-base214 pulp[2584]: celery.worker.strategy:INFO: Received task: pulp.server.tasks.repository.delete[1e7f1ec0-bb4a-4497-877b-5afa335df288]
Aug 13 12:10:16 fedora25-base214 pulp[2584]: celery.worker.strategy:INFO: Received task: pulp.server.async.tasks._release_resource[35f9bdbd-91ba-4a86-8f66-fde9d3e17645]
Aug 13 12:10:16 fedora25-base214 pulp[2577]: celery.worker.job:INFO: Task pulp.server.async.tasks._queue_reserved_task[043bcbd4-3f65-4d6b-9247-912e476590c8] succeeded in 0.0389802519999s: None
Aug 13 12:10:16 fedora25-base214 pulp[2584]: celery.worker.job:INFO: Task pulp.server.tasks.repository.delete[1e7f1ec0-bb4a-4497-877b-5afa335df288] succeeded in 0.0342449720001s: <pulp.server.async.tasks.TaskResult object at 0x7f80ec85d450>
Aug 13 12:10:16 fedora25-base214 pulp[2584]: celery.worker.job:INFO: Task pulp.server.async.tasks._release_resource[35f9bdbd-91ba-4a86-8f66-fde9d3e17645] succeeded in 0.0255510260004s: None
Aug 13 12:10:20 fedora25-base214 pulp[2592]: pulp.server.webservices.middleware.exception:INFO: Missing resource(s): repository=debian-repo1
Aug 13 12:10:43 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:10:46 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:10:49 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:10:52 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:10:55 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:10:58 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:11:01 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:11:04 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:11:07 fedora25-base214 pulp[2577]: celery.worker.strategy:INFO: Received task: pulp.server.async.tasks._queue_reserved_task[c54c2e95-7d7e-4c09-bf12-d9d84594d7cb]
Aug 13 12:11:07 fedora25-base214 pulp[2584]: celery.worker.strategy:INFO: Received task: pulp.server.managers.repo.sync.sync[21a48ad3-6a97-4738-9294-4ed9f37b8e15]
Aug 13 12:11:07 fedora25-base214 pulp[2713]: pulp_deb.plugins.importers.importer:INFO: [21a48ad3] Repo sync started.
Aug 13 12:11:07 fedora25-base214 pulp[2713]: pulp_deb.plugins.importers.sync:INFO: [21a48ad3] Downloading http://ftp.debian.org/debian/dists/stable/dists/stable/Release
Aug 13 12:11:07 fedora25-base214 pulp[2584]: celery.worker.strategy:INFO: Received task: pulp.server.async.tasks._release_resource[9207f966-2c78-4200-a530-e7de56f2f5b2]
Aug 13 12:11:07 fedora25-base214 pulp[2713]: requests.packages.urllib3.connectionpool:INFO: Starting new HTTP connection (1): ftp.debian.org
Aug 13 12:11:07 fedora25-base214 pulp[2577]: celery.worker.job:INFO: Task pulp.server.async.tasks._queue_reserved_task[c54c2e95-7d7e-4c09-bf12-d9d84594d7cb] succeeded in 0.0389599970003s: None
Aug 13 12:11:07 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:11:08 fedora25-base214 pulp[2713]: nectar.downloaders.threaded:INFO: Download failed: Download of http://ftp.debian.org/debian/dists/stable/dists/stable/Release failed with code 404: Not Found
Aug 13 12:11:08 fedora25-base214 pulp[2713]: pulp.server.async.tasks:INFO: [21a48ad3] Task failed : [21a48ad3-6a97-4738-9294-4ed9f37b8e15]
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) Task pulp.server.managers.repo.sync.sync[21a48ad3-6a97-4738-9294-4ed9f37b8e15] raised unexpected: IOError(2, 'No such file or directory')
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) Traceback (most recent call last):
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) R = retval = fun(*args, **kwargs)
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 522, in __call__
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) return super(Task, self).__call__(*args, **kwargs)
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 107, in __call__
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) return super(PulpTask, self).__call__(*args, **kwargs)
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 438, in __protected_call__
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) return self.run(*args, **kwargs)
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 769, in sync
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) sync_report = sync_repo(transfer_repo, conduit, call_config)
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 725, in wrap_f
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) return f(*args, **kwargs)
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp_deb/plugins/importers/importer.py", line 135, in sync_repo
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) report = self._current_sync.process_lifecycle()
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 572, in process_lifecycle
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) super(PluginStep, self).process_lifecycle()
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 163, in process_lifecycle
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) step.process()
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 256, in process
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) self._process_block()
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 303, in _process_block
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) self.process_main()
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) File "/usr/lib/python2.7/site-packages/pulp_deb/plugins/importers/sync.py", line 95, in process_main
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) release=open(self.parent.release_file, "rb"),
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:ERROR: (2584-56800) IOError: [Errno 2] No such file or directory: u'/var/cache/pulp/reserved_resource_worker-0@fedora25-base214/21a48ad3-6a97-4738-9294-4ed9f37b8e15/Release'
Aug 13 12:11:08 fedora25-base214 pulp[2584]: celery.worker.job:INFO: Task pulp.server.async.tasks._release_resource[9207f966-2c78-4200-a530-e7de56f2f5b2] succeeded in 0.00361970600034s: None
Aug 13 12:11:10 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
Aug 13 12:11:16 fedora25-base214 tracker-extract[2140]: unable to create file '/run/user/1000/dconf/user': Permission denied. dconf will not work properly.
</code></pre>
<p>Related story: <a href="https://pulp.plan.io/issues/2763#change-21246" class="external">https://pulp.plan.io/issues/2763#change-21246</a></p> Crane - Issue #2700 (CLOSED - WONTFIX): Crane crashes on start-up if "debug" config option isn't ...https://pulp.plan.io/issues/27002017-04-10T20:48:58ZIchimonji10jerebear@protonmail.com
<p>Let's say that you install crane (in my case, from the nightly RPM build) and create the following <code>/etc/crane.conf</code>:</p>
<pre><code>[general]
data_dir: /var/lib/published/docker
endpoint: localhost:5000
</code></pre>
<p>In this case, Crane will fail to start:</p>
<pre><code>[root@fedora-24-pulp-2-13 ~]# python2 -c 'from crane.app import create_app; create_app().run()'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/crane/app.py", line 29, in create_app
config.load(app)
File "/usr/lib/python2.7/site-packages/crane/config.py", line 59, in load
read_config(app, parser)
File "/usr/lib/python2.7/site-packages/crane/config.py", line 81, in read_config
app.config['DEBUG'] = parser.getboolean(SECTION_GENERAL, KEY_DEBUG)
File "/usr/lib64/python2.7/ConfigParser.py", line 368, in getboolean
v = self.get(section, option)
File "/usr/lib64/python2.7/ConfigParser.py", line 618, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'debug' in section: 'general'
</code></pre>
<p>This isn't expected. The documentation states that <code>debug</code> defaults to "false", meaning that the <code>debug</code> option should be optional.</p>
<p>This affects the nightly builds of Crane for Pulp 2.12 and 2.13.</p> Crane - Issue #1516 (CLOSED - WONTFIX): Crane bundles fonts with its static content, which is aga...https://pulp.plan.io/issues/15162016-01-12T19:37:07Zrbarlow
<p><a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Avoid_bundling_of_fonts_in_other_packages" class="external">https://fedoraproject.org/wiki/Packaging:Guidelines#Avoid_bundling_of_fonts_in_other_packages</a></p> Crane - Issue #1511 (CLOSED - WONTFIX): Crane packages web static content within the Python packagehttps://pulp.plan.io/issues/15112016-01-12T04:05:36Zrbarlow
<p>This is an error in rpmlint:</p>
<pre><code>python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-ExtraBoldItalic-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-Regular-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-Semibold-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-Light-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-ExtraBold-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-Italic-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/PatternFlyIcons-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-SemiboldItalic-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-BoldItalic-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-Bold-webfont.svg
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/css/jquery.min.map
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/js/jquery.js
python2-crane.noarch: E: script-without-shebang /usr/lib/python2.7/site-packages/crane/static/fonts/OpenSans-LightItalic-webfont.svg
</code></pre>
<p>We should relocate these files to /usr/share/crane or similar.</p>