Server IP : 85.214.239.14 / Your IP : 18.217.237.68 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/ansible_collections/community/okd/plugins/modules/ |
Upload File : |
#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright (c) 2021, Red Hat # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function __metaclass__ = type # STARTREMOVE (downstream) DOCUMENTATION = r''' module: openshift_build short_description: Start a new build or Cancel running, pending, or new builds. version_added: "2.3.0" author: - Aubin Bikouo (@abikouo) description: - This module starts a new build from the provided build config or build name. - This module also cancel a new, pending or running build by requesting a graceful shutdown of the build. There may be a delay between requesting the build and the time the build is terminated. - This can also restart a new build when the current is cancelled. - Analogous to C(oc cancel-build) and C(oc start-build). extends_documentation_fragment: - kubernetes.core.k8s_auth_options options: state: description: - Determines if a Build should be started ,cancelled or restarted. - When set to C(restarted) a new build will be created after the current build is cancelled. choices: - started - cancelled - restarted default: started type: str build_name: description: - Specify the name of a build which should be re-run. - Mutually exclusive with parameter I(build_config_name). type: str build_config_name: description: - Specify the name of a build config from which a new build will be run. - Mutually exclusive with parameter I(build_name). type: str namespace: description: - Specify the namespace for the build or the build config. type: str required: True build_args: description: - Specify a list of key-value pair to pass to Docker during the build. type: list elements: dict suboptions: name: description: - docker build argument name. type: str required: true value: description: - docker build argument value. type: str required: true commit: description: - Specify the source code commit identifier the build should use; requires a build based on a Git repository. type: str env_vars: description: - Specify a list of key-value pair for an environment variable to set for the build container. type: list elements: dict suboptions: name: description: - Environment variable name. type: str required: true value: description: - Environment variable value. type: str required: true incremental: description: - Overrides the incremental setting in a source-strategy build, ignored if not specified. type: bool no_cache: description: - Overrides the noCache setting in a docker-strategy build, ignored if not specified. type: bool wait: description: - When C(state=started), specify whether to wait for a build to complete and exit with a non-zero return code if the build fails. - When I(state=cancelled), specify whether to wait for a build phase to be Cancelled. default: False type: bool wait_sleep: description: - Number of seconds to sleep between checks. - Ignored if C(wait=false). default: 5 type: int wait_timeout: description: - How long in seconds to wait for a build to complete. - Ignored if C(wait=false). default: 120 type: int build_phases: description: - List of state for build to cancel. - Ignored when C(state=started). type: list elements: str choices: - New - Pending - Running default: [] requirements: - python >= 3.6 - kubernetes >= 12.0.0 ''' EXAMPLES = r''' # Starts build from build config default/hello-world - name: Starts build from build config community.okd.openshift_build: namespace: default build_config_name: hello-world # Starts build from a previous build "default/hello-world-1" - name: Starts build from a previous build community.okd.openshift_build: namespace: default build_name: hello-world-1 # Cancel the build with the given name - name: Cancel build from default namespace community.okd.openshift_build: namespace: "default" build_name: ruby-build-1 state: cancelled # Cancel the named build and create a new one with the same parameters - name: Cancel build from default namespace and create a new one community.okd.openshift_build: namespace: "default" build_name: ruby-build-1 state: restarted # Cancel all builds created from 'ruby-build' build configuration that are in 'new' state - name: Cancel build from default namespace and create a new one community.okd.openshift_build: namespace: "default" build_config_name: ruby-build build_phases: - New state: cancelled ''' RETURN = r''' builds: description: - The builds that were started/cancelled. returned: success type: complex contains: api_version: description: The versioned schema of this representation of an object. returned: success type: str kind: description: Represents the REST resource this object represents. returned: success type: str metadata: description: Standard object metadata. Includes name, namespace, annotations, labels, etc. returned: success type: dict spec: description: Specific attributes of the build. returned: success type: dict status: description: Current status details for the object. returned: success type: dict ''' # ENDREMOVE (downstream) import copy from ansible_collections.kubernetes.core.plugins.module_utils.args_common import AUTH_ARG_SPEC def argument_spec(): args = copy.deepcopy(AUTH_ARG_SPEC) args_options = dict( name=dict(type='str', required=True), value=dict(type='str', required=True) ) args.update( dict( state=dict(type='str', choices=['started', 'cancelled', 'restarted'], default="started"), build_args=dict(type='list', elements='dict', options=args_options), commit=dict(type='str'), env_vars=dict(type='list', elements='dict', options=args_options), build_name=dict(type='str'), build_config_name=dict(type='str'), namespace=dict(type='str', required=True), incremental=dict(type='bool'), no_cache=dict(type='bool'), wait=dict(type='bool', default=False), wait_sleep=dict(type='int', default=5), wait_timeout=dict(type='int', default=120), build_phases=dict(type='list', elements='str', default=[], choices=["New", "Pending", "Running"]), ) ) return args def main(): mutually_exclusive = [ ('build_name', 'build_config_name'), ] from ansible_collections.community.okd.plugins.module_utils.openshift_builds import ( OpenShiftBuilds ) module = OpenShiftBuilds( argument_spec=argument_spec(), mutually_exclusive=mutually_exclusive, required_one_of=[ [ 'build_name', 'build_config_name', ] ], ) module.run_module() if __name__ == '__main__': main()