TError TContainerHolder::CreateRoot(TScopedLock &holder_lock) { std::shared_ptr<TContainer> container; TError error; error = Create(holder_lock, ROOT_CONTAINER, TCred(0, 0), container); if (error) return error; if (container->GetId() != ROOT_CONTAINER_ID) return TError(EError::Unknown, "Unexpected root container id " + std::to_string(container->GetId())); error = IdMap.GetAt(DEFAULT_TC_MINOR); if (error) return error; error = container->Prop->Set<bool>(P_ISOLATE, false); if (error) return error; error = container->Prop->Set<std::vector<std::string>>(P_NET, { "host" }); if (error) return error; error = container->Start(nullptr, true); if (error) return error; return TError::Success(); }
TError TContainerHolder::CreatePortoRoot(TScopedLock &holder_lock) { std::shared_ptr<TContainer> container; TError error = Create(holder_lock, PORTO_ROOT_CONTAINER, TCred(0, 0), container); if (error) return error; if (container->GetId() != PORTO_ROOT_CONTAINER_ID) return TError(EError::Unknown, "Unexpected /porto container id " + std::to_string(container->GetId())); error = container->Prop->Set<bool>(P_ISOLATE, false); if (error) return error; error = container->Start(nullptr, true); if (error) return error; ScheduleLogRotatation(); Statistics->Created = 0; Statistics->RestoreFailed = 0; Statistics->RemoveDead = 0; Statistics->Rotated = 0; Statistics->Started = 0; return TError::Success(); }
TClient::TClient(const std::string &special) { Cred = TCred(0, 0); Comm = special; ReadOnlyAccess = false; }