#1 Add CI tests using the standard test interface
Closed 6 years ago by esakaiev. Opened 6 years ago by esakaiev.
git://fedorapeople.org/~esakaiev/etcd new_tests  into  master

Initial commit, adding tests for etcd
root • 6 years ago  
tests/e2e_test_from_src_include.yml
file added
+39
@@ -0,0 +1,39 @@

+ - hosts: localhost

+   tags:

+     - classic

+   tasks:

+     - include_tasks: tasks/update_os_vars.yml

+     - include_tasks: tasks/install_etcd_src.yml

+     - include_tasks: tasks/prepare_e2e.yml

+     - name: Run e2e test

+       shell: go test -timeout 10m -v ./e2e &> /var/tmp/test.log

+       args:

+         chdir: "{{ src_dir }}"

+       ignore_errors: true

+       environment:

+         GOPATH: "{{ src_dir }}/gopath:{{ go_path }}"

+         EXPECT_DEBUG: true

+     - always:

+       - name: Pull out the logs

+         fetch:

+           dest: "{{ artifacts }}/"

+           src: "/var/tmp/test.log"

+           flat: yes

+       - include_role:

+           name: remove_req_dir

+         vars:

+           path: "{{ item.path }}"

+           patterns: "{{ item.patterns }}"

+           file_type: directory

+         with_items:

+                 - { path: "{{src_dir}}", patterns: ""}

+                 - { path: "/var/tmp/cafile", patterns: ""}

+                 - { path: "/tmp", patterns: "test*"}

+       - name: Check the results

+         shell: grep "^\-\-\- FAIL" "{{ artifacts}}"/test.log | awk '{print $3}'

+         register: failed_cases

+         ignore_errors: true

+       - name: Store failed cases

+         local_action: copy content={{ failed_cases.stdout }} dest={{ artifacts }}/failed_cases.log

+         when: failed_cases.stdout != ""

+         failed_when: failed_cases.stdout

tests/files/get_golang_pkgs.py
file added
+53
@@ -0,0 +1,53 @@

+ #!/usr/bin/python

+ import logging

+ import re

+ import yum

+ from optparse import OptionParser

+ 

+ 

+ def get_pkg_name(req_line, rpm_list):

+     kws = re.split("[() /]", req_line.strip())[2:5]

+     kws.reverse()

+     compare_str = "devel"

+     tmp_list = rpm_list

+     for kw in kws:

+         tmp_list = [_ for _ in tmp_list if re.findall("%s" % compare_str, _)]

+         if len(tmp_list) > 1:

+             compare_str = "%s-%s" % (kw, compare_str)

+         else:

+             break

+ 

+     if not tmp_list:

+         if kws[-1] == "github.com":

+             compare_str = "github-.*-%s-devel" % kws[0]

+             tmp_list = [_ for _ in rpm_list if re.findall("%s" % compare_str, _)]

+         if kws[-1] == "golang.org":

+             compare_str = "golangorg-%s-devel" % kws[0]

+             tmp_list = [_ for _ in rpm_list if re.findall("%s" % compare_str, _)]

+         if kws[-1] == "google.golang.org":

+             compare_str = "-%s-.*-devel" % kws[1]

+             tmp_list = [_ for _ in rpm_list if re.findall("%s" % compare_str, _)]

+ 

+ 

+     return tmp_list

+ 

+ 

+ if __name__ == '__main__':

+     parser = OptionParser()

+     parser.add_option("-f", "--spec_file", dest="sfile",

+                        default="")

+     

+     (options, args) = parser.parse_args()

+     sfile = options.sfile

+ 

+     yb = yum.YumBase()

+     yum_list = yb.doPackageLists()

+     alist = sorted(yum_list.available)

+     source_rpms = [_.name for _ in alist if re.match("golang", _.name)]

+ 

+     install_pkgs = []

+     with open(sfile) as f:

+         for line in f:

+             install_pkgs += get_pkg_name(line, source_rpms)

+     for pkg in set(install_pkgs):

+         print pkg

tests/group_vars/all.yml
file added
+8
@@ -0,0 +1,8 @@

+ artifacts: ./artifacts

