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( ...@@ -335,12 +335,10 @@ void CrostiniExportImport::OnExportComplete(
} }
void CrostiniExportImport::OnExportContainerProgress( void CrostiniExportImport::OnExportContainerProgress(
const std::string& vm_name, const ContainerId& container_id,
const std::string& container_name,
ExportContainerProgressStatus status, ExportContainerProgressStatus status,
int progress_percent, int progress_percent,
uint64_t progress_speed) { uint64_t progress_speed) {
ContainerId container_id(vm_name, container_name);
auto it = notifications_.find(container_id); auto it = notifications_.find(container_id);
if (it == notifications_.end()) { if (it == notifications_.end()) {
NOTREACHED() << ContainerIdToString(container_id) NOTREACHED() << ContainerIdToString(container_id)
...@@ -363,10 +361,8 @@ void CrostiniExportImport::OnExportContainerProgress( ...@@ -363,10 +361,8 @@ void CrostiniExportImport::OnExportContainerProgress(
} }
void CrostiniExportImport::OnExportContainerProgress( void CrostiniExportImport::OnExportContainerProgress(
const std::string& vm_name, const ContainerId& container_id,
const std::string& container_name,
const StreamingExportStatus& status) { const StreamingExportStatus& status) {
ContainerId container_id(vm_name, container_name);
auto it = notifications_.find(container_id); auto it = notifications_.find(container_id);
if (it == notifications_.end()) { if (it == notifications_.end()) {
NOTREACHED() << ContainerIdToString(container_id) NOTREACHED() << ContainerIdToString(container_id)
...@@ -501,8 +497,7 @@ void CrostiniExportImport::OnImportComplete( ...@@ -501,8 +497,7 @@ void CrostiniExportImport::OnImportComplete(
} }
void CrostiniExportImport::OnImportContainerProgress( void CrostiniExportImport::OnImportContainerProgress(
const std::string& vm_name, const ContainerId& container_id,
const std::string& container_name,
ImportContainerProgressStatus status, ImportContainerProgressStatus status,
int progress_percent, int progress_percent,
uint64_t progress_speed, uint64_t progress_speed,
...@@ -510,7 +505,6 @@ void CrostiniExportImport::OnImportContainerProgress( ...@@ -510,7 +505,6 @@ void CrostiniExportImport::OnImportContainerProgress(
const std::string& architecture_container, const std::string& architecture_container,
uint64_t available_space, uint64_t available_space,
uint64_t minimum_required_space) { uint64_t minimum_required_space) {
ContainerId container_id(vm_name, container_name);
auto it = notifications_.find(container_id); auto it = notifications_.find(container_id);
if (it == notifications_.end()) { if (it == notifications_.end()) {
NOTREACHED() << ContainerIdToString(container_id) NOTREACHED() << ContainerIdToString(container_id)
......
...@@ -134,20 +134,17 @@ class CrostiniExportImport : public KeyedService, ...@@ -134,20 +134,17 @@ class CrostiniExportImport : public KeyedService,
// DEPRECATED crostini::ExportContainerProgressObserver implementation. // DEPRECATED crostini::ExportContainerProgressObserver implementation.
// TODO(juwa): delete this once the new version of tremplin has shipped. // TODO(juwa): delete this once the new version of tremplin has shipped.
void OnExportContainerProgress(const std::string& vm_name, void OnExportContainerProgress(const ContainerId& container_id,
const std::string& container_name,
crostini::ExportContainerProgressStatus status, crostini::ExportContainerProgressStatus status,
int progress_percent, int progress_percent,
uint64_t progress_speed) override; uint64_t progress_speed) override;
// crostini::ExportContainerProgressObserver implementation. // crostini::ExportContainerProgressObserver implementation.
void OnExportContainerProgress(const std::string& vm_name, void OnExportContainerProgress(const ContainerId& container_id,
const std::string& container_name,
const StreamingExportStatus& status) override; const StreamingExportStatus& status) override;
// crostini::ImportContainerProgressObserver implementation. // crostini::ImportContainerProgressObserver implementation.
void OnImportContainerProgress(const std::string& vm_name, void OnImportContainerProgress(const ContainerId& container_id,
const std::string& container_name,
crostini::ImportContainerProgressStatus status, crostini::ImportContainerProgressStatus status,
int progress_percent, int progress_percent,
uint64_t progress_speed, uint64_t progress_speed,
......
...@@ -2585,6 +2585,8 @@ void CrostiniManager::OnExportLxdContainerProgress( ...@@ -2585,6 +2585,8 @@ void CrostiniManager::OnExportLxdContainerProgress(
if (signal.owner_id() != owner_id_) if (signal.owner_id() != owner_id_)
return; return;
const ContainerId container_id(signal.vm_name(), signal.container_name());
CrostiniResult result; CrostiniResult result;
switch (signal.status()) { switch (signal.status()) {
// TODO(juwa): Remove EXPORTING_[PACK|DOWNLOAD] once a new version of // TODO(juwa): Remove EXPORTING_[PACK|DOWNLOAD] once a new version of
...@@ -2596,9 +2598,9 @@ void CrostiniManager::OnExportLxdContainerProgress( ...@@ -2596,9 +2598,9 @@ void CrostiniManager::OnExportLxdContainerProgress(
? ExportContainerProgressStatus::PACK ? ExportContainerProgressStatus::PACK
: ExportContainerProgressStatus::DOWNLOAD; : ExportContainerProgressStatus::DOWNLOAD;
for (auto& observer : export_container_progress_observers_) { for (auto& observer : export_container_progress_observers_) {
observer.OnExportContainerProgress( observer.OnExportContainerProgress(container_id, status,
signal.vm_name(), signal.container_name(), status, signal.progress_percent(),
signal.progress_percent(), signal.progress_speed()); signal.progress_speed());
} }
return; return;
} }
...@@ -2609,8 +2611,7 @@ void CrostiniManager::OnExportLxdContainerProgress( ...@@ -2609,8 +2611,7 @@ void CrostiniManager::OnExportLxdContainerProgress(
.exported_files = signal.input_files_streamed(), .exported_files = signal.input_files_streamed(),
.exported_bytes = signal.input_bytes_streamed()}; .exported_bytes = signal.input_bytes_streamed()};
for (auto& observer : export_container_progress_observers_) { for (auto& observer : export_container_progress_observers_) {
observer.OnExportContainerProgress(signal.vm_name(), observer.OnExportContainerProgress(container_id, status);
signal.container_name(), status);
} }
return; return;
} }
...@@ -2627,8 +2628,7 @@ void CrostiniManager::OnExportLxdContainerProgress( ...@@ -2627,8 +2628,7 @@ void CrostiniManager::OnExportLxdContainerProgress(
} }
// Invoke original callback with either success or failure. // Invoke original callback with either success or failure.
auto key = ContainerId(signal.vm_name(), signal.container_name()); auto it = export_lxd_container_callbacks_.find(container_id);
auto it = export_lxd_container_callbacks_.find(key);
if (it == export_lxd_container_callbacks_.end()) { if (it == export_lxd_container_callbacks_.end()) {
LOG(ERROR) << "No export callback for " << signal.vm_name() << ", " LOG(ERROR) << "No export callback for " << signal.vm_name() << ", "
<< signal.container_name(); << signal.container_name();
...@@ -2715,20 +2715,21 @@ void CrostiniManager::OnImportLxdContainerProgress( ...@@ -2715,20 +2715,21 @@ void CrostiniManager::OnImportLxdContainerProgress(
<< ", " << signal.failure_reason(); << ", " << signal.failure_reason();
} }
const ContainerId container_id(signal.vm_name(), signal.container_name());
if (call_observers) { if (call_observers) {
for (auto& observer : import_container_progress_observers_) { for (auto& observer : import_container_progress_observers_) {
observer.OnImportContainerProgress( observer.OnImportContainerProgress(
signal.vm_name(), signal.container_name(), status, container_id, status, signal.progress_percent(),
signal.progress_percent(), signal.progress_speed(), signal.progress_speed(), signal.architecture_device(),
signal.architecture_device(), signal.architecture_container(), signal.architecture_container(), signal.available_space(),
signal.available_space(), signal.min_required_space()); signal.min_required_space());
} }
} }
// Invoke original callback with either success or failure. // Invoke original callback with either success or failure.
if (call_original_callback) { if (call_original_callback) {
auto key = ContainerId(signal.vm_name(), signal.container_name()); auto it = import_lxd_container_callbacks_.find(container_id);
auto it = import_lxd_container_callbacks_.find(key);
if (it == import_lxd_container_callbacks_.end()) { if (it == import_lxd_container_callbacks_.end()) {
LOG(ERROR) << "No import callback for " << signal.vm_name() << ", " LOG(ERROR) << "No import callback for " << signal.vm_name() << ", "
<< signal.container_name(); << signal.container_name();
......
...@@ -62,8 +62,7 @@ class ExportContainerProgressObserver { ...@@ -62,8 +62,7 @@ class ExportContainerProgressObserver {
// DEPCRECATED. A successfully started container export will continually fire // DEPCRECATED. A successfully started container export will continually fire
// progress events until the original callback from ExportLxdContainer is // progress events until the original callback from ExportLxdContainer is
// invoked with a status of SUCCESS or CONTAINER_EXPORT_FAILED. // invoked with a status of SUCCESS or CONTAINER_EXPORT_FAILED.
virtual void OnExportContainerProgress(const std::string& vm_name, virtual void OnExportContainerProgress(const ContainerId& container_id,
const std::string& container_name,
ExportContainerProgressStatus status, ExportContainerProgressStatus status,
int progress_percent, int progress_percent,
uint64_t progress_speed) = 0; uint64_t progress_speed) = 0;
...@@ -71,8 +70,7 @@ class ExportContainerProgressObserver { ...@@ -71,8 +70,7 @@ class ExportContainerProgressObserver {
// A successfully started container export will continually fire progress // A successfully started container export will continually fire progress
// events until the original callback from ExportLxdContainer is invoked with // events until the original callback from ExportLxdContainer is invoked with
// a status of SUCCESS or CONTAINER_EXPORT_FAILED. // a status of SUCCESS or CONTAINER_EXPORT_FAILED.
virtual void OnExportContainerProgress(const std::string& vm_name, virtual void OnExportContainerProgress(const ContainerId& container_id,
const std::string& container_name,
const StreamingExportStatus&) = 0; const StreamingExportStatus&) = 0;
}; };
...@@ -82,8 +80,7 @@ class ImportContainerProgressObserver { ...@@ -82,8 +80,7 @@ class ImportContainerProgressObserver {
// events until the original callback from ImportLxdContainer is invoked with // events until the original callback from ImportLxdContainer is invoked with
// a status of SUCCESS or CONTAINER_IMPORT_FAILED[_*]. // a status of SUCCESS or CONTAINER_IMPORT_FAILED[_*].
virtual void OnImportContainerProgress( virtual void OnImportContainerProgress(
const std::string& vm_name, const ContainerId& container_id,
const std::string& container_name,
ImportContainerProgressStatus status, ImportContainerProgressStatus status,
int progress_percent, int progress_percent,
uint64_t progress_speed, 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