文件操作 - mq_user_info.py
返回文件管理
返回主菜单
删除本文件
文件: /usr/lib/python3.12/site-packages/ansible_collections/community/aws/plugins/modules/mq_user_info.py
编辑文件内容
# -*- coding: utf-8 -*- # Copyright: Contributors to the Ansible project # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) DOCUMENTATION = r""" --- module: mq_user_info version_added: 6.0.0 short_description: List users of an Amazon MQ broker description: - List users for the specified broker ID. - Pending creations and deletions can be skipped by options. author: - FCO (@fotto) options: broker_id: description: - The ID of the MQ broker to work on. type: str required: true max_results: description: - The maximum number of results to return. type: int default: 100 skip_pending_create: description: - Will skip pending creates from the result set. type: bool default: false skip_pending_delete: description: - Will skip pending deletes from the result set. type: bool default: false as_dict: description: - Convert result into lookup table by username. type: bool default: false extends_documentation_fragment: - amazon.aws.boto3 - amazon.aws.common.modules - amazon.aws.region.modules """ EXAMPLES = r""" - name: get all users as list - relying on environment for API credentials community.aws.mq_user_info: broker_id: "aws-mq-broker-id" max_results: 50 register: result - name: get users as dict - explicitly specifying all credentials community.aws.mq_user_info: broker_id: "aws-mq-broker-id" register: result - name: get list of users to decide which may need to be deleted community.aws.mq_user_info: broker_id: "aws-mq-broker-id" skip_pending_delete: true - name: get list of users to decide which may need to be created community.aws.mq_user_info: broker_id: "aws-mq-broker-id" skip_pending_create: true """ RETURN = r""" users: type: dict returned: success description: - dict key is username - each entry is the record for a user as returned by API but converted to snake yaml """ try: import botocore except ImportError as ex: # handled by AnsibleAWSModule pass from ansible.module_utils.common.dict_transformations import camel_dict_to_snake_dict from ansible_collections.amazon.aws.plugins.module_utils.core import AnsibleAWSModule DEFAULTS = {"max_results": 100, "skip_pending_create": False, "skip_pending_delete": False, "as_dict": True} def get_user_info(conn, module): try: response = conn.list_users(BrokerId=module.params["broker_id"], MaxResults=module.params["max_results"]) except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e: if module.check_mode: # return empty set for unknown broker in check mode if DEFAULTS["as_dict"]: return {} return [] module.fail_json_aws(e, msg="Failed to describe users") # if not module.params["skip_pending_create"] and not module.params["skip_pending_delete"]: # we can simply return the sub-object from the response records = response["Users"] else: records = [] for record in response["Users"]: if "PendingChange" in record: if record["PendingChange"] == "CREATE" and module.params["skip_pending_create"]: continue if record["PendingChange"] == "DELETE" and module.params["skip_pending_delete"]: continue # records.append(record) # if DEFAULTS["as_dict"]: user_records = {} for record in records: user_records[record["Username"]] = record # return camel_dict_to_snake_dict(user_records, ignore_list=["Tags"]) return camel_dict_to_snake_dict(records, ignore_list=["Tags"]) def main(): argument_spec = dict( broker_id=dict(required=True, type="str"), max_results=dict(required=False, type="int", default=DEFAULTS["max_results"]), skip_pending_create=dict(required=False, type="bool", default=DEFAULTS["skip_pending_create"]), skip_pending_delete=dict(required=False, type="bool", default=DEFAULTS["skip_pending_delete"]), as_dict=dict(required=False, type="bool", default=False), ) module = AnsibleAWSModule(argument_spec=argument_spec, supports_check_mode=True) connection = module.client("mq") try: user_records = get_user_info(connection, module) except botocore.exceptions.ClientError as e: module.fail_json_aws(e) module.exit_json(users=user_records) if __name__ == "__main__": main()
修改文件时间
将文件时间修改为当前时间的前一年
删除文件