DriveState.hpp 1.78 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * The CERN Tape Archive (CTA) project
 * Copyright (C) 2015  CERN
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include "scheduler/MountType.hpp"

23
namespace cta { namespace common {
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
58
59
60
61

  enum DriveStatus {
    Down,
    Up,
    Starting, // This status allows drive register to represent drives committed
    // to mounting a tape before the mounting is confirmed. It is necessary to
    // allow race-free scheduling
    Mounting,
    Transfering,
    Unloading,
    Unmounting,
    DrainingToDisk,
    CleaningUp
  };

  struct DriveState {
    std::string name;
    std::string logicalLibrary;
    uint64_t sessionId;
    uint64_t bytesTransferedInSession;
    uint64_t filesTransferedInSession;
    double latestBandwidth; /** < Byte per seconds */
    time_t sessionStartTime;
    time_t mountStartTime;
    time_t transferStartTime;
    time_t unloadStartTime;
    time_t unmountStartTime;
    time_t drainingStartTime;
    time_t downOrUpStartTime;
    time_t cleanupStartTime;
    time_t lastUpdateTime;
    time_t startStartTime;
    cta::MountType::Enum mountType;
    DriveStatus status;
    std::string currentVid;
    std::string currentTapePool;
  };
  
62
}} //namespace cta::common