This post is more than 5 years old
56 Posts
0
2454
ECS Atmos Query 405 Error
Hi,
We're running a test ECS 3.0.0.0 ( ECS Object Version 3.0.0.0.86239.1c9e5ec) and trying to test the Atmos protocol. After creating a subtenant and writing out some using the classic object interface, we are now attempting to query the subtenant by doing a listable tag search. Unfortunately, the device is giving us a 405 error which seems odd to me. (Note that we also tried the ECS test drive and that gave us a 503 error.) Here is the trace from our application logs, any help much appreciated:
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Found bundle for host 192.168.50.2: 0x5cc1c650
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Re-using existing connection! (#5) with host 192.168.50.2
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Connected to 192.168.50.2 (192.168.50.2) port 9022 (#5)
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:2:H/O Message:GET /rest/objects?listabletags HTTP/1.1
Host: 192.168.50.2:9022
Accept: */*
content-type: application/octet-stream
date: Wed, 06 Sep 2017 13:51:03 GMT
x-emc-tags: EAS_Query_ECS
x-emc-uid: b424271860ed483aad24152edd7a8f02/amarcionek
x-emc-signature: 2/h0/IeamD2YlyuLVqo9Jslop9M=
-
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:HTTP/1.1 405 Method Not Allowed
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Date: Wed, 06 Sep 2017 13:51:15 GMT
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Allow: OPTIONS,PUT
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Cache-Control: must-revalidate,no-cache,no-store
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Content-Type: text/html;charset=iso-8859-1
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Content-Length: 352
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Server: ViPR/1.0
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:1:H/I Message:
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:3:D/I Size:352
09/06/2017 09:51:03 (3158/4140) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Connection #5 to host 192.168.50.2 left intact
09/06/2017 09:51:03 (3158/4140) 0: DBG: CAtmosArchiveMgr GetListableTags HDR Response: HTTP/1.1 405 Method Not Allowed
Date: Wed, 06 Sep 2017 13:51:15 GMT
Allow: OPTIONS,PUT
Cache-Control: must-revalidate,no-cache,no-store
Content-Type: text/html;charset=iso-8859-1
Content-Length: 352
Server: ViPR/1.0
09/06/2017 09:51:03 (3158/4140) 0: DBG: CAtmosArchiveMgr GetListableTags BODY Response:
09/06/2017 09:51:03 (3158/4140) 1: CAtmosArchiveMgr GetListableTags Failed - HTTP:405 API Error:1 API String:
09/06/2017 09:51:03 (3158/4140) 5: CAtmosArchiveMgr SearchFindNextLevel Failed GetListableTags
09/06/2017 09:51:03 (3158/4140) 0: DBG: CAtmosArchiveMgr LogQuery - ESearchGetNextResult Returning (5)
09/06/2017 09:51:03 (3158/4140) 0: DBG: CAtmosArchiveMgr LogQuery - ESearchCloseHandle Closed
benschumacher
75 Posts
0
September 18th, 2017 10:00
I tracked down your request and can see the SHA1 hash came in all uppercase.
This is the error from ECS log:
2017-09-15T18:28:22,504 [qtp97281693-3786845-0c07c835:15e1b9efa69:1a3d8:0-atmos-96.86.85.161] ERROR ObjectControllerExceptionHelper.java (line 231) Method createObject ObjectInfo: [id=602b048cdc9f93eb70cb897f7ffeb09ddb5f7739024ce016cbf1
7113a8f60ffc, CoS=urn:storageos:VirtualArray:53e41b92-1f5a-46e6-9404-a647b7899523.urn:storageos:ReplicationGroupInfo:104b3728-fba1-41b3-8055-4592348f1d24:global, AbsoluteExpiryDate=IGNORE, ExpiryInDays=null, FAMode=disabled, PreviousFAMo
de=, FAStartVersion=0, FAEndVersion=0, ObjectOwnerZone=null, objectOwnerRecordListnull, keyName=602b048cdc9f93eb70cb897f7ffeb09ddb5f7739024ce016cbf17113a8f60ffc] hit error, failed due to exception
com.emc.storageos.data.object.exception.ObjectControllerException: computed=da39a3ee5e6b4b0d3255bfef95601890afd80709, received=DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
Can you check your hashing logic and retry?
Thanks,
Ben
benschumacher
75 Posts
0
September 7th, 2017 07:00
What client/SDK are you using to execute this request? I tested using ECS Test Drive and it worked. I was using the atmos-dotnet client (GitHub - EMCECS/atmos-dotnet: Automatically exported from code.google.com/p/atmos-dotnet) to run my test and I got a 200 response.
GET https://atmos.ecstestdrive.com/rest/objects?listabletags HTTP/1.1
x-emc-uid: 64c6f9405a144cedb177e35a815f087d/130820690509421904@ecstestdrive.emc.com
x-emc-tags: EAS_Query_ECS
Date: Thu, 07 Sep 2017 14:39:23 GMT
x-emc-signature: tbp6S7DVkqbc3pdEmieGkMYSLM0=
Host: atmos.ecstestdrive.com
HTTP/1.1 200 OK
Date: Thu, 07 Sep 2017 14:39:48 GMT
x-emc-listable-tags:
x-emc-retention-period: 0
x-emc-policy: _int
x-emc-request-id: 0c07c833:15e1b70401e:c906:b
Content-Length: 0
I'd like to try testing with your client if possible.
Ben
amarcionek
56 Posts
0
September 11th, 2017 06:00
Hi Ben,
The SDK in question is a private C++ one developed by my company. Its basically a wrapper libcurl. So I can't really share it. I was hoping something about the request would be obvious.
I too tried the Java API and got it to work just as you did, although I'm having a bit of a different problem in that my tags aren't showing up when I do nesting. I will see if I can get debug logging for that today.
benschumacher
75 Posts
0
September 14th, 2017 08:00
Can you execute the request again using ECS Test Drive? Then, I can pull logs from the ECS to get more information.
amarcionek
56 Posts
0
September 14th, 2017 09:00
The 503 against ECS Test Drive was caused by not using HTTPS. Changed that, now I'm getting 200 on GET /rest/service but any call on /rest/objects I'm getting a 403:
09/14/2017 11:58:53 (6acc/71c4) 0: DBG: CAtmosArchiveMgr HASH String:
GET
application/octet-stream
Thu, 14 Sep 2017 15:58:53 GMT
/rest/objects
x-emc-limit:1
x-emc-tags:EAS_Query_ECS
x-emc-uid:130894922553786134@ecstestdrive.emc.com
09/14/2017 11:58:53 (6acc/71c4) 0: DBG: CAtmosArchiveMgr KEY String:
565Ujmhzx0TDI1lZYa0+5skLxSmQ1yuwlKGZCMwD
09/14/2017 11:58:53 (6acc/71c4) 0: DBG: CAtmosArchiveMgr SHA1 Signature: M40BLhAJMLcmwPbJ5aiZ11UDQME=
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Hostname was found in DNS cache
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: Trying 12.7.200.31...
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:TCP_NODELAY set
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Connected to atmos.ecstestdrive.com (12.7.200.31) port 443 (#27)
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:error setting certificate verify locations, continuing anyway:
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: CAfile: E:\Storfirst\Bin\ca-bundle.crt
CApath: none
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSL re-using session ID
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS handshake, Client hello (1):
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:6:S/O Size:512
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS handshake, Server hello (2):
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:5:S/I Size:86
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS change cipher, Client hello (1):
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:5:S/I Size:1
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS handshake, Finished (20):
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:5:S/I Size:16
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS change cipher, Client hello (1):
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:6:S/O Size:1
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS handshake, Finished (20):
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:6:S/O Size:16
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Server certificate:
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: subject: C=US; ST=Massachusetts; L=Bedford; O=EMC; OU=Advanced Software Division; CN=*.object.ecstestdrive.com
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: start date: 2015-12-04 00:00:00 GMT
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: expire date: 2017-12-02 23:59:59 GMT
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: issuer: C=US; O=thawte, Inc.; CN=thawte SHA256 SSL CA
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message: SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:2:H/O Message:GET /rest/objects HTTP/1.1
Host: atmos.ecstestdrive.com
Accept: */*
content-type: application/octet-stream
date: Thu, 14 Sep 2017 15:58:53 GMT
x-emc-limit: 1
x-emc-tags: EAS_Query_ECS
x-emc-uid: 130894922553786134@ecstestdrive.emc.com
x-emc-signature: M40BLhAJMLcmwPbJ5aiZ11UDQME=
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:1:H/I Message:HTTP/1.1 403 Forbidden
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Date: Thu, 14 Sep 2017 15:59:05 GMT
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:1:H/I Message:x-emc-request-id: 0c07c833:15e1b70401e:17bf3:0
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Content-Type: text/plain
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Transfer-Encoding: chunked
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:1:H/I Message:
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:3:D/I Size:4
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:3:D/I Size:188
09/14/2017 11:58:53 (6acc/71c4) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Connection #27 to host atmos.ecstestdrive.com left intact
09/14/2017 11:58:53 (6acc/71c4) 0: DBG: CAtmosArchiveMgr CheckRootObject HDR Response: HTTP/1.1 403 Forbidden
Date: Thu, 14 Sep 2017 15:59:05 GMT
x-emc-request-id: 0c07c833:15e1b70401e:17bf3:0
Content-Type: text/plain
Transfer-Encoding: chunked
09/14/2017 11:58:53 (6acc/71c4) 0: DBG: CAtmosArchiveMgr CheckRootObject XML Content Response:
09/14/2017 11:58:53 (6acc/71c4) 1: CAtmosArchiveMgr CheckRootObject Failed - HTTP:403 API Error:1 API String:
09/14/2017 11:58:53 (6acc/71c4) 1: CAtmosArchiveMgr EConnect Failed CheckRootObject for Target "ECS"
benschumacher
75 Posts
0
September 15th, 2017 06:00
Looks like your x-emc-uid in the request header is wrong. It should be in the format subtenant-id/uid.
In my example about (using ECS Test Drive), you can see mine is: 64c6f9405a144cedb177e35a815f087d/130820690509421904@ecstestdrive.emc.com
Can you check that?
Ben
benschumacher
75 Posts
0
September 15th, 2017 09:00
Okay, first thing. We deleted your previous post to protect sharing your credentials. Second, the link to generate an Atmos subtenant was accidentally removed from the website. I apologize for that. However, after you log in, you can type this into your URL: https://portal.ecstestdrive.com/Credentials/Atmos
That will take you to a page where you can generate your new subtenant ID.
Ben
chris_arnett
110 Posts
0
September 15th, 2017 09:00
Please do not send or post secret keys. This presents a security concern for the owner of the account as well as the ECS Test Drive system.
amarcionek
56 Posts
0
September 15th, 2017 11:00
Now I get a 400 error on POST /rest/objects:
09/15/2017 14:28:11 (65e0/29c8) 0: DBG: CAtmosArchiveMgr HASH String:
POST
application/octet-stream
Fri, 15 Sep 2017 18:28:11 GMT
/rest/objects
x-emc-listable-meta:EAS_Query_ECS=1
x-emc-uid: xxxx
x-emc-wschecksum:xxxx
09/15/2017 14:28:11 (65e0/29c8) 0: DBG: CAtmosArchiveMgr KEY String: xxxx
09/15/2017 14:28:11 (65e0/29c8) 0: DBG: CAtmosArchiveMgr SHA1 Signature: xxxx
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Found bundle for host atmos.ecstestdrive.com: 0x5cab2600
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Re-using existing connection! (#6) with host atmos.ecstestdrive.com
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Connected to atmos.ecstestdrive.com (12.7.200.31) port 443 (#6)
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:2:H/O Message:POST /rest/objects HTTP/1.1
Host: atmos.ecstestdrive.com
Accept: */*
content-type: application/octet-stream
date: Fri, 15 Sep 2017 18:28:11 GMT
x-emc-listable-meta: EAS_Query_ECS=1
x-emc-uid: xxxx
x-emc-wschecksum: xxxx
x-emc-signature: xxxx
Content-Length: 0
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:1:H/I Message:HTTP/1.1 400 Bad Request
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Date: Fri, 15 Sep 2017 18:28:22 GMT
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:1:H/I Message:x-emc-request-id: 0c07c835:15e1b9efa69:1a3d8:0
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Content-Type: text/plain
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:1:H/I Message:Transfer-Encoding: chunked
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:0:Txt Message:HTTP error before end of send, stop sending
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:1:H/I Message:
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:3:D/I Size:4
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:3:D/I Size:244
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:0:Txt Message:Closing connection 6
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:0:Txt Message:SSLv3, TLS alert, Client hello (1):
09/15/2017 14:28:11 (65e0/29c8) 0: HTTPClient Dbg Callback: Type:6:S/O Size:2
09/15/2017 14:28:11 (65e0/29c8) 0: DBG: CAtmosArchiveMgr CheckRootObject HDR Response: HTTP/1.1 400 Bad Request
Date: Fri, 15 Sep 2017 18:28:22 GMT
x-emc-request-id: 0c07c835:15e1b9efa69:1a3d8:0
Content-Type: text/plain
Transfer-Encoding: chunked
09/15/2017 14:28:11 (65e0/29c8) 0: DBG: CAtmosArchiveMgr CheckRootObject XML Content Response:
09/15/2017 14:28:11 (65e0/29c8) 1: CAtmosArchiveMgr CheckRootObject Failed - HTTP:400 API Error:1 API String:
09/15/2017 14:28:11 (65e0/29c8) 1: CAtmosArchiveMgr EConnect Failed CheckRootObject for Target "ECS"
amarcionek
56 Posts
0
September 19th, 2017 10:00
Bingo, that was it. Thanks for the help!