Refactor Grafana login functions to retrieve credentials directly from the Connectors model (#391)
taylor_socfortress committed
Jan 10, 2025 at 09:44 UTC
6f13e185049be37cd5bc6875a5b5c5d48311275f
1 file changed
+26
-4
backend/app/connectors/grafana/services/reporting.py
+26
-4
@@ -26,7 +26,8 @@ from app.connectors.grafana.schema.reporting import RequestPanel
26
from app.connectors.grafana.schema.reporting import TimeRange
27
from app.connectors.grafana.utils.universal import create_grafana_client
28
from app.connectors.models import Connectors
29
-from app.utils import get_connector_attribute
29
+
30
+# from app.utils import get_connector_attribute
31
32
33
async def get_grafana_url(session: AsyncSession):
@@ -35,6 +36,18 @@ async def get_grafana_url(session: AsyncSession):
36
return connector.connector_url
37
38
39
+async def get_granfana_user(session: AsyncSession):
40
+ connector = await session.execute(select(Connectors).where(Connectors.connector_name == "Grafana"))
41
+ connector = connector.scalars().first()
42
+ return connector.connector_username
43
+
44
+
45
+async def get_granfana_password(session: AsyncSession):
46
+ connector = await session.execute(select(Connectors).where(Connectors.connector_name == "Grafana"))
47
+ connector = connector.scalars().first()
48
+ return connector.connector_password
49
+
50
+
51
def calculate_unix_timestamps(time_range: TimeRange):
52
now = datetime.now()
53
if time_range.unit == "m":
@@ -135,15 +148,24 @@ async def get_dashboard_details(dashboard_uid: str) -> GrafanaDashboardDetails:
148
async def login_to_page(page, session: AsyncSession):
149
try:
150
# Navigate to the login page
138
- await page.goto(f'{await get_connector_attribute(connector_id=8, column_name="connector_url", session=session)}/login')
151
+ # await page.goto(f'{await get_connector_attribute(connector_id=8, column_name="connector_url", session=session)}/login')
152
+ await page.goto(f"{await get_grafana_url(session)}/login")
153
# Enter the username and password
154
+ # await page.fill(
155
+ # 'input[name="user"]',
156
+ # f'{await get_connector_attribute(connector_id=8, column_name="connector_username", session=session)}',
157
+ # )
158
await page.fill(
159
'input[name="user"]',
142
- f'{await get_connector_attribute(connector_id=8, column_name="connector_username", session=session)}',
160
+ f"{await get_granfana_user(session)}",
161
)
162
+ # await page.fill(
163
+ # 'input[name="password"]',
164
+ # f'{await get_connector_attribute(connector_id=8, column_name="connector_password", session=session)}',
165
+ # )
166
await page.fill(
167
'input[name="password"]',
146
- f'{await get_connector_attribute(connector_id=8, column_name="connector_password", session=session)}',
168
+ f"{await get_granfana_password(session)}",
169
)
170
# Click the login button
171
await page.click('button[data-testid="data-testid Login button"]')