From 5d55268906ccccb012e488744384397d3d213477 Mon Sep 17 00:00:00 2001 From: PeterYurkovich Date: Tue, 7 Jul 2026 14:04:48 -0400 Subject: [PATCH 1/3] feat: restructure folders --- cmd/plugin-backend.go | 2 +- pkg/{proxy => monitoring}/proxy.go | 2 +- pkg/{proxy => monitoring}/sanitize.go | 2 +- pkg/{ => server}/plugin_handler.go | 0 pkg/{ => server}/server.go | 19 ++- pkg/{ => server}/server_test.go | 0 web/cypress/component/labels.cy.tsx | 2 +- .../component/mocks/AddToDashboardButton.tsx | 2 +- .../mocks/OlsToolUIPersesWrapper.tsx | 2 +- .../ols-tool-ui/ShowTimeseries.cy.tsx | 2 +- .../03.coo_lightspeed_show_timeseries.cy.ts | 2 +- .../support/commands/dashboards-commands.ts | 2 +- .../support/commands/perses-commands.ts | 2 +- .../support/commands/utility-commands.ts | 2 +- .../support/monitoring/01.reg_alerts.cy.ts | 2 +- .../support/monitoring/02.reg_metrics_1.cy.ts | 2 +- .../support/monitoring/02.reg_metrics_2.cy.ts | 2 +- .../monitoring/03.reg_legacy_dashboards.cy.ts | 2 +- .../monitoring/04.reg_alerts_namespace.cy.ts | 2 +- .../05.reg_metrics_namespace_1.cy.ts | 2 +- .../05.reg_metrics_namespace_2.cy.ts | 2 +- .../06.reg_legacy_dashboards_namespace.cy.ts | 2 +- .../perses/00.coo_bvt_perses_admin.cy.ts | 2 +- .../perses/02.coo_edit_perses_admin.cy.ts | 10 +- .../perses/99.coo_rbac_perses_user1.cy.ts | 2 +- .../perses/99.coo_rbac_perses_user3.cy.ts | 2 +- .../views/alerting-rule-details-page.ts | 2 +- web/cypress/views/alerting-rule-list-page.ts | 2 +- web/cypress/views/common.ts | 2 +- web/cypress/views/details-page.ts | 2 +- web/cypress/views/incidents-page.ts | 2 +- web/cypress/views/legacy-dashboards.ts | 6 +- web/cypress/views/list-page.ts | 7 +- web/cypress/views/metrics.ts | 2 +- web/cypress/views/nav.ts | 2 +- .../perses-dashboards-create-dashboard.ts | 2 +- .../perses-dashboards-edit-datasources.ts | 2 +- .../views/perses-dashboards-edit-variables.ts | 2 +- .../perses-dashboards-import-dashboard.ts | 2 +- .../perses-dashboards-list-dashboards.ts | 2 +- web/cypress/views/perses-dashboards-panel.ts | 2 +- .../views/perses-dashboards-panelgroup.ts | 2 +- web/cypress/views/perses-dashboards.ts | 2 +- web/cypress/views/silence-alert-page.ts | 2 +- web/cypress/views/silence-details-page.ts | 2 +- web/cypress/views/silences-list-page.ts | 2 +- web/cypress/views/troubleshooting-panel.ts | 2 +- web/package.json | 40 +++--- web/src/components/ols-tool-ui/index.ts | 1 - web/src/e2e-tests-app.tsx | 70 ---------- web/src/e2e-tests-index.html | 22 ---- .../alerts/components}/AlertUtils.tsx | 13 +- .../alerts/components}/SilenceForm.tsx | 20 +-- .../alerts/components}/SilencedByTable.tsx | 12 +- .../alerts/components}/SilencesUtils.tsx | 10 +- .../alerts/pages}/AlertRulesDetailsPage.tsx | 28 ++-- .../alerts/pages}/AlertingPage.tsx | 46 ++++--- .../alerts/pages}/AlertsDetailsPage.tsx | 32 ++--- .../alerts/pages}/SilenceCreatePage.tsx | 10 +- .../alerts/pages}/SilenceEditPage.tsx | 12 +- .../alerts/pages}/SilencesDetailsPage.tsx | 29 +++-- .../alert-rules-page}/AlertRulesPage.tsx | 39 +++--- .../alert-rules-page}/filter-rules.spec.ts | 2 +- .../pages/alert-rules-page}/filter-rules.ts | 6 +- .../alerts-page}/AggregateAlertTableRow.tsx | 14 +- .../pages/alerts-page}/AlertTableRow.tsx | 18 +-- .../pages/alerts-page}/AlertsAggregates.ts | 0 .../alerts/pages/alerts-page}/AlertsPage.tsx | 47 +++---- .../pages/alerts-page}/DownloadCSVButton.tsx | 6 +- .../alerts/pages/alerts-page}/LabelFilter.tsx | 0 .../ai-proposals/alert-identifier.spec.ts | 0 .../ai-proposals/alert-identifier.ts | 0 .../alerts-page}/ai-proposals/constants.ts | 0 .../ai-proposals/useProposalCheck.ts | 2 +- .../pages/alerts-page}/filter-alerts.spec.ts | 6 +- .../pages/alerts-page}/filter-alerts.ts | 12 +- .../pages/silences-page}/SilencesPage.tsx | 47 ++++--- .../silences-page}/filter-silences.spec.ts | 2 +- .../pages/silences-page}/filter-silences.ts | 8 +- .../incidents/assets}/incidents-styles.css | 0 .../incidents/components}/AlertsChart.tsx | 14 +- .../components}/IncidentAlertStateIcon.tsx | 2 +- .../incidents/components}/IncidentsChart.tsx | 11 +- .../components}/IncidentsDetailsRowTable.tsx | 11 +- .../incidents/components}/IncidentsTable.tsx | 8 +- .../components}/IncidentsTooltip.tsx | 1 - .../components}/ToolbarItemFilter.tsx | 8 +- .../incidents/pages}/IncidentsPage.tsx | 41 +++--- .../incidents/types}/model.ts | 0 .../incidents/utils}/api.spec.ts | 2 +- .../incidents/utils}/api.ts | 2 +- .../incidents/utils}/processAlerts.spec.ts | 2 +- .../incidents/utils}/processAlerts.ts | 2 +- .../incidents/utils}/processIncidents.spec.ts | 0 .../incidents/utils}/processIncidents.ts | 2 +- .../incidents/utils}/utils.spec.ts | 0 .../incidents/utils}/utils.ts | 4 +- .../components}/custom-time-range-modal.tsx | 4 +- .../components}/dashboard-skeleton-legacy.tsx | 4 +- .../legacy-dashboards/components}/error.tsx | 0 .../components}/legacy-dashboard.tsx | 34 ++--- .../components}/legacy-variable-dropdowns.tsx | 33 ++--- .../components/panels}/bar-chart.tsx | 2 +- .../components/panels}/graph.tsx | 11 +- .../components/panels}/single-stat.tsx | 18 +-- .../components/panels}/table.tsx | 21 +-- .../components}/time-dropdowns.tsx | 12 +- .../hooks}/useLegacyDashboards.ts | 18 +-- .../hooks}/useLegacyDashboardsProject.ts | 10 +- .../pages}/legacy-dashboard-page.tsx | 20 +-- .../legacy-dashboards/types}/types.ts | 0 .../legacy-dashboards/utils}/utils.ts | 0 .../utils}/variable-utils.spec.ts | 0 .../utils}/variable-utils.ts | 2 +- .../components}/promql-expression-input.tsx | 8 +- .../metrics/pages}/MetricsPage.tsx | 56 ++++---- .../metrics/pages/PrometheusRedirectPage.tsx} | 2 +- .../metrics/utils}/units.ts | 0 .../components}/PersesWrapper.tsx | 14 +- .../components}/ToastProvider.tsx | 0 .../components}/dashboard-action-modals.tsx | 12 +- .../components}/dashboard-actions-menu.tsx | 4 +- .../components}/dashboard-create-dialog.tsx | 6 +- .../components}/dashboard-dialog-helpers.tsx | 8 +- .../components}/dashboard-header.tsx | 10 +- .../components}/dashboard-import-dialog.tsx | 8 +- .../emptystates/DashboardEmptyState.tsx | 2 +- .../emptystates/ProjectEmptyState.tsx | 2 +- .../components}/project/ProjectBar.tsx | 4 +- .../components}/project/ProjectDropdown.tsx | 4 +- .../components}/project/ProjectMenuToggle.tsx | 0 .../components}/project/useActiveProject.tsx | 6 +- .../components}/project/utils.ts | 0 .../hooks/useDashboardsData.ts | 10 +- .../hooks/useEditableProjects.ts | 2 +- .../hooks/useOcpProjects.ts | 2 +- .../perses-dashboards}/hooks/usePerses.ts | 4 +- .../hooks/usePersesRefreshInterval.ts | 2 +- .../hooks/usePersesTimeRange.ts | 2 +- .../ols-tool-ui/ShowTimeseries.tsx | 0 .../helpers/AddToDashboardButton.tsx | 4 +- .../helpers/OlsToolUIPersesWrapper.tsx | 5 +- .../ols-tool-ui/helpers/useTimeRange.ts | 0 .../DashboardListPage.tsx} | 4 +- .../dashboard-list-frame.tsx | 6 +- .../dashboard-list-page}/dashboard-list.tsx | 19 +-- .../pages/dashboard-page/DashboardPage.tsx} | 10 +- .../pages/dashboard-page}/dashboard-app.tsx | 6 +- .../pages/dashboard-page}/dashboard-frame.tsx | 12 +- .../dashboard-page-padding.tsx | 0 .../pages/dashboard-page}/dashboard-page.css | 0 .../dashboard-page}/dashboard-toolbar.tsx | 6 +- .../external-panel-addition.tsx} | 7 +- .../utils}/dashboard-action-validations.ts | 0 .../perses-dashboards/utils}/dashboard-api.ts | 0 .../utils}/dashboard-utils.ts | 0 .../utils}/datasource-api.ts | 0 .../perses-dashboards/utils}/migrate-api.ts | 0 .../perses-dashboards/utils}/perses-client.ts | 2 +- .../perses-dashboards/utils}/perses-config.ts | 0 .../perses-dashboards/utils}/perses/README.md | 0 .../utils}/perses/datasource-cache-api.ts | 0 .../utils}/perses/datasource-client.ts | 0 .../utils}/perses/global-datasource-client.ts | 0 .../utils}/perses/url-builder.ts | 0 .../targets/pages}/targets-page.tsx | 44 +++---- .../targets/utils}/filter-targets.spec.ts | 4 +- .../targets/utils}/filter-targets.ts | 6 +- .../{components => shared/assets}/codicon.ttf | Bin .../{ => shared}/components/CustomIcon.tsx | 0 .../components/DropdownPollInterval.tsx} | 4 +- .../components/KebabDropdown.tsx} | 4 +- .../components/TypeaheadSelect.tsx | 2 +- .../components}/dashboard-dropdown.tsx | 4 +- .../{ => shared}/components/format.spec.ts | 0 web/src/{ => shared}/components/format.tsx | 2 +- web/src/{ => shared}/components/labels.tsx | 0 .../query-browser}/query-browser-theme.ts | 0 .../query-browser}/query-browser.scss | 0 .../query-browser}/query-browser.tsx | 38 +++--- .../components/table/TableCheckboxFilter.tsx | 0 .../components/table/TableFilters.tsx | 0 .../components/table/TableLabelFilter.tsx | 2 +- .../components/table/TableTextFilter.tsx | 0 .../components/table/TableToolbar.tsx | 0 .../components/table/sort-utils.spec.ts | 0 .../components/table/sort-utils.ts | 0 .../components/table}/table-pagination.tsx | 0 .../components/table/useTableColumns.ts | 0 .../components/table/useTableFilters.ts | 0 .../components/table/useTablePagination.ts | 0 .../console/@types/console/react.d.ts | 0 .../{components => shared}/console/README.md | 0 .../console-shared/constants/common.ts | 0 .../console-shared/error/error-boundary.tsx | 0 .../error/fallbacks/withFallback.tsx | 0 .../hooks/useDocumentListener.ts | 0 .../components/empty-state/AccessDenied.tsx | 0 .../empty-state/ConsoleEmptyState.tsx | 0 .../src/components/empty-state/EmptyBox.tsx | 0 .../src/components/loading/LoadError.tsx | 0 .../src/components/loading/Loading.tsx | 0 .../src/components/loading/LoadingBox.tsx | 0 .../src/components/loading/LoadingInline.tsx | 0 .../query-browser/QueryBrowserTooltip.tsx | 2 +- .../src/components/status/StatusBox.tsx | 0 .../console-shared/src/datetime/prometheus.ts | 0 .../console/graphs/bar.tsx | 0 .../console/graphs/graph-empty.tsx | 2 +- .../console/graphs/helpers.ts | 0 .../console/graphs/promethues-graph.tsx | 2 +- .../console/imgs/restricted-sign.svg | 0 .../console/models/index.ts | 0 .../console/module/k8s/label-selector.js | 0 .../public/components/autocomplete.tsx | 2 +- .../public/components/factory/text-filter.tsx | 0 .../console/utils/async.tsx | 0 .../console/utils/datetime.ts | 0 .../console/utils/getLastLanguage.ts | 0 .../console/utils/link.tsx | 0 .../console/utils/poll-hook.ts | 0 .../console/utils/ref-width-hook.ts | 0 .../console/utils/safe-fetch-hook.ts | 0 .../utils/single-typeahead-dropdown.tsx | 0 .../console/utils/units.ts | 0 .../constants}/data-test.ts | 0 .../constants}/query-params.ts | 0 .../contexts/MonitoringContext.tsx | 4 +- web/src/{ => shared}/hooks/useAlerts.ts | 10 +- .../hooks/useBoolean.ts | 0 .../hooks/useDeepMemo.ts | 0 .../hooks/useFeatures.ts | 0 .../hooks/useIsVisible.ts | 0 web/src/{ => shared}/hooks/useMonitoring.ts | 0 .../hooks/useMonitoringNamespace.ts | 0 .../hooks/usePatternflyTheme.ts | 0 .../hooks/usePerspective.tsx | 12 +- web/src/{ => shared}/store/actions.ts | 0 .../store}/fetch-alerts.tsx | 0 web/src/{ => shared}/store/reducers.ts | 4 +- web/src/{ => shared}/store/store.ts | 8 +- web/src/{ => shared}/store/thunks.ts | 4 +- web/src/{components => shared/types}/types.ts | 0 .../utils}/react-router-7-adapter.ts | 0 .../utils}/utils.spec.ts | 0 web/src/{components => shared/utils}/utils.ts | 6 +- web/webpack.standalone.config.ts | 123 ------------------ 247 files changed, 679 insertions(+), 836 deletions(-) rename pkg/{proxy => monitoring}/proxy.go (99%) rename pkg/{proxy => monitoring}/sanitize.go (97%) rename pkg/{ => server}/plugin_handler.go (100%) rename pkg/{ => server}/server.go (93%) rename pkg/{ => server}/server_test.go (100%) delete mode 100644 web/src/components/ols-tool-ui/index.ts delete mode 100644 web/src/e2e-tests-app.tsx delete mode 100644 web/src/e2e-tests-index.html rename web/src/{components/alerting => features/alerts/components}/AlertUtils.tsx (97%) rename web/src/{components/alerting => features/alerts/components}/SilenceForm.tsx (96%) rename web/src/{components/alerting/AlertDetail => features/alerts/components}/SilencedByTable.tsx (92%) rename web/src/{components/alerting => features/alerts/components}/SilencesUtils.tsx (94%) rename web/src/{components/alerting => features/alerts/pages}/AlertRulesDetailsPage.tsx (93%) rename web/src/{components/alerting => features/alerts/pages}/AlertingPage.tsx (69%) rename web/src/{components/alerting => features/alerts/pages}/AlertsDetailsPage.tsx (94%) rename web/src/{components/alerting => features/alerts/pages}/SilenceCreatePage.tsx (77%) rename web/src/{components/alerting => features/alerts/pages}/SilenceEditPage.tsx (84%) rename web/src/{components/alerting => features/alerts/pages}/SilencesDetailsPage.tsx (90%) rename web/src/{components/alerting => features/alerts/pages/alert-rules-page}/AlertRulesPage.tsx (89%) rename web/src/{components/alerting => features/alerts/pages/alert-rules-page}/filter-rules.spec.ts (99%) rename web/src/{components/alerting => features/alerts/pages/alert-rules-page}/filter-rules.ts (92%) rename web/src/{components/alerting/AlertList => features/alerts/pages/alerts-page}/AggregateAlertTableRow.tsx (89%) rename web/src/{components/alerting/AlertList => features/alerts/pages/alerts-page}/AlertTableRow.tsx (89%) rename web/src/{components/alerting => features/alerts/pages/alerts-page}/AlertsAggregates.ts (100%) rename web/src/{components/alerting => features/alerts/pages/alerts-page}/AlertsPage.tsx (87%) rename web/src/{components/alerting/AlertList => features/alerts/pages/alerts-page}/DownloadCSVButton.tsx (91%) rename web/src/{components/alerting/AlertList => features/alerts/pages/alerts-page}/LabelFilter.tsx (100%) rename web/src/{components => features/alerts/pages/alerts-page}/ai-proposals/alert-identifier.spec.ts (100%) rename web/src/{components => features/alerts/pages/alerts-page}/ai-proposals/alert-identifier.ts (100%) rename web/src/{components => features/alerts/pages/alerts-page}/ai-proposals/constants.ts (100%) rename web/src/{components => features/alerts/pages/alerts-page}/ai-proposals/useProposalCheck.ts (95%) rename web/src/{components/alerting/AlertList => features/alerts/pages/alerts-page}/filter-alerts.spec.ts (97%) rename web/src/{components/alerting/AlertList => features/alerts/pages/alerts-page}/filter-alerts.ts (89%) rename web/src/{components/alerting => features/alerts/pages/silences-page}/SilencesPage.tsx (92%) rename web/src/{components/alerting => features/alerts/pages/silences-page}/filter-silences.spec.ts (98%) rename web/src/{components/alerting => features/alerts/pages/silences-page}/filter-silences.ts (90%) rename web/src/{components/Incidents => features/incidents/assets}/incidents-styles.css (100%) rename web/src/{components/Incidents/AlertsChart => features/incidents/components}/AlertsChart.tsx (95%) rename web/src/{components/Incidents => features/incidents/components}/IncidentAlertStateIcon.tsx (97%) rename web/src/{components/Incidents/IncidentsChart => features/incidents/components}/IncidentsChart.tsx (97%) rename web/src/{components/Incidents => features/incidents/components}/IncidentsDetailsRowTable.tsx (90%) rename web/src/{components/Incidents => features/incidents/components}/IncidentsTable.tsx (97%) rename web/src/{components/Incidents => features/incidents/components}/IncidentsTooltip.tsx (96%) rename web/src/{components/Incidents => features/incidents/components}/ToolbarItemFilter.tsx (96%) rename web/src/{components/Incidents => features/incidents/pages}/IncidentsPage.tsx (94%) rename web/src/{components/Incidents => features/incidents/types}/model.ts (100%) rename web/src/{components/Incidents => features/incidents/utils}/api.spec.ts (98%) rename web/src/{components/Incidents => features/incidents/utils}/api.ts (98%) rename web/src/{components/Incidents => features/incidents/utils}/processAlerts.spec.ts (99%) rename web/src/{components/Incidents => features/incidents/utils}/processAlerts.ts (99%) rename web/src/{components/Incidents => features/incidents/utils}/processIncidents.spec.ts (100%) rename web/src/{components/Incidents => features/incidents/utils}/processIncidents.ts (99%) rename web/src/{components/Incidents => features/incidents/utils}/utils.spec.ts (100%) rename web/src/{components/Incidents => features/incidents/utils}/utils.ts (99%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components}/custom-time-range-modal.tsx (97%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components}/dashboard-skeleton-legacy.tsx (93%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components}/error.tsx (100%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components}/legacy-dashboard.tsx (92%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components}/legacy-variable-dropdowns.tsx (91%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components/panels}/bar-chart.tsx (89%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components/panels}/graph.tsx (83%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components/panels}/single-stat.tsx (90%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components/panels}/table.tsx (92%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/components}/time-dropdowns.tsx (90%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/hooks}/useLegacyDashboards.ts (93%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/hooks}/useLegacyDashboardsProject.ts (82%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/pages}/legacy-dashboard-page.tsx (77%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/types}/types.ts (100%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/utils}/utils.ts (100%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/utils}/variable-utils.spec.ts (100%) rename web/src/{components/dashboards/legacy => features/legacy-dashboards/utils}/variable-utils.ts (97%) rename web/src/{components/metrics => features/metrics/components}/promql-expression-input.tsx (98%) rename web/src/{components => features/metrics/pages}/MetricsPage.tsx (95%) rename web/src/{components/redirects/prometheus-redirect-page.tsx => features/metrics/pages/PrometheusRedirectPage.tsx} (91%) rename web/src/{components/metrics => features/metrics/utils}/units.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/PersesWrapper.tsx (97%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/ToastProvider.tsx (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/dashboard-action-modals.tsx (98%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/dashboard-actions-menu.tsx (95%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/dashboard-create-dialog.tsx (97%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/dashboard-dialog-helpers.tsx (95%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/dashboard-header.tsx (91%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/dashboard-import-dialog.tsx (98%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/emptystates/DashboardEmptyState.tsx (92%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/emptystates/ProjectEmptyState.tsx (91%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/project/ProjectBar.tsx (84%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/project/ProjectDropdown.tsx (98%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/project/ProjectMenuToggle.tsx (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/project/useActiveProject.tsx (86%) rename web/src/{components/dashboards/perses => features/perses-dashboards/components}/project/utils.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards}/hooks/useDashboardsData.ts (93%) rename web/src/{components/dashboards/perses => features/perses-dashboards}/hooks/useEditableProjects.ts (99%) rename web/src/{components/dashboards/perses => features/perses-dashboards}/hooks/useOcpProjects.ts (90%) rename web/src/{components/dashboards/perses => features/perses-dashboards}/hooks/usePerses.ts (95%) rename web/src/{components/dashboards/perses => features/perses-dashboards}/hooks/usePersesRefreshInterval.ts (84%) rename web/src/{components/dashboards/perses => features/perses-dashboards}/hooks/usePersesTimeRange.ts (90%) rename web/src/{components => features/perses-dashboards}/ols-tool-ui/ShowTimeseries.tsx (100%) rename web/src/{components => features/perses-dashboards}/ols-tool-ui/helpers/AddToDashboardButton.tsx (94%) rename web/src/{components => features/perses-dashboards}/ols-tool-ui/helpers/OlsToolUIPersesWrapper.tsx (93%) rename web/src/{components => features/perses-dashboards}/ols-tool-ui/helpers/useTimeRange.ts (100%) rename web/src/{components/dashboards/perses/dashboard-list-page.tsx => features/perses-dashboards/pages/dashboard-list-page/DashboardListPage.tsx} (82%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-list-page}/dashboard-list-frame.tsx (78%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-list-page}/dashboard-list.tsx (95%) rename web/src/{components/dashboards/perses/dashboard-page.tsx => features/perses-dashboards/pages/dashboard-page/DashboardPage.tsx} (88%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-page}/dashboard-app.tsx (96%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-page}/dashboard-frame.tsx (73%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-page}/dashboard-page-padding.tsx (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-page}/dashboard-page.css (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/pages/dashboard-page}/dashboard-toolbar.tsx (96%) rename web/src/{components/dashboards/perses/ExternalPanelAddition.tsx => features/perses-dashboards/pages/dashboard-page/external-panel-addition.tsx} (95%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/dashboard-action-validations.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/dashboard-api.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/dashboard-utils.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/datasource-api.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/migrate-api.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/perses-client.ts (97%) rename web/src/{ => features/perses-dashboards/utils}/perses-config.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/perses/README.md (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/perses/datasource-cache-api.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/perses/datasource-client.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/perses/global-datasource-client.ts (100%) rename web/src/{components/dashboards/perses => features/perses-dashboards/utils}/perses/url-builder.ts (100%) rename web/src/{components => features/targets/pages}/targets-page.tsx (93%) rename web/src/{components => features/targets/utils}/filter-targets.spec.ts (97%) rename web/src/{components => features/targets/utils}/filter-targets.ts (90%) rename web/src/{components => shared/assets}/codicon.ttf (100%) rename web/src/{ => shared}/components/CustomIcon.tsx (100%) rename web/src/{components/dropdown-poll-interval.tsx => shared/components/DropdownPollInterval.tsx} (93%) rename web/src/{components/kebab-dropdown.tsx => shared/components/KebabDropdown.tsx} (91%) rename web/src/{ => shared}/components/TypeaheadSelect.tsx (99%) rename web/src/{components/dashboards/shared => shared/components}/dashboard-dropdown.tsx (93%) rename web/src/{ => shared}/components/format.spec.ts (100%) rename web/src/{ => shared}/components/format.tsx (97%) rename web/src/{ => shared}/components/labels.tsx (100%) rename web/src/{components => shared/components/query-browser}/query-browser-theme.ts (100%) rename web/src/{components => shared/components/query-browser}/query-browser.scss (100%) rename web/src/{components => shared/components/query-browser}/query-browser.tsx (96%) rename web/src/{ => shared}/components/table/TableCheckboxFilter.tsx (100%) rename web/src/{ => shared}/components/table/TableFilters.tsx (100%) rename web/src/{ => shared}/components/table/TableLabelFilter.tsx (95%) rename web/src/{ => shared}/components/table/TableTextFilter.tsx (100%) rename web/src/{ => shared}/components/table/TableToolbar.tsx (100%) rename web/src/{ => shared}/components/table/sort-utils.spec.ts (100%) rename web/src/{ => shared}/components/table/sort-utils.ts (100%) rename web/src/{components => shared/components/table}/table-pagination.tsx (100%) rename web/src/{ => shared}/components/table/useTableColumns.ts (100%) rename web/src/{ => shared}/components/table/useTableFilters.ts (100%) rename web/src/{ => shared}/components/table/useTablePagination.ts (100%) rename web/src/{components => shared}/console/@types/console/react.d.ts (100%) rename web/src/{components => shared}/console/README.md (100%) rename web/src/{components => shared}/console/console-shared/constants/common.ts (100%) rename web/src/{components => shared}/console/console-shared/error/error-boundary.tsx (100%) rename web/src/{components => shared}/console/console-shared/error/fallbacks/withFallback.tsx (100%) rename web/src/{components => shared}/console/console-shared/hooks/useDocumentListener.ts (100%) rename web/src/{components => shared}/console/console-shared/src/components/empty-state/AccessDenied.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/empty-state/ConsoleEmptyState.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/empty-state/EmptyBox.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/loading/LoadError.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/loading/Loading.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/loading/LoadingBox.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/loading/LoadingInline.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/components/query-browser/QueryBrowserTooltip.tsx (98%) rename web/src/{components => shared}/console/console-shared/src/components/status/StatusBox.tsx (100%) rename web/src/{components => shared}/console/console-shared/src/datetime/prometheus.ts (100%) rename web/src/{components => shared}/console/graphs/bar.tsx (100%) rename web/src/{components => shared}/console/graphs/graph-empty.tsx (92%) rename web/src/{components => shared}/console/graphs/helpers.ts (100%) rename web/src/{components => shared}/console/graphs/promethues-graph.tsx (97%) rename web/src/{components => shared}/console/imgs/restricted-sign.svg (100%) rename web/src/{components => shared}/console/models/index.ts (100%) rename web/src/{components => shared}/console/module/k8s/label-selector.js (100%) rename web/src/{components => shared}/console/public/components/autocomplete.tsx (98%) rename web/src/{components => shared}/console/public/components/factory/text-filter.tsx (100%) rename web/src/{components => shared}/console/utils/async.tsx (100%) rename web/src/{components => shared}/console/utils/datetime.ts (100%) rename web/src/{components => shared}/console/utils/getLastLanguage.ts (100%) rename web/src/{components => shared}/console/utils/link.tsx (100%) rename web/src/{components => shared}/console/utils/poll-hook.ts (100%) rename web/src/{components => shared}/console/utils/ref-width-hook.ts (100%) rename web/src/{components => shared}/console/utils/safe-fetch-hook.ts (100%) rename web/src/{components => shared}/console/utils/single-typeahead-dropdown.tsx (100%) rename web/src/{components => shared}/console/utils/units.ts (100%) rename web/src/{components => shared/constants}/data-test.ts (100%) rename web/src/{components => shared/constants}/query-params.ts (100%) rename web/src/{ => shared}/contexts/MonitoringContext.tsx (95%) rename web/src/{ => shared}/hooks/useAlerts.ts (94%) rename web/src/{components => shared}/hooks/useBoolean.ts (100%) rename web/src/{components => shared}/hooks/useDeepMemo.ts (100%) rename web/src/{components => shared}/hooks/useFeatures.ts (100%) rename web/src/{components => shared}/hooks/useIsVisible.ts (100%) rename web/src/{ => shared}/hooks/useMonitoring.ts (100%) rename web/src/{components => shared}/hooks/useMonitoringNamespace.ts (100%) rename web/src/{components => shared}/hooks/usePatternflyTheme.ts (100%) rename web/src/{components => shared}/hooks/usePerspective.tsx (96%) rename web/src/{ => shared}/store/actions.ts (100%) rename web/src/{components => shared/store}/fetch-alerts.tsx (100%) rename web/src/{ => shared}/store/reducers.ts (99%) rename web/src/{ => shared}/store/store.ts (93%) rename web/src/{ => shared}/store/thunks.ts (96%) rename web/src/{components => shared/types}/types.ts (100%) rename web/src/{ => shared/utils}/react-router-7-adapter.ts (100%) rename web/src/{components => shared/utils}/utils.spec.ts (100%) rename web/src/{components => shared/utils}/utils.ts (98%) delete mode 100644 web/webpack.standalone.config.ts diff --git a/cmd/plugin-backend.go b/cmd/plugin-backend.go index 71c38e024..9392d6934 100644 --- a/cmd/plugin-backend.go +++ b/cmd/plugin-backend.go @@ -10,7 +10,7 @@ import ( "github.com/sirupsen/logrus" - server "github.com/openshift/monitoring-plugin/pkg" + server "github.com/openshift/monitoring-plugin/pkg/server" ) var ( diff --git a/pkg/proxy/proxy.go b/pkg/monitoring/proxy.go similarity index 99% rename from pkg/proxy/proxy.go rename to pkg/monitoring/proxy.go index abdcfa0b3..4bc4aea96 100644 --- a/pkg/proxy/proxy.go +++ b/pkg/monitoring/proxy.go @@ -1,4 +1,4 @@ -package proxy +package monitoring import ( "context" diff --git a/pkg/proxy/sanitize.go b/pkg/monitoring/sanitize.go similarity index 97% rename from pkg/proxy/sanitize.go rename to pkg/monitoring/sanitize.go index d0262ceb0..e0e2f342a 100644 --- a/pkg/proxy/sanitize.go +++ b/pkg/monitoring/sanitize.go @@ -1,5 +1,5 @@ // source: https://github.com/grafana/tempo-operator/blob/4ec7e8b4cb102f52de1e101174f4490b1505eaa1/internal/manifests/naming/sanitize.go -package proxy +package monitoring import ( "regexp" diff --git a/pkg/plugin_handler.go b/pkg/server/plugin_handler.go similarity index 100% rename from pkg/plugin_handler.go rename to pkg/server/plugin_handler.go diff --git a/pkg/server.go b/pkg/server/server.go similarity index 93% rename from pkg/server.go rename to pkg/server/server.go index c3714b2c4..9cb4641be 100644 --- a/pkg/server.go +++ b/pkg/server/server.go @@ -12,6 +12,7 @@ import ( "github.com/gorilla/handlers" "github.com/gorilla/mux" + "github.com/openshift/monitoring-plugin/pkg/monitoring" "github.com/sirupsen/logrus" "gopkg.in/yaml.v2" v1 "k8s.io/api/core/v1" @@ -20,8 +21,6 @@ import ( "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - - "github.com/openshift/monitoring-plugin/pkg/proxy" ) var log = logrus.WithField("module", "server") @@ -114,7 +113,7 @@ func createHTTPServer(ctx context.Context, cfg *Config) (*http.Server, error) { return nil, fmt.Errorf("alertmanager and thanos-querier must be set to use the 'acm-alerting' feature flag") } - if cfg.Port == int(proxy.AlertmanagerPort) || cfg.Port == int(proxy.ThanosQuerierPort) { + if cfg.Port == int(monitoring.AlertmanagerPort) || cfg.Port == int(monitoring.ThanosQuerierPort) { return nil, fmt.Errorf("cannot set default port to reserved port %d", cfg.Port) } @@ -223,8 +222,8 @@ func createHTTPServer(ctx context.Context, cfg *Config) (*http.Server, error) { // Start proxy servers if in ACM mode if tlsEnabled && acmMode { - startProxy(cfg, k8sclient, tlsConfig, timeout, proxy.AlertManagerKind, proxy.AlertmanagerPort) - startProxy(cfg, k8sclient, tlsConfig, timeout, proxy.ThanosQuerierKind, proxy.ThanosQuerierPort) + startProxy(cfg, k8sclient, tlsConfig, timeout, monitoring.AlertManagerKind, monitoring.AlertmanagerPort) + startProxy(cfg, k8sclient, tlsConfig, timeout, monitoring.ThanosQuerierKind, monitoring.ThanosQuerierPort) } return httpServer, nil @@ -246,17 +245,17 @@ func setupRoutes(cfg *Config) (*mux.Router, *PluginConfig) { return router, pluginConfig } -func setupProxyRoutes(cfg *Config, k8sclient *dynamic.DynamicClient, kind proxy.KindType) *mux.Router { +func setupProxyRoutes(cfg *Config, k8sclient *dynamic.DynamicClient, kind monitoring.KindType) *mux.Router { router := mux.NewRouter() var proxyUrl string switch kind { - case proxy.AlertManagerKind: + case monitoring.AlertManagerKind: proxyUrl = cfg.AlertmanagerUrl - case proxy.ThanosQuerierKind: + case monitoring.ThanosQuerierKind: proxyUrl = cfg.ThanosQuerierUrl } - router.PathPrefix("/").Handler(proxy.NewProxyHandler( + router.PathPrefix("/").Handler(monitoring.NewProxyHandler( k8sclient, cfg.CertFile, kind, @@ -364,7 +363,7 @@ func configHandler(cfg *Config) (http.HandlerFunc, *PluginConfig) { }), &pluginConfig } -func startProxy(cfg *Config, k8sclient *dynamic.DynamicClient, tlsConfig *tls.Config, timeout time.Duration, kind proxy.KindType, port proxy.ProxyPort) { +func startProxy(cfg *Config, k8sclient *dynamic.DynamicClient, tlsConfig *tls.Config, timeout time.Duration, kind monitoring.KindType, port monitoring.ProxyPort) { proxyRouter := setupProxyRoutes(cfg, k8sclient, kind) proxyRouter.Use(corsHeaderMiddleware()) proxyServer := &http.Server{ diff --git a/pkg/server_test.go b/pkg/server/server_test.go similarity index 100% rename from pkg/server_test.go rename to pkg/server/server_test.go diff --git a/web/cypress/component/labels.cy.tsx b/web/cypress/component/labels.cy.tsx index fbe7009c1..4cf898f46 100644 --- a/web/cypress/component/labels.cy.tsx +++ b/web/cypress/component/labels.cy.tsx @@ -1,4 +1,4 @@ -import { Labels } from '../../src/components/labels'; +import { Labels } from '../../src/shared/components/labels'; describe('Labels', () => { it('renders "No labels" when labels is empty', () => { diff --git a/web/cypress/component/mocks/AddToDashboardButton.tsx b/web/cypress/component/mocks/AddToDashboardButton.tsx index 6076b1691..a482858dc 100644 --- a/web/cypress/component/mocks/AddToDashboardButton.tsx +++ b/web/cypress/component/mocks/AddToDashboardButton.tsx @@ -1,4 +1,4 @@ -import { AddToDashboardButtonProps } from '../../../src/components/ols-tool-ui/helpers/AddToDashboardButton'; +import { AddToDashboardButtonProps } from '../../../src/features/perses-dashboards/ols-tool-ui/helpers/AddToDashboardButton'; export const AddToDashboardButton = ({ query, name, description }: AddToDashboardButtonProps) => (