blob: 9109d078a60c6107b9a7da5a6e93f7d9792b462e [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
---
# This playbook is used for utilities around logs
- import_playbook: properties.yml
- hosts: ansible
tasks:
- name: remove "logs" folder
file: path="{{ openwhisk_home }}/logs" state=absent
- name: create "logs" folder
file: path="{{ openwhisk_home }}/logs" state=directory
- name: dump entity views
local_action: shell "{{ openwhisk_home }}/bin/wskadmin" db get whisks --docs --view whisks.v2.1.0/{{ item }} | tail -n +2 > "{{ openwhisk_home }}/logs/db-{{ item }}.log"
with_items:
- actions
- triggers
- rules
- packages
when: "'db' not in exclude_logs_from"
- name: dump activations and subjects database
local_action: shell "{{ openwhisk_home }}/bin/wskadmin" db get {{ item }} --docs | tail -n +2 > "{{ openwhisk_home }}/logs/db-{{ item }}.log"
with_items:
- activations
- subjects
when: "'db' not in exclude_logs_from"
- name: create "test reports" folder
file: path="{{ openwhisk_home }}/logs/test-reports" state=directory
- name: collect test reports
local_action: shell cp -r "{{ openwhisk_home }}/tests/build/{{ item }}" "{{ openwhisk_home }}/logs/test-reports/"
with_items:
- reports
- test-results
ignore_errors: true
when: "'tests' not in exclude_logs_from"
- name: create "perf reports" folder
file: path="{{ openwhisk_home }}/logs/perf-reports" state=directory
- name: collect perf logs
local_action: shell cp "{{ openwhisk_home }}/tests/performance/gatling_tests/build/gatling.log" "{{ openwhisk_home }}/logs/perf-reports/"
ignore_errors: true
- hosts: all:!ansible
serial: 1
tasks:
- name: init var docker_host_flag
set_fact:
docker_host_flag: ""
- name: set host flag when using docker remote API
set_fact:
docker_host_flag: "--host tcp://{{ ansible_host }}:{{ docker.port }}"
when: environmentInformation.type != "local"
- name: get all docker containers
local_action: shell docker {{ docker_host_flag }} ps -a --format="{% raw %}{{.Names}}{% endraw %}"
register: container_names
- name: get logs from all containers
local_action: shell docker {{ docker_host_flag }} logs {{ item }} > "{{ openwhisk_home }}/logs/{{ item }}.log" 2>&1; exit 0
with_items: "{{ container_names.stdout_lines | difference('whisk_docker_registry') }}"
when: "'docker' not in exclude_logs_from"
- name: workaround to make synchronize work
set_fact:
ansible_ssh_private_key_file: "{{ ansible_ssh_private_key_file }}"
when: ansible_ssh_private_key_file is defined
- name: fetch logs from all machines
synchronize: src="{{ whisk_logs_dir }}/" dest="{{ openwhisk_home }}/logs" mode=pull
when: "'machine' not in exclude_logs_from"
ignore_errors: true