pullImage method
LogStream<ImagePullResult>
pullImage({
- required String tag,
- List<
DockerSecret> credentials = const [],
Implementation
LogStream<ImagePullResult> pullImage({required String tag, List<DockerSecret> credentials = const []}) {
final requestId = Uuid().v4().toString();
final controller = StreamController<String>();
final completer = Completer<ImagePullResult>();
final progress = StreamController<LogProgress>();
final stream = LogStream<ImagePullResult>._(completer, controller.stream, progress.stream, () async {
await room.sendRequest('containers.stop_logs', {'request_id': requestId});
});
_loggers[requestId] = controller;
_progress[requestId] = progress;
final req = _ImagePullRequest(requestId: requestId, tag: tag, credentials: credentials);
room
.sendRequest("containers.pull_image", req.toJson())
.then(
(result) {
final json = result as JsonResponse;
controller.close();
completer.complete(ImagePullResult(logs: (json.json["logs"] as List).map((l) => l as String).toList()));
_loggers.remove(requestId);
},
onError: (error) {
controller.close();
completer.completeError(error);
_loggers.remove(requestId);
},
);
return stream;
}