jiangpengcheng opened a new issue #4022: Status code '405 Method Not Allowed' 
was returned from ElasticSearchStore
URL: https://github.com/apache/incubator-openwhisk/issues/4022
 
 
   When I use ElasticSearchStore to fetch activation logs, system will report 
such error, I think it is raised from elasticsearch's `_search` API
   
   Then I checked the code, and found below in 
`whisk/core/containerpool/logging/ElasticSearchRestClient.scala`:
   
   ```scala
     def search[T: RootJsonReader](index: String,
                                   payload: EsQuery = EsQuery(EsQueryAll()),
                                   headers: List[HttpHeader] = List.empty): 
Future[Either[StatusCode, T]] =
       requestJson[T](mkJsonRequest(POST, Uri(index), 
payload.toJson.asJsObject, baseHeaders ++ headers))
   ```
   
   what confused me is that the uri for search in ES should be like 
`${index_name}/_search` while uri in above codes is not
   
   I'm not sure whether this is a bug or meant to be like this(then I missed 
something)
   
   ## Environment details:
   
   * lambda version: latest master branch
   * elasticsearch version: 6.3.2
   
   ## Steps to reproduce the issue:
   
   1.   start a elasticsearch container
   
   ```
   docker run -td --name es -p 9200:9200 
docker.elastic.co/elasticsearch/elasticsearch:6.3.2
   ```
   
   2. edit config for logstash and start it
   
   ```
   input {
     file {
       path => "/tmp/wsklogs/invoker0/userlogs-*.log"
       codec => "json"
     }
   }
   
   output {
     elasticsearch{
       hosts => ["http://x.x.x.x:9200";]
       index => "whisk_user_logs"
     }
   }
   ```
   
   3.   deploy the openwhisk on a single node, with below options added to 
`ansible/group_vars/all`
   
   ```
   userLogs_spi: whisk.core.containerpool.logging.ElasticSearchLogStoreProvider
   invoker_extraEnv:
     - CONFIG_whisk_logstore_elasticsearch_protocol: http
     - CONFIG_whisk_logstore_elasticsearch_host: x.x.x.x
     - CONFIG_whisk_logstore_elasticsearch_port: 9200
     - CONFIG_whisk_logstore_elasticsearch_path: /whisk_user_logs
     - CONFIG_whisk_logstore_elasticsearch_logSchema_userLogs: logs
     - CONFIG_whisk_logstore_elasticsearch_logSchema_message: namespaceId
     - CONFIG_whisk_logstore_elasticsearch_logSchema_activationId: activationId
     - CONFIG_whisk_logstore_elasticsearch_logSchema_stream: stream
     - CONFIG_whisk_logstore_elasticsearch_logSchema_time: time
   controller_extraEnv:
     - CONFIG_whisk_logstore_elasticsearch_protocol: http
     - CONFIG_whisk_logstore_elasticsearch_host: x.x.x.x
     - CONFIG_whisk_logstore_elasticsearch_port: 9200
     - CONFIG_whisk_logstore_elasticsearch_path: /whisk_user_logs
     - CONFIG_whisk_logstore_elasticsearch_logSchema_userLogs: logs
     - CONFIG_whisk_logstore_elasticsearch_logSchema_message: namespaceId
     - CONFIG_whisk_logstore_elasticsearch_logSchema_activationId: activationId
     - CONFIG_whisk_logstore_elasticsearch_logSchema_stream: stream
     - CONFIG_whisk_logstore_elasticsearch_logSchema_time: time
   ```
   
   4.   invoke an action and get its activation's log:
   
   ```
   curl -k 
https://789c46b1-71f6-4ed5-8c54-816aa4f8c502:abczO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP@localhost/api/v1/namespaces/_/activations/38598e4c588f43f6998e4c588f53f666/logs
   ```
   
   
   ## Provide the expected results and outputs:
   
   ```
   # curl -k 
https://789c46b1-71f6-4ed5-8c54-816aa4f8c502:abczO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP@localhost/api/v1/namespaces/_/activations/38598e4c588f43f6998e4c588f53f666/logs
   {"logs":[]}
   ```
   
   
   ## Provide the actual results and outputs:
   
   ```
   # curl -k 
https://789c46b1-71f6-4ed5-8c54-816aa4f8c502:abczO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP@localhost/api/v1/namespaces/_/activations/38598e4c588f43f6998e4c588f53f666/logs
   {"error":"Status code '405 Method Not Allowed' was returned from log 
store","code":"5c81a8b7b2fc5b840a61f6e175e1d30a"}
   ```
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to