Commit fdf014c4 authored by Julian Watson's avatar Julian Watson Committed by Commit Bot

crostini: Use ContainerId in *portContainerProgressObserver interfaces

Change-Id: I06110b752a105f4d7bd0d6ba9b38d62b49370a80
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1839933
Commit-Queue: Julian Watson <juwa@google.com>
Auto-Submit: Julian Watson <juwa@google.com>
Reviewed-by: default avatarNicholas Verne <nverne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704042}
parent 54ba8573
......@@ -335,12 +335,10 @@ void CrostiniExportImport::OnExportComplete(
}
void CrostiniExportImport::OnExportContainerProgress(
const std::string& vm_name,
const std::string& container_name,
const ContainerId& container_id,
ExportContainerProgressStatus status,
int progress_percent,
uint64_t progress_speed) {
ContainerId container_id(vm_name, container_name);
auto it = notifications_.find(container_id);
if (it == notifications_.end()) {
NOTREACHED() << ContainerIdToString(container_id)
......@@ -363,10 +361,8 @@ void CrostiniExportImport::OnExportContainerProgress(
}
void CrostiniExportImport::OnExportContainerProgress(
const std::string& vm_name,
const std::string& container_name,
const ContainerId& container_id,
const StreamingExportStatus& status) {
ContainerId container_id(vm_name, container_name);
auto it = notifications_.find(container_id);
if (it == notifications_.end()) {
NOTREACHED() << ContainerIdToString(container_id)
......@@ -501,8 +497,7 @@ void CrostiniExportImport::OnImportComplete(
}
void CrostiniExportImport::OnImportContainerProgress(
const std::string& vm_name,
const std::string& container_name,
const ContainerId& container_id,
ImportContainerProgressStatus status,
int progress_percent,
uint64_t progress_speed,
......@@ -510,7 +505,6 @@ void CrostiniExportImport::OnImportContainerProgress(
const std::string& architecture_container,
uint64_t available_space,
uint64_t minimum_required_space) {
ContainerId container_id(vm_name, container_name);
auto it = notifications_.find(container_id);
if (it == notifications_.end()) {
NOTREACHED() << ContainerIdToString(container_id)
......
......@@ -134,20 +134,17 @@ class CrostiniExportImport : public KeyedService,
// DEPRECATED crostini::ExportContainerProgressObserver implementation.
// TODO(juwa): delete this once the new version of tremplin has shipped.
void OnExportContainerProgress(const std::string& vm_name,
const std::string& container_name,
void OnExportContainerProgress(const ContainerId& container_id,
crostini::ExportContainerProgressStatus status,
int progress_percent,
uint64_t progress_speed) override;
// crostini::ExportContainerProgressObserver implementation.
void OnExportContainerProgress(const std::string& vm_name,
const std::string& container_name,
void OnExportContainerProgress(const ContainerId& container_id,
const StreamingExportStatus& status) override;
// crostini::ImportContainerProgressObserver implementation.
void OnImportContainerProgress(const std::string& vm_name,
const std::string& container_name,
void OnImportContainerProgress(const ContainerId& container_id,
crostini::ImportContainerProgressStatus status,
int progress_percent,
uint64_t progress_speed,
......
......@@ -2585,6 +2585,8 @@ void CrostiniManager::OnExportLxdContainerProgress(
if (signal.owner_id() != owner_id_)
return;
const ContainerId container_id(signal.vm_name(), signal.container_name());
CrostiniResult result;
switch (signal.status()) {
// TODO(juwa): Remove EXPORTING_[PACK|DOWNLOAD] once a new version of
......@@ -2596,9 +2598,9 @@ void CrostiniManager::OnExportLxdContainerProgress(
? ExportContainerProgressStatus::PACK
: ExportContainerProgressStatus::DOWNLOAD;
for (auto& observer : export_container_progress_observers_) {
observer.OnExportContainerProgress(
signal.vm_name(), signal.container_name(), status,
signal.progress_percent(), signal.progress_speed());
observer.OnExportContainerProgress(container_id, status,
signal.progress_percent(),
signal.progress_speed());
}
return;
}
......@@ -2609,8 +2611,7 @@ void CrostiniManager::OnExportLxdContainerProgress(
.exported_files = signal.input_files_streamed(),
.exported_bytes = signal.input_bytes_streamed()};
for (auto& observer : export_container_progress_observers_) {
observer.OnExportContainerProgress(signal.vm_name(),
signal.container_name(), status);
observer.OnExportContainerProgress(container_id, status);
}
return;
}
......@@ -2627,8 +2628,7 @@ void CrostiniManager::OnExportLxdContainerProgress(
}
// Invoke original callback with either success or failure.
auto key = ContainerId(signal.vm_name(), signal.container_name());
auto it = export_lxd_container_callbacks_.find(key);
auto it = export_lxd_container_callbacks_.find(container_id);
if (it == export_lxd_container_callbacks_.end()) {
LOG(ERROR) << "No export callback for " << signal.vm_name() << ", "
<< signal.container_name();
......@@ -2715,20 +2715,21 @@ void CrostiniManager::OnImportLxdContainerProgress(
<< ", " << signal.failure_reason();
}
const ContainerId container_id(signal.vm_name(), signal.container_name());
if (call_observers) {
for (auto& observer : import_container_progress_observers_) {
observer.OnImportContainerProgress(
signal.vm_name(), signal.container_name(), status,
signal.progress_percent(), signal.progress_speed(),
signal.architecture_device(), signal.architecture_container(),
signal.available_space(), signal.min_required_space());
container_id, status, signal.progress_percent(),
signal.progress_speed(), signal.architecture_device(),
signal.architecture_container(), signal.available_space(),
signal.min_required_space());
}
}
// Invoke original callback with either success or failure.
if (call_original_callback) {
auto key = ContainerId(signal.vm_name(), signal.container_name());
auto it = import_lxd_container_callbacks_.find(key);
auto it = import_lxd_container_callbacks_.find(container_id);
if (it == import_lxd_container_callbacks_.end()) {
LOG(ERROR) << "No import callback for " << signal.vm_name() << ", "
<< signal.container_name();
......
......@@ -62,8 +62,7 @@ class ExportContainerProgressObserver {
// DEPCRECATED. A successfully started container export will continually fire
// progress events until the original callback from ExportLxdContainer is
// invoked with a status of SUCCESS or CONTAINER_EXPORT_FAILED.
virtual void OnExportContainerProgress(const std::string& vm_name,
const std::string& container_name,
virtual void OnExportContainerProgress(const ContainerId& container_id,
ExportContainerProgressStatus status,
int progress_percent,
uint64_t progress_speed) = 0;
......@@ -71,8 +70,7 @@ class ExportContainerProgressObserver {
// A successfully started container export will continually fire progress
// events until the original callback from ExportLxdContainer is invoked with
// a status of SUCCESS or CONTAINER_EXPORT_FAILED.
virtual void OnExportContainerProgress(const std::string& vm_name,
const std::string& container_name,
virtual void OnExportContainerProgress(const ContainerId& container_id,
const StreamingExportStatus&) = 0;
};
......@@ -82,8 +80,7 @@ class ImportContainerProgressObserver {
// events until the original callback from ImportLxdContainer is invoked with
// a status of SUCCESS or CONTAINER_IMPORT_FAILED[_*].
virtual void OnImportContainerProgress(
const std::string& vm_name,
const std::string& container_name,
const ContainerId& container_id,
ImportContainerProgressStatus status,
int progress_percent,
uint64_t progress_speed,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment