From 0d1aebe064a742666dcfc41efb526e141f6f82b2 Mon Sep 17 00:00:00 2001 From: Dag Wieers Date: Fri, 22 Feb 2019 12:27:11 +0100 Subject: [PATCH] kubernetes: Clean up parameter types (#52543) This PR includes: - Parameter types added - Copyright format fixes - Short license statement This breaks out PR #52182 --- .../plugins/doc_fragments/k8s_auth_options.py | 37 ++++++++----------- .../plugins/doc_fragments/k8s_name_options.py | 27 +++++--------- .../doc_fragments/k8s_resource_options.py | 25 ++++--------- .../doc_fragments/k8s_scale_options.py | 26 ++++--------- .../doc_fragments/k8s_state_options.py | 32 +++++----------- test/sanity/validate-modules/ignore.txt | 3 ++ 6 files changed, 51 insertions(+), 99 deletions(-) diff --git a/lib/ansible/plugins/doc_fragments/k8s_auth_options.py b/lib/ansible/plugins/doc_fragments/k8s_auth_options.py index f3b8165c036..42403a1a9f3 100644 --- a/lib/ansible/plugins/doc_fragments/k8s_auth_options.py +++ b/lib/ansible/plugins/doc_fragments/k8s_auth_options.py @@ -1,43 +1,34 @@ -# -# Copyright 2018 Red Hat | Ansible -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see . +# -*- coding: utf-8 -*- + +# Copyright: (c) 2018, Red Hat | Ansible +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # Options for authenticating with the API. class ModuleDocFragment(object): - DOCUMENTATION = ''' + DOCUMENTATION = r''' options: host: description: - Provide a URL for accessing the API. Can also be specified via K8S_AUTH_HOST environment variable. + type: str api_key: description: - Token used to authenticate with the API. Can also be specified via K8S_AUTH_API_KEY environment variable. + type: str kubeconfig: description: - Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the openshift client will attempt to load the default configuration file from I(~/.kube/config.json). Can also be specified via K8S_AUTH_KUBECONFIG environment variable. + type: path context: description: - The name of a context found in the config file. Can also be specified via K8S_AUTH_CONTEXT environment variable. + type: str username: description: - Provide a username for authenticating with the API. Can also be specified via K8S_AUTH_USERNAME environment @@ -45,29 +36,33 @@ options: - Please note that this only works with clusters configured to use HTTP Basic Auth. If your cluster has a different form of authentication (e.g. OAuth2 in OpenShift), this option will not work as expected and you should look into the C(k8s_auth) module, as that might do what you need. + type: str password: description: - Provide a password for authenticating with the API. Can also be specified via K8S_AUTH_PASSWORD environment variable. - Please read the description of the C(username) option for a discussion of when this option is applicable. + type: str cert_file: description: - Path to a certificate used to authenticate with the API. Can also be specified via K8S_AUTH_CERT_FILE environment variable. + type: path key_file: description: - Path to a key file used to authenticate with the API. Can also be specified via K8S_AUTH_KEY_FILE environment variable. + type: path ssl_ca_cert: description: - Path to a CA certificate used to authenticate with the API. The full certificate chain must be provided to avoid certificate validation errors. Can also be specified via K8S_AUTH_SSL_CA_CERT environment variable. + type: path verify_ssl: description: - - "Whether or not to verify the API server's SSL certificates. Can also be specified via K8S_AUTH_VERIFY_SSL - environment variable." + - Whether or not to verify the API server's SSL certificates. Can also be specified via K8S_AUTH_VERIFY_SSL + environment variable. type: bool - notes: - "The OpenShift Python client wraps the K8s Python client, providing full access to all of the APIS and models available on both platforms. For API version details and diff --git a/lib/ansible/plugins/doc_fragments/k8s_name_options.py b/lib/ansible/plugins/doc_fragments/k8s_name_options.py index 74e693c3960..74375cc17ac 100644 --- a/lib/ansible/plugins/doc_fragments/k8s_name_options.py +++ b/lib/ansible/plugins/doc_fragments/k8s_name_options.py @@ -1,27 +1,14 @@ -# -# Copyright 2018 Red Hat | Ansible -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see . +# -*- coding: utf-8 -*- + +# Copyright: (c) 2018, Red Hat | Ansible +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # Options for selecting or identifying a specific K8s object class ModuleDocFragment(object): - DOCUMENTATION = ''' + DOCUMENTATION = r''' options: api_version: description: @@ -29,6 +16,7 @@ options: resource definition. Use in conjunction with I(kind), I(name), and I(namespace) to identify a specific object. If I(resource definition) is provided, the I(apiVersion) from the I(resource_definition) will override this option. + type: str default: v1 aliases: - api @@ -39,16 +27,19 @@ options: resource definition. Use in conjunction with I(api_version), I(name), and I(namespace) to identify a specific object. If I(resource definition) is provided, the I(kind) from the I(resource_definition) will override this option. + type: str name: description: - Use to specify an object name. Use to create, delete, or discover an object without providing a full resource definition. Use in conjunction with I(api_version), I(kind) and I(namespace) to identify a specific object. If I(resource definition) is provided, the I(metadata.name) value from the I(resource_definition) will override this option. + type: str namespace: description: - Use to specify an object namespace. Useful when creating, deleting, or discovering an object without providing a full resource definition. Use in conjunction with I(api_version), I(kind), and I(name) to identify a specfic object. If I(resource definition) is provided, the I(metadata.namespace) value from the I(resource_definition) will override this option. + type: str ''' diff --git a/lib/ansible/plugins/doc_fragments/k8s_resource_options.py b/lib/ansible/plugins/doc_fragments/k8s_resource_options.py index 25adb32db58..7db40451727 100644 --- a/lib/ansible/plugins/doc_fragments/k8s_resource_options.py +++ b/lib/ansible/plugins/doc_fragments/k8s_resource_options.py @@ -1,32 +1,20 @@ -# -# Copyright 2018 Red Hat | Ansible -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see . +# -*- coding: utf-8 -*- + +# Copyright: (c) 2018, Red Hat | Ansible +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # Options for providing an object configuration class ModuleDocFragment(object): - DOCUMENTATION = ''' + DOCUMENTATION = r''' options: resource_definition: description: - "Provide a valid YAML definition (either as a string, list, or dict) for an object when creating or updating. NOTE: I(kind), I(api_version), I(name), and I(namespace) will be overwritten by corresponding values found in the provided I(resource_definition)." + type: str aliases: - definition - inline @@ -38,4 +26,5 @@ options: - Reads from the local file system. To read from the Ansible controller's file system, including vaulted files, use the file lookup plugin or template lookup plugin, combined with the from_yaml filter, and pass the result to I(resource_definition). See Examples below. + type: path ''' diff --git a/lib/ansible/plugins/doc_fragments/k8s_scale_options.py b/lib/ansible/plugins/doc_fragments/k8s_scale_options.py index 6eef7cbb8f7..11b156c1fc0 100644 --- a/lib/ansible/plugins/doc_fragments/k8s_scale_options.py +++ b/lib/ansible/plugins/doc_fragments/k8s_scale_options.py @@ -1,31 +1,19 @@ -# -# Copyright 2018 Red Hat | Ansible -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see . +# -*- coding: utf-8 -*- + +# Copyright: (c) 2018, Red Hat | Ansible +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # Options used by scale modules. class ModuleDocFragment(object): - DOCUMENTATION = ''' + DOCUMENTATION = r''' options: replicas: description: - The desired number of replicas. + type: int current_replicas: description: - For Deployment, ReplicaSet, Replication Controller, only scale, if the number of existing replicas @@ -40,7 +28,7 @@ options: - For Deployment, ReplicaSet, Replication Controller, wait for the status value of I(ready_replicas) to change to the number of I(replicas). In the case of a Job, this option is ignored. type: bool - default: true + default: yes wait_timeout: description: - When C(wait) is I(True), the number of seconds to wait for the I(ready_replicas) status to equal I(replicas). diff --git a/lib/ansible/plugins/doc_fragments/k8s_state_options.py b/lib/ansible/plugins/doc_fragments/k8s_state_options.py index 660d6db98c3..724962068d0 100644 --- a/lib/ansible/plugins/doc_fragments/k8s_state_options.py +++ b/lib/ansible/plugins/doc_fragments/k8s_state_options.py @@ -1,27 +1,14 @@ -# -# Copyright 2018 Red Hat | Ansible -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see . +# -*- coding: utf-8 -*- + +# Copyright: (c) 2018, Red Hat | Ansible +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # Options for specifying object state class ModuleDocFragment(object): - DOCUMENTATION = ''' + DOCUMENTATION = r''' options: state: description: @@ -29,13 +16,12 @@ options: created, if it does not already exist. If set to C(absent), an existing object will be deleted. If set to C(present), an existing object will be patched, if its attributes differ from those specified using I(resource_definition) or I(src). + type: str default: present - choices: - - present - - absent + choices: [ absent, present ] force: description: - - If set to C(True), and I(state) is C(present), an existing object will be replaced. - default: false + - If set to C(yes), and I(state) is C(present), an existing object will be replaced. type: bool + default: no ''' diff --git a/test/sanity/validate-modules/ignore.txt b/test/sanity/validate-modules/ignore.txt index fa23322d58c..5eca1d04712 100644 --- a/test/sanity/validate-modules/ignore.txt +++ b/test/sanity/validate-modules/ignore.txt @@ -161,6 +161,7 @@ lib/ansible/modules/cloud/google/gcpubsub_facts.py E322 lib/ansible/modules/cloud/google/gcpubsub_facts.py E324 lib/ansible/modules/cloud/google/gcpubsub_facts.py E326 lib/ansible/modules/cloud/google/gcspanner.py E322 +lib/ansible/modules/cloud/kubevirt/kubevirt_vm.py E325 lib/ansible/modules/cloud/linode/linode.py E322 lib/ansible/modules/cloud/linode/linode.py E324 lib/ansible/modules/cloud/lxc/lxc_container.py E210 @@ -344,6 +345,8 @@ lib/ansible/modules/clustering/etcd3.py E326 lib/ansible/modules/clustering/k8s/_kubernetes.py E322 lib/ansible/modules/clustering/k8s/_kubernetes.py E323 lib/ansible/modules/clustering/k8s/_kubernetes.py E324 +lib/ansible/modules/clustering/k8s/k8s.py E325 +lib/ansible/modules/clustering/k8s/k8s_scale.py E325 lib/ansible/modules/clustering/znode.py E326 lib/ansible/modules/commands/command.py E322 lib/ansible/modules/commands/command.py E323