+ rpm_base_url: https://kojipkgs.fedoraproject.org/packages

+ go_path: /root/golang

+ debug: false

+ req_packages: ['git', 'golang', 'rpm-build', 'yum', 'libselinux-python']

+ fedora_req_packages: ['go-compilers-golang-compiler']

+ is_fedora: false

+ is_rhel: false

tests/roles/create_ca_files_with_cfssl/tasks/main.yml
file added
+30
@@ -0,0 +1,30 @@

+ ---

+ 

+ - name: Create cafile directory

+   file:

+     path: "/var/tmp/cafile"

+     state: directory

+ - name: Get cfssl from github

+   shell: go get -u github.com/cloudflare/cfssl/cmd/...

+ - name:

+   template:

+     src: "{{ item }}.j2"

+     dest: "/var/tmp/cafile/{{ item }}"

+   with_items:

+     - ca-csr.json

+     - ca-config.json

+     - req-csr.json

+ - name: Generate CA certificate 

+   shell: cfssl genkey -initca ca-csr.json | cfssljson -bare ca

+   args:

+     chdir: /var/tmp/cafile

+ - name: Generate certificate and private key with CA

+   shell: cfssl gencert -ca ca.pem -ca-key ca-key.pem -config ca-config.json req-csr.json | cfssljson -bare {{ item }}

+   args:

+     chdir: /var/tmp/cafile

+   with_items:

+     - "{{ cert_names }}"

+ - name: Copy needed certificates and private keys to destination

+   shell: cp -f /var/tmp/cafile/{{ item.src }} {{ src_dir }}/integration/fixtures/{{ item.dst }}

+   with_items:

+     - "{{ cert_srcs_dsts }}"

tests/roles/install_go_repo_from_github/tasks/main.yml
file added
+65
@@ -0,0 +1,65 @@

+ ---

+ 

+ - name: Create bin

+   file:

+     path: "{{ bin_dir }}"

+     state: directory

+ 

+ - name: Create src code directory

+   file:

+     path: "{{ repo_path }}/{{ repo_name }}"

+     state: directory

+ 

+ - name: Clone repo to /var/tmp

+   shell: git clone "{{ git_repo }}"

+   args:

+     chdir: "{{ repo_path }}"

+ - name: Determine if use make 

+   shell: ls "{{ repo_path }}/{{ repo_name }}" | grep -i makefile

+   ignore_errors: true

+   register: output

+ 

+ - name: Set compile with make

+   set_fact:

+     compile_method: make

+   when: output.rc == 0

+ 

+ - name: Determine if use build

+   shell: ls "{{ repo_path }}/{{ repo_name }}" | grep -i build

+   ignore_errors: true

+   register: output

+ - name: Set compile with build

+   set_fact:

+     compile_method: build

+   when: output.rc == 0

+ 

+ - name: Build with make

+   shell: make

+   args:

+     chdir: "{{ repo_path }}/{{ repo_name }}"

+   when: "compile_method == 'make'"

+ - name: Build with ./build

+   shell: ./build

+   args:

+     chdir: "{{ repo_path }}/{{ repo_name }}"

+   when: "compile_method == 'build'"

+ - name: Determine if bin dir is generated

+   shell: ls "{{ repo_path }}/{{ repo_name }}"/bin

+   ignore_errors: true

+   register: output

+ - name: Set compiled binary dir

+   set_fact:

+     c_bin_dir: "{{ repo_path }}/{{ repo_name }}/bin"

+   when: output.rc == 0

+ - name: Set compiled binary dir

+   set_fact:

+     c_bin_dir: "{{ repo_path }}/{{ repo_name }}"

+   when: output.rc != 0

+ - name: Copy generated binary to customer bin dir

+   shell: cp {{ c_bin_dir }}/{{ item }} {{ bin_dir }}

+   with_items:

+     "{{ compiled_binary }}"

+ - name: Clean up source directory

+   file:

+     path: "{{ repo_path }}/{{ repo_name }}"

+     state: absent

tests/roles/install_golang_dep_from_spec/tasks/main.yml
file added
+13
@@ -0,0 +1,13 @@

+ ---

+ 

