Sprint-2012.50-Block.6.4 Notes
------------------------------

Chris B.
--------

Rob
---
Skye
----
Roger
-----
Ben
---
Robert
------
Bruce
-----
Dave
----
Matt
----
Chris
-----
Dicussion Topics
----------------
Poor man's Redmine
==================
Issue:   a node should be able to update its entry even if it is unapproved.  Matt suggests that a call to listNodes list all approved nodes and a subject's own node entry.  I think exposing the getNode call could be just as useful.

Issue: CNRead.describe() does not always include the Content-Length field. Some background info and a test URL included below. The issue appears to be caused by sysmeta objects being present while their corresponding sci objects are missing.

Tuesday 07:22:02pm        roger        Chris, Skye, Robert, Content-Length is missing from the CNRead.describe() response. Is that something that can easily be added in?
Tuesday 07:22:31pm        robert        when did it go missing?
Tuesday 07:22:43pm        robert        or did we ever have it?
Tuesday 07:22:48pm        chris        yeah, i thought we addressed that
Tuesday 07:22:49pm        roger        It probably wasn't ever there.
Tuesday 07:23:16pm        robert        how did we address it? hmmm
Tuesday 07:23:31pm        robert        there is no content-length of the describe response is there?
Tuesday 07:23:32pm        chris        i recall a ticket for it
Tuesday 07:23:38pm        robert        it is all header info

Tuesday 07:23:42pm        roger        No, it looks like this now:
Tuesday 07:24:14pm        roger        < HTTP/1.1 200 OK
Tuesday 07:24:14pm        roger        < Date: Wed, 05 Dec 2012 02:14:04 GMT
Tuesday 07:24:14pm        roger        < Server: Apache/2.2.14 (Ubuntu)
Tuesday 07:24:14pm        roger        < DataONE-Checksum: MD5,4504b4dd97f2d7a4766dfaaa3f968ec2
Tuesday 07:24:14pm        roger        < Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
Tuesday 07:24:14pm        roger        < DataONE-ObjectFormat: text/plain
Tuesday 07:24:14pm        roger        < DataONE-SerialVersion: 1
Tuesday 07:24:14pm        roger        < Vary: Accept-Encoding
Tuesday 07:24:14pm        roger        < Content-Type: text/xml;charset=UTF-8


Tuesday 07:41:40pm        roger        The Content-Length entity-header field indicates the size of the entity-body, in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD method, the size of the entity-body that would have been sent had the request been a GET.


