Ejemplo n.º 1
0
TEST_F(RestartTest, owner_tag)
{
    const vfs::FrontendPath fname(make_volume_name("/volume"));
    const vfs::ObjectId oid(create_file(fname));
    const vfs::ObjectRegistrationPtr reg(find_registration(oid));

    {
        LOCKVD();

        const vd::VolumeConfig
            cfg(api::getVolumeConfig(static_cast<vd::VolumeId>(oid)));
        EXPECT_EQ(reg->owner_tag,
                  cfg.owner_tag_);
    }

    stop_fs();
    start_fs();

    LOCKVD();

    const vd::VolumeConfig
        cfg(api::getVolumeConfig(static_cast<vd::VolumeId>(oid)));
    EXPECT_EQ(reg->owner_tag,
              cfg.owner_tag_);
}
Ejemplo n.º 2
0
VolumeSCOCacheDataPoint::VolumeSCOCacheDataPoint(const vd::VolumeId& vid)
    : id(vid)
{
    LOCKVD();
    cache_hits = api::getCacheHits(vid);
    cache_misses = api::getCacheMisses(vid);
}
Ejemplo n.º 3
0
VolumeClusterCacheDataPoint::VolumeClusterCacheDataPoint(const vd::VolumeId& vid)
    : id(vid.str())
{
    LOCKVD();

    cache_hits = api::getClusterCacheHits(vid);
    cache_misses = api::getClusterCacheMisses(vid);
}
Ejemplo n.º 4
0
TEST_F(RestartTest, happy_path)
{
    const size_t vsize = 1 << 20;

    const vfs::FrontendPath fname1(make_volume_name("/volume1"));
    const vd::VolumeId vname1(create_file(fname1, vsize));
    const size_t csize = get_cluster_size(vfs::ObjectId(vname1.str()));

    const vfs::FrontendPath fname2(make_volume_name("/volume2"));
    const vd::VolumeId vname2(create_file(fname2, vsize));

    const vfs::FrontendPath fname3("/some.file.that.is.not.a.volume");
    create_file(fname3, vsize);

    const std::string pattern1("Herzog");
    const size_t wsize = 2 * csize;
    const off_t off = csize - 1;
    write_to_file(fname1, pattern1, wsize, off);

    const std::string pattern2("Springtime Epigram");
    write_to_file(fname2, pattern2, wsize, off);

    const std::string pattern3("Ted");
    write_to_file(fname3, pattern3, wsize, off);

    {
        LOCKVD();
        EXPECT_NO_THROW(api::getVolumePointer(vname1));
        EXPECT_NO_THROW(api::getVolumePointer(vname2));
    }

    stop_fs();
    start_fs();

    {
        LOCKVD();
        EXPECT_NO_THROW(api::getVolumePointer(vname1));
        EXPECT_NO_THROW(api::getVolumePointer(vname2));
    }

    check_file(fname1, pattern1, wsize, off);
    check_file(fname2, pattern2, wsize, off);
    check_file(fname3, pattern3, wsize, off);
}
Ejemplo n.º 5
0
VolumeMetaDataStoreDataPoint::VolumeMetaDataStoreDataPoint(const vd::VolumeId& vid)
    : id(vid.str())
{
    LOCKVD();

    const vd::MetaDataStoreStats m(api::getMetaDataStoreStats(vid));

    cache_hits = m.cache_hits;
    cache_misses = m.cache_misses;
    used_clusters = m.used_clusters;
    cached_pages = m.cached_pages;
    max_pages = m.max_pages;
}
Ejemplo n.º 6
0
SCOCacheNamespaceDataPoint::SCOCacheNamespaceDataPoint(const vd::VolumeId& vid)
    : id(vid.str())
{
    const be::Namespace ns(id);

    LOCKVD();

    const vd::SCOCacheNamespaceInfo i(api::getVolumeSCOCacheInfo(ns));
    disposable_bytes = i.disposable;
    non_disposable_bytes = i.nondisposable;
    min_bytes = i.min;
    max_non_disposable_bytes = i.max_non_disposable;
}