# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
---
# This role installs invokers.

- import_tasks: docker_login.yml

- name: "pull invoker image with tag {{docker.image.tag}}"
  shell: "docker pull {{docker_registry}}{{item}}:{{docker.image.tag}}"
  with_items:
    - '{{ docker.image.prefix }}/invoker'
  when: docker_registry != ""
  retries: "{{ docker.pull.retries }}"
  delay: "{{ docker.pull.delay }}"

###
# This task assumes that the images are local to the invoker host already if there is no prefix or tag
# which is usually the case for a local deployment. A distributed deployment will specify the prefix, or tag
# to pull the images from the appropriate registry. If a runtimes_registry is optionally specified, pull images
# from there; this permits a (private) registry to be used for caching the images. The registry if specified
# must include a trailing '/'.
#
- name: "pull runtime action images per manifest"
  shell: "docker pull {{runtimes_registry | default()}}{{item.prefix}}/{{item.name}}:{{item.tag | default()}}"
  with_items: "{{ runtimesManifest.runtimes.values() | sum(start=[]) | selectattr('deprecated', 'equalto',false)  | map(attribute='image') | list | unique }}"
  when: skip_pull_runtimes is not defined or skip_pull_runtimes != True
  retries: "{{ docker.pull.retries }}"
  delay: "{{ docker.pull.delay }}"

###
# See comment above for pulling other runtime images.
#
- name: "pull blackboxes action images per manifest"
  shell: "docker pull {{runtimes_registry | default()}}{{item.prefix}}/{{item.name}}:{{item.tag | default()}}"
  with_items:
    - "{{ runtimesManifest.blackboxes }}"
  when: skip_pull_runtimes is not defined or skip_pull_runtimes != True
  retries: "{{ docker.pull.retries }}"
  delay: "{{ docker.pull.delay }}"

- name: "determine docker root dir on docker-machine"
  uri:  url="http://{{ ansible_host }}:{{ docker.port }}/info" return_content=yes
  register: dockerInfo_output
  when: environmentInformation.type == 'docker-machine'

- set_fact:
    dockerInfo: "{{ dockerInfo_output['json'] }}"
  when: environmentInformation.type == "docker-machine"

- name: "determine docker root dir"
  shell: echo -e "GET http:/v1.24/info HTTP/1.0\r\n" | nc -U /var/run/docker.sock | grep "{"
  args:
    executable: /bin/bash
  register: dockerInfo_output
  when: environmentInformation.type != "docker-machine"

- set_fact:
    dockerInfo: "{{ dockerInfo_output.stdout|from_json }}"
  when: environmentInformation.type != "docker-machine"

- name: ensure invoker log directory is created with permissions
  file:
    path: "{{ whisk_logs_dir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}"
    state: directory
    mode: 0777
  become: "{{ logs.dir.become }}"

- name: ensure invoker config directory is created with permissions
  file:
    path: "{{ invoker.confdir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}"
    state: directory
    mode: 0777
  become: "{{ invoker.dir.become }}"

- name: "copy kafka truststore/keystore"
  when: kafka.protocol == 'SSL'
  copy:
    src: "{{ openwhisk_home }}/ansible/roles/kafka/files/{{ kafka.ssl.keystore.name }}"
    dest: "{{ invoker.confdir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}"

- name: check, that required databases exist
  include_tasks: "{{ openwhisk_home }}/ansible/tasks/db/checkDb.yml"
  vars:
    dbName: "{{ item }}"
  with_items:
  - "{{ db.whisk.actions }}"
  - "{{ db.whisk.activations }}"

- name: get running invoker information
  uri: url="http://{{ ansible_host }}:{{ docker.port }}/containers/json?filters={{ '{"name":[ "invoker" ],"ancestor":[ "invoker" ]}' | urlencode }}" return_content=yes
  register: invokerInfo_output
  when: environmentInformation.type == "docker-machine"

- set_fact:
    invokerInfo: "{{ invokerInfo_output['json'] }}"
  when: environmentInformation.type == "docker-machine"

- name: "get invoker info"
  shell: |
    INFO=`echo -e "GET http:/v1.24/containers/json?filters={{ '{"name":[ "invoker" ],"ancestor":[ "invoker" ]}' | urlencode }} HTTP/1.0\r\n" | nc -U /var/run/docker.sock | grep "{"`
    if [ -z "$INFO" ]; then
      echo []
    else
      echo $INFO
    fi
  args:
    executable: /bin/bash
  register: invokerInfo_output
  when: environmentInformation.type != "docker-machine"

- set_fact:
    invokerInfo: "{{ invokerInfo_output.stdout|from_json }}"
  when: environmentInformation.type != "docker-machine"

- name: determine if more than one invoker is running
  fail:
    msg: "more than one invoker is running"
  when: not invoker.allowMultipleInstances and invokerInfo|length > 1

- name: determine if index of invoker is same with index of inventory host
  fail:
    msg: "invoker index is invalid. expected: /invoker{{ groups['invokers'].index(inventory_hostname) }} found: {{ item.Names[0] }}"
  with_items: "{{ invokerInfo }}"
  when: not invoker.allowMultipleInstances and item.Names[0] != "/invoker{{ groups['invokers'].index(inventory_hostname) }}"

