diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py index e75b9a1c34ef55e162bde29befaf6496d02b24c0..f050eb577f3b4f89c2f95c74c813c670077c9705 100644 --- a/inventory_provider/routes/poller.py +++ b/inventory_provider/routes/poller.py @@ -1341,19 +1341,6 @@ def gws_direct_config(): 'info': ifc.get('info', '') } - def _to_row(counter, header=False): - _columns = ( - 'nren', 'isp', 'hostname', - 'snmp', 'interface', 'field', 'oid', 'info') - elems = ['<tr>'] - for name in _columns: - if header: - elems.append(f'<th>{name}</th>') - else: - elems.append(f'<td>{counter[name]}</td>') - elems.append('</tr>') - return ''.join(elems) - if format == 'json': if not request.accept_mimetypes.accept_json: return Response( @@ -1369,12 +1356,51 @@ def gws_direct_config(): status=406, mimetype="text/html") - elems = ['<html>', '<body>', '<table>'] - elems.append(_to_row(None, header=True)) - elems += map(_to_row, _counters()) - elems += ['</table>', '</body>', '</html>'] + page = '''<!doctype html> +<html lang="en"> + <head> + <!-- Required meta tags --> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + + <!-- Bootstrap CSS --> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> + + <title>Hello, world!</title> + </head> + <body> + <table class="table table-striped"> + <thead> +{header_row} + </thead> + <tbody> +{data_rows} + </tbody> + </table> + </body> +</html> +''' + + def _to_row(counter, header=False): + _columns = ( + 'nren', 'isp', 'hostname', + 'snmp', 'interface', 'field', 'oid', 'info') + elems = ['<tr>'] + for name in _columns: + if header: + elems.append(f'<th scope="col">{name}</th>') + else: + elems.append(f'<td scope="row">{counter[name]}</td>') + elems.append('</tr>') + return ''.join(elems) + + header_row = _to_row(None, header=True) + data_rows = map(_to_row, _counters()) + page = page.format( + header_row=header_row, + data_rows='\n'.join(data_rows)) return Response( - response=''.join(elems), + response=page, status=200, mimetype="text/html")