[ 
https://issues.apache.org/jira/browse/KNOX-144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on KNOX-144 started by Kevin Minder.

> Ensure cluster topology details are rewritten for HBase/Stargate REST APIs
> --------------------------------------------------------------------------
>
>                 Key: KNOX-144
>                 URL: https://issues.apache.org/jira/browse/KNOX-144
>             Project: Apache Knox
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.3.0
>            Reporter: Kevin Minder
>            Assignee: Kevin Minder
>            Priority: Blocker
>             Fix For: 0.3.0
>
>
> From: Vladimir
> There are 2 requests where HBase returns internal cluster structure, Region 
> Server address in particular (marked in red). Didn't noticed this earlier. 
> Since it's not http address of Region Server should we actually hide it? If 
> 'yes' then how it should be rewritten in Knox not to break existing 
> HBase/Stargate clients? 
> GET http://localhost:8080/status/cluster
> {   "requests":36125,
>    "LiveNodes":[
>       {
>          "name":"dev01.hortonworks.com:60020",
>          "requests":0,
>          "startCode":1379004777978,
>          "Region":[
>             {
>                
> "name":"YW1iYXJpc21va2V0ZXN0LCwxMzc5MDA1MDIyNjc4LjkzN2M3YTcxODBlNTQ3Y2NiMDQ1ODdlNzA3Y2U1MTIyLg==",
>                "readRequestsCount":0,
>                "writeRequestsCount":1,
>                "stores":1,
>                "storefiles":1,
>                "storefileSizeMB":0,
>                "memstoreSizeMB":0,
>                "storefileIndexSizeMB":0,
>                "rootIndexSizeKB":0,
>                "totalStaticIndexSizeKB":0,
>                "totalStaticBloomSizeKB":0,
>                "totalCompactingKVs":0,
>                "currentCompactedKVs":0
>             },
>             ...
>          ],
>          "heapSizeMB":60,
>          "maxHeapSizeMB":1004
>       }
>    ],
>    "DeadNodes":[
>    ],
>    "regions":5,
>    "averageLoad":5.0
> }
> GET http://localhost:8080/test_table/regions
> {
>    "name":"test_table",
>    "Region":[
>       {
>          "endKey":"",
>          "id":1379330509662,
>          "location":"dev01.hortonworks.com:60020",
>          "name":"test_table,,1379330509662.0381e0912d8802b53b3946987736748e.",
>          "startKey":""
>       }
>    ]
> }
> From: Kevin
> I can think of four things we can do. 
>     Remove the value: "name":""
>     Hash the value: "name":"asdkljhasdfjkhasdkjlhsd"
>         This would make sense only if we never needed to get the original 
> value back.
>     Encrypt the value.
>         The value of this beyond hashing would be that we could decrypt on 
> input if required.
>         Number 5 below would make this easier though.
>     Replace with a URL that has the address encoded/encrypted as part of its 
> query string.
>         
> region://knox-host:8334/gateway/cluster/hbase?_=asdlkjasdlajsdklasdflkjsda
>         This would make it easier to detect in incoming URLs and rewrite back 
> to host:port.
>         This is similar to how datanode addresses are handled
> Note that we can do different things for "name" and "location" if required.
> From Vinay:
> I think option 4 should be the default. IMO, it shields the cluster topology 
> from leaking out and with Knox being able to encode/decode (or is it 
> encrypt/decrypt) the internal cluster nodes aren't directly addressable.
> This seems like the right behavior to me.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to