Statistics
| Branch: | Tag: | Revision:

root / lib / storage / filestorage.py @ 13669ecd

History | View | Annotate | Download (1.6 kB)

1 820bade9 Helga Velroyen
#
2 820bade9 Helga Velroyen
#
3 820bade9 Helga Velroyen
4 820bade9 Helga Velroyen
# Copyright (C) 2013 Google Inc.
5 820bade9 Helga Velroyen
#
6 820bade9 Helga Velroyen
# This program is free software; you can redistribute it and/or modify
7 820bade9 Helga Velroyen
# it under the terms of the GNU General Public License as published by
8 820bade9 Helga Velroyen
# the Free Software Foundation; either version 2 of the License, or
9 820bade9 Helga Velroyen
# (at your option) any later version.
10 820bade9 Helga Velroyen
#
11 820bade9 Helga Velroyen
# This program is distributed in the hope that it will be useful, but
12 820bade9 Helga Velroyen
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 820bade9 Helga Velroyen
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 820bade9 Helga Velroyen
# General Public License for more details.
15 820bade9 Helga Velroyen
#
16 820bade9 Helga Velroyen
# You should have received a copy of the GNU General Public License
17 820bade9 Helga Velroyen
# along with this program; if not, write to the Free Software
18 820bade9 Helga Velroyen
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 820bade9 Helga Velroyen
# 02110-1301, USA.
20 820bade9 Helga Velroyen
21 820bade9 Helga Velroyen
22 820bade9 Helga Velroyen
"""File storage functions.
23 820bade9 Helga Velroyen

24 820bade9 Helga Velroyen
"""
25 820bade9 Helga Velroyen
26 5d94c034 Helga Velroyen
import os
27 820bade9 Helga Velroyen
28 13669ecd Helga Velroyen
from ganeti import constants
29 5d94c034 Helga Velroyen
from ganeti import errors
30 820bade9 Helga Velroyen
31 820bade9 Helga Velroyen
32 e798d484 Helga Velroyen
def GetFileStorageSpaceInfo(path):
33 820bade9 Helga Velroyen
  """Retrieves the free and total space of the device where the file is
34 820bade9 Helga Velroyen
     located.
35 820bade9 Helga Velroyen

36 820bade9 Helga Velroyen
     @type path: string
37 820bade9 Helga Velroyen
     @param path: Path of the file whose embracing device's capacity is
38 820bade9 Helga Velroyen
       reported.
39 5d94c034 Helga Velroyen
     @return: a dictionary containing 'vg_size' and 'vg_free' given in MebiBytes
40 5d94c034 Helga Velroyen

41 820bade9 Helga Velroyen
  """
42 5d94c034 Helga Velroyen
  try:
43 5d94c034 Helga Velroyen
    result = os.statvfs(path)
44 5d94c034 Helga Velroyen
    free = (result.f_frsize * result.f_bavail) / (1024 * 1024)
45 5d94c034 Helga Velroyen
    size = (result.f_frsize * result.f_blocks) / (1024 * 1024)
46 13669ecd Helga Velroyen
    return {"type": constants.ST_FILE,
47 13669ecd Helga Velroyen
            "name": path,
48 13669ecd Helga Velroyen
            "vg_size": size,
49 13669ecd Helga Velroyen
            "vg_free": free}
50 5d94c034 Helga Velroyen
  except OSError, e:
51 5d94c034 Helga Velroyen
    raise errors.CommandError("Failed to retrieve file system information about"
52 5d94c034 Helga Velroyen
                              " path: %s - %s" % (path, e.strerror))