- name: copy jmxremote password file
  when: jmx.enabled
  template:
    src: "jmxremote.password.j2"
    dest: "{{ invoker.confdir  }}/invoker{{ groups['invokers'].index(inventory_hostname) }}/jmxremote.password"
    mode: 0777

- name: copy jmxremote access file
  when: jmx.enabled
  template:
    src: "jmxremote.access.j2"
    dest: "{{ invoker.confdir  }}/invoker{{ groups['invokers'].index(inventory_hostname) }}/jmxremote.access"
    mode: 0777

- name: add additional jvm params if jmxremote is enabled
  when: jmx.enabled
  set_fact:
    invoker_args: "{{ invoker.arguments }} {{ invoker.jmxremote.jvmArgs }}"

- name: prepare invoker ports
  set_fact:
    ports_to_expose: ["{{ invoker.port + groups['invokers'].index(inventory_hostname) }}:8080"]

- name: expose additional ports if jmxremote is enabled
  when: jmx.enabled
  set_fact:
    ports_to_expose: "{{ ports_to_expose }} + [ \"{{ jmx.basePortInvoker + groups['invokers'].index(inventory_hostname) }}:{{ jmx.basePortInvoker + groups['invokers'].index(inventory_hostname) }}\" ] + [ \"{{ jmx.rmiBasePortInvoker + groups['invokers'].index(inventory_hostname) }}:{{ jmx.rmiBasePortInvoker + groups['invokers'].index(inventory_hostname) }}\" ]"

- name: prepare invoker env
  set_fact:
    invoker_env:
      "JAVA_OPTS": "-Xmx{{ invoker.heap }} -XX:+CrashOnOutOfMemoryError -XX:+UseGCOverheadLimit -XX:ErrorFile=/logs/java_error.log"
      "INVOKER_OPTS": "{{ invoker_args | default(invoker.arguments) }}"
      "JMX_REMOTE": "{{ jmx.enabled }}"
      "COMPONENT_NAME": "invoker{{ groups['invokers'].index(inventory_hostname) }}"
      "PORT": 8080
      "KAFKA_HOSTS": "{{ kafka_connect_string }}"
      "CONFIG_whisk_kafka_replicationFactor": "{{ kafka.replicationFactor | default() }}"
      "CONFIG_whisk_kafka_topics_invoker_retentionBytes": "{{ kafka_topics_invoker_retentionBytes | default() }}"
      "CONFIG_whisk_kafka_topics_invoker_retentionMs": "{{ kafka_topics_invoker_retentionMS | default() }}"
      "CONFIG_whisk_kakfa_topics_invoker_segmentBytes": "{{ kafka_topics_invoker_segmentBytes | default() }}"
      "CONFIG_whisk_kafka_common_securityProtocol": "{{ kafka.protocol }}"
      "CONFIG_whisk_kafka_common_sslTruststoreLocation": "/conf/{{ kafka.ssl.keystore.name }}"
      "CONFIG_whisk_kafka_common_sslTruststorePassword": "{{ kafka.ssl.keystore.password }}"
      "CONFIG_whisk_kafka_common_sslKeystoreLocation": "/conf/{{ kafka.ssl.keystore.name }}"
      "CONFIG_whisk_kafka_common_sslKeystorePassword": "{{ kafka.ssl.keystore.password }}"
      "CONFIG_whisk_userEvents_enabled": "{{ user_events }}"
      "ZOOKEEPER_HOSTS": "{{ zookeeper_connect_string }}"
      "CONFIG_whisk_couchdb_protocol": "{{ db_protocol }}"
      "CONFIG_whisk_couchdb_host": "{{ db_host }}"
      "CONFIG_whisk_couchdb_port": "{{ db_port }}"
      "CONFIG_whisk_couchdb_username": "{{ db_username }}"
      "CONFIG_whisk_couchdb_password": "{{ db_password }}"
      "CONFIG_whisk_couchdb_provider": "{{ db_provider }}"
      "CONFIG_whisk_couchdb_databases_WhiskAuth": "{{ db.whisk.auth }}"
      "CONFIG_whisk_couchdb_databases_WhiskEntity": "{{ db.whisk.actions }}"
      "CONFIG_whisk_couchdb_databases_WhiskActivation": "{{ db.whisk.activations }}"
      "DB_WHISK_ACTIONS": "{{ db.whisk.actions }}"
      "DB_WHISK_ACTIVATIONS": "{{ db.whisk.activations }}"
      "DB_WHISK_AUTHS": "{{ db.whisk.auth }}"
      "CONFIG_whisk_db_actionsDdoc": "{{ db_whisk_actions_ddoc | default() }}"
      "CONFIG_whisk_db_activationsDdoc": "{{ db_whisk_activations_ddoc | default() }}"
      "CONFIG_whisk_db_activationsFilterDdoc": "{{ db_whisk_activations_filter_ddoc | default() }}"
      "WHISK_API_HOST_PROTO": "{{ whisk_api_host_proto | default('https') }}"
      "WHISK_API_HOST_PORT": "{{ whisk_api_host_port | default('443') }}"
      "WHISK_API_HOST_NAME": "{{ whisk_api_host_name | default(groups['edge'] | first) }}"
      "RUNTIMES_REGISTRY": "{{ runtimes_registry | default('') }}"
      "RUNTIMES_MANIFEST": "{{ runtimesManifest | to_json }}"
      "CONFIG_whisk_runtimes_bypassPullForLocalImages": "{{ runtimes_bypass_pull_for_local_images | default() }}"
      "CONFIG_whisk_runtimes_localImagePrefix": "{{ runtimes_local_image_prefix | default() }}"
      "CONFIG_whisk_containerFactory_containerArgs_network": "{{ invoker_container_network_name | default('bridge') }}"
      "INVOKER_CONTAINER_POLICY": "{{ invoker_container_policy_name | default()}}"
      "CONFIG_whisk_containerPool_numCore": "{{ invoker.numcore }}"
      "CONFIG_whisk_containerPool_coreShare": "{{ invoker.coreshare }}"
      "CONFIG_whisk_docker_containerFactory_useRunc": "{{ invoker.useRunc }}"
      "INVOKER_NAME": "{{ groups['invokers'].index(inventory_hostname) }}"
      "WHISK_LOGS_DIR": "{{ whisk_logs_dir }}"
      "METRICS_KAMON": "{{ metrics.kamon.enabled }}"
      "METRICS_KAMON_TAGS": "{{ metrics.kamon.tags }}"
      "METRICS_LOG": "{{ metrics.log.enabled }}"
      "CONFIG_kamon_statsd_hostname": "{{ metrics.kamon.host }}"
      "CONFIG_kamon_statsd_port": "{{ metrics.kamon.port }}"
      "CONFIG_whisk_spi_LogStoreProvider": "{{ userLogs.spi }}"
      "CONFIG_logback_log_level": "{{ invoker.loglevel }}"
      "CONFIG_whisk_memory_min": "{{ limit_action_memory_min | default() }}"
      "CONFIG_whisk_memory_max": "{{ limit_action_memory_max | default() }}"
      "CONFIG_whisk_memory_std": "{{ limit_action_memory_std | default() }}"
      "CONFIG_whisk_timeLimit_min": "{{ limit_action_time_min | default() }}"
      "CONFIG_whisk_timeLimit_max": "{{ limit_action_time_max | default() }}"
      "CONFIG_whisk_timeLimit_std": "{{ limit_action_time_std | default() }}"
      "CONFIG_whisk_activation_payload_max": "{{ limit_activation_payload | default() }}"
      "CONFIG_whisk_transactions_header": "{{ transactions.header }}"

