aboutsummaryrefslogtreecommitdiff
path: root/bbot/bootstrap-manifest
diff options
context:
space:
mode:
Diffstat (limited to 'bbot/bootstrap-manifest')
-rw-r--r--bbot/bootstrap-manifest57
1 files changed, 57 insertions, 0 deletions
diff --git a/bbot/bootstrap-manifest b/bbot/bootstrap-manifest
new file mode 100644
index 0000000..502127b
--- /dev/null
+++ b/bbot/bootstrap-manifest
@@ -0,0 +1,57 @@
+// file : bbot/bootstrap-manifest -*- C++ -*-
+// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef BBOT_BOOTSTRAP_MANIFEST
+#define BBOT_BOOTSTRAP_MANIFEST
+
+#include <map>
+
+#include <bbot/types>
+#include <bbot/utility>
+
+#include <bbot/manifest> // machine_manifest
+
+namespace bbot
+{
+ // Toolchain manifest.
+ //
+ class toolchain_manifest
+ {
+ public:
+
+ // Toolchain id (SHAXXX).
+ //
+ string id;
+ };
+
+ // Bootstrap result manifest. Uploaded by the worker to the agent's TFTP
+ // server.
+ //
+ class bootstrap_manifest
+ {
+ public:
+
+ // Map of packages to their (numeric) versions that were used inside the
+ // bootstrapped machine. Used to make sure bbot agent/worker use the same
+ // versions. For example:
+ //
+ // libbbot-version: 1010100 # 1.1.1
+ // bbot-version: 1010200 # 1.1.2
+ //
+ std::map<string, uint64_t> versions;
+ };
+
+ // The manifest stored in <name>-<toolchain>/ consists of the machine
+ // manifest (original), toolchain manifest, and bootstrap result manifest.
+ //
+ class bootstrapped_machine_manifest
+ {
+ public:
+ machine_manifest machine;
+ toolchain_manifest toolchain;
+ bootstrap_manifest bootstrap;
+ };
+}
+
+#endif // BBOT_BOOTSTRAP_MANIFEST