Re: Passing data in bundle
"'Nick Anderson' via help-cfengine" <[email protected]>
| Newsgroups | gmane.comp.sysutils.cfengine.general |
|---|---|
| Message-ID | <CAE46pPvbMqcc_ZxDzanNdJ1qDA-JkGT8LMpMinDGRdmioToF2w@mail.gmail.com> |
Hey Mike! Indeed it is. I completely missed it. Good eye. On Wed, Jun 15, 2022, 6:27 PM Mike Weilgart < [email protected]> wrote: > Hey Nick, > > I second your conclusion, but I'll point out that it looks like the > "elasticsearch" line *is* shown in the original post, it's just merged into > the command itself, which I suspect is a copy-paste error. > > Best, > —Mike Weilgart > > On Jun 15, 2022, at 11:34 AM, 'Nick Anderson' via help-cfengine < > [email protected]> wrote: > > thierry thunot <[email protected]> writes: > > Hi all i need help about this promise. I have been looking for many hours >> why my promise does not work. I want in my report that all nom_clef_brute >> values are displayed in the report for each entry of the variable >> parametrage_des_sources. only one is display… >> > > Hi Thierry, > > The first thing that I noticed in this policy is a bit of invalid JSON. > > The last entry in graylog has a trailing comma which isn't valid JSON. > Listing 1: /tmp/parametrage_des_sources.json > > { > "mogodb" : { > "nom_de_la_liste" : "mogodb.list", > "nom_clef_brute" : "GPG-KEY-mongodb.gpg.key", > "url_repo" : "http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" > }, > "elasticsearch" : { > "nom_de_la_liste" : "elasticsearch.list", > "nom_de_la_clef" : "GPG-KEY-elasticsearch.gpg.key", > "url_repo" : "https://artifacts.elastic.co/packages/oss-7.x/apt stable main" > }, > > "graylog" : { > "nom_de_la_liste" : "graylog.list", > "nom_de_la_clef" : "graylog-keyring.gpg.key", > "url_repo" : "https://packages.graylog2.org/repo/debian/ stable 4.2", > }} > > Listing 2: Checking json syntax with jq and python > > exec 2>&1 > jq < /tmp/parametrage_des_sources.json > python3 -m json.tool < /tmp/parametrage_des_sources.json > : > > parse error: Expected another key-value pair at line 17, column 5 > Expecting property name enclosed in double quotes: line 17 column 5 (char 688) > > Though CFEngine handles it without complaint. > Listing 3: Example illustrating how CFEngine deals with trailing commas > in JSON without complaint > > bundle agent __main__{ > vars: > "file" string => "/tmp/parametrage_des_sources.json"; > > "data_from_external_file" data => readjson( $(file) ); > > "data_from_inline" data => '{ "mogodb" : { "nom_de_la_liste" : "mogodb.list", "nom_clef_brute" : "GPG-KEY-mongodb.gpg.key", "url_repo" : "http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" }, "elasticsearch" : { "nom_de_la_liste" : "elasticsearch.list", "nom_de_la_clef" : "GPG-KEY-elasticsearch.gpg.key", "url_repo" : "https://artifacts.elastic.co/packages/oss-7.x/apt stable main" }, > "graylog" : { "nom_de_la_liste" : "graylog.list", "nom_de_la_clef" : "graylog-keyring.gpg.key", "url_repo" : "https://packages.graylog2.org/repo/debian/ stable 4.2", } }'; > > reports: > "$(file)" > printfile => cat( $(file) ); > > "CFEngine dealt with data from external file:$(const.n)$(with)" with => storejson( data_from_external_file ); > > "CFEngine dealt with data from inline:$(const.n)$(with)" with => storejson( data_from_inline );} > > R: /tmp/parametrage_des_sources.json > R: { > R: "mogodb" : { > R: "nom_de_la_liste" : "mogodb.list", > R: "nom_clef_brute" : "GPG-KEY-mongodb.gpg.key", > R: "url_repo" : "http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" > R: }, > R: "elasticsearch" : { > R: "nom_de_la_liste" : "elasticsearch.list", > R: "nom_de_la_clef" : "GPG-KEY-elasticsearch.gpg.key", > R: "url_repo" : "https://artifacts.elastic.co/packages/oss-7.x/apt stable main" > R: }, > R: > R: "graylog" : { > R: "nom_de_la_liste" : "graylog.list", > R: "nom_de_la_clef" : "graylog-keyring.gpg.key", > R: "url_repo" : "https://packages.graylog2.org/repo/debian/ stable 4.2", > R: } > R: } > R: CFEngine dealt with data from external file: > { > "elasticsearch": { > "nom_de_la_clef": "GPG-KEY-elasticsearch.gpg.key", > "nom_de_la_liste": "elasticsearch.list", > "url_repo": "https://artifacts.elastic.co/packages/oss-7.x/apt stable main" > }, > "graylog": { > "nom_de_la_clef": "graylog-keyring.gpg.key", > "nom_de_la_liste": "graylog.list", > "url_repo": "https://packages.graylog2.org/repo/debian/ stable 4.2" > }, > "mogodb": { > "nom_clef_brute": "GPG-KEY-mongodb.gpg.key", > "nom_de_la_liste": "mogodb.list", > "url_repo": "http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" > } > } > R: CFEngine dealt with data from inline: > { > "elasticsearch": { > "nom_de_la_clef": "GPG-KEY-elasticsearch.gpg.key", > "nom_de_la_liste": "elasticsearch.list", > "url_repo": "https://artifacts.elastic.co/packages/oss-7.x/apt stable main" > }, > "graylog": { > "nom_de_la_clef": "graylog-keyring.gpg.key", > "nom_de_la_liste": "graylog.list", > "url_repo": "https://packages.graylog2.org/repo/debian/ stable 4.2" > }, > "mogodb": { > "nom_clef_brute": "GPG-KEY-mongodb.gpg.key", > "nom_de_la_liste": "mogodb.list", > "url_repo": "http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" > } > } > > The second thing I notice is that nom_clef_brute is only present in mogodb, > hence why that is the only GPG-KEY entry emitted. Nothing jumps out at me > with respect to why elasticsearch is not emitted. > > Back to your example … > > I only altered some whitespace and yanked the trailing comma in the JSON > and added a report for the version of CFEngine that I am running. > > I get the output for each key, elasticsearch, graylog, and mongodb. as > expected. What do you get if you run this policy? > Listing 4: Original policy with fixed, reflowed, with minor whitespace > changes for my own readability > > bundle agent __main__{ > vars: > > "parametrage_des_sources" > data => '{ "mogodb": { "nom_de_la_liste": "mogodb.list", "nom_clef_brute": "GPG-KEY-mongodb.gpg.key", "url_repo": "http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" }, "elasticsearch": { "nom_de_la_liste": "elasticsearch.list", "nom_de_la_clef": "GPG-KEY-elasticsearch.gpg.key", "url_repo": "https://artifacts.elastic.co/packages/oss-7.x/apt stable main" }, "graylog": { "nom_de_la_liste": "graylog.list", "nom_de_la_clef": "graylog-keyring.gpg.key", "url_repo": "https://packages.graylog2.org/repo/debian/ stable 4.2" }}'; > > methods: > "" usebundle => donnees( storejson(parametrage_des_sources) ); > #"" usebundle => donnees($(parametrage_des_sources)); > > reports: > "CFEngine $(sys.cf_version)";} > bundle agent donnees(valeurs){ > vars: > "donnees_extraites" data => parsejson( $(valeurs) ); > "nom" slist => getindices( $(valeurs) ); > #"decompo" data => readjson ($(valeurs)); > > reports: > "Nom des datas $(nom)"; > "Nom_de_la_liste pour l'entre '$(nom)' est $(donnees_extraites[$(nom)][nom_clef_brute])";} > > R: Nom des datas elasticsearch > R: Nom des datas graylog > R: Nom des datas mogodb > R: Nom_de_la_liste pour l'entre 'mogodb' est GPG-KEY-mongodb.gpg.key > R: CFEngine 3.20.0a.8a11a6ae4 > > > -- > You received this message because you are subscribed to the Google Groups > "help-cfengine" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/help-cfengine/878rpxzs80.fsf%40northern.tech > <https://groups.google.com/d/msgid/help-cfengine/878rpxzs80.fsf%40northern.tech?utm_medium=email&utm_source=footer> > . > -- > Nick Anderson | Doer of Things | (+1) 785-550-1767 | https://northern.tech > > -- > You received this message because you are subscribed to the Google Groups > "help-cfengine" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/help-cfengine/878rpxzs80.fsf%40northern.tech > . > > -- You received this message because you are subscribed to the Google Groups "help-cfengine" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/help-cfengine/CAE46pPvbMqcc_ZxDzanNdJ1qDA-JkGT8LMpMinDGRdmioToF2w%40mail.gmail.com.