and one more piece of info: The puppet server is configured using
Passenger+apache. When I run
puppet agent --test
on a client system, parsejson fails by truncating the hash output.
But if I just run 'puppet apply ...' on the puppet server, as in
puppet apply create-users.pp
which contains
$myusers = parsejson (generate ('/bin/sh', '-c',
'/var/lib/puppet/lib/create-user-hash.sh'))
notice ($myusers)
it works perfectly.
- Allen
On Wednesday, May 6, 2015 at 12:47:10 PM UTC-7, Allen Myers wrote:
>
> Hi,
>
> I've got the following statements in my manifest:
>
> $myusers_json = generate ('/bin/sh', '-c', '/path/to/my/script.sh')
> notice ($myusers_json)
> $myusers = parsejson ($myusers_json)
> notice ($myusers)
>
>
> My script generates a list of users in JSON and I've verified that the
> output format from 'notice ($myusers_json)' is correct using jsonlint.com.
> However, the output of 'notice ($myusers)' is always limited to 1985
> bytes. It's just truncating the output. I know it's not just a short-coming
> of the 'notice' function because when I call
>
> create_resources(user, $myusers)
>
>
> if fails with the error
>
> Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
> expected ',' or '}' in object at '"user1" : { "'! at
> /etc/puppet/environments/mgmt/manifests/01-all-nodes.pp:24 on node
> pupper-server1
>
>
> If I modify script.sh so that the result is less than a certain length
> (depends on the number of fields and how many ':' get converted to '=>'), it
> works just fine. But the final output in puppet has format is being
> limited to 1985 bytes.
>
> Any fix or work-around for this?
>
> Thanks!
>
> - Allen
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" 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/puppet-users/e7024387-0934-47e3-917a-f67f7c16269b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.