The curl bug I ran into is known - number 30 on the list of known curl
bugs...
http://curl.haxx.se/docs/knownbugs.html
I just guessed on how to work around it. My workaround has no
side-effects for my usage. But it was kind of surprising and annoying...
On 12/18/2013 01:18 PM, Wes Freeman wrote:
> I think so, on the issue.
>
> // compatible with back until 1.8 and maybe earlier... will return
> fast as long as there aren't millions of empty nodes at the beginning
> of the file
> start n=node(*) return n limit 1;
>
> Wes
>
> On Wed, Dec 18, 2013 at 3:11 PM, Alan Robertson <[email protected]
> <mailto:[email protected]>> wrote:
>
> Should I open an issue on this?
>
>
>
> On 12/18/2013 11:47 AM, Wes Freeman wrote:
>>
>> And yeah you're right, ::1 doesn't work in the config file (which
>> is odd), but if you bind to :: you can connect to ::1. Just
>> tested with my go driver using the following connection string:
>> db, err := sql.Open("neo4j-cypher", "http://[::1]:7474/"
>> <http://[::1]:7474/>)
>>
>> Wes
>>
>> On Wed, Dec 18, 2013 at 1:22 PM, Alan Robertson <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> I meant to say "::1". Right now, it won't hear local only
>> ipv6 connections...
>>
>> But your suggested query doesn't have to touch the data store
>> at all. Right?
>>
>> I would assume that either of the others I gave would touch
>> the data store, and would typically fail of the data store
>> was hung or broken...
>>
>> I would assume your suggested query would not touch the data
>> store.
>>
>> Is that a correct understanding?
>>
>>
>>
>>
>> On 12/18/2013 11:13 AM, Wes Freeman wrote:
>>> You can make it listen on :: if you set it in
>>> neo4j-server.properties:
>>> # Let the webserver only listen on the specified IP. Default
>>> is localhost (only
>>> # accept local connections). Uncomment to allow any
>>> connection. Please see the
>>> # security section in the neo4j manual before modifying this.
>>> org.neo4j.server.webserver.address=::
>>>
>>> My favorite ultra-simple 2.0 query is "RETURN 1;"--which
>>> works even if db is totally empty.
>>>
>>> Wes
>>>
>>> On Wed, Dec 18, 2013 at 10:56 AM, Alan Robertson
>>> <[email protected] <mailto:[email protected]>> wrote:
>>>
>>> Thanks for the explanation. I have always (mistakenly)
>>> thought of the type of the relationship as a sort of
>>> property.
>>>
>>> In any case, the script seems to work quite nicely, and
>>> is easy to autogenerate the parameters for from
>>> Assimilation discovery information.
>>>
>>> I discovered something surprising (a bug?) about curl --
>>> unless I give it the -g flag (don't expand globs), then
>>> it doesn't like ipv6 IP/port combinations - like
>>> [::ffff:127.0.0.1]:7474. IMHO, it shouldn't be trying
>>> to glob IP addresses...
>>>
>>> I noticed that neo4j doesn't appear to be ipv6 compliant
>>> (i.e., it doesn't listen on '::'). Is that intentional?
>>>
>>> In any case, the script seems to give neo4j some
>>> trivial, but meaningful exercise. You have to parse the
>>> query, optimize it, create a query plan, execute it,
>>> walk through the results, convert them to JSON and send
>>> them back out the REST interface. Quite a few things
>>> have to be working for it to succeed.
>>>
>>> Do you have a favorite trivial query that will succeed
>>> in any non-empty neo4j database?
>>>
>>> Do you have a better grep pattern for matching correct
>>> output?
>>>
>>>
>>>
>>> On 12/17/2013 11:18 PM, Michael Hunger wrote:
>>>> return type(r)
>>>>
>>>> Empty curly braces mean no props
>>>>
>>>> Sent from mobile device
>>>>
>>>> Am 18.12.2013 um 06:41 schrieb Alan Robertson <[email protected]>
>>>> <mailto:[email protected]>:
>>>>
>>>>> The query in the script below produces the following output:
>>>>>
>>>>> {"results":[{"columns":["one","rel","two"],"data":[{"row":[{"domain":"metadata","nodetype":"CMAclass","name":"HbRing"},{},{"domain":"metadata","nodetype":"CMAclass","name":"CMAclass"}]}]}],"errors":[]}
>>>>>
>>>>> What I noticed is that the relationship shows up as {}. Do I
>>>>> need to
>>>>> change the query to get the relationship type? [See the
>>>>> script below
>>>>> for the query]
>>>>>
>>>>> In any case, below is a script which does a passable job of
>>>>> seeing if
>>>>> Neo4j is operational (and not dead, comatose, or laying on
>>>>> the ground
>>>>> twitching)... I'm going to write an OCF resource agent using
>>>>> it - so I
>>>>> can monitor neo4j "properly". And I could also make it
>>>>> highly-available
>>>>> using Pacemaker...
>>>>>
>>>>> It can use either wget or curl to talk to Neo4j.
>>>>>
>>>>> #
>>>>> # Simple script to monitor Neo4j for basic operation
>>>>> #
>>>>> # Potential inputs to this script are:
>>>>> # ipport: IP-port combination of the neo4j REST server
>>>>> # cypher: Cypher query string
>>>>> # regex: Regular expression to match server output
>>>>> against
>>>>> # grepflags: flags to give grep
>>>>> ipport='127.0.0.1:7474 <http://127.0.0.1:7474>'
>>>>> ipport='[::ffff:127.0.0.1]:7474'
>>>>> cypher="START one=node(*) RETURN one LIMIT 1"
>>>>> # Need at least one node and one relationship for this one
>>>>> to succeed...
>>>>> cypher="START one=node(*) MATCH one-[rel]->two RETURN one,
>>>>> rel, two LIMIT 1"
>>>>> regex='^{ *"results" *: *\[.*\] *, *"errors" *: *\[ *\] *}$'
>>>>> grepflags=""
>>>>> #
>>>>> # Other variables in the script
>>>>> # queryjson: JSON-encapsulated version of cypher query
>>>>> # committrans: url suffix for committing transactions in
>>>>> one go
>>>>> # URL: URL to give to Neo4j REST service
>>>>> # header: Extra header information to give REST
>>>>> service (i.e.,
>>>>> Content-type)
>>>>> queryjson="{\"statements\" : [ { \"statement\" : \"$cypher\"
>>>>> } ] }"
>>>>> committrans='db/data/transaction/commit'
>>>>> URL=http://${ipport}/${committrans}
>>>>> header='Content-type: application/json'
>>>>> use_wget=1
>>>>>
>>>>> runquery() {
>>>>> if
>>>>> [ "$use_wget" -eq 1 ]
>>>>> then
>>>>> wget -q --header="${header}" --post-data="$queryjson"
>>>>> --output-document=- $URL
>>>>> else
>>>>> curl -s -g --header "${header}" --data "$queryjson"
>>>>> --output
>>>>> - $URL
>>>>> fi
>>>>> }
>>>>> monitor() {
>>>>> runquery | grep ${grepflags} "${regex}" >/dev/null
>>>>> }
>>>>> runquery
>>>>> monitor
>>>>> rc=$?
>>>>> echo $rc
>>>>> exit $rc
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Alan Robertson <[email protected]> <mailto:[email protected]> -
>>>>> @OSSAlanR
>>>>>
>>>>> "Openness is the foundation and preservative of friendship...
>>>>> Let me claim from you at all times your undisguised opinions." - William
>>>>> Wilberforce
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the
>>>>> Google Groups "Neo4j" group.
>>>>> To unsubscribe from this group and stop receiving emails from
>>>>> it, send an email to [email protected]
>>>>> <mailto:[email protected]>.
>>>>> For more options, visit
>>>>> https://groups.google.com/groups/opt_out.
>>>
>>>
>>> --
>>> Alan Robertson <[email protected]> <mailto:[email protected]> -
>>> @OSSAlanR
>>>
>>> "Openness is the foundation and preservative of friendship...
>>> Let me claim from you at all times your undisguised opinions." - William
>>> Wilberforce
>>>
>>>
>>
>>
>> --
>> Alan Robertson <[email protected]> <mailto:[email protected]> - @OSSAlanR
>>
>> "Openness is the foundation and preservative of friendship... Let
>> me claim from you at all times your undisguised opinions." - William
>> Wilberforce
>>
>>
>
>
> --
> Alan Robertson <[email protected]> <mailto:[email protected]> - @OSSAlanR
>
> "Openness is the foundation and preservative of friendship... Let me
> claim from you at all times your undisguised opinions." - William Wilberforce
>
>
--
Alan Robertson <[email protected]> - @OSSAlanR
"Openness is the foundation and preservative of friendship... Let me claim
from you at all times your undisguised opinions." - William Wilberforce
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.