+ - name: Get depended golang lines from spec

+   shell: "{% raw %} grep '^BuildRequires: golang' {% endraw %} /root/rpmbuild/SPECS/{{ package_name }}.spec | sort |uniq > /var/tmp/br"

+ - name: Turned the spec lines into packages

+   shell: python "{{ role_path }}"/../../files/get_golang_pkgs.py -f /var/tmp/br

+   register: reqs

+ - name: Install the packages required

+   package:

+     name: "{{ item }}"

+     state: present

+   with_items:

+     - "{{ reqs.stdout_lines }}"

tests/roles/install_src_rpm/tasks/main.yml
file added
+29
@@ -0,0 +1,29 @@

+ ---

+ 

+ - name: Get installed rpm information

+   yum:

+     list: "{{ package_name }}"

+   register: etcd_info_output

+ - name: Set up src url

+   set_fact:

+     etcd_src_url: "{{ rpm_base_url }}/etcd/{{ item['version'] }}/{{ item['release'] }}/src/etcd-{{ item['version'] }}-{{ item['release'] }}.src.rpm"

+     package_path: "/var/tmp/{{ package_name }}.src.rpm"

+   when: item ['yumstate'] == 'installed'

+   with_items:

+     - "{{ etcd_info_output.results }}"

+ - name: Remove the exist target file

+   file:

+     path: "{{ package_path }}"

+     state: absent

+ - name: Download src package

+   get_url:

+     url: "{{ etcd_src_url }}"

+     dest: "{{ package_path }}"

+ - name: Install src package with rpm

+   shell: rpm -ivh {{ package_path }}

+ - name: Get commit from SPEC file

+   shell: awk '/^%global\scommit/{print $3}' /root/rpmbuild/SPECS/{{ package_name }}.spec

+   register: commit

+ - name: Set src directory

+   set_fact:

+     src_dir: /root/rpmbuild/BUILD/{{ package_name }}-{{ commit.stdout}}

tests/roles/remove_req_dir/tasks/main.yml
file added
+23
@@ -0,0 +1,23 @@

+ ---

+ 

+ - name: Get files or directories fit for the patterns

+   find:

+     paths: "{{ path }}"

+     patterns: "{{ patterns }}"

+     file_type: "{{ file_type| default('file')}}"

+   register: remove_paths

+   when: (patterns is defined) and (patterns != "")

+ - name: Remove the files or directories

+   file:

+     path: "{{ item_path.path }}"

+     state: absent

+   with_items:

+     - "{{ remove_paths.files }}"

+   loop_control:

+     loop_var: item_path

+   when: (patterns is defined) and (patterns != "")

+ - name: Remove target files or diredctories

+   file:

+     path: "{{ path }}"

+     state: absent

+   when: (patterns is undefined) or (patterns == "")

tests/tasks/create_ca_files.yml
file added
+5
@@ -0,0 +1,5 @@

+ ---

+ 

+ - hosts: localhost

+   tasks:

+     - name: Prepare the etcd-ca src

tests/tasks/install_etcd_src.yml
file added
+19
@@ -0,0 +1,19 @@

+ ---

+ 

+ - name: Install request packages

+   package:

+     name: "{{ item }}"

+     state: latest

+   with_items:

+     - "{{ req_packages }}"

+ - include_role:

+     name: install_src_rpm

+   vars:

+     package_name: etcd

+ - include_role:

+     name: install_golang_dep_from_spec

+   vars:

+     package_name: etcd

+   when: is_fedora

+ - name: Install etcd source code

+   shell: rpmbuild -bp /root/rpmbuild/SPECS/etcd.spec

tests/tasks/prepare_e2e.yml
file added
+59
@@ -0,0 +1,59 @@

+ ---

+ 

+ - name: Check Ca files

+   shell: openssl verify -CAfile ca.crt server.crt

+   args:

+     chdir: "{{ src_dir}}/integration/fixtures"

+   ignore_errors: true

+   register: ca_ok

+ - name: Replace ca files

+   environment:

+     GOPATH: "{{ go_path }}"

+     PATH: "{{ ansible_env.PATH }}:{{ go_path }}/bin"

+   include_role:

