[rudder-users] rudder plugin

Joachim.Setzer at t-systems.com Joachim.Setzer at t-systems.com
Wed Nov 27 12:06:53 CET 2013

Dear Francoid.

Thanks for your response

Yes You understand me right (I will try to explain my Ideas a little bit more below)

Kind regards / Mit freundlichen Grüßen
Joachim Setzer

T-Systems International GmbH
System Engineer
Application Service Center Standard Software Automotive + Manufacturing Industry Application Service Factory, Technology Line Standard Software

Von: Francois Armand [mailto:francois.armand at normation.com]
Gesendet: Mittwoch, 27. November 2013 11:04
An: Setzer, Joachim; rudder-users at lists.rudder-project.org
Betreff: Re: [rudder-users] rudder plugin

On 26/11/2013 15:43, Joachim.Setzer at t-systems.com<mailto:Joachim.Setzer at t-systems.com> wrote:
Hi All,

was anyone a hint (or a tutorial) to extend rudder ?

We need to check that for example oracle client is installed in the right version

For this fusion-inventory should check if it is installed in the right version
For this we need to extend fusion-inventory, too

We also want to have an addition collumn / section at the host in rudder gui where we see the information about
Oracle client installation (path, version, installdate…..)

Can anyone help ?

Kind regards / Mit freundlichen Grüßen
Joachim Setzer

Hello Joachim,

As I saw your ticket http://www.rudder-project.org/redmine/issues/4195, 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.

For the record, the base plugin example to build new UI plugin is here: https://github.com/Normation/rudder-plugin-helloworld/
--> I have tried to download and compile it, but it will not work (In case of this I have opened the redmine ticket)
(I hope this was the correct way ?)

Now, for you case: I f I understand correctly, you wand to:
1.      add some more inventory data (oracle client installed version),
o    that means extending Fusion Inventory
--> yes, right, I did it successfully with your tips yesterday (thanks again for the hint)
2.      store that data in Rudder,
o    that needs extending the stored inventory information and add the logic to know how to handle them
--> I think so, (I will try to understand the code) – At the moment I’m new in scala, I nahve perl, bash, C(++) and Java Knowledge (but I try to learn scala, too ☺)

3.      be able to query it so that you can know what nodes have an oracle client installed, and in which version,
o    that means extendings the data model to know how to handle queries on Oracle client
--> I found out that only a few attributes where stored in LDP after rudder gets them from FusionInventory
--> I’m looking for a way to extend this, too
4.      display that data on node details
o    that is an UI extension, using the precedent steps
--> For this I will need a plugin, is that right ?
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).
--> ok I understand

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.
--> thanks for your help, I will try to understand the code first, and later I hope that I can present a way to fit my requirements

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!
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:
--> Yes, I think so, too
·         to check oracle client installation (perhaps configurable installation parameters, like path, etc)
·         to check oracle client version (configurable version)
·         optionnally, to correct bad installation or version with a new installation or update
·         optionnaly, well whatever is needed for your teams.
--> I will try to write the required techniques, Is there an example too, where I can start

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).
--> That sounds very good

Hope it helps and allows to see what alternatives are available!
--> Yes, thanks for your help again


[cid:image002.png at 01CEEB69.294F7650]François ARMAND
Directeur de la R&D


87 rue de Turbigo, 75003 Paris, France


+33 (0)1 83 62 99 23


+33 (0)6 63 37 60 55


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.rudder-project.org/pipermail/rudder-users/attachments/20131127/4f6094c2/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 3503 bytes
Desc: image001.png
URL: <http://www.rudder-project.org/pipermail/rudder-users/attachments/20131127/4f6094c2/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 4159 bytes
Desc: image002.png
URL: <http://www.rudder-project.org/pipermail/rudder-users/attachments/20131127/4f6094c2/attachment-0003.png>

More information about the rudder-users mailing list