Skip to content

Commit bbeffc9

Browse files
committed
Factor out ServeProto::BasicClientConnection::buildDerivation
For Hydra.
1 parent 9312fe9 commit bbeffc9

File tree

3 files changed

+30
-14
lines changed

3 files changed

+30
-14
lines changed

src/libstore/legacy-ssh-store.cc

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -250,16 +250,16 @@ struct LegacySSHStore : public virtual LegacySSHStoreConfig, public virtual Stor
250250

251251
private:
252252

253-
void putBuildSettings(Connection & conn)
253+
ServeProto::BasicClientConnection::BuildOptions buildSettings()
254254
{
255-
conn.putBuildSettings({
255+
return {
256256
.maxSilentTime = settings.maxSilentTime,
257257
.buildTimeout = settings.buildTimeout,
258258
.repeats = 0, // buildRepeat hasn't worked for ages anyway
259259
.maxLogSize = settings.maxLogSize,
260260
.enforceDeterminism = 0,
261261
.keepFailed = settings.keepFailed,
262-
});
262+
};
263263
}
264264

265265
public:
@@ -269,16 +269,7 @@ struct LegacySSHStore : public virtual LegacySSHStoreConfig, public virtual Stor
269269
{
270270
auto conn(connections->get());
271271

272-
conn->to
273-
<< ServeProto::Command::BuildDerivation
274-
<< printStorePath(drvPath);
275-
writeDerivation(conn->to, *this, drv);
276-
277-
putBuildSettings(*conn);
278-
279-
conn->to.flush();
280-
281-
return ServeProto::Serialise<BuildResult>::read(*this, *conn);
272+
return conn->buildDerivation(*this, drvPath, drv, buildSettings());
282273
}
283274

284275
void buildPaths(const std::vector<DerivedPath> & drvPaths, BuildMode buildMode, std::shared_ptr<Store> evalStore) override
@@ -306,7 +297,7 @@ struct LegacySSHStore : public virtual LegacySSHStoreConfig, public virtual Stor
306297
}
307298
conn->to << ss;
308299

309-
putBuildSettings(*conn);
300+
conn->putBuildSettings(buildSettings());
310301

311302
conn->to.flush();
312303

src/libstore/serve-protocol-impl.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#include "serve-protocol-impl.hh"
2+
#include "build-result.hh"
3+
#include "derivations.hh"
24

35
namespace nix {
46

@@ -36,4 +38,22 @@ void ServeProto::BasicClientConnection::putBuildSettings(
3638
}
3739
}
3840

41+
42+
BuildResult ServeProto::BasicClientConnection::buildDerivation(
43+
const Store & store,
44+
const StorePath & drvPath, const BasicDerivation & drv,
45+
const ServeProto::BasicClientConnection::BuildOptions & options)
46+
{
47+
to
48+
<< ServeProto::Command::BuildDerivation
49+
<< store.printStorePath(drvPath);
50+
writeDerivation(to, store, drv);
51+
52+
putBuildSettings(options);
53+
54+
to.flush();
55+
56+
return ServeProto::Serialise<BuildResult>::read(store, *this);
57+
}
58+
3959
}

src/libstore/serve-protocol-impl.hh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ struct ServeProto::BasicClientConnection
108108
};
109109

110110
void putBuildSettings(const BuildOptions & options);
111+
112+
BuildResult buildDerivation(
113+
const Store & store,
114+
const StorePath & drvPath, const BasicDerivation & drv,
115+
const ServeProto::BasicClientConnection::BuildOptions & options);
111116
};
112117

113118
}

0 commit comments

Comments
 (0)