MCPcopy Create free account
hub / github.com/KDE/kdevelop / inspectContainer

Method inspectContainer

plugins/docker/dockerruntime.cpp:41–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41void DockerRuntime::inspectContainer()
42{
43 auto* process = new QProcess(this);
44 connect(process, QOverload<int,QProcess::ExitStatus>::of(&QProcess::finished),
45 this, [process, this](int code, QProcess::ExitStatus status){
46 process->deleteLater();
47 qCDebug(DOCKER) << "inspect container" << code << status;
48 if (code || status) {
49 qCWarning(DOCKER) << "Could not figure out the container" << m_container;
50 return;
51 }
52 const QJsonArray arr = QJsonDocument::fromJson(process->readAll()).array();
53 const QJsonObject obj = arr.constBegin()->toObject();
54
55 const QJsonObject objGraphDriverData = obj.value(QLatin1String("GraphDriver")).toObject().value(QLatin1String("Data")).toObject();
56 m_mergedDir = Path(objGraphDriverData.value(QLatin1String("MergedDir")).toString());
57 qCDebug(DOCKER) << "mergeddir:" << m_container << m_mergedDir;
58
59 const auto& entries = obj[QLatin1String("Config")].toObject()[QLatin1String("Env")].toArray();
60 for (const auto& entry : entries) {
61 const auto content = entry.toString().split(QLatin1Char('='));
62 if (content.count() != 2)
63 continue;
64 m_envs.insert(content[0].toLocal8Bit(), content[1].toLocal8Bit());
65 }
66 qCDebug(DOCKER) << "envs:" << m_container << m_envs;
67 });
68 process->start(QStringLiteral("docker"), {QStringLiteral("container"), QStringLiteral("inspect"), m_container});
69 process->waitForFinished();
70 qDebug() << "inspecting" << QStringList{QStringLiteral("container"), QStringLiteral("inspect"), m_container} << process->exitCode();
71}
72
73DockerRuntime::~DockerRuntime()
74{

Callers

nothing calls this directly

Calls 9

constBeginMethod · 0.80
PathClass · 0.50
arrayMethod · 0.45
valueMethod · 0.45
toStringMethod · 0.45
splitMethod · 0.45
countMethod · 0.45
insertMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected