User story #2585
closedSynchronize the rootServerInitialPromises automatically (or at least the distributePolicy part) with the regular Rudder technique tree
Description
Synchronize the rootServerInitialPromises automatically (or at least the distributePolicy part) with the regular Rudder Technique tree,
We should be able using a simple tool (script or other) to automatically synchronize the server initial promises with the Rudder Techniques tree, saving us lots of time wasted doing it manually.
Updated by Matthieu CERDA over 12 years ago
Voici la procédure que j'ai suivie pour mettre a jour les distributePolicies:
- Copier tous les .st de l'arbre des Techniques en tant que .cf dans les promesses initiales
- Lancer ces commandes dessus:
for i in *.cf; do sed -i 's%@@DistributePolicy@@result_repaired@@.*@#%@@DistributePolicy@@Repaired@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@result_success@@.*@#%@@DistributePolicy@@Success@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@result_error@@.*@#%@@DistributePolicy@@Error@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_repaired@@.*@#%@@DistributePolicy@@Repaired@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_info@@.*@#%@@DistributePolicy@@Inform@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_warn@@.*@#%@@DistributePolicy@@Warn@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_error@@.*@#%@@DistributePolicy@@Error@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done
- Vérifier que la bundlesequence est OK. J'ai été obligé de le faire a la main...
- Vérifier dans le metadata.xml qu'il n'y a pas de transformations de fichier a faire.
Updated by Jonathan CLARKE over 12 years ago
- Status changed from New to Discussion
- Assignee set to Matthieu CERDA
Er, first things first: the language in this bugtracker is English. Please translate your comment.
Secondly, I think your main worry here is one of "how to do it" more than "we must automate it".
The way I do it: add my distributePolicy Technique to Rudder, Reload Techniques, regenerate the CFEngine rules. Then go into /var/rudder/cfengine-community/inputs/ and copy the relevant files. Sure, the bundlesequence needs updating too, but you can also pretty much just copy/paste the relevant part from the generated promises.cf. This is documented (briefly, I admit, but still) in https://github.com/Normation/rudder-techniques/tree/master/initial-promises/rootServerInitialPromises.
I don't understand your sed lines to replace things like "log_error" with "Error". Please explain? Reporting really doesn't matter in initial promises - it's not sent anywhere.
Am I missing something or is this really quite easy?
Updated by Matthieu CERDA over 12 years ago
Ok, I'll translate the first comment right away.
I was not aware we had a procedure to do that.
About the sed lines, it is simple: I am always taught to make new things isofunctionnal with the previous ones unless a change is necessary, so I kept the old reporting format that was present in the old initial promises. I think it would be kind of dirty to have a specific host UUID in a initial promises reporting ... (the one that would be inserted during a promise generation before the copy).
Yes, doing it the way you are proposing is quite easy indeed. Maybe I am a bit too picky.
Updated by Matthieu CERDA over 12 years ago
- Assignee changed from Matthieu CERDA to Jonathan CLARKE
Updated by Matthieu CERDA over 12 years ago
First comment translation:
Here is the procedure I followed to update the distributePolicies:
- Copy every .st file from the Techniques tree as .cf files into the initial promises
- Launch these commands:
for i in *.cf; do sed -i 's%@@DistributePolicy@@result_repaired@@.*@#%@@DistributePolicy@@Repaired@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@result_success@@.*@#%@@DistributePolicy@@Success@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@result_error@@.*@#%@@DistributePolicy@@Error@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_repaired@@.*@#%@@DistributePolicy@@Repaired@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_info@@.*@#%@@DistributePolicy@@Inform@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_warn@@.*@#%@@DistributePolicy@@Warn@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done for i in *.cf; do sed -i 's%@@DistributePolicy@@log_error@@.*@#%@@DistributePolicy@@Error@@root-DP#@root-distributePolicy##$(g.uuid)@#%g' $i; done
- Check if the bundlesequence is OK.
- Check in the metadata.xml if there is no transformation to do.
Updated by Jonathan CLARKE over 12 years ago
- Status changed from Discussion to New
- Assignee deleted (
Jonathan CLARKE) - Target version changed from 24 to Ideas (not version specific)
Matthieu CERDA wrote:
Ok, I'll translate the first comment right away.
I was not aware we had a procedure to do that.
A simple question would have sufficed, rather than a long rant ;)
About the sed lines, it is simple: I am always taught to make new things isofunctionnal with the previous ones unless a change is necessary, so I kept the old reporting format that was present in the old initial promises. I think it would be kind of dirty to have a specific host UUID in a initial promises reporting ... (the one that would be inserted during a promise generation before the copy).
Understood. In this case, the node ID is "root", for rootServerInitialPromises, and that's fine.
I'll leave this ticket open, but not for 2.5, since as this discussion has shown the manual way is not that hard.
Updated by Alexis Mousset almost 8 years ago
- Status changed from New to Rejected
Initial promises have been merged into the main technique tree (#7915), closing.