#!/usr/bin/python # -*- coding: utf-8 -*- from ansible.module_utils.openshift_common import OpenShiftAnsibleModule, OpenShiftAnsibleException DOCUMENTATION = ''' module: openshift_v1_deployment_config_rollback short_description: OpenShift DeploymentConfigRollback description: - Manage the lifecycle of a deployment_config_rollback object. Supports check mode, and attempts to to be idempotent. version_added: 2.3.0 author: OpenShift (@openshift) options: api_key: description: - Token used to connect to the API. cert_file: description: - Path to a certificate used to authenticate with the API. type: path context: description: - The name of a context found in the Kubernetes config file. debug: description: - Enable debug output from the OpenShift helper. Logging info is written to KubeObjHelper.log default: false type: bool force: description: - If set to C(True), and I(state) is C(present), an existing object will updated, and lists will be replaced, rather than merged. default: false type: bool host: description: - Provide a URL for acessing the Kubernetes API. key_file: description: - Path to a key file used to authenticate with the API. type: path 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). type: path name: description: - Name of the deployment config that will be rolled back. password: description: - Provide a password for connecting to the API. Use in conjunction with I(username). spec__from_api_version: description: - API version of the referent. aliases: - _from_api_version spec__from_field_path: description: - 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.' aliases: - _from_field_path spec__from_kind: description: - Kind of the referent. aliases: - _from_kind spec__from_name: description: - Name of the referent. aliases: - _from_name spec__from_namespace: description: - Namespace of the referent. aliases: - _from_namespace spec__from_resource_version: description: - Specific resourceVersion to which this reference is made, if any. aliases: - _from_resource_version spec__from_uid: description: - UID of the referent. aliases: - _from_uid spec_include_replication_meta: description: - IncludeReplicationMeta specifies whether to include the replica count and selector. aliases: - include_replication_meta type: bool spec_include_strategy: description: - IncludeStrategy specifies whether to include the deployment Strategy. aliases: - include_strategy type: bool spec_include_template: description: - IncludeTemplate specifies whether to include the PodTemplateSpec. aliases: - include_template type: bool spec_include_triggers: description: - IncludeTriggers specifies whether to include config Triggers. aliases: - include_triggers type: bool spec_revision: description: - Revision to rollback to. If set to 0, rollback to the last revision. aliases: - revision type: int ssl_ca_cert: description: - Path to a CA certificate used to authenticate with the API. type: path updated_annotations: description: - UpdatedAnnotations is a set of new annotations that will be added in the deployment config. type: dict username: description: - Provide a username for connecting to the API. verify_ssl: description: - Whether or not to verify the API server's SSL certificates. type: bool requirements: - openshift == 0.3.3 ''' EXAMPLES = ''' ''' RETURN = ''' api_version: type: string description: Requested API version deployment_config_rollback: type: complex returned: on success contains: api_version: description: - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. type: str kind: description: - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. type: str name: description: - Name of the deployment config that will be rolled back. type: str spec: description: - Spec defines the options to rollback generation. type: complex contains: _from: description: - From points to a ReplicationController which is a deployment. type: complex contains: api_version: description: - API version of the referent. type: str field_path: description: - 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.' type: str kind: description: - Kind of the referent. type: str name: description: - Name of the referent. type: str namespace: description: - Namespace of the referent. type: str resource_version: description: - Specific resourceVersion to which this reference is made, if any. type: str uid: description: - UID of the referent. type: str include_replication_meta: description: - IncludeReplicationMeta specifies whether to include the replica count and selector. type: bool include_strategy: description: - IncludeStrategy specifies whether to include the deployment Strategy. type: bool include_template: description: - IncludeTemplate specifies whether to include the PodTemplateSpec. type: bool include_triggers: description: - IncludeTriggers specifies whether to include config Triggers. type: bool revision: description: - Revision to rollback to. If set to 0, rollback to the last revision. type: int updated_annotations: description: - UpdatedAnnotations is a set of new annotations that will be added in the deployment config. type: complex contains: str, str ''' def main(): try: module = OpenShiftAnsibleModule('deployment_config_rollback', 'v1') except OpenShiftAnsibleException as exc: # The helper failed to init, so there is no module object. All we can do is raise the error. raise Exception(exc.message) try: module.execute_module() except OpenShiftAnsibleException as exc: module.fail_json(msg="Module failed!", error=str(exc)) if __name__ == '__main__': main()