1 #ifndef DOCKERAPPMGR_H_
2 #define DOCKERAPPMGR_H_
4 #include "ostreemanager.h"
5 #include "uptane/iterator.h"
7 using DockerAppCb = std::function<bool(
const std::string &app,
const Uptane::Target &app_target)>;
13 std::vector<std::string> docker_apps;
14 boost::filesystem::path docker_apps_root;
15 boost::filesystem::path docker_app_params;
16 boost::filesystem::path docker_app_bin{
"/usr/bin/docker-app"};
17 boost::filesystem::path docker_compose_bin{
"/usr/bin/docker-compose"};
18 bool docker_prune{
true};
24 const std::shared_ptr<INvStorage> &storage,
const std::shared_ptr<HttpInterface> &http)
25 :
OstreeManager(pconfig, bconfig, storage, http), dappcfg_(pconfig) {
26 fake_fetcher_ = std::make_shared<Uptane::Fetcher>(
"",
"", http_);
31 std::string name()
const override {
return "ostree+docker-app-standalone"; }
36 bool iterate_apps(
const Uptane::Target &target,
const DockerAppCb &cb)
const;
41 std::shared_ptr<Uptane::Fetcher> fake_fetcher_;
47 const std::shared_ptr<INvStorage> &storage,
const std::shared_ptr<HttpInterface> &http)
48 :
OstreeManager(pconfig, bconfig, storage, http), dappcfg_(pconfig) {
49 fake_fetcher_ = std::make_shared<Uptane::Fetcher>(
"",
"", http_);
54 std::string name()
const override {
return "ostree+docker-app-bundles"; }
59 std::vector<std::pair<std::string, std::string>> iterate_apps(
const Uptane::Target &target)
const;
64 std::shared_ptr<Uptane::Fetcher> fake_fetcher_;
70 const std::shared_ptr<INvStorage> &storage,
const std::shared_ptr<HttpInterface> &http)
73 if (boost::filesystem::exists(standalone)) {
74 LOG_INFO <<
"DockerAppManager detects docker-app standalone environment";
75 impl_ = std_::make_unique<DockerAppStandalone>(pconfig, bconfig, storage, http);
77 LOG_INFO <<
"DockerAppManager detects docker app bundle environment";
78 impl_ = std_::make_unique<DockerAppBundles>(pconfig, bconfig, storage, http);
83 return impl_->fetchTarget(target, fetcher, keys, progress_cb, token);
86 TargetStatus verifyTarget(
const Uptane::Target &target)
const override {
return impl_->verifyTarget(target); }
87 std::string name()
const override {
return "ostree+docker-app"; }
90 std::unique_ptr<OstreeManager> impl_;
93 #endif // DOCKERAPPMGR_H_