Re: Re: How to join multiple parts of one data container
Michal Švamberg <[email protected]> Thu, 27 Jul 2023 15:55:11 +0200
| Newsgroups | gmane.comp.sysutils.cfengine.general |
|---|---|
| Message-ID | <CAFgL0WhbrpeG=pptRkR0-MyRPppqH-fsfSBV4wR_M269-52hEQ@mail.gmail.com> |
Hi all,
I have a solution (thanks to Bas):
"level1_ubuntu" data => '@(repos[ubuntu_16])';
"level1_debian" data => '@(repos[debian_12])';
"level2_list" data => '[ level1_ubuntu[hwraid], level1_debian[icinga]
]';
That works, but there are too many lines. Is there a better solution?
Thanks
Michal
čt 27. 7. 2023 v 13:34 odesílatel Bas van der Vlies <[email protected]>
napsal:
> Michal,
>
> It is indeed strange i got it working but I think you had the same
> solution:
> * "level2_single" data => mergedata('[]', "repos[ubuntu_16][hwraid]");
>
> and the second one does not make sense for me `level1_serialized`
> because the keys for me get override because they are the same
>
> What is the main difference that level 1 returns:
> * keywords with hashes --> debian --> { values } => I assume a
> getlist function()
>
> level2 is only returning
> * keyword:value => want is not a list somehow
>
> On 27/07/2023 12:54, Michal Švamberg wrote:
> > I'm sorry, I forgot the attachment.
> > Michal
> >
> > čt 27. 7. 2023 v 12:52 odesílatel Michal Švamberg <[email protected]
> > <mailto:[email protected]>> napsal:
> >
> > Hi Bas,
> > I fixed mistakes in JSON (remove commas at end of lists), now is it
> > valid.
> > I tried some changes in JSON structure (change hash to list, ...)
> > without solving the problem.
> > The base question is why work:
> > "level1_single" data => '[ repos[ubuntu_16] ]';
> > but not working
> > "level1_single" data => '[ repos[ubuntu_16][hwraid] ]';
> > Both keys ("ubuntu_16" and "hwraid") are hashes, not lists. The
> > inside structure is irrelevant (or not?).
> >
> > Thanks
> > Michal Svamberg
> >
> >
> >
> > čt 27. 7. 2023 v 11:19 odesílatel Bas van der Vlies
> > <[email protected] <mailto:[email protected]>> napsal:
> >
> >
> >
> > On 27/07/2023 10:10, Michal Švamberg wrote:
> > > Hi,
> > > the simplified source code is in the email attachment. When I
> > run it:
> > > # cf-agent -Kf ./test.cf <http://test.cf> -C
> > --show-evaluated-vars=default:main\\.level
> > > error: Error parsing JSON expression '[hwraid] ]': Unable
> > to parse
> > > json data as array, did not start with '['
> > > error: Error parsing JSON expression '[hwraid] ]': Unable
> > to parse
> > > json data as array, did not start with '['
> > > error: Error parsing JSON expression '[icinga],
> > > repos[ubuntu_16][hwraid] ]': Unable to parse json data as
> > array, did not
> > > start with '['
> > > error: Error parsing JSON expression '[icinga],
> > > repos[ubuntu_16][hwraid] ]': Unable to parse json data as
> > array, did not
> > > start with '['
> > > ...
> > > Variable name Variable value
> > > Meta tags
> > > Comment
> > > default:main.level1_serialized
> > >
> >
> [{"debian":{"Suites":["bookworm","bookworm-backports","bookworm-proposed-updates","bookworm-updates"],"URIs":"
> http://deb.debian.org/debian <http://deb.debian.org/debian
> >"},"debian-security":{"Suites":["bookworm-security"],"URIs":"
> http://deb.debian.org/debian-security <
> http://deb.debian.org/debian-security
> >"},"icinga":{"Suites":["icinga-bookworm"],"URIs":"
> https://packages.icinga.com/debian <https://packages.icinga.com/debian
> >"}},{"hwraid":{"Suites":["stretch"],"Types":["deb"],"URIs":"
> https://hwraid.le-vert.net/debian <https://hwraid.le-vert.net/debian
> >"},"ubuntu":{"Suites":["xenial","xenial-backports","xenial-proposed","xenial-updates","xenial-security"],"URIs":"
> http://cz.archive.ubuntu.com/ubuntu <http://cz.archive.ubuntu.com/ubuntu
> >"},"ubuntu-security":{"Suites":["xenial-security"],"URIs":"
> http://cz.archive.ubuntu.com/ubuntu <http://cz.archive.ubuntu.com/ubuntu>"}}]
> source=promise
> > > default:main.level1_single
> > >
> > [{"hwraid":{"Suites":["stretch"],"Types":["deb"],"URIs":"
> https://hwraid.le-vert.net/debian <https://hwraid.le-vert.net/debian
> >"},"ubuntu":{"Suites":["xenial","xenial-backports","xenial-proposed","xenial-updates","xenial-security"],"URIs":"
> http://cz.archive.ubuntu.com/ubuntu <http://cz.archive.ubuntu.com/ubuntu
> >"},"ubuntu-security":{"Suites":["xenial-security"],"URIs":"
> http://cz.archive.ubuntu.com/ubuntu <http://cz.archive.ubuntu.com/ubuntu>"}}]
> source=promise
> > >
> > > I get level1* variables only. Is there any way to do this for
> > the second
> > > level as well?
> > >
> >
> > Michal,
> >
> > The problem is that in JSON you can have a list of
> > dictionaries/hashes
> > but not a list of items, eg:
> > ```
> > [
> >
> >
> > Types: [ deb ],
> >
> >
> > URIs: https://hwraid.le-vert.net/debian
> > <https://hwraid.le-vert.net/debian>
> >
> >
> > ]
> > ```
> >
> > jq '.' list.json
> > ```
> > 11:16 r10n17.lisa.surfsara.nl:~
> > root# jq '.' list.json
> > parse error: ':' not as part of an object at line 2, column 12
> > ```
> >
> >
> > --
> > --
> > Bas van der Vlies
> > | High Performance Computing & Visualization | SURF| Science
> > Park 140 |
> > 1098 XG Amsterdam
> > | T +31 (0) 20 800 1300 | [email protected]
> > <mailto:[email protected]> | www.surf.nl
> > <http://www.surf.nl> |
> >
>
> --
> --
> Bas van der Vlies
> | High Performance Computing & Visualization | SURF| Science Park 140 |
> 1098 XG Amsterdam
> | T +31 (0) 20 800 1300 | [email protected] | www.surf.nl |
>
--
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/CAFgL0WhbrpeG%3DpptRkR0-MyRPppqH-fsfSBV4wR_M269-52hEQ%40mail.gmail.com.
test.cf
(application/octet-stream, 1 KB) - not displayed