Skip to content

Commit ca3645a

Browse files
committed
Deploying to gh-pages from @ cac304f 🚀
1 parent 9501ab0 commit ca3645a

5 files changed

Lines changed: 31 additions & 4 deletions

File tree

0 Bytes
Binary file not shown.

_modules/pushsource/_impl/backend/errata_source/errata_source.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,11 @@ <h1>Source code for pushsource._impl.backend.errata_source.errata_source</h1><di
452452
<span class="k">def</span><span class="w"> </span><span class="nf">_rpm_push_items_from_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">erratum</span><span class="p">,</span> <span class="n">build_nvr</span><span class="p">,</span> <span class="n">build_info</span><span class="p">):</span>
453453
<span class="n">rpms</span> <span class="o">=</span> <span class="n">build_info</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rpms&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">{}</span>
454454
<span class="n">signing_key</span> <span class="o">=</span> <span class="n">build_info</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;sig_key&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">None</span>
455+
<span class="k">if</span> <span class="n">signing_key</span><span class="p">:</span>
456+
<span class="c1"># Errata Tool API may return key alias in sig_key field in format &quot;name1,name2,...&quot;, but</span>
457+
<span class="c1"># we need to convert &quot;,&quot; into &quot;+&quot; otherwise it would be used as multiple keys for Koji</span>
458+
<span class="c1"># source which would result in incorrect processing.</span>
459+
<span class="n">signing_key</span> <span class="o">=</span> <span class="n">signing_key</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">,</span> <span class="s2">&quot;+&quot;</span><span class="p">)</span>
455460
<span class="n">sha256sums</span> <span class="o">=</span> <span class="p">(</span><span class="n">build_info</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;checksums&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;sha256&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">{}</span>
456461
<span class="n">md5sums</span> <span class="o">=</span> <span class="p">(</span><span class="n">build_info</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;checksums&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;md5&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">{}</span>
457462

_modules/pushsource/_impl/backend/koji_source.html

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ <h1>Source code for pushsource._impl.backend.koji_source</h1><div class="highlig
4343
<span class="kn">from</span><span class="w"> </span><span class="nn">more_executors</span><span class="w"> </span><span class="kn">import</span> <span class="n">Executors</span>
4444
<span class="kn">from</span><span class="w"> </span><span class="nn">more_executors.futures</span><span class="w"> </span><span class="kn">import</span> <span class="n">f_map</span>
4545

46+
<span class="k">try</span><span class="p">:</span>
47+
<span class="kn">from</span><span class="w"> </span><span class="nn">kobo</span><span class="w"> </span><span class="kn">import</span> <span class="n">rpmlib</span>
48+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span> <span class="c1"># pragma: no cover, pylint: disable=broad-except</span>
49+
<span class="c1"># If kobo.rpmlib is unavailable, let&#39;s not immediately crash.</span>
50+
<span class="c1"># We will hold this exception and re-raise it only if there&#39;s an</span>
51+
<span class="c1"># attempt to use the related functionality.</span>
52+
<span class="kn">from</span><span class="w"> </span><span class="nn">..</span><span class="w"> </span><span class="kn">import</span> <span class="n">broken_rpmlib</span> <span class="k">as</span> <span class="n">rpmlib</span>
53+
54+
<span class="n">rpmlib</span><span class="o">.</span><span class="n">CAUSE</span> <span class="o">=</span> <span class="n">ex</span>
55+
4656
<span class="kn">from</span><span class="w"> </span><span class="nn">..source</span><span class="w"> </span><span class="kn">import</span> <span class="n">Source</span>
4757
<span class="kn">from</span><span class="w"> </span><span class="nn">..model</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
4858
<span class="n">KojiBuildInfo</span><span class="p">,</span>
@@ -219,6 +229,8 @@ <h1>Source code for pushsource._impl.backend.koji_source</h1><div class="highlig
219229
<span class="sd"> using one of the provided keys. Include ``None`` if unsigned</span>
220230
<span class="sd"> should also be permitted.</span>
221231

232+
<span class="sd"> Supports also key alias in the format ``name1+name2+...``</span>
233+
222234
<span class="sd"> Keys should be listed in the order of preference.</span>
223235

224236
<span class="sd"> basedir (str)</span>
@@ -252,7 +264,7 @@ <h1>Source code for pushsource._impl.backend.koji_source</h1><div class="highlig
252264
<span class="p">)</span>
253265
<span class="bp">self</span><span class="o">.</span><span class="n">_container_build</span> <span class="o">=</span> <span class="p">[</span><span class="n">try_int</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">list_argument</span><span class="p">(</span><span class="n">container_build</span><span class="p">)]</span>
254266
<span class="bp">self</span><span class="o">.</span><span class="n">_vmi_build</span> <span class="o">=</span> <span class="p">[</span><span class="n">try_int</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">list_argument</span><span class="p">(</span><span class="n">vmi_build</span><span class="p">)]</span>
255-
<span class="bp">self</span><span class="o">.</span><span class="n">_signing_key</span> <span class="o">=</span> <span class="n">list_argument</span><span class="p">(</span><span class="n">signing_key</span><span class="p">)</span>
267+
<span class="bp">self</span><span class="o">.</span><span class="n">_signing_key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_signing_key</span><span class="p">(</span><span class="n">list_argument</span><span class="p">(</span><span class="n">signing_key</span><span class="p">))</span>
256268
<span class="bp">self</span><span class="o">.</span><span class="n">_dest</span> <span class="o">=</span> <span class="n">list_argument</span><span class="p">(</span><span class="n">dest</span><span class="p">)</span>
257269
<span class="bp">self</span><span class="o">.</span><span class="n">_timeout</span> <span class="o">=</span> <span class="n">timeout</span>
258270
<span class="bp">self</span><span class="o">.</span><span class="n">_pathinfo</span> <span class="o">=</span> <span class="n">koji</span><span class="o">.</span><span class="n">PathInfo</span><span class="p">(</span><span class="n">basedir</span><span class="p">)</span>
@@ -288,6 +300,13 @@ <h1>Source code for pushsource._impl.backend.koji_source</h1><div class="highlig
288300
<span class="n">tls</span><span class="o">.</span><span class="n">koji_session</span> <span class="o">=</span> <span class="n">koji</span><span class="o">.</span><span class="n">ClientSession</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_url</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;anon_retry&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">})</span>
289301
<span class="k">return</span> <span class="n">tls</span><span class="o">.</span><span class="n">koji_session</span>
290302

303+
<span class="k">def</span><span class="w"> </span><span class="nf">_parse_signing_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">keys</span><span class="p">):</span>
304+
<span class="n">out</span> <span class="o">=</span> <span class="p">[]</span>
305+
<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">keys</span><span class="p">:</span>
306+
<span class="c1"># adjust alias to comma separated names of keys</span>
307+
<span class="n">out</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;+&quot;</span><span class="p">,</span> <span class="s2">&quot;,&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">key</span> <span class="k">else</span> <span class="n">key</span><span class="p">)</span>
308+
<span class="k">return</span> <span class="n">out</span>
309+
291310
<span class="k">def</span><span class="w"> </span><span class="nf">_koji_check</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
292311
<span class="c1"># Do a basic connection check with koji.</span>
293312
<span class="c1"># If this succeeds, we can be reasonably sure that the koji connection is</span>
@@ -346,7 +365,6 @@ <h1>Source code for pushsource._impl.backend.koji_source</h1><div class="highlig
346365
<span class="n">candidate</span> <span class="o">=</span> <span class="n">unsigned_path</span>
347366

348367
<span class="n">wait_exist</span><span class="p">(</span><span class="n">candidate</span><span class="p">,</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">poll_rate</span><span class="p">)</span>
349-
350368
<span class="c1"># If signing keys requested, try them in order of preference</span>
351369
<span class="c1"># Some key should be present at this stage, let&#39;s try them all</span>
352370
<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_signing_key</span><span class="p">:</span>
@@ -358,7 +376,10 @@ <h1>Source code for pushsource._impl.backend.koji_source</h1><div class="highlig
358376
<span class="n">candidate_paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">candidate</span><span class="p">)</span>
359377
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">candidate</span><span class="p">):</span>
360378
<span class="n">rpm_path</span> <span class="o">=</span> <span class="n">candidate</span>
361-
<span class="n">rpm_signing_key</span> <span class="o">=</span> <span class="n">key</span>
379+
<span class="c1"># we may only get key alias as input, let&#39;s extract actual key ID from RPM header in all cases</span>
380+
<span class="c1"># as we don&#39;t know if the provided data are alias or actual key ID</span>
381+
<span class="n">header</span> <span class="o">=</span> <span class="n">rpmlib</span><span class="o">.</span><span class="n">get_rpm_header</span><span class="p">(</span><span class="n">candidate</span><span class="p">)</span>
382+
<span class="n">rpm_signing_key</span> <span class="o">=</span> <span class="n">rpmlib</span><span class="o">.</span><span class="n">get_keys_from_header</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
362383
<span class="k">break</span>
363384

364385
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_signing_key</span><span class="p">:</span>

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sources/koji.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ <h2>Python API reference<a class="headerlink" href="#python-api-reference" title
157157
<li><p><strong>signing_key</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.14)"><em>list</em></a><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a><em>]</em>) – <p>GPG signing key ID(s). If provided, content must be signed
158158
using one of the provided keys. Include <code class="docutils literal notranslate"><span class="pre">None</span></code> if unsigned
159159
should also be permitted.</p>
160+
<p>Supports also key alias in the format <code class="docutils literal notranslate"><span class="pre">name1+name2+...</span></code></p>
160161
<p>Keys should be listed in the order of preference.</p>
161162
</p></li>
162163
<li><p><strong>basedir</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – Base directory of koji content (e.g. /mnt/koji).

0 commit comments

Comments
 (0)