Skip to content

Commit 7d24dc7

Browse files
authored
Merge pull request #222 from Helene/fix_yaml_parser
Fix parsing file name properly in configgenerator
2 parents a948cfa + c440e42 commit 7d24dc7

File tree

3 files changed

+42
-3
lines changed

3 files changed

+42
-3
lines changed

source/confgenerator.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,12 @@ def generate_config(self):
8686
"insecure_skip_verify": True}
8787
scrape_job["tls_config"] = tls
8888
if self.attr.get('enabled', False):
89-
basic_auth = {"username": self.attr.get('username'),
90-
"password": self.attr.get('password')}
89+
basic_auth = {"username": self.attr.get('username')}
90+
if os.path.isfile(self.attr.get('password')):
91+
pw = {"password_file": self.attr.get('password')}
92+
else:
93+
pw = {"password": self.attr.get('password')}
94+
basic_auth.update(pw)
9195
scrape_job["basic_auth"] = basic_auth
9296
targets = {"targets": [f"{self.host_ip()}:{self.attr.get('prometheus')}"]}
9397
scrape_job["static_configs"] = [targets]

tests/test_confgenerator.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,27 @@
88

99

1010
def my_setup():
11-
global attr, args, endpoints, sensors_conf
11+
global attr, attr1, args, endpoints, sensors_conf
12+
13+
path = os.getcwd()
14+
pwFile = os.path.join(path, "tests", "test_data", 'basic_auth')
1215

1316
attr = {'port': 4242, 'prometheus': 9250, 'rawCounters': True, 'protocol': 'http', 'enabled': True,
1417
'username': 'scale_admin', 'password': 'TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg==', 'server': 'localhost',
1518
'serverPort': 9980, 'retryDelay': 60, 'apiKeyName': 'scale_grafana',
1619
'apiKeyValue': 'c0a910e4-094a-46d8-b04d-c2f73a43fd17', 'caCertPath': False,
1720
'includeDiskData': False, 'logPath': '/var/log/ibm_bridge_for_grafana', 'logLevel': 10,
1821
'logFile': 'zserver.log'}
22+
23+
attr1 = {'port': 4242, 'prometheus': 9250, 'rawCounters': True, 'protocol': 'http', 'enabled': True,
24+
'username': 'scale_admin', 'server': 'localhost',
25+
'serverPort': 9980, 'retryDelay': 60, 'apiKeyName': 'scale_grafana',
26+
'apiKeyValue': 'c0a910e4-094a-46d8-b04d-c2f73a43fd17', 'caCertPath': False,
27+
'includeDiskData': False, 'logPath': '/var/log/ibm_bridge_for_grafana', 'logLevel': 10,
28+
'logFile': 'zserver.log'}
29+
30+
attr1['password'] = pwFile
31+
1932
args = {'server': 'localhost', 'port': 9980, 'retryDelay': 60,
2033
'apiKeyName': 'scale_grafana',
2134
'apiKeyValue': 'c0a910e4-094a-46d8-b04d-c2f73a43fd17'}
@@ -78,10 +91,31 @@ def test_case01():
7891
resp = conf_generator.generate_config()
7992
assert isinstance(resp, str)
8093
assert len(resp) > 0
94+
assert "password" in resp
95+
assert "password_file" not in resp
8196

8297

8398
@with_setup(my_setup)
8499
def test_case02():
100+
with mock.patch('source.metadata.MetadataHandler._MetadataHandler__initializeTables') as md_init:
101+
with mock.patch('source.metadata.MetadataHandler._MetadataHandler__getSupportedMetrics') as md_supp:
102+
with mock.patch('source.metadata.MetadataHandler.SensorsConfig', return_value=sensors_conf) as md_sensConf:
103+
with mock.patch('source.confgenerator.PrometheusConfigGenerator.host_ip', return_value='127.0.0.1'):
104+
logger = logging.getLogger(__name__)
105+
args['logger'] = logger
106+
md = MetadataHandler(**args)
107+
md.__initializeTables = md_init.return_value
108+
md.__getSupportedMetrics = md_supp.return_value
109+
md.SensorsConfig = md_sensConf.return_value
110+
conf_generator = PrometheusConfigGenerator(logger, md, attr1, endpoints)
111+
resp = conf_generator.generate_config()
112+
assert isinstance(resp, str)
113+
assert len(resp) > 0
114+
assert "password_file" in resp
115+
116+
117+
@with_setup(my_setup)
118+
def test_case03():
85119
with mock.patch('source.metadata.MetadataHandler._MetadataHandler__initializeTables') as md_init:
86120
with mock.patch('source.metadata.MetadataHandler._MetadataHandler__getSupportedMetrics') as md_supp:
87121
with mock.patch('source.metadata.MetadataHandler.SensorsConfig', return_value=sensors_conf) as md_sensConf:

tests/test_data/basic_auth

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg==

0 commit comments

Comments
 (0)