- name: extend invoker dns env
  set_fact:
    invoker_env: "{{ invoker_env | default({}) | combine( {'CONFIG_whisk_containerFactory_containerArgs_dnsServers_' ~ item.0: item.1} ) }}"
  with_indexed_items: "{{ (invoker_container_network_dns_servers | default()).split(' ')}}"

- name: merge extra env variables
  set_fact:
    invoker_env: "{{ invoker_env | combine(invoker.extraEnv) }}"

- name: set invoker volumes
  set_fact:
    volumes: "/sys/fs/cgroup:/sys/fs/cgroup,/run/runc:/run/runc,\
      {{ whisk_logs_dir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}:/logs,\
      {{ invoker.confdir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}:/conf,\
      {{ dockerInfo['DockerRootDir'] }}/containers/:/containers,\
      {{ docker_sock | default('/var/run/docker.sock') }}:/var/run/docker.sock"

- name: define options when deploying invoker on Ubuntu
  set_fact:
    volumes: "{{ volumes|default('') }},/usr/lib/x86_64-linux-gnu/libapparmor.so.1:/usr/lib/x86_64-linux-gnu/libapparmor.so.1"
  when: ansible_distribution == "Ubuntu"

- name: start invoker using docker cli
  docker_container:
    userns_mode: "host"
    pid_mode: "host"
    privileged: "yes"
    name: invoker{{ groups['invokers'].index(inventory_hostname) }}
    hostname: "invoker{{ groups['invokers'].index(inventory_hostname) }}"
    restart_policy: "{{ docker.restart.policy }}"
    image: "{{ docker_registry }}{{ docker.image.prefix }}/invoker:{{ docker.image.tag }}"
    state: started
    recreate: true
    env: "{{ invoker_env }}"
    volumes: "{{ volumes }}"
    ports: "{{ ports_to_expose }}"
    command: /bin/sh -c "exec /init.sh {{ groups['invokers'].index(inventory_hostname) }} >> /logs/invoker{{ groups['invokers'].index(inventory_hostname) }}_logs.log 2>&1"

- name: wait until Invoker is up and running
  uri:
    url: "http://{{ ansible_host }}:{{ invoker.port + groups['invokers'].index(inventory_hostname) }}/ping"
  register: result
  until: result.status == 200
  retries: 12
  delay: 5
