| |
@@ -14,7 +14,7 @@
|
| |
|
| |
DOCUMENTATION = r"""
|
| |
---
|
| |
- module: fas2discourse_retrieve_discourse_data
|
| |
+ module: fas2discourse_retrieve_discourse_groups
|
| |
|
| |
short_description: Retrieve discourse groups.
|
| |
|
| |
@@ -36,22 +36,21 @@
|
| |
|
| |
EXAMPLES = r"""
|
| |
- name: Retrieve discourse groups.
|
| |
- fas2discourse_retrieve_discourse_data:
|
| |
+ fas2discourse_retrieve_discourse_groups:
|
| |
+ discourse_api: "{{ discourse_api }}"
|
| |
+ discourse_host: "{{ discourse_host }}"
|
| |
register: fas2discourse_discourse_response
|
| |
"""
|
| |
|
| |
RETURN = r"""
|
| |
# These are examples of possible return values, and in general should use other names for return
|
| |
# values.
|
| |
+
|
| |
discourse_groups:
|
| |
- description: All the discourse groups.
|
| |
- type: str
|
| |
+ description: The Discourse groups.
|
| |
+ type: dict
|
| |
returned: always
|
| |
- sample:
|
| |
- {
|
| |
- "groups":[{"group": "design"},
|
| |
- {"group": "editors"}]
|
| |
- }
|
| |
+ sample: '{"groups":[{"id":51,"automatic":false,"name":"community-blog","user_count":2,"mentionable_level":3,"messageable_level":0,"visibility_level":0,"primary_group":false,"title":"","grant_trust_level":1,"flair_url":"https://redhat.discourse-cdn.com/fedoraproject/original/2X/2/28d0975bef06287ee5f04d0a9e576de172103298.png","flair_bg_color":"","flair_color":"","bio_cooked":null,"bio_excerpt":null,"public_admission":false,"public_exit":false,"allow_membership_requests":false,"full_name":"Community Blog Editors","default_notification_level":3,"membership_request_template":null,"members_visibility_level":0,"can_see_members":true,"publish_read_state":false}]}'
|
| |
|
| |
msg:
|
| |
description: The output message that the module generates.
|
| |
@@ -61,23 +60,19 @@
|
| |
"""
|
| |
|
| |
|
| |
- # Helper function to create the http requests
|
| |
- def get_http_client():
|
| |
- session = requests.Session()
|
| |
- return session
|
| |
-
|
| |
-
|
| |
# Helper function to retrieve fasjson groups
|
| |
- def get_groups(http_client):
|
| |
- response = http_client.get("%sgroups.json" % ("https://discussion.fedoraproject.org/"))
|
| |
- if response.ok:
|
| |
- return response.json()
|
| |
+ def get_groups(discourse_host, discourse_api):
|
| |
+ url = "%s/groups.json" % (discourse_host)
|
| |
+ headers = {"Api-Key": "%s" % (discourse_api), "Api-Username" : "system"}
|
| |
+ response = requests.get(url, headers=headers)
|
| |
+ return response
|
| |
|
| |
|
| |
def run_module():
|
| |
# define available arguments/parameters a user can pass to the module
|
| |
module_args = dict(
|
| |
- discourse_groups=dict(type="str", required=True),
|
| |
+ discourse_api=dict(type="str", required=True),
|
| |
+ discourse_host=dict(type="str", required=True),
|
| |
)
|
| |
|
| |
# seed the result dict in the object
|
| |
@@ -102,17 +97,15 @@
|
| |
# manipulate or modify the state as needed (this is going to be the
|
| |
# part where your module will do what it needs to do)
|
| |
discourse_api = module.params["discourse_api"]
|
| |
+ discourse_host = module.params["discourse_host"]
|
| |
|
| |
try:
|
| |
- http_client = get_http_client()
|
| |
- groups_response = get_groups(http_client)
|
| |
-
|
| |
discourse_groups = []
|
| |
- for v in groups_response["groups"]:
|
| |
- dicourse_groups.append(v["name"])
|
| |
-
|
| |
+ resp = get_groups(discourse_host, discourse_api)
|
| |
+ if resp.ok:
|
| |
+ discourse_groups = json.dumps(resp.json())
|
| |
|
| |
- result["discourse_groups"] = json.dumps(discourse_groups)
|
| |
+ result["discourse_groups"] = discourse_groups
|
| |
result["changed"] = True
|
| |
result["msg"] = "Successfully retrieved groups from Discourse."
|
| |
except Exception:
|
| |
Signed-off-by: David Kirwan dkirwan@redhat.com