Update lint section for molecule v3 95/63395/3
authorThanh Ha <zxiiro@gmail.com>
Thu, 12 Mar 2020 17:16:44 +0000 (13:16 -0400)
committerEric Ball <eball@linuxfoundation.org>
Mon, 16 Mar 2020 15:11:22 +0000 (08:11 -0700)
Starting with Molecule v3 the linting section has been changed to
straight up shell and no longer supports the old v2 format.

This also removes default Molecule files, which are no longer needed,
and would require unnecessary upkeep.

Ref: https://molecule.readthedocs.io/en/latest/configuration.html#lint
Signed-off-by: Thanh Ha <zxiiro@gmail.com>
Signed-off-by: Eric Ball <eball@linuxfoundation.org>
Change-Id: Iaa40efc377409e08e6efd41aa967249f9d3c4bbd

.yamllint
molecule/default/Dockerfile.j2 [deleted file]
molecule/default/INSTALL.rst [deleted file]
molecule/default/converge.yml [moved from molecule/default/playbook.yml with 100% similarity]
molecule/default/create.yml [deleted file]
molecule/default/destroy.yml [deleted file]
molecule/default/molecule.yml
molecule/default/prepare.yml [deleted file]
molecule/default/tests/test_default.py [deleted file]
tox.ini

index 3a2255e..7626c6e 100644 (file)
--- a/.yamllint
+++ b/.yamllint
@@ -1,3 +1,4 @@
+---
 extends: default
 
 rules:
@@ -11,3 +12,6 @@ rules:
   # NOTE(retr0h): Templates no longer fail this lint rule.
   #               Uncomment if running old Molecule templates.
   # truthy: disable
+
+ignore: |
+  .tox/
diff --git a/molecule/default/Dockerfile.j2 b/molecule/default/Dockerfile.j2
deleted file mode 100644 (file)
index f8b4e75..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# Molecule managed
-
-FROM {{ item.image }}
-
-RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
-    elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \
-    elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
-    elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \
-    elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi
diff --git a/molecule/default/INSTALL.rst b/molecule/default/INSTALL.rst
deleted file mode 100644 (file)
index e26493b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-*******
-Install
-*******
-
-Requirements
-============
-
-* Docker Engine
-* docker-py
-
-Install
-=======
-
-.. code-block:: bash
-
-  $ sudo pip install docker-py
diff --git a/molecule/default/create.yml b/molecule/default/create.yml
deleted file mode 100644 (file)
index 780f659..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
----
-- name: Create
-  hosts: localhost
-  connection: local
-  gather_facts: false
-  no_log: false
-  vars:
-    molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}"
-    molecule_ephemeral_directory: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}"
-    molecule_scenario_directory: "{{ lookup('env', 'MOLECULE_SCENARIO_DIRECTORY') }}"
-    molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}"
-  tasks:
-    - name: Create Dockerfiles from image names
-      template:
-        src: "{{ molecule_scenario_directory }}/Dockerfile.j2"
-        dest: "{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}"
-      with_items: "{{ molecule_yml.platforms }}"
-      register: platforms
-
-    - name: Discover local Docker images
-      docker_image_facts:
-        name: "molecule_local/{{ item.item.name }}"
-      with_items: "{{ platforms.results }}"
-      register: docker_images
-
-    - name: Build an Ansible compatible image
-      docker_image:
-        path: "{{ molecule_ephemeral_directory }}"
-        name: "molecule_local/{{ item.item.image }}"
-        dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
-        force: "{{ item.item.force | default(true) }}"
-      with_items: "{{ platforms.results }}"
-      when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
-
-    - name: Create molecule instance(s)
-      docker_container:
-        name: "{{ item.name }}"
-        hostname: "{{ item.name }}"
-        image: "molecule_local/{{ item.image }}"
-        state: started
-        recreate: false
-        log_driver: syslog
-        command: "{{ item.command | default('bash -c \"while true; do sleep 10000; done\"') }}"
-        privileged: "{{ item.privileged | default(omit) }}"
-        volumes: "{{ item.volumes | default(omit) }}"
-        capabilities: "{{ item.capabilities | default(omit) }}"
-        ports: "{{ item.exposed_ports | default(omit) }}"
-      register: server
-      with_items: "{{ molecule_yml.platforms }}"
-      async: 7200
-      poll: 0
-
-    - name: Wait for instance(s) creation to complete
-      async_status:
-        jid: "{{ item.ansible_job_id }}"
-      register: docker_jobs
-      until: docker_jobs.finished
-      retries: 300
-      with_items: "{{ server.results }}"
diff --git a/molecule/default/destroy.yml b/molecule/default/destroy.yml
deleted file mode 100644 (file)
index f2a60f9..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
----
-- name: Destroy
-  hosts: localhost
-  connection: local
-  gather_facts: false
-  no_log: false
-  vars:
-    molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}"
-    molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}"
-  tasks:
-    - name: Destroy molecule instance(s)
-      docker_container:
-        name: "{{ item.name }}"
-        state: absent
-        force_kill: "{{ item.force_kill | default(true) }}"
-      register: server
-      with_items: "{{ molecule_yml.platforms }}"
-      async: 7200
-      poll: 0
-
-    - name: Wait for instance(s) deletion to complete
-      async_status:
-        jid: "{{ item.ansible_job_id }}"
-      register: docker_jobs
-      until: docker_jobs.finished
-      retries: 300
-      with_items: "{{ server.results }}"
index 44f3fcc..231c8de 100644 (file)
@@ -3,8 +3,10 @@ dependency:
   name: galaxy
 driver:
   name: docker
-lint:
-  name: yamllint
+lint: |
+  set -e
+  yamllint .
+  ansible-lint tasks/*.yml
 platforms:
   - name: centos7
     image: centos:7
@@ -31,11 +33,7 @@ provisioner:
         centos_docker_version: 18.06.1.ce
       ubuntu_version:
         ubuntu_docker_version: 18.06.1~ce~3-0~ubuntu
-  lint:
-    name: ansible-lint
 scenario:
   name: default
 verifier:
   name: testinfra
-  lint:
-    name: flake8
diff --git a/molecule/default/prepare.yml b/molecule/default/prepare.yml
deleted file mode 100644 (file)
index 5358b3b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
----
-- name: Prepare
-  hosts: all
-  gather_facts: false
-  tasks: []
diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py
deleted file mode 100644 (file)
index eedd64a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-import os
-
-import testinfra.utils.ansible_runner
-
-testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
-    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
-
-
-def test_hosts_file(host):
-    f = host.file('/etc/hosts')
-
-    assert f.exists
-    assert f.user == 'root'
-    assert f.group == 'root'
diff --git a/tox.ini b/tox.ini
index c486b78..a0f2e9b 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -8,9 +8,11 @@ skipsdist=true
 [testenv:molecule]
 basepython = python3
 deps =
-    ansible
+    ansible~=2.9.6
+    ansible-lint~=4.2.0
     docker
     molecule
+    pytest
 passenv = *
 commands =
     ./molecule.sh