GenericDirectUploadStep: Get rid of isDeploymentNecessary()

Make it a part of deployRecipe().

Change-Id: I775f34f31746aa177f341e2b26f225e34bb14a3c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Jarek Kobus
2023-10-23 20:31:36 +02:00
parent d60a67e800
commit 01c2a30539

View File

@@ -31,6 +31,7 @@ const int MaxConcurrentStatCalls = 10;
struct UploadStorage struct UploadStorage
{ {
QList<DeployableFile> deployableFiles;
QList<DeployableFile> filesToUpload; QList<DeployableFile> filesToUpload;
}; };
@@ -54,7 +55,6 @@ public:
}); });
} }
bool isDeploymentNecessary() const final;
GroupItem deployRecipe() final; GroupItem deployRecipe() final;
QDateTime timestampFromStat(const DeployableFile &file, Process *statProc); QDateTime timestampFromStat(const DeployableFile &file, Process *statProc);
@@ -70,8 +70,6 @@ public:
GroupItem chmodTask(const DeployableFile &file); GroupItem chmodTask(const DeployableFile &file);
GroupItem chmodTree(const TreeStorage<UploadStorage> &storage); GroupItem chmodTree(const TreeStorage<UploadStorage> &storage);
mutable QList<DeployableFile> m_deployableFiles;
BoolAspect incremental{this}; BoolAspect incremental{this};
BoolAspect ignoreMissingFiles{this}; BoolAspect ignoreMissingFiles{this};
}; };
@@ -91,18 +89,6 @@ static QList<DeployableFile> collectFilesToUpload(const DeployableFile &deployab
return collected; return collected;
} }
bool GenericDirectUploadStep::isDeploymentNecessary() const
{
m_deployableFiles = target()->deploymentData().allFiles();
QList<DeployableFile> collected;
for (int i = 0; i < m_deployableFiles.count(); ++i)
collected.append(collectFilesToUpload(m_deployableFiles.at(i)));
QTC_CHECK(collected.size() >= m_deployableFiles.size());
m_deployableFiles = collected;
return !m_deployableFiles.isEmpty();
}
QDateTime GenericDirectUploadStep::timestampFromStat(const DeployableFile &file, QDateTime GenericDirectUploadStep::timestampFromStat(const DeployableFile &file,
Process *statProc) Process *statProc)
{ {
@@ -257,9 +243,26 @@ GroupItem GenericDirectUploadStep::chmodTree(const TreeStorage<UploadStorage> &s
GroupItem GenericDirectUploadStep::deployRecipe() GroupItem GenericDirectUploadStep::deployRecipe()
{ {
const TreeStorage<UploadStorage> storage;
const auto setupHandler = [this, storage] {
const QList<DeployableFile> deployableFiles = target()->deploymentData().allFiles();
QList<DeployableFile> collected;
for (const DeployableFile &file : deployableFiles)
collected.append(collectFilesToUpload(file));
QTC_CHECK(collected.size() >= deployableFiles.size());
if (collected.isEmpty()) {
addSkipDeploymentMessage();
return SetupResult::StopWithDone;
}
storage->deployableFiles = collected;
return SetupResult::Continue;
};
const auto preFilesToStat = [this](UploadStorage *storage) { const auto preFilesToStat = [this](UploadStorage *storage) {
QList<DeployableFile> filesToStat; QList<DeployableFile> filesToStat;
for (const DeployableFile &file : std::as_const(m_deployableFiles)) { for (const DeployableFile &file : std::as_const(storage->deployableFiles)) {
if (!incremental() || hasLocalFileChanged(file)) { if (!incremental() || hasLocalFileChanged(file)) {
storage->filesToUpload.append(file); storage->filesToUpload.append(file);
continue; continue;
@@ -287,9 +290,9 @@ GroupItem GenericDirectUploadStep::deployRecipe()
addProgressMessage(Tr::tr("All files successfully deployed.")); addProgressMessage(Tr::tr("All files successfully deployed."));
}; };
const TreeStorage<UploadStorage> storage;
const Group root { const Group root {
Tasking::Storage(storage), Storage(storage),
onGroupSetup(setupHandler),
statTree(storage, preFilesToStat, preStatEndHandler), statTree(storage, preFilesToStat, preStatEndHandler),
uploadTask(storage), uploadTask(storage),
Group { Group {