If I try to add a fictitious resource:

{\"type\": \"Service\",
 \"title\": \"iptables\",
 \"exported\": false,
 \"file\": \"/etc/puppet/modules/puppetdb/manifests/server.pp\",
 \"line\": 121,
 \"tags\": [\"node\", \"puppetdb\"],
 \"parameters\": {
                  \"ensure\" : \"running\"}
}

I get:

2013-10-15 11:20:43,042 ERROR [command-proc-45] [puppetdb.command]
[15abcd55-b7c6-4acc-8839-94b96f85ba68] [replace catalog] Retrying after
attempt 8, due to: org.postgresql.util.PSQLException: No value specified
for parameter 1.


This way of issuing commands is quite nasty...

BR/Pablo


On 10/15/2013 11:00 AM, Pablo Fernandez wrote:
> Ok, so I finally opted for inserting a full node from one DB into
> another, since getting the resources should be quite easy with a GET.
>
> But then I run into a problem when running the replace catalog command
> (with an empty catalog):
>
> curl -vv -G -H "Accept: application/json"
> 'http://localhost:8080/v2/commands' --data-urlencode
> 'payload={"command":"replace catalog","version": 2,"payload":"{ 
> \"metadata\": {\"api_version\": 1}, \"data\":   {\"name\":
> \"puppet09.cscs.ch\",\"version\": \"1111\", \"edges\": [],
> \"resources\": [] }    }"}'
>
> Which returns ok. The puppetdb.log shows:
>
> 2013-10-15 10:42:02,060 ERROR [command-proc-45] [puppetdb.command]
> [43c41752-e7d4-4725-b062-7b3a9b1ac8ec] [replace catalog] Retrying
> after attempt 8, due to: org.postgresql.util.PSQLException: ERROR:
> syntax error at or near ")"
>   Position: 66
>
> I have looked again and again into the data, and syntax seems to be
> correct.
>
> Anybody tried this? Hints?
>
> Thanks a lot,
> Pablo Fernandez
>
>
>
>
> On 10/10/2013 05:23 PM, Throwe, Jesse wrote:
>> That would really depend on the approach ultimately taken for the
>> multi-master. If the puppet master (or agent in masterless mode)
>> forwards the same fact/report/node/etc data to multiple puppetdb
>> instances then yes the scale breaks horribly and does not meet part
>> of this request.  If there is some kind of store-and-forward
>> mechanism in puppetdb itself, it would be possible to extend the
>> forward to say 'only if it matches these rules'.  This could
>> definitely be useful in a variety of ways beyond simple HA purposes.
>>
>>
>>
>> On Thu, Oct 10, 2013 at 11:07 AM, Pablo Fernandez
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>>     Yes, I saw that... this may be a solution for replicating full
>>     PuppetDBs (if you tackle the backlog during a long shortage), but
>>     that does not scale very well if you have 5-10 PuppetDBs all
>>     being replicated to a single, bigger one.
>>
>>     Besides, it would not cover cases when you want to have only some
>>     nodes replicated, or even only some resources.
>>
>>
>>
>>     On 10/10/2013 04:35 PM, Throwe, Jesse wrote:
>>>     It sounds like a shade of #19321 -
>>>     https://projects.puppetlabs.com/issues/19321
>>>
>>>
>>>     On Thu, Oct 10, 2013 at 10:31 AM, Wolf Noble <[email protected]
>>>     <mailto:[email protected]>> wrote:
>>>
>>>         I'd be interested in accomplishing a similar thing. I want
>>>         to have a central reporting puppetdb which I can (outside of
>>>         puppet) query for multisite information without tying
>>>         isolated environments together via a single postgres db, or
>>>         using multi-master replication. 
>>>
>>>         my needs do not involve making each puppet site aware of
>>>         each other's data, but it would be nice to have one db which
>>>         has all the data for my digging pleasure.
>>>
>>>         from my understanding this is not currently supported.
>>>
>>>         I was thinking something could be done to ask puppetdb at
>>>         site A (what updates have you had in the past N minutes/
>>>         since the last time I checked in with you/ since
>>>         timestamp(N)), and then iterate through the collected data
>>>         and feed it into a reporting puppetdb instance, however I've
>>>         not gone beyond thinking about it.
>>>
>>>
>>>
>>>
>>>
>>>         On Thu, Oct 10, 2013 at 7:12 AM, Pablo Fernandez
>>>         <[email protected] <mailto:[email protected]>>
>>>         wrote:
>>>
>>>             Thanks Ken,
>>>
>>>             I took a look at the Command API and seems to be quite
>>>             interesting, but
>>>             it triggers a few more questions.
>>>
>>>             As a reminder (also for others), what I wanted to do was
>>>             to add exported
>>>             resources from Node_A (managed by PuppetMaster_A that
>>>             has its own
>>>             PuppetDB_A) into a different PuppetDB_B, where Node_A is
>>>             unknown, in
>>>             order for other Nodes_B (managed by PuppetMaster_B) be
>>>             aware and
>>>             possibly realize those exported resources.
>>>
>>>             Taking a look the Commands API seem to capabilities to
>>>             change a whole
>>>             catalog, or facts. Do they need to be existing catalogs,
>>>             or could I add
>>>             new ones?
>>>             I am thinking: If I want to add Node_A's exported
>>>             resource(s) to
>>>             PuppetDB_B, I could "artificially" add its whole catalog to
>>>             PuppetDB_B... but the Command API is "replace catalog",
>>>             no "add
>>>             catalog". Would it be rejected? How does the first
>>>             catalog of a node get
>>>             introduced into the DB? And moreover, how do I query a
>>>             whole catalog?
>>>
>>>             Another possibility would be to include the resource
>>>             inside an existing
>>>             Node_B catalog on the PuppetDB_B (after all, exported
>>>             resources don't
>>>             really mater what node do they belong, as long as they
>>>             have the right
>>>             attributes, right?), but the Catalog wire format seems
>>>             to require the
>>>             whole set of resources, so, if I define the resources of
>>>             Node_B with
>>>             some exported resources from Node_A, I believe I would
>>>             lose the original
>>>             Node_B's resources. The only possibility would be to
>>>             query Node_B full
>>>             catalog, and *add also* those resources from Node_A
>>>             before sending them
>>>             to the DB... and this seems to me like a bit dirty :)
>>>
>>>             Am I missing anything? Or is there another way to
>>>             implemen what I need
>>>             with Puppet 3.2?
>>>
>>>             Thanks again,
>>>             BR/Pablo
>>>
>>>
>>>             On 10/10/2013 09:16 AM, Ken Barber wrote:
>>>             >>> Is there a mechanism to pull and push some exported
>>>             resources from one
>>>             >>> PuppetDB to another? I guess this could be done with
>>>             the API, but has
>>>             >>> anybody tried it, or will it work at all?
>>>             > Not provided by us, yet. We've had a lot of
>>>             discussions internally
>>>             > about this kind of thing. How about you outline your
>>>             requirements in
>>>             > the form of a feature request here:
>>>             >
>>>             > http://projects.puppetlabs.com/projects/puppetdb/issues
>>>             >
>>>             >> Did anybody try to push data to a PuppetDB by hand?
>>>             The API does not
>>>             >> seem to have the PUT or POST methods.
>>>             > The client obviously pushes uses POST :-). The
>>>             documentation for the
>>>             > mechanism is here:
>>>             >
>>>             > http://docs.puppetlabs.com/puppetdb/1.5/api/commands.html
>>>             >
>>>             > ken.
>>>             >
>>>
>>>             --
>>>             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]
>>>             <mailto:puppet-users%[email protected]>.
>>>             To post to this group, send email to
>>>             [email protected]
>>>             <mailto:[email protected]>.
>>>             Visit this group at
>>>             http://groups.google.com/group/puppet-users.
>>>             For more options, visit
>>>             https://groups.google.com/groups/opt_out.
>>>
>>>
>>>         -- 
>>>         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]
>>>         <mailto:puppet-users%[email protected]>.
>>>         To post to this group, send email to
>>>         [email protected]
>>>         <mailto:[email protected]>.
>>>         Visit this group at http://groups.google.com/group/puppet-users.
>>>         For more options, visit
>>>         https://groups.google.com/groups/opt_out.
>>>
>>>
>>>     -- 
>>>     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]
>>>     <mailto:[email protected]>.
>>>     To post to this group, send email to
>>>     [email protected]
>>>     <mailto:[email protected]>.
>>>     Visit this group at http://groups.google.com/group/puppet-users.
>>>     For more options, visit https://groups.google.com/groups/opt_out.
>>
>>     -- 
>>     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]
>>     <mailto:puppet-users%[email protected]>.
>>     To post to this group, send email to
>>     [email protected] <mailto:[email protected]>.
>>     Visit this group at http://groups.google.com/group/puppet-users.
>>     For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>> -- 
>> 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 post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/puppet-users.
>> For more options, visit https://groups.google.com/groups/opt_out.
>
> -- 
> 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 post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/puppet-users.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to