Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adjust KubernetesService().getRequest() Function #626

Merged
merged 1 commit into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/services/kubernetes_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ class KubernetesService {
/// cluster. For that a user can pass in the [url], which should be called,
/// the function then returns an error or a json object of the response from
/// the Kubernetes API.
Future<Map<String, dynamic>> getRequest(String url) async {
Future<String> getRequest(String url) async {
try {
final result = await kubernetesRequest(
cluster,
Expand All @@ -116,7 +116,7 @@ class KubernetesService {
url,
'',
);
return json.decode(result);
return result;
} catch (err) {
Logger.log(
'KubernetesService getRequest',
Expand Down
5 changes: 4 additions & 1 deletion lib/widgets/home/overview/overview_events.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -54,11 +56,12 @@ class _OverviewEventsState extends State<OverviewEvents> {
? '${Resources.map['events']!.path}/namespaces/${cluster.namespace}/${Resources.map['events']!.resource}?fieldSelector=type=Warning'
: '${Resources.map['events']!.path}/${Resources.map['events']!.resource}?fieldSelector=type=Warning';

final resourcesList = await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(resourcesListUrl);
final resourcesList = json.decode(result);

Logger.log(
'OverviewEventsRepository _fetchEvents',
Expand Down
14 changes: 11 additions & 3 deletions lib/widgets/home/overview/overview_metric.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:fl_chart/fl_chart.dart';
Expand Down Expand Up @@ -130,7 +132,9 @@ class _OverviewMetricState extends State<OverviewMetric> {
'/api/v1/nodes${widget.nodeName != null ? '?fieldSelector=metadata.name=${widget.nodeName}' : ''}',
);
final nodesList = IoK8sApiCoreV1NodeList.fromJson(
nodesData,
json.decode(
nodesData,
),
);

final podsData = await KubernetesService(
Expand All @@ -141,7 +145,9 @@ class _OverviewMetricState extends State<OverviewMetric> {
'/api/v1/pods${widget.nodeName != null ? '?fieldSelector=spec.nodeName=${widget.nodeName}' : ''}',
);
final podsList = IoK8sApiCoreV1PodList.fromJson(
podsData,
json.decode(
podsData,
),
);

final nodeMetricsData = await KubernetesService(
Expand All @@ -152,7 +158,9 @@ class _OverviewMetricState extends State<OverviewMetric> {
'/apis/metrics.k8s.io/v1beta1/nodes${widget.nodeName != null ? '?fieldSelector=metadata.name=${widget.nodeName}' : ''}',
);
final nodeMetricsList = ApisMetricsV1beta1NodeMetricsList.fromJson(
nodeMetricsData,
json.decode(
nodeMetricsData,
),
);

var cpuAllocatable = 0.0;
Expand Down
5 changes: 4 additions & 1 deletion lib/widgets/plugins/flux/plugin_flux_details.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:collection/collection.dart';
Expand Down Expand Up @@ -139,11 +141,12 @@ class _PluginFluxDetailsState extends State<PluginFluxDetails> {
final url =
'${widget.resource.api.path}/namespaces/${widget.namespace}/${widget.resource.api.resource}/${widget.name}';

return await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(url);
return json.decode(result);
}

/// [_buildDetails] is responsible for showing the correct details item for
Expand Down
5 changes: 4 additions & 1 deletion lib/widgets/plugins/flux/plugin_flux_list.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart' as provider;
Expand Down Expand Up @@ -55,11 +57,12 @@ class _PluginFluxListState extends State<PluginFluxList> {
final url =
'${widget.resource.api.path}${cluster!.namespace != '' ? '/namespaces/${cluster.namespace}' : ''}/${widget.resource.api.resource}';

final data = await KubernetesService(
final result = await KubernetesService(
cluster: cluster,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(url);
final data = json.decode(result);

return data['items'];
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -64,7 +66,7 @@ class _PluginPrometheusDetailsState extends State<PluginPrometheusDetails> {
timeout: appRepository.settings.timeout,
).getRequest(url);

final configMap = IoK8sApiCoreV1ConfigMap.fromJson(result);
final configMap = IoK8sApiCoreV1ConfigMap.fromJson(json.decode(result));

if (configMap != null &&
configMap.metadata != null &&
Expand Down
5 changes: 4 additions & 1 deletion lib/widgets/plugins/prometheus/plugin_prometheus_list.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -62,7 +64,8 @@ class _PluginPrometheusListState extends State<PluginPrometheusList> {
timeout: appRepository.settings.timeout,
).getRequest(url);

final configMapsList = IoK8sApiCoreV1ConfigMapList.fromJson(result);
final configMapsList =
IoK8sApiCoreV1ConfigMapList.fromJson(json.decode(result));

Logger.log(
'PluginPrometheusListRepository fetchDashboards',
Expand Down
10 changes: 7 additions & 3 deletions lib/widgets/resources/details/details_get_logs_pods.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -76,11 +78,13 @@ class _DetailsGetLogsPodsState extends State<DetailsGetLogsPods> {
'/api/v1/namespaces/${widget.namespace}/pods?${getSelector(IoK8sApimachineryPkgApisMetaV1LabelSelector.fromJson(widget.item['spec']['selector']))}',
);

final data = json.decode(result);

setState(() {
_isLoading = false;
_pods = IoK8sApiCoreV1PodList.fromJson(result)!.items;
if (result['items'].isNotEmpty) {
_podSpec = result['items'][0];
_pods = IoK8sApiCoreV1PodList.fromJson(data)!.items;
if (data['items'].isNotEmpty) {
_podSpec = data['items'][0];
}
});
} catch (err) {
Expand Down
5 changes: 4 additions & 1 deletion lib/widgets/resources/details/details_live_metrics.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:convert';

import 'package:flutter/material.dart';

Expand Down Expand Up @@ -101,12 +102,14 @@ class _DetailsLiveMetricsState extends State<DetailsLiveMetrics> {
final url =
'/apis/metrics.k8s.io/v1beta1/namespaces/${widget.namespace}/pods/${widget.name}';

final metricsData = await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(url);

final metricsData = json.decode(result);

Logger.log(
'DetailsLiveMetricsRepository _fetchMetrics',
'Metrics were returned',
Expand Down
6 changes: 5 additions & 1 deletion lib/widgets/resources/details/details_resources_preview.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -83,12 +85,14 @@ class _DetailsResourcesPreviewState extends State<DetailsResourcesPreview> {
? '${widget.path}/namespaces/${widget.namespace}/${widget.resource}?limit=5&${widget.selector}'
: '${widget.path}/${widget.resource}?limit=5&${widget.selector}';

final resourcesList = await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(resourcesListUrl);

final resourcesList = json.decode(result);

if (widget.filter != null) {
return widget.filter!(resourcesList['items']);
}
Expand Down
6 changes: 5 additions & 1 deletion lib/widgets/resources/details/pod_details_item.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -59,12 +61,14 @@ class _PodDetailsItemState extends State<PodDetailsItem> {
final url =
'/apis/metrics.k8s.io/v1beta1/namespaces/${pod!.metadata!.namespace}/pods/${pod.metadata!.name}';

final metricsData = await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(url);

final metricsData = json.decode(result);

Logger.log(
'PodDetailsItem _fetchMetrics',
'Pod metrics were returned',
Expand Down
5 changes: 4 additions & 1 deletion lib/widgets/resources/resource_details.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -417,11 +419,12 @@ class _ResourcesDetailsState extends State<ResourcesDetails> {
? '${widget.path}/${widget.resource}/${widget.name}'
: '${widget.path}/namespaces/${widget.namespace}/${widget.resource}/${widget.name}';

return await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(resourcesDetailsUrl);
return json.decode(result);
}

/// [_buildDetailsItem] is responsible for showing the correct details item for
Expand Down
6 changes: 5 additions & 1 deletion lib/widgets/resources/resources_list.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -93,12 +95,14 @@ class _ResourcesListState extends State<ResourcesList> {
? '${widget.path}/${widget.resource}?${widget.selector ?? ''}'
: '${widget.path}${cluster!.namespace != '' ? '/namespaces/${cluster.namespace}' : ''}/${widget.resource}?${widget.selector ?? ''}';

final resourcesList = await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(resourcesListUrl);

final resourcesList = json.decode(result);

Logger.log(
'ResourcesListRepository _init',
'${resourcesList['items'].length} items were returned',
Expand Down
6 changes: 5 additions & 1 deletion lib/widgets/resources/resources_list_crds.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -49,12 +51,14 @@ class _ResourcesListCRDsState extends State<ResourcesListCRDs> {
final resourcesListUrl =
'${Resources.map['customresourcedefinitions']!.path}/${Resources.map['customresourcedefinitions']!.resource}';

final resourcesList = await KubernetesService(
final result = await KubernetesService(
cluster: cluster!,
proxy: appRepository.settings.proxy,
timeout: appRepository.settings.timeout,
).getRequest(resourcesListUrl);

final resourcesList = json.decode(result);

Logger.log(
'ResourcesListCRDsRepository _fetchItems',
'${resourcesList['items'].length} items were returned',
Expand Down
4 changes: 3 additions & 1 deletion lib/widgets/shared/app_namespaces_widget.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';
Expand Down Expand Up @@ -55,7 +57,7 @@ class _AppNamespacesWidgetState extends State<AppNamespacesWidget> {
timeout: appRepository.settings.timeout,
).getRequest('/api/v1/namespaces');

return IoK8sApiCoreV1NamespaceList.fromJson(result)!.items;
return IoK8sApiCoreV1NamespaceList.fromJson(json.decode(result))!.items;
}

/// [_getFilteredNamespaces] filters the given list of [namespaces] by the
Expand Down