Пример #1
0
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();
}
Пример #2
0
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();
}
Пример #3
0
TClient::TClient(const std::string &special) {
    Cred = TCred(0, 0);
    Comm = special;
    ReadOnlyAccess = false;
}