aboutsummaryrefslogtreecommitdiff
path: root/bbot/bootstrap-manifest
blob: 502127bef3f72034588a094d94021c9a06e11f3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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