Tuesday 07:59:03pm        chris        so roger, robert, it looks like the code is there to set the Content-Length header:
Tuesday 07:59:05pm        chris        response.addHeader("Content-Length", dr.getContent_Length() + "");
Tuesday 07:59:33pm        chris        and the length is set from sysmeta.getSize()
Tuesday 07:59:33pm        roger        Hmm.
Tuesday 07:59:46pm        chris        so i'm not sure why it's not showing up
Tuesday 07:59:56pm        roger        I wonder if it's there, but somehow gets truncated out. Because I'm also getting an odd message: * no chunk, no close, no size. Assume close to signal end
Tuesday 08:00:06pm        roger        That's from Curl.
Tuesday 08:00:06pm        chris        hmm
Tuesday 08:00:53pm        vieglais        example url?
Tuesday 08:00:57pm        chris        what pid are you testing with?
Tuesday 08:01:31pm        roger        curl -v -X HEAD 'https://cn-dev-unm-1.test.dataone.org/cn/v1/object/testMNodeTier3:201294154151906_path-ascii-doc-example-ldap:%252F%252Fldap1.example.net:6666%252Fo=University%252520of%252520Michigan,%2520c=US%253F%253Fsub%253F(cn=Babs%252520Jensen)'
Tuesday 08:01:50pm        chris        in fact, the DescribeResponse constructor requires the length
Tuesday 08:04:58pm        vieglais        do you have read permission on the object?
Tuesday 08:05:24pm        chris        curl -v -X HEAD 'https://cn-dev-unm-1.test.dataone.org/cn/v1/resolve/TierTesting:cn-dev-orc-1:Public_READ.14'
Tuesday 08:05:35pm        chris        this shows Content-Length
Tuesday 08:08:03pm        chris        although roger's example is public read too
Tuesday 08:08:14pm        vieglais        yeah, just saw that as well
Tuesday 08:08:37pm        chris        that's a crazy pid
Tuesday 08:08:56pm        vieglais        oh - try and retrieve the object - it gives a 404
Tuesday 08:09:25pm        chris        ah - maybe it was cleared from the db, but not hazelcast in the dev env
Tuesday 08:10:04pm        chris        so /meta works, but not HEAD or GET /object
Tuesday 08:10:27pm        skye        i get a Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): in chrome on /object
Tuesday 08:10:34pm        chris        eh, but the describe response is just a subset of getSystemMetadata()
Tuesday 08:11:11pm        roger        The PID was retrieved from Solr. Maybe they fell out of sync.
Tuesday 08:11:16pm        skye        https://cn-dev-unm-1.test.dataone.org/cn/v1/object/testMNodeTier3:201294154151906_path-ascii-doc-example-ldap:%252F%252Fldap1.example.net:6666%252Fo=University%252520of%252520Michigan,%2520c=US%253F%253Fsub%253F(cn=Babs%252520Jensen)
Tuesday 08:11:35pm        vieglais        in any case, the describe method should be returning a 404
Tuesday 08:12:49pm        robert        rob, can you provide any details on that crazy pid? should it return a valid object?
Tuesday 08:13:06pm        skye        this works https://cn-dev-unm-1.test.dataone.org/cn/v1/meta/testMNodeTier3:201294154151906_path-ascii-doc-example-ldap:%252F%252Fldap1.example.net:6666%252Fo=University%252520of%252520Michigan,%2520c=US%253F%253Fsub%253F(cn=Babs%252520Jensen)
Tuesday 08:13:41pm        rob        oh, I thought Roger was the one with the crazy pid
Tuesday 08:13:45pm        roger        Skye, did you only change /object to /meta?
Tuesday 08:13:51pm        skye        yes
Tuesday 08:13:52pm        chris        yeah, so the system metadata are there, so describe() get's populated.
Tuesday 08:14:16pm        roger        Rob, ha
Tuesday 08:14:43pm        rob        that's an object created to test character escaping
Tuesday 08:15:08pm        rob        but whether it's represented correctly or not is the question, eh?
Tuesday 08:15:55pm        chris        the Content-Length is supposed to be 684336
Tuesday 08:17:06pm        vieglais        really? seems large for a test object?
Tuesday 08:17:44pm        rob        it's a metadata object so it could be retrieved from a CN
Tuesday 08:17:49pm        chris        yeah, that's what's in the pgsql table on cn-dev-unm-1
Tuesday 08:22:14pm        rob        I get the sysmeta as well when I use the properly escaped URL:
Tuesday 08:22:17pm        rob        https://cn-dev-unm-1.test.dataone.org/cn/v1/resolve/testMNodeTier3%3A201294154151906_path-ascii-doc-example-ldap%3A%252F%252Fldap1.example.net%3A6666%252Fo%3DUniversity%252520of%252520Michigan%2C%2520c%3DUS%253F%253Fsub%253F%28cn%3DBabs%252520Jensen%29
Tuesday 08:24:13pm        rob        when I change to /object/testMNode(etc) I get an interesting exception in Chrome: "Duplicate headers received from server" … "Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Multiple distinct Content-Disposition headers received. This is disallowed to protect against HTTP response splitting attacks."
Tuesday 08:24:57pm        roger        Maybe Chris is tweaking that right now?
Tuesday 08:25:09pm        chris        no - no changes
Tuesday 08:25:31pm        chris        i'm just looking at metacat tables - the document isn't registered. just the sysmeta
Tuesday 08:25:47pm        chris        i think that's the disconnect here