<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 19, 2016 at 3:07 PM, Chuck Payne <span dir="ltr">&lt;<a href="mailto:terrorpup@gmail.com" target="_blank">terrorpup@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1qf" class="" style="overflow:hidden">James,<br>
<br>
Thanks, I am working on getting ansible and spacewalk to work<br>
together. This is nice.</div></blockquote></div><br>Yeah, it&#39;s really easy to do some hefty tasks:</div><div class="gmail_extra"><br></div><div class="gmail_extra">```</div><div class="gmail_extra"><div class="gmail_extra">&#39;use strict&#39;;</div><div class="gmail_extra"><br></div><div class="gmail_extra">const fs = require(&#39;fs&#39;);</div><div class="gmail_extra">const ty = require(&#39;then-yield&#39;);</div><div class="gmail_extra">const SatClient = require(&#39;sat5-xmlrpc&#39;);</div><div class="gmail_extra">const client = new SatClient({host: &#39;<a href="http://rhn.example.com">rhn.example.com</a>&#39;});</div><div class="gmail_extra"><br></div><div class="gmail_extra">const outputDir = &#39;/tmp&#39;;</div><div class="gmail_extra"><br></div><div class="gmail_extra">function* doit() {</div><div class="gmail_extra">  try {</div><div class="gmail_extra">    const key = yield client.auth.login(&#39;user&#39;, &#39;supersecret&#39;);</div><div class="gmail_extra"><br></div><div class="gmail_extra">    const prodGroup = yield client.systemgroup.getDetails(key, &#39;PROD&#39;);</div><div class="gmail_extra">    const prodSystems = yield client.systemgroup.listSystemsMinimal(key, prodGroup.name);</div><div class="gmail_extra"><br></div><div class="gmail_extra">    const advisories = {};</div><div class="gmail_extra"><br></div><div class="gmail_extra">    for (let system of prodSystems) {</div><div class="gmail_extra">      const file = `${outputDir}/${<a href="http://system.name">system.name</a>}`;</div><div class="gmail_extra">      fs.appendFileSync(file, &#39;# Errata Needed\n\n&#39;);</div><div class="gmail_extra">      const erratas = yield client.system.getRelevantErrata(key, <a href="http://system.id">system.id</a>);</div><div class="gmail_extra">      for (let errata of erratas) {</div><div class="gmail_extra">        let details;</div><div class="gmail_extra">        if (advisories.hasOwnProperty(errata.advisory_name)) {</div><div class="gmail_extra">          details = advisories[errata.advisory_name];</div><div class="gmail_extra">        } else {</div><div class="gmail_extra">          details = yield client.errata.getDetails(key, errata.advisory_name);</div><div class="gmail_extra">          advisories[errata.advisory_name] = details;</div><div class="gmail_extra">        }</div><div class="gmail_extra"><br></div><div class="gmail_extra">        let str = &#39;&#39;;</div><div class="gmail_extra">        str += `+ ${errata.advisory_name}\n`;</div><div class="gmail_extra">        str += `  + type: ${details.type}\n`;</div><div class="gmail_extra">        str += `  + issued: ${details.issue_date}\n`;</div><div class="gmail_extra">        str += `  + sysnopsis: ${details.synopsis}\n`;</div><div class="gmail_extra">        fs.appendFile(file, str);</div><div class="gmail_extra">      }</div><div class="gmail_extra">    }</div><div class="gmail_extra">  } catch (e) {</div><div class="gmail_extra">    console.error(e);</div><div class="gmail_extra">  }</div><div class="gmail_extra">}</div><div class="gmail_extra"><br></div><div class="gmail_extra">ty.spawn(doit);</div></div><div class="gmail_extra">```<br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>James Sumners<br><a href="http://james.sumners.info/" target="_blank">http://james.sumners.info/</a> (technical profile)</div><div><a href="http://jrfom.com/" target="_blank">http://jrfom.com/</a> (personal site)</div><div><a href="http://haplo.bandcamp.com/" target="_blank">http://haplo.bandcamp.com/</a> (band page)</div></div></div></div></div>
</div></div>