fixed request for newer docker

This commit is contained in:
Philipp Kunz 2016-07-18 02:50:28 +02:00
parent 0c7cd35448
commit 144f963d8a
4 changed files with 75 additions and 41 deletions

View File

@ -22,5 +22,5 @@ export declare class Dockersock {
callOnChange(cb: Function): void; callOnChange(cb: Function): void;
getChangeObservable(): Observable<{}>; getChangeObservable(): Observable<{}>;
request(methodArg: string, routeArg: string, queryArg?: string, dataArg?: {}): plugins.q.Promise<{}>; request(methodArg: string, routeArg: string, queryArg?: string, dataArg?: {}): plugins.q.Promise<{}>;
requestStream(methodArg: any, routeArg: any, endArg?: boolean): plugins.q.Promise<{}>; requestStream(methodArg: string, routeArg: string, queryArg?: string, dataArg?: {}): plugins.q.Promise<{}>;
} }

File diff suppressed because one or more lines are too long

View File

@ -144,7 +144,8 @@ export class Dockersock {
method:methodArg, method:methodArg,
url:this.sockPath + routeArg + suffix + queryArg, url:this.sockPath + routeArg + suffix + queryArg,
headers:{ headers:{
"Content-Type":"application/json" "Content-Type":"application/json",
"Host":"docker.sock"
}, },
body:jsonArg body:jsonArg
}; };
@ -161,26 +162,41 @@ export class Dockersock {
}); });
return done.promise; return done.promise;
} }
requestStream(methodArg,routeArg,endArg:boolean = true){ requestStream(methodArg:string,routeArg:string,queryArg:string = "", dataArg = {}){
let done = plugins.q.defer(); let done = plugins.q.defer();
if(methodArg == "POST"){ let jsonArg:string = JSON.stringify(dataArg);
let requestStream = plugins.request.post(this.sockPath + routeArg); let suffix:string = "";
requestStream.on("response",(response) => { let options = {
if(response.statusCode == 200){ method:methodArg,
plugins.beautylog.ok("request returned status 200, so we are good!"); url:this.sockPath + routeArg + suffix + queryArg,
} else { headers:{
plugins.beautylog.error("request returned error: " + response.statusCode); "Content-Type":"application/json",
done.reject(response); "Host":"docker.sock"
} },
}); body:jsonArg
requestStream.on("data",(data:Buffer) => { };
let status = JSON.parse(data.toString()).status; let requestStream = plugins.request(options,(err, res, body) => {
plugins.beautylog.logReduced(status); if (!err && res.statusCode == 200) {
});
requestStream.on("end",()=> {
done.resolve(); done.resolve();
} else {
console.log(err);
console.log(res);
done.reject(err);
};
});
requestStream.on("response",(response) => {
if(response.statusCode == 200){
plugins.beautylog.ok("request returned status 200, so we are good!");
} else {
plugins.beautylog.error("request returned error: " + response.statusCode);
done.reject(response);
}
}); });
} requestStream.on("data",(data:Buffer) => {
let status;
status = JSON.parse(data.toString()).status;
plugins.beautylog.logReduced(status);
});
return done.promise; return done.promise;
} }
} }