+     name: create_ca_files_with_cfssl

+   vars:

+     cert_names: server

+     cert_srcs_dsts: [{ src: "ca.pem", dst: "ca.crt" }, { src: "server.pem", dst: "server.crt" }, { src: "server-key.pem", dst: "server.key.insecure" }]

+   when: ca_ok.rc != 0

+ - name: Check if Godeps exist under src

+   find:

+     paths: "{{ src_dir }}"

+     patterns: Godeps

+     file_type: directory

+   register: godeps

+ - name: Install glide

+   include_role:

+     name: install_go_repo_from_github

+   vars:

+     bin_dir: "{{ go_path }}/bin"

+     git_repo: https://github.com/Masterminds/glide.git

+     repo_path: "{{go_path}}/src/github.com/Masterminds"

+     repo_name: glide

+     compiled_binary: ['glide']

+   environment:

+     GOPATH: "{{ go_path }}"

+   when: godeps.matched == 0

+ - name: Set up golang path

+   environment:

+     GOPATH: "{{ go_path }}"

+     PATH: "{{ ansible_env.PATH }}:{{ go_path }}/bin"

+     https_proxy: squid.redhat.com:3128

+   block:

+     - shell: mkdir gopath; ln -s {{ src_dir }}/Godeps/_workspace/src gopath/src; rm gopath/src/github.com/coreos/etcd; ln -s {{ src_dir }} gopath/src/github.com/coreos/etcd

+       args:

+         chdir: "{{ src_dir }}"

+       when: godeps.matched != 0

