style95 commented on a change in pull request #2248: Make invoker be scaled-out
via ansible. (#2247)
URL:
https://github.com/apache/incubator-openwhisk/pull/2248#discussion_r116690032
##########
File path: ansible/roles/invoker/tasks/deploy.yml
##########
@@ -31,6 +31,24 @@
linuxOptions: "-v
/usr/lib/x86_64-linux-gnu/libapparmor.so.1:/usr/lib/x86_64-linux-gnu/libapparmor.so.1"
when: whisk_version_name != "mac"
+- name: get running invoker information
+ shell: >
+ curl -Gs http://{{ inventory_hostname }}:{{ docker.port
}}/containers/json --data-urlencode 'filters={"name":[ "invoker" ]}'
+ register: results
+
+- name: register invoker infomation from curl results
+ set_fact: invokerInfo="{{results.stdout|from_json}}"
+
+- name: determine if more than one invokers are running
+ fail: msg="more than one invokers are running"
+ with_items: {invokerInfo.stdout_lines}
+ when: "{{ invokerInfo|length > 1 }}"
+
+- name: determine if index of invoker is same with index of inventory host
+ fail: msg="invoker index is invalid {{item.Names}}
/invoker{{play_hosts.index(inventory_hostname)}}"
+ with_items: "{{ invokerInfo }}"
+ when: '"{{ item.Names[0] }}" !=
"/invoker{{play_hosts.index(inventory_hostname)}}"'
Review comment:
Yes to prevent that case, those lines are required.
Those lines prevent to run multiple invokers and run new invoker with new
index.
If there is already running invoker with index 0, second task will fail due
to new index 1.
One presumption is there will be only one invoker running on each hosts.
----------------------------------------------------------------
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