1
- import request = require ( 'request' ) ;
1
+ import * as request from 'request' ;
2
2
import { Writable } from 'stream' ;
3
-
4
3
import { KubeConfig } from './config' ;
4
+ import { HttpError , ObjectSerializer } from './gen/api' ;
5
5
6
6
export interface LogOptions {
7
7
/**
@@ -56,7 +56,6 @@ export class Log {
56
56
podName : string ,
57
57
containerName : string ,
58
58
stream : Writable ,
59
- done : ( err : any ) => void ,
60
59
options : LogOptions = { } ,
61
60
) : Promise < request . Request > {
62
61
const path = `/api/v1/namespaces/${ namespace } /pods/${ podName } /log` ;
@@ -77,20 +76,20 @@ export class Log {
77
76
} ;
78
77
await this . config . applyToRequest ( requestOptions ) ;
79
78
80
- const req = request ( requestOptions , ( error , response , body ) => {
81
- if ( error ) {
82
- done ( error ) ;
83
- } else if ( response && response . statusCode !== 200 ) {
84
- done ( body ) ;
85
- } else {
86
- done ( null ) ;
87
- }
88
- } ) . on ( 'response' , ( response ) => {
89
- if ( response . statusCode === 200 ) {
90
- req . pipe ( stream ) ;
91
- }
79
+ return new Promise ( ( resolve , reject ) => {
80
+ const req = request ( requestOptions , ( error , response , body ) => {
81
+ if ( error ) {
82
+ reject ( error ) ;
83
+ } else if ( response . statusCode !== 200 ) {
84
+ body = ObjectSerializer . deserialize ( JSON . parse ( body ) , 'V1Status' ) ;
85
+ reject ( new HttpError ( response , body , response . statusCode ) ) ;
86
+ }
87
+ } ) . on ( 'response' , ( response ) => {
88
+ if ( response . statusCode === 200 ) {
89
+ req . pipe ( stream ) ;
90
+ resolve ( req ) ;
91
+ }
92
+ } ) ;
92
93
} ) ;
93
-
94
- return req ;
95
94
}
96
95
}
0 commit comments