@@ -64,18 +64,11 @@ export class Metrics {
6464 public async getNodeMetrics ( ) : Promise < NodeMetricsList > {
6565 const path = '/apis/metrics.k8s.io/v1beta1/nodes' ;
6666
67- const cluster = this . config . getCurrentCluster ( ) ;
68- if ( ! cluster ) {
69- throw new Error ( 'No currently active cluster' ) ;
70- }
67+ const requestOptions = this . requestOptionsFromPath ( path ) ;
7168
72- const requestOptions : request . Options = {
73- method : 'GET' ,
74- uri : cluster . server + path ,
75- } ;
7669 await this . config . applyToRequest ( requestOptions ) ;
7770
78- return this . handleResponse < NodeMetricsList > ( requestOptions , JSON . parse ) ;
71+ return this . handleResponse < NodeMetricsList > ( requestOptions ) ;
7972 }
8073
8174 public async getPodMetrics ( namespace ?: string ) : Promise < PodMetricsList > {
@@ -87,21 +80,26 @@ export class Metrics {
8780 path = '/apis/metrics.k8s.io/v1beta1/pods' ;
8881 }
8982
83+ const requestOptions = this . requestOptionsFromPath ( path ) ;
84+
85+ await this . config . applyToRequest ( requestOptions ) ;
86+
87+ return this . handleResponse < PodMetricsList > ( requestOptions ) ;
88+ }
89+
90+ private requestOptionsFromPath ( path : string ) : request . Options {
9091 const cluster = this . config . getCurrentCluster ( ) ;
9192 if ( ! cluster ) {
9293 throw new Error ( 'No currently active cluster' ) ;
9394 }
9495
95- const requestOptions : request . Options = {
96+ return {
9697 method : 'GET' ,
9798 uri : cluster . server + path ,
9899 } ;
99- await this . config . applyToRequest ( requestOptions ) ;
100-
101- return this . handleResponse < PodMetricsList > ( requestOptions , JSON . parse ) ;
102100 }
103101
104- private handleResponse < T > ( requestOptions : request . Options , deserialize : ( body : any ) => T ) : Promise < T > {
102+ private handleResponse < T > ( requestOptions : request . Options ) : Promise < T > {
105103 return new Promise ( ( resolve , reject ) => {
106104 const req = request ( requestOptions , ( error , response , body ) => {
107105 if ( error ) {
@@ -114,7 +112,7 @@ export class Metrics {
114112 reject ( new HttpError ( response , body , response . statusCode ) ) ;
115113 }
116114 } else {
117- resolve ( deserialize ( body ) ) ;
115+ resolve ( JSON . parse ( body ) as T ) ;
118116 }
119117 } ) ;
120118 } ) ;
0 commit comments