<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 26/11/2013 15:43,
      <a class="moz-txt-link-abbreviated" href="mailto:Joachim.Setzer@t-systems.com">Joachim.Setzer@t-systems.com</a> wrote:<br>
    </div>
    <blockquote
cite="mid:4C440E0F5145424D85E1B63868366FB2AB6A49AC72@HE113506.emea1.cds.t-internal.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Exchange Server">
      <!-- converted from rtf -->
      <style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
      <font size="2" face="Calibri, sans-serif">
        <div>Hi All,</div>
        <div> </div>
        <div>was anyone a hint (or a tutorial) to extend rudder ?</div>
        <div> </div>
        <div>We need to check that for example oracle client is
          installed in the right version</div>
        <div> </div>
        <div>For this fusion-inventory should check if it is installed
          in the right version</div>
        <div>For this we need to extend fusion-inventory, too</div>
        <div> </div>
        <div>We also want to have an addition collumn / section at the
          host in rudder gui where we see the information about</div>
        <div>Oracle client installation (path, version, installdate…..)</div>
        <div> </div>
        <div>Can anyone help ?</div>
        <div> </div>
        <div> </div>
        <div><font size="2" face="Arial, sans-serif">Kind regards / Mit
            freundlichen Grüßen
            <br>
            Joachim Setzer </font></div>
      </font><br>
    </blockquote>
    <br>
    Hello Joachim, <br>
    <br>
    As I saw your ticket
    <a class="moz-txt-link-freetext" href="http://www.rudder-project.org/redmine/issues/4195">http://www.rudder-project.org/redmine/issues/4195</a>, you are already
    aware of the plugins in Rudder.  And you are right, contrary to new
    Techniques, these plugins are intended to extends Rudder web
    interface with new functionnality, or view. <br>
    <br>
    For the record, the base plugin example to build new UI plugin is
    here: <a class="moz-txt-link-freetext" href="https://github.com/Normation/rudder-plugin-helloworld/">https://github.com/Normation/rudder-plugin-helloworld/</a><br>
    <br>
    <br>
    Now, for you case: I f I understand correctly, you wand to: <br>
    <ol>
      <li>add some more inventory data (oracle client installed
        version),</li>
      <ul>
        <li>that means extending Fusion Inventory<br>
        </li>
      </ul>
      <li>store that data in Rudder, <br>
      </li>
      <ul>
        <li>that needs extending the stored inventory information and
          add the logic to know how to handle them<br>
        </li>
      </ul>
      <li>be able to query it so that you can know what nodes have an
        oracle client installed, and in which version,</li>
      <ul>
        <li>that means extendings the data model to know how to handle
          queries on Oracle client<br>
        </li>
      </ul>
      <li>display that data on node details</li>
      <ul>
        <li>that is an UI extension, using the precedent steps<br>
        </li>
      </ul>
    </ol>
    <br>
    Unfortunatly, as of today, the plugins possibility are only on UI
    extension and displaying existing datas, not storing new datas along
    with other inventory one. Or the data "provisionning" need to be
    also handled by the plugin (for example, a plugin building it's own
    database from API requests to other software, or whatever). <br>
    <br>
    So you need implies some modification of Rudder internals, and may
    be hard - or at least involves quite a bit of Scala coding, plus
    understanding of Rudder internal architecture. If you want to go
    that path, we will help you as much as we can, and also try to find
    way to have your contributions integrated in Rudder. <br>
    <br>
    As that may seems a little deceptive, I still have a workaround for
    your use case. It seems that what you are after (in part, at least)
    is checking Oracle client installation compliance with some company
    rules. And that clearly looks like a job for Rudder!<br>
    So, I'm thinking that a first step, far easier and shorter than
    building the full "oracle client installation plugin", could be to
    build a Technique whose goal would be:<br>
    <ul>
      <li>to check oracle client installation (perhaps configurable
        installation parameters, like path, etc) <br>
      </li>
      <li>to check oracle client version (configurable version)<br>
      </li>
      <li>optionnally, to correct bad installation or version with a new
        installation or update <br>
      </li>
      <li>optionnaly, well whatever is needed for your teams. <br>
      </li>
    </ul>
    <p>Given that Technique, you could create Rules to check that a
      certain version of Oracle Client is correctly installed on a given
      group of nodes. And the integrated Rudder reporting will display
      node with uncorrect installation (and if you want handle the
      correction automaticaly). <br>
    </p>
    <br>
    Hope it helps and allows to see what alternatives are available!<br>
    <br>
    Cheers, <br>
    <div class="moz-signature">-- <br>
      <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
      <style type="text/css"><!--
    a.redlink:link { color: #962322; text-decoration: none; }
    a.redlink:visited { color: #962322; text-decoration: none; }
    .sig { font-family: sans-serif; font-size: small; }
    .sigsmall { font-family: sans-serif; font-size: x-small; }
  --></style>
      <table border="0" cellpadding="0" cellspacing="2" width="380">
        <tbody>
          <tr>
            <td colspan="2">
              <hr></td>
          </tr>
          <tr>
            <td colspan="2"><b><img alt=""
                  src="cid:part1.06020008.00050106@normation.com"
                  align="left" width="50" height="50" hspace="10"> <span
                  class="sig">François ARMAND</span></b><br>
              <span class="sig"><i>Directeur de la R&D</i></span><br>
              <span class="sig"><a class="redlink"
                  href="http://www.normation.com">Normation</a></span> </td>
          </tr>
          <tr>
            <td colspan="2">
              <hr></td>
          </tr>
          <tr>
            <td colspan="2"><span class="sigsmall"><b>87 rue de Turbigo,
                  75003 Paris, France</b></span></td>
          </tr>
          <tr>
            <td><span class="sigsmall">Telephone:</span></td>
            <td><span class="sigsmall">+33 (0)1 83 62 99 23</span></td>
          </tr>
          <tr>
            <td><span class="sigsmall">Mobile:</span></td>
            <td><span class="sigsmall">+33 (0)6 63 37 60 55</span></td>
          </tr>
          <tr>
            <td colspan="2">
              <hr></td>
          </tr>
        </tbody>
      </table>
    </div>
  </body>
</html>