diff --git a/.gitignore b/.gitignore index 89b745a..f823ee2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea -**/__pycache__ \ No newline at end of file +**/__pycache__ +venv/ diff --git a/.travis.yml b/.travis.yml index 3ba4064..6aa1e37 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,52 +1,15 @@ --- -language: python -python: "2.7" - -# Use the new container infrastructure sudo: required - +language: python services: - docker - -env: - - distribution: centos - init: /usr/lib/systemd/systemd - version: 7 - - distribution: fedora - init: /usr/lib/systemd/systemd - version: 26 - - distribution: fedora - init: /usr/lib/systemd/systemd - version: 25 - - distribution: ubuntu - init: /lib/systemd/systemd - version: bionic - - distribution: ubuntu - init: /lib/systemd/systemd - version: xenial - - distribution: debian - init: /lib/systemd/systemd - version: stretch - before_install: - - 'sudo pip install yamllint' - - yamllint -c .yamllint.yml . - - 'sudo docker pull ${distribution}:${version}' - - 'sudo docker build --no-cache --rm --file=tests/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests' - + - sudo apt-get -qq update +install: + - pip3 install -r requirements.txt + - ansible --version + - molecule --version script: - - container_id=$(mktemp) - - role_name="ansible-manage-lvm" - - 'sudo docker run --detach --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro --volume="${PWD}":/etc/ansible/roles/${role_name}:ro ${distribution}-${version}:ansible ${init} > "${container_id}"' - - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-lint -c /.ansible-lint /etc/ansible/roles/${role_name}/tests/test.yml' - - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/${role_name}/tests/test.yml --syntax-check' - - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/${role_name}/tests/test.yml' - - > - sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/${role_name}/tests/test.yml - | grep -q 'changed=0.*failed=0' - && (echo 'Idempotence test: pass' && exit 0) - || (echo 'Idempotence test: fail' && exit 1) - - 'sudo docker rm -f "$(cat ${container_id})"' - + - molecule lint notifications: webhooks: https://galaxy.ansible.com/api/v1/notifications/ diff --git a/.yamllint.yml b/.yamllint.yml index faf0b5d..70d5f7c 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -1,58 +1,36 @@ --- -extends: default +# Based on ansible-lint config +extends: default + +ignore: | + venv/ rules: braces: - # Defaults - # min-spaces-inside: 0 - # max-spaces-inside: 0 - - # Keeping 0 min-spaces to not error on empty collection definitions - min-spaces-inside: 0 - # Allowing one space inside braces to improve code readability - max-spaces-inside: 1 - + max-spaces-inside: 1 + level: error brackets: - # Defaults - # min-spaces-inside: 0 - # max-spaces-inside: 0 - - # Keeping 0 min-spaces to not error on empty collection definitions - min-spaces-inside: 0 - # Allowing one space inside braces to improve code readability - max-spaces-inside: 1 - + max-spaces-inside: 1 + level: error colons: - # Defaults - # max-spaces-before: 0 - # max-spaces-after: 1 - - max-spaces-before: 0 - # Allowing more than one space for code readability - max-spaces-after: -1 - - comments: - # Defaults - # level: warning - # require-starting-space: true - # min-spaces-from-content: 2 - - # Disabling to allow for code comment blocks and #!/usr/bin/ansible-playbook - require-starting-space: false - - indentation: - # Defaults - # spaces: consistent - # indent-sequences: true - # check-multi-line-strings: false - - # Requiring 2 space indentation - spaces: 2 - # Requiring consistent indentation within a file, either indented or not - indent-sequences: consistent - - # Disabling due to copious amounts of long lines in the code which would - # require a code style change to resolve - line-length: disable - - truthy: disable + max-spaces-after: -1 + level: error + commas: + max-spaces-after: -1 + level: error + comments: disable + comments-indentation: disable + document-start: disable + empty-lines: + max: 3 + level: error + hyphens: + level: error + indentation: disable + key-duplicates: enable + line-length: disable + new-line-at-end-of-file: disable + new-lines: + type: unix + trailing-spaces: disable + truthy: disable diff --git a/CHANGELOG.md b/CHANGELOG.md index e8552e4..a609213 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,278 @@ -# Change Log +commit 7e2a076b0a8155015fd21502db860fa89a2114b3 +Author: Larry Smith Jr +Date: Sun Apr 19 01:44:38 2020 -0400 -## [Unreleased](https://github.com/mrlesmithjr/ansible-manage-lvm/tree/HEAD) + Added Python requirements for testing, etc. + + Closes #33 -[Full Changelog](https://github.com/mrlesmithjr/ansible-manage-lvm/compare/v0.1.0...HEAD) +commit dadb9f24f7ebc2752e6495c4c3569bdee5e0cc68 +Author: Charlie Mordant +Date: Fri Apr 17 13:12:06 2020 +0200 -**Closed issues:** + remove unwanted files -- Role fails on CentOS due to system-storage-manager package [\#2](https://github.com/mrlesmithjr/ansible-manage-lvm/issues/2) +commit 2f63eab727cf7b0b389d0d0cc1a1c7236b71f839 +Author: Charlie Mordant +Date: Fri Apr 17 12:56:31 2020 +0200 -## [v0.1.0](https://github.com/mrlesmithjr/ansible-manage-lvm/tree/v0.1.0) (2016-09-30) -**Merged pull requests:** + code smells -- Replace system-storage-manager with lvm2 in centos [\#3](https://github.com/mrlesmithjr/ansible-manage-lvm/pull/3) ([rohitkothari](https://github.com/rohitkothari)) -- Add xfs\_growfs for xfs systemfile type. [\#1](https://github.com/mrlesmithjr/ansible-manage-lvm/pull/1) ([olo-dw](https://github.com/olo-dw)) +commit 050f8a56f10d81f7827be53b8c769b1aa5021c00 +Author: Charlie Mordant +Date: Wed Apr 15 19:08:34 2020 +0200 + typo in check +commit b955a6f073b91773f5f90da878268e74872a99e9 +Author: Charlie Mordant +Date: Wed Apr 15 18:54:17 2020 +0200 -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file + remove unwanted newline + +commit f81937e9d82bc48f2ee03f6ff462c32bca3da8f0 +Author: Charlie Mordant +Date: Wed Apr 15 18:52:52 2020 +0200 + + makes xfs mountpoint repeatable + +commit 1c3818e5d06887c01dc0a4b88a39c0561a446300 +Author: Charlie Mordant +Date: Wed Apr 15 17:34:53 2020 +0200 + + mistake on remove volume + +commit 47f8dae16a096050dccbb8d161f4a18946a6ae73 +Author: Charlie Mordant +Date: Wed Apr 15 17:13:38 2020 +0200 + + github action lint + +commit 96fa78d6d099d0a48642d377d3e7f30a0c554bdf +Author: Charlie Mordant +Date: Wed Apr 15 17:07:33 2020 +0200 + + remove deprecated machines + +commit 17e8ec1058c5cb66b21b15a8d3912ac9980508a9 +Author: Charlie Mordant +Date: Wed Apr 15 16:56:18 2020 +0200 + + configured molecule and fix xfs on centos + +commit ba5d929fce982af9baa44cfe8ad0b3079133f444 +Author: Charlie Mordant +Date: Wed Apr 15 15:14:30 2020 +0200 + + use dots instead of carets + +commit ea9109220bb268b5f14e75e38d9fb32c2d79bae5 +Author: Charlie Mordant +Date: Wed Apr 15 14:33:41 2020 +0200 + + molecule test and idempotence + +commit d8b3a4e93257dfeb79bc8d4ef349acb53f0019dc +Author: Samuel Mutel +Date: Mon Oct 14 12:21:03 2019 +0200 + + bug: Resize XFS parts is not working + +commit b15ecea51d0045a89aae24e4b0c108b35f060b2c +Author: Tony Peña +Date: Wed Jun 26 14:56:13 2019 +0200 + + Update debian.yml + + Since ansible 2.8.0 must be change way using dict + +commit 9788ee5df68798ad94f11c8133b1d62ff409d0e8 +Author: Michele Caputo +Date: Mon Apr 8 14:16:04 2019 +0200 + + issue #23: extra parenthesis + +commit 0f428a0e40d71aea410fbc1aa329203c0b4f15cd +Author: faisalnizam +Date: Tue Mar 26 10:48:45 2019 +0400 + + FIX LINT FOR BUILD + + FIX LINT FOR BUILD + +commit 8957630c04b8befa99c08ed667e43d95198202ce +Author: faisalnizam +Date: Tue Mar 26 10:40:11 2019 +0400 + + Adding SWAP FileSystem Exception + + Adding Check for SWAP Filesystem if defined skip + 1. SKIP New Filesystem Creation + 2. SKIP mountpoint check + +commit 183087e767cbce08ce2da1a3b04f47d3fc03a7e6 +Author: Larry Smith Jr +Date: Tue Apr 2 08:03:42 2019 -0400 + + Resolves #21 + +commit b3ef85d4f738597260d9db0d90e84d0f8721259a +Author: Larry Smith Jr +Date: Wed Dec 5 08:39:10 2018 -0500 + + Added skip codes for ansible-lint + +commit 9f4afa7afb3fedc270c44ff1fa357da4b87845c0 +Author: Larry Smith Jr +Date: Wed Dec 5 08:00:13 2018 -0500 + + Fixing Travis testing and yamllint issues + +commit 5603c5f6b0899a1b2cdeeeb3c035eb6249e96fa7 +Author: Larry Smith Jr +Date: Wed Dec 5 07:51:31 2018 -0500 + + Added Travis testing and hooks for galaxy + +commit 563aa1effba936340cbaad9766a49f570292edee +Author: Mark Goddard +Date: Wed Oct 31 11:42:20 2018 +0000 + + Fix indentation + +commit 4a58cb36cf6d4dd4bb23e86972658be508cca082 +Author: Mark Goddard +Date: Wed Oct 31 11:16:27 2018 +0000 + + Update tasks/manage_lvm.yml + + Co-Authored-By: oneswig + +commit a0c784797f538fc5393d75589ac48e86c51e88db +Author: Stig Telfer +Date: Wed Oct 31 10:16:44 2018 +0100 + + Support not formatting volumes. + + Logic to make the filesystem attribute optional, in situations where + we do not want the volumes formatted. + +commit 66368de1d3d2b6712cbf66fc3dd0962705bf86f9 +Author: David Castellanos +Date: Mon Dec 18 00:33:45 2017 +0100 + + Add opts and mopts support + +commit 386cc28bdb58886ed492d3438c9cb088d36de161 +Author: Larry Smith Jr +Date: Sun Jun 11 14:57:53 2017 -0400 + + Addresses issue #10 + + Signed-off-by: Larry Smith Jr + +commit 0d255cb5ce9e6016a503203c2ed39a70fb0ccd9c +Author: Larry Smith Jr +Date: Fri May 5 09:12:25 2017 -0400 + + Fixes issue #8 + + Signed-off-by: Larry Smith Jr + +commit f2d06d0d46086da0191b4dbde0d420e709e3ea01 +Author: Stefan Heimberg +Date: Thu Apr 6 00:25:55 2017 +0200 + + added support for btrfs + +commit 7749d0c62a6e1539aff94c57fd2c0eeaf43dd1a0 +Author: Kevin Loveland +Date: Fri Nov 18 10:26:16 2016 -0800 + + Fixed issue with idempotency of lvol module. See ansible-module-extras issue #428 + +commit 3ad965237280d534f0aab0027f9ef61701354e8b +Author: Kevin Loveland +Date: Thu Nov 17 15:17:26 2016 -0800 + + Changes to adjust to removal of bare vars in Ansible 2.2 + +commit a82877c290cfe0b62eda90d8874b8e2b62402946 +Author: Larry Smith Jr +Date: Sun Oct 2 09:58:47 2016 -0400 + + First commit of CHANGELOG + + Signed-off-by: Larry Smith Jr + +commit 99366fa547faccb0359dd8d3b19cec802640eb95 +Author: Rohit Kothari +Date: Thu Sep 29 17:59:19 2016 -0700 + + Replace system-storage-manager with lvm2 in centos + +commit ca1535d774b4e3310fc993841f1f99400612c7a5 +Author: Olivier LOCARD +Date: Fri Sep 23 16:21:07 2016 +0200 + + Add xfs_growfs for xfs systemfile type. + +commit bb87fa8dbff5df50ed376db74a6d2b95f64fd745 +Author: Larry Smith Jr +Date: Tue Nov 3 10:39:58 2015 -0500 + + updated vars and conditionals + +commit 49b20e2e4a80581f1c53559ff4073b3384eae28c +Author: Larry Smith Jr +Date: Tue Nov 3 10:24:54 2015 -0500 + + updated when conditions + +commit 0232734bed92e976376d4c9f2550b515f72f3d54 +Author: Larry Smith Jr +Date: Tue Nov 3 10:22:09 2015 -0500 + + updated tasks to only work when lvnames is defined + +commit 9f592112095208843da1fd69a658bd49c163a7bb +Author: Larry Smith Jr +Date: Tue Nov 3 09:37:38 2015 -0500 + + updated vars and meta + +commit 686455514d8bc0da70b3440dbc5afe669188d333 +Author: Larry Smith Jr +Date: Tue Nov 3 09:22:00 2015 -0500 + + cleaned up and fixed all tasks including swap + +commit 9f5c61e25599a130e1625e879438561cc1f6a437 +Author: Larry Smith Jr +Date: Mon Nov 2 23:38:38 2015 -0500 + + added new task + +commit a5103ff6396138f531cf8457f16706b6fc90d1d1 +Author: Larry Smith Jr +Date: Mon Nov 2 23:38:23 2015 -0500 + + changing role tasks and vars + +commit c776e9f339f0bcfe987aa571d29411ac44a29526 +Author: Larry Smith Jr +Date: Mon Nov 2 21:50:07 2015 -0500 + + updated meta + +commit 46e0fd1fc2477693fc66aa4b38ac7bde19087047 +Author: Larry Smith Jr +Date: Mon Nov 2 21:23:59 2015 -0500 + + updated meta + +commit d1d99b2f17d3bc46a479af5d01a976686429b7ce +Author: Larry Smith Jr +Date: Mon Nov 2 21:23:03 2015 -0500 + + first commit diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..fad57a5 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,66 @@ +ansible==2.9.7 +ansible-lint==4.2.0 +arrow==0.15.5 +attrs==19.3.0 +bcrypt==3.1.7 +binaryornot==0.4.4 +Cerberus==1.3.2 +certifi==2020.4.5.1 +cffi==1.14.0 +chardet==3.0.4 +click==7.1.1 +click-completion==0.5.2 +click-help-colors==0.8 +colorama==0.4.3 +cookiecutter==1.7.0 +cryptography==2.9 +distro==1.5.0 +docker==4.2.0 +entrypoints==0.3 +fasteners==0.15 +flake8==3.7.9 +future==0.18.2 +idna==2.9 +importlib-metadata==1.6.0 +Jinja2==2.11.2 +jinja2-time==0.2.0 +MarkupSafe==1.1.1 +mccabe==0.6.1 +molecule==3.0.3 +molecule-vagrant==0.2 +monotonic==1.5 +more-itertools==8.2.0 +packaging==20.3 +paramiko==2.7.1 +pathspec==0.8.0 +pexpect==4.8.0 +pluggy==0.13.1 +poyo==0.5.0 +ptyprocess==0.6.0 +py==1.8.1 +pycodestyle==2.5.0 +pycparser==2.20 +pyflakes==2.1.1 +PyNaCl==1.3.0 +pyparsing==2.4.7 +pytest==5.4.1 +python-dateutil==2.8.1 +python-gilt==1.2.3 +python-vagrant==0.5.15 +PyYAML==5.3.1 +requests==2.23.0 +ruamel.yaml==0.16.10 +ruamel.yaml.clib==0.2.0 +selinux==0.2.1 +sh==1.12.14 +shellingham==1.3.2 +six==1.14.0 +tabulate==0.8.7 +testinfra==5.0.0 +tree-format==0.1.2 +urllib3==1.25.9 +wcwidth==0.1.9 +websocket-client==0.57.0 +whichcraft==0.6.1 +yamllint==1.23.0 +zipp==3.1.0 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..48c9c43 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +ansible-lint==4.2.0 +docker==4.2.0 +flake8==3.7.9 +molecule-vagrant==0.2 +molecule==3.0.3 +testinfra==5.0.0 +yamllint==1.23.0 diff --git a/tasks/create_fs.yml b/tasks/create_fs.yml index dbfea2d..1656131 100644 --- a/tasks/create_fs.yml +++ b/tasks/create_fs.yml @@ -44,7 +44,7 @@ - name: lvm | check already converted # at least xfs is executed twice if the partition has changed in the meantime # then it tries to recreate the fs on the mounted fs which indeed fails... - shell: "xfs_info /dev/{{ vg.vgname }}/{{ lv.lvname }} | grep -c 'ftype=1'" + shell: "xfs_info {{ lv.mntp }} | grep -c 'ftype=1'" become: yes loop: "{{ vg.lvnames }}" loop_control: