<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>