+     - shell: mkdir gopath; cp -r  vendor/* cmd/vendor/; ln -s {{ src_dir }}/cmd/vendor {{ src_dir }}/gopath/src; ln -s  {{ src_dir }} gopath/src/github.com/coreos/etcd

+       args:

+         chdir: "{{ src_dir }}"

+       when: godeps.matched == 0

+ - name: Create bin under etcd src

+   file:

+     path: "{{ src_dir }}/bin"

+     state: directory

+ - name: Copy exec file to src directory

+   shell: cp -f `which {{ item }}` {{ src_dir }}/bin/{{ item }}

+   with_items:

+     - etcd

+     - etcdctl

tests/tasks/update_os_vars.yml
file added
+21
@@ -0,0 +1,21 @@

+ ---

+ 

+ - name: Get distro name from /etc/os-release

+   raw: "grep '^NAME=' /etc/os-release | sed s'/NAME=//'"

+   register: distro

+ - name: Set the is_fedora fact

+   set_fact:

+     is_fedora: true

+   when: "'Fedora' in distro.stdout"

+ - name: Set the is_rhel fact

+   set_fact:

+     is_rhel: true

+   when: "'Red Hat Enterprise Linux' in distro.stdout"

+ - name: Update request packages for Fedora

+   set_fact:

+     req_packages: "{{ req_packages }} + {{ fedora_req_packages }}"

+   when: is_fedora and fedora_req_packages is defined

+ - name: Update request packages for RHEL

+   set_fact:

+     req_packages: "{{ req_packages }} + {{ rhel_req_packages }}"

+   when: is_rhel and rhel_req_packages is defined

tests/templates/ca-config.json.j2
file added
+13
@@ -0,0 +1,13 @@

+ {

+   "signing": {

+     "default": {

+         "usages": [

+           "signing",

+           "key encipherment",

+           "server auth",

+           "client auth"

+         ],

+         "expiry": "8760h"

+     }

+   }

+ }

tests/templates/ca-csr.json.j2
file added
+16
@@ -0,0 +1,16 @@

+ {

+   "CN": "Autogenerated CA",

+   "key": {

+     "algo": "ecdsa",

+     "size": 384

+   },

+   "names": [

+     {

+       "O": "Honest Achmed's Used Certificates",

+       "OU": "Hastily-Generated Values Divison",

+       "L": "San Francisco",

+       "ST": "California",

+       "C": "US"

+     }

+   ]

+ }

tests/templates/req-csr.json.j2
file added
+17
@@ -0,0 +1,17 @@

+ {

+   "CN": "etcd",

+   "hosts": [

+     "localhost"

+   ],

+   "key": {

+     "algo": "ecdsa",

+     "size": 384

+   },

+   "names": [

+     {

+       "O": "autogenerated",

+       "OU": "etcd cluster",

+       "L": "the internet"

+     }

+   ]

+ }

tests/tests.yml
file added
+3
@@ -0,0 +1,3 @@

+ ---

+ # Tests for classic environment

+ - include: e2e_test_from_src_include.yml

no initial comment

Justification

Adds tests according to the CI wiki specifically the standard test interface in the spec.

The playbook includes Tier1 level test cases that have been tested in the following contexts and is passing reliably: Classic. Test logs are stored in the artifacts directory.

The following steps are used to execute the tests using the standard test interface:

Test environment

Make sure you have installed packages from the spec

    # rpm -q ansible python2-dnf libselinux-python standard-test-roles \
    ansible-2.3.2.0-1.fc26.noarch \
    python2-dnf-2.6.3-11.fc26.noarch \
    libselinux-python-2.6-7.fc26.x86_64 \
    standard-test-roles-2.4-1.fc26.noarch

Run tests for Classic

    # export ANSIBLE_INVENTORY=$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory)
    # curl -o etcd.rpm https://kojipkgs.fedoraproject.org/packages/etcd/3.2.7/1.fc27/x86_64/etcd-3.2.7-1.fc27.x86_64.rpm
    # export TEST_SUBJECTS=$PWD/etcd.rpm
    # ansible-playbook --tags=classic tests.yml -v

Snip of the example test run for Classic tests:

TASK [Check the results] ******************************************************************************************************************************************************************************************
changed: [rpms] => {"changed": true, "cmd": "grep \"^\\-\\-\\- FAIL\" \"./artifacts\"/test.log | awk '{print $3}'", "delta": "0:00:00.004990", "end": "2017-11-01 13:05:56.991155", "failed": false, "rc": 0, "start": "2017-11-01 13:05:56.986165", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}

PLAY RECAP ********************************************************************************************************************************************************************************************************
rpms                       : ok=31   changed=18   unreachable=0    failed=0   


--- PASS: TestCtlV2Set (0.85s)
--- PASS: TestCtlV2SetQuorum (0.28s)
--- PASS: TestCtlV2SetClientTLS (0.73s)
--- PASS: TestCtlV2SetPeerTLS (0.95s)
--- PASS: TestCtlV2SetTLS (0.55s)
--- PASS: TestCtlV2Mk (0.46s)
--- PASS: TestCtlV2MkQuorum (0.37s)
--- PASS: TestCtlV2MkTLS (0.49s)
--- PASS: TestCtlV2Rm (0.59s)
--- PASS: TestCtlV2RmTLS (0.99s)
--- PASS: TestCtlV2Ls (0.35s)
--- PASS: TestCtlV2LsQuorum (0.16s)
--- PASS: TestCtlV2LsTLS (0.22s)
--- PASS: TestCtlV2Watch (2.46s)
--- PASS: TestCtlV2WatchTLS (0.60s)
--- PASS: TestCtlV2WatchWithProxy (1.08s)
--- PASS: TestCtlV2WatchWithProxyNoSync (1.07s)
--- PASS: TestCtlV2GetRoleUser (0.91s)
--- PASS: TestCtlV2GetRoleUserWithProxy (1.23s)
--- PASS: TestCtlV2UserListUsername (1.14s)
--- PASS: TestCtlV2UserListRoot (1.13s)
--- PASS: TestCtlV2RoleList (1.06s)
--- PASS: TestCtlV2Backup (1.81s)
--- PASS: TestCtlV2AuthWithCommonName (1.05s)
--- PASS: TestCtlV2ClusterHealth (1.67s)
--- PASS: TestCtlV3Alarm (0.85s)
--- PASS: TestCtlV3AuthEnable (0.69s)
--- PASS: TestCtlV3AuthDisable (1.35s)
--- PASS: TestCtlV3AuthWriteKey (2.39s)
--- PASS: TestCtlV3AuthRoleUpdate (2.18s)
--- PASS: TestCtlV3AuthUserDeleteDuringOps (1.41s)
--- PASS: TestCtlV3AuthRoleRevokeDuringOps (2.04s)
--- PASS: TestCtlV3AuthTxn (2.48s)
--- PASS: TestCtlV3AuthPerfixPerm (2.63s)
--- PASS: TestCtlV3AuthMemberAdd (1.87s)
--- PASS: TestCtlV3AuthMemberRemove (3.80s)
--- PASS: TestCtlV3AuthMemberUpdate (1.55s)
--- PASS: TestCtlV3AuthCertCN (1.40s)
--- PASS: TestCtlV3AuthRevokeWithDelete (2.20s)
--- PASS: TestCtlV3AuthInvalidMgmt (0.62s)
--- PASS: TestCtlV3AuthFromKeyPerm (4.55s)
--- PASS: TestCtlV3AuthAndWatch (2.06s)
--- PASS: TestCtlV3Compact (1.18s)
--- PASS: TestCtlV3CompactPhysical (0.27s)
--- PASS: TestCtlV3Defrag (1.15s)
--- PASS: TestCtlV3DefragWithAuth (1.39s)
--- PASS: TestCtlV3Elect (5.79s)
--- PASS: TestCtlV3EndpointHealth (2.78s)
--- PASS: TestCtlV3EndpointStatus (1.72s)
--- PASS: TestCtlV3EndpointHealthWithAuth (3.96s)
--- PASS: TestCtlV3Put (0.60s)
--- PASS: TestCtlV3PutNoTLS (0.65s)
--- PASS: TestCtlV3PutClientTLS (0.23s)
--- PASS: TestCtlV3PutClientAutoTLS (0.48s)
--- PASS: TestCtlV3PutPeerTLS (0.36s)
--- PASS: TestCtlV3PutTimeout (0.40s)
--- PASS: TestCtlV3PutClientTLSFlagByEnv (0.25s)
--- PASS: TestCtlV3PutIgnoreValue (0.62s)
--- PASS: TestCtlV3PutIgnoreLease (1.05s)
--- PASS: TestCtlV3Get (0.73s)
--- PASS: TestCtlV3GetNoTLS (1.10s)
--- PASS: TestCtlV3GetClientTLS (0.92s)
--- PASS: TestCtlV3GetClientAutoTLS (1.90s)
--- PASS: TestCtlV3GetPeerTLS (0.51s)
--- PASS: TestCtlV3GetTimeout (0.74s)
--- PASS: TestCtlV3GetQuorum (2.92s)
../bin/etcdctl-15120: abc?? ?*123 ?--- PASS: TestCtlV3GetFormat (1.03s)
--- PASS: TestCtlV3GetRev (0.86s)
--- PASS: TestCtlV3GetKeysOnly (0.20s)
--- PASS: TestCtlV3Del (0.63s)
--- PASS: TestCtlV3DelNoTLS (0.67s)
--- PASS: TestCtlV3DelClientTLS (1.69s)
--- PASS: TestCtlV3DelPeerTLS (1.17s)
--- PASS: TestCtlV3DelTimeout (0.85s)
--- PASS: TestCtlV3LeaseGrantTimeToLive (0.49s)
--- PASS: TestCtlV3LeaseKeepAlive (0.52s)
--- PASS: TestCtlV3LeaseRevoke (0.52s)
--- PASS: TestCtlV3Lock (6.05s)
--- PASS: TestCtlV3MakeMirror (1.14s)
--- PASS: TestCtlV3MakeMirrorModifyDestPrefix (1.14s)
--- PASS: TestCtlV3MakeMirrorNoDestPrefix (0.83s)
--- PASS: TestCtlV3MemberList (0.28s)
--- PASS: TestCtlV3MemberRemove (2.77s)
--- PASS: TestCtlV3MemberAdd (0.69s)
--- PASS: TestCtlV3MemberUpdate (0.79s)
--- PASS: TestCtlV3Migrate (0.94s)
--- PASS: TestCtlV3RoleAdd (0.19s)
--- PASS: TestCtlV3RoleAddNoTLS (0.65s)
--- PASS: TestCtlV3RoleAddClientTLS (0.22s)
--- PASS: TestCtlV3RoleAddPeerTLS (1.05s)
--- PASS: TestCtlV3RoleAddTimeout (0.69s)
--- PASS: TestCtlV3RoleGrant (0.92s)
--- PASS: TestCtlV3Snapshot (0.86s)
--- PASS: TestCtlV3SnapshotCorrupt (0.59s)
--- PASS: TestIssue6361 (2.08s)
--- PASS: TestCtlV3SnapshotWithAuth (1.11s)
--- PASS: TestCtlV3Version (0.68s)
--- PASS: TestCtlV3DialWithHTTPScheme (0.57s)
--- PASS: TestCtlV3TxnInteractiveSuccess (0.63s)
--- PASS: TestCtlV3TxnInteractiveSuccessNoTLS (0.99s)
--- PASS: TestCtlV3TxnInteractiveSuccessClientTLS (1.28s)
--- PASS: TestCtlV3TxnInteractiveSuccessPeerTLS (0.69s)
--- PASS: TestCtlV3TxnInteractiveFail (0.70s)
--- PASS: TestCtlV3UserAdd (1.17s)
--- PASS: TestCtlV3UserAddNoTLS (1.23s)
--- PASS: TestCtlV3UserAddClientTLS (1.18s)
--- PASS: TestCtlV3UserAddPeerTLS (0.52s)
--- PASS: TestCtlV3UserAddTimeout (0.72s)
--- PASS: TestCtlV3UserDelete (1.08s)
--- PASS: TestCtlV3UserPasswd (1.26s)
--- PASS: TestCtlV3Watch (0.78s)
--- PASS: TestCtlV3WatchNoTLS (1.33s)
--- PASS: TestCtlV3WatchClientTLS (1.47s)
--- PASS: TestCtlV3WatchPeerTLS (0.73s)
--- PASS: TestCtlV3WatchTimeout (0.77s)
--- PASS: TestCtlV3WatchInteractive (0.77s)
--- PASS: TestCtlV3WatchInteractiveNoTLS (1.33s)
--- PASS: TestCtlV3WatchInteractiveClientTLS (1.04s)
--- PASS: TestCtlV3WatchInteractivePeerTLS (1.03s)
--- PASS: TestEtcdExampleConfig (0.72s)
--- PASS: TestEtcdMultiPeer (0.35s)
--- PASS: TestGateway (0.17s)
--- PASS: TestV2CurlNoTLS (0.64s)
--- PASS: TestV2CurlAutoTLS (0.48s)
--- PASS: TestV2CurlAllTLS (1.12s)
--- PASS: TestV2CurlPeerTLS (0.34s)
--- PASS: TestV2CurlClientTLS (1.21s)
--- PASS: TestV2CurlProxyNoTLS (1.05s)
--- PASS: TestV2CurlProxyTLS (1.28s)
--- PASS: TestV2CurlProxyPeerTLS (1.12s)
--- PASS: TestV2CurlClientBoth (0.45s)
--- PASS: TestV2CurlIssue5182 (0.95s)
--- PASS: TestV3CurlPutGetNoTLS (2.10s)
--- PASS: TestV3CurlPutGetAutoTLS (4.04s)
--- PASS: TestV3CurlPutGetAllTLS (2.68s)
--- PASS: TestV3CurlPutGetPeerTLS (0.72s)
--- PASS: TestV3CurlPutGetClientTLS (0.47s)
--- PASS: TestV3CurlWatch (4.09s)
--- PASS: TestV3CurlTxn (2.10s)
PASS

Hi @esakaiev
I double checked my code again, and find maybe we should remove this file: tasks/create_ca_files.yml. Seems I only clean the roles folder but forget the tasks folder when I create the repo.
Sorry for it, but this should not influence the functional of the test. And thanks for the migrate.

Hi @ypu,

Thanks for your comment, if this should not influence the functional of the test I will merge it with master.

Thanks,
Eduard

Hi @ypu,

I have removed create_ca_files.yml file and added changes in the
https://src.fedoraproject.org/rpms/etcd/pull-request/2

Regards,
Eduard

Pull-Request has been closed by esakaiev

6 years ago