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

Neha Sinha updated METRON-324:
------------------------------
    Description: 
In some of the deployments where elasticsearch service goes down for no reason 
during execution, the error that user is presented with is :-

fatal: [node1]: FAILED! => {"failed": true, "msg": "ERROR! The conditional 
check 'result.content.find(\"green\") != -1 or result.content.find(\"yellow\") 
!= -1' failed. The error was: ERROR! error while evaluating conditional 
(result.content.find(\"green\") != -1 or result.content.find(\"yellow\") != 
-1): ERROR! 'dict object' has no attribute 'content'"}

This is ambiguous error as the user is not sure if it's an issue with the 
ansible version or the service/product deployment itself.

The task "Wait for Index to Become Available" in load_templates.yml reads like 
this :-
==========================================================
- name: Wait for Index to Become Available
  uri:
    url: "http://{{ inventory_hostname }}:{{ elasticsearch_web_port 
}}/_cat/health"
    method: GET
    status_code: 200
    return_content: yes
  register: result
  until: result.content.find("green") != -1 or result.content.find("yellow") != 
-1
  retries: 10
  delay: 60
===========================================================

We should validate foe variable "result" not being null/empty before executing 
the "until" block which specifically looks up the field result.content.
Also additional check should be made that elasticservice is not down while the 
task is being executed.

Regards,
Neha

  was:
The task "Wait for Index to Become Available" in load_templates.yml reads like 
this :-
==========================================================
- name: Wait for Index to Become Available
  uri:
    url: "http://{{ inventory_hostname }}:{{ elasticsearch_web_port 
}}/_cat/health"
    method: GET
    status_code: 200
    return_content: yes
  register: result
  until: result.content.find("green") != -1 or result.content.find("yellow") != 
-1
  retries: 10
  delay: 60
===========================================================

We should validate foe variable "result" not being null/empty before executing 
the "until" block which specifically looks up the field result.content.

In some of the deployments where elasticsearch service goes down for no reason 
during execution of the above task the error that user is presented with is :-
fatal: [node1]: FAILED! => {"failed": true, "msg": "ERROR! The conditional 
check 'result.content.find(\"green\") != -1 or result.content.find(\"yellow\") 
!= -1' failed. The error was: ERROR! error while evaluating conditional 
(result.content.find(\"green\") != -1 or result.content.find(\"yellow\") != 
-1): ERROR! 'dict object' has no attribute 'content'"}

This is ambiguous error as the user is not sure if it's an issue with the 
ansible version or the service/product deployment itself.

Regards,
Neha


> Deployment fails ambiguously when elasticsearch is down
> -------------------------------------------------------
>
>                 Key: METRON-324
>                 URL: https://issues.apache.org/jira/browse/METRON-324
>             Project: Metron
>          Issue Type: Bug
>    Affects Versions: 0.2.1BETA
>            Reporter: Neha Sinha
>            Priority: Minor
>
> In some of the deployments where elasticsearch service goes down for no 
> reason during execution, the error that user is presented with is :-
> fatal: [node1]: FAILED! => {"failed": true, "msg": "ERROR! The conditional 
> check 'result.content.find(\"green\") != -1 or 
> result.content.find(\"yellow\") != -1' failed. The error was: ERROR! error 
> while evaluating conditional (result.content.find(\"green\") != -1 or 
> result.content.find(\"yellow\") != -1): ERROR! 'dict object' has no attribute 
> 'content'"}
> This is ambiguous error as the user is not sure if it's an issue with the 
> ansible version or the service/product deployment itself.
> The task "Wait for Index to Become Available" in load_templates.yml reads 
> like this :-
> ==========================================================
> - name: Wait for Index to Become Available
>   uri:
>     url: "http://{{ inventory_hostname }}:{{ elasticsearch_web_port 
> }}/_cat/health"
>     method: GET
>     status_code: 200
>     return_content: yes
>   register: result
>   until: result.content.find("green") != -1 or result.content.find("yellow") 
> != -1
>   retries: 10
>   delay: 60
> ===========================================================
> We should validate foe variable "result" not being null/empty before 
> executing the "until" block which specifically looks up the field 
> result.content.
> Also additional check should be made that elasticservice is not down while 
> the task is being executed.
> Regards,
> Neha



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to