blob: 87d7ac87dbf4b252aaafdc5314431a0567fb48a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# Copyright (c) 2016, Tsukinowa Inc. <info@tsukinowa.jp>
# Copyright (c) 2018, Ansible Project
from ansiblelint.rules import AnsibleLintRule
class RoleRelativePath(AnsibleLintRule):
id = '404'
shortdesc = "Doesn't need a relative path in role"
description = '``copy`` and ``template`` do not need to use relative path for ``src``'
severity = 'HIGH'
tags = ['module']
version_added = 'v4.0.0'
_module_to_path_folder = {
'copy': 'files',
'win_copy': 'files',
'template': 'templates',
'win_template': 'win_templates',
}
def matchtask(self, file, task):
module = task['action']['__ansible_module__']
if module not in self._module_to_path_folder:
return False
if 'src' not in task['action']:
return False
path_to_check = '../{}'.format(self._module_to_path_folder[module])
if path_to_check in task['action']['src']:
return True
|