compile   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 35
dl 0
loc 54
rs 10
c 0
b 0
f 0
wmc 6

1 Function

Rating   Name   Duplication   Size   Complexity  
B main() 0 39 6
1
#!/usr/bin/python
2
3
ANSIBLE_METADATA = {
4
    'metadata_version': '1.0',
5
    'status': ['preview'],
6
    'supported_by': 'community'
7
}
8
9
from ansible.module_utils.basic import AnsibleModule
10
import os, glob
11
12
def main():
13
    module = AnsibleModule(
14
        argument_spec=dict(
15
            app=dict(type='dict', required=True),
16
            directory=dict(type='str', required=True),
17
            task=dict(type='str', required=True),
18
            order=dict(type='str', required=False, default='asc')
19
        )
20
    )
21
22
    result = dict(
23
        changed=False,
24
        tasks=[]
25
    )
26
27
    tasks = []
28
    files = glob.glob(module.params['directory'] + '/' + module.params['task'] + '.yml')
29
30
    for file in files:
31
        variable = os.path.basename(file[:-(len(module.params['task']) + 5)])
32
33
        if not module.params['app'][variable]['enabled']:
34
            continue
35
36
        order = 0
37
38
        if 'order' in module.params['app'][variable]:
39
            order = module.params['app'][variable]['order']
40
41
        tasks.append((file, order))
42
43
    tasks = sorted(tasks, key=lambda task: task[1], reverse=module.params['order'] != 'asc')
44
    ordered = []
45
46
    for task in tasks:
47
        ordered.append(task[0])
48
49
    result['tasks'] = ordered
50
    module.exit_json(**result)
51
52
if __name__ == '__main__':
53
    main()
54