diff --git a/src/core/raid/softwareraid.cpp b/src/core/raid/softwareraid.cpp --- a/src/core/raid/softwareraid.cpp +++ b/src/core/raid/softwareraid.cpp @@ -83,11 +83,23 @@ return 0; } -bool SoftwareRAID::growArray(Report &report, const QStringList &devices) +bool SoftwareRAID::growArray(Report &report, const QStringList &devices, const QString &name) { - Q_UNUSED(report) - Q_UNUSED(devices) - return false; + //add device from list + QString path = QStringLiteral("/dev/") + name; + for (const QString &p : qAsConst(devices)) { + QStringList args = {path,QStringLiteral("--add")} + + args << p; + ExternalCommand cmd(report, QStringLiteral("mdadm"), args); + + cmd.write(QByteArrayLiteral("y")); + + if (!cmd.run(-1) || cmd.exitCode() != 0) + return false; + //array to be grown after adding after every device + } + return true; } bool SoftwareRAID::shrinkArray(Report &report, const QStringList &devices)