filesystem: fix 355 state absent (#1149)

* add support for filesystem removal (fix #355)

- Add 'state' option, defaults to 'present'.
- When state=absent, ignore other options (even 'dev' if the device
  doesn't exist)

* test filesystem state=absent (+ check_mode + idempotency)

* fix doc-required-mismatch

* add changelog fragment

* fix blkid return code

* ext4dev may be deprecated

* base checks on UUID instead

* Update changelogs/fragments/1149-filesystem-fix-355-state-absent.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/modules/system/filesystem.py (version_added)

Co-authored-by: Felix Fontein <felix@fontein.de>

* use array for new run_command() calls; do not wipefs if no fs found

* use dd as a fallback

* do not use bare 'except' (pep8)

* force string type

* use dd anyway (wipefs not supported everywhere, possibly buggy with vfat, etc.)

* do not truncate regular files; update changelog fragment

* doc: update state description and an example; notice check_mode support

* do not wipe mounted fs, fail instead

* back to wipefs implementation

* update test's main conditions

* update changelog fragment

* explicit types

* fail state=absent on freebsd

* remove doc-missing-type exceptions (2.9, 2.10, 2.11)

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
quidame 2020-10-26 18:43:01 +00:00 committed by GitHub
commit a5ca990857
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 194 additions and 34 deletions

View file

@ -1169,7 +1169,6 @@ plugins/modules/system/dconf.py pylint:blacklisted-name
plugins/modules/system/dconf.py validate-modules:doc-missing-type
plugins/modules/system/dconf.py validate-modules:parameter-type-not-in-doc
plugins/modules/system/filesystem.py pylint:blacklisted-name
plugins/modules/system/filesystem.py validate-modules:doc-missing-type
plugins/modules/system/gconftool2.py pylint:blacklisted-name
plugins/modules/system/gconftool2.py validate-modules:parameter-state-invalid-choice
plugins/modules/system/gconftool2.py validate-modules:parameter-type-not-in-doc

View file

@ -1169,7 +1169,6 @@ plugins/modules/system/dconf.py pylint:blacklisted-name
plugins/modules/system/dconf.py validate-modules:doc-missing-type
plugins/modules/system/dconf.py validate-modules:parameter-type-not-in-doc
plugins/modules/system/filesystem.py pylint:blacklisted-name
plugins/modules/system/filesystem.py validate-modules:doc-missing-type
plugins/modules/system/gconftool2.py pylint:blacklisted-name
plugins/modules/system/gconftool2.py validate-modules:parameter-state-invalid-choice
plugins/modules/system/gconftool2.py validate-modules:parameter-type-not-in-doc

View file

@ -921,7 +921,6 @@ plugins/modules/system/dconf.py pylint:blacklisted-name
plugins/modules/system/dconf.py validate-modules:doc-missing-type
plugins/modules/system/dconf.py validate-modules:parameter-type-not-in-doc
plugins/modules/system/filesystem.py pylint:blacklisted-name
plugins/modules/system/filesystem.py validate-modules:doc-missing-type
plugins/modules/system/gconftool2.py pylint:blacklisted-name
plugins/modules/system/gconftool2.py validate-modules:parameter-type-not-in-doc
plugins/modules/system/interfaces_file.py pylint:blacklisted-name