Statistics
| Branch: | Tag: | Revision:

root / image_creator / main.py @ aa2062ba

History | View | Annotate | Download (2.2 kB)

1 d57775d4 Nikos Skalkotos
# Copyright 2011 GRNET S.A. All rights reserved.
2 d57775d4 Nikos Skalkotos
#
3 d57775d4 Nikos Skalkotos
# Redistribution and use in source and binary forms, with or
4 d57775d4 Nikos Skalkotos
# without modification, are permitted provided that the following
5 d57775d4 Nikos Skalkotos
# conditions are met:
6 d57775d4 Nikos Skalkotos
#
7 d57775d4 Nikos Skalkotos
#   1. Redistributions of source code must retain the above
8 d57775d4 Nikos Skalkotos
#      copyright notice, this list of conditions and the following
9 d57775d4 Nikos Skalkotos
#      disclaimer.
10 d57775d4 Nikos Skalkotos
#
11 d57775d4 Nikos Skalkotos
#   2. Redistributions in binary form must reproduce the above
12 d57775d4 Nikos Skalkotos
#      copyright notice, this list of conditions and the following
13 d57775d4 Nikos Skalkotos
#      disclaimer in the documentation and/or other materials
14 d57775d4 Nikos Skalkotos
#      provided with the distribution.
15 d57775d4 Nikos Skalkotos
#
16 d57775d4 Nikos Skalkotos
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 d57775d4 Nikos Skalkotos
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 d57775d4 Nikos Skalkotos
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 d57775d4 Nikos Skalkotos
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 d57775d4 Nikos Skalkotos
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 d57775d4 Nikos Skalkotos
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 d57775d4 Nikos Skalkotos
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 d57775d4 Nikos Skalkotos
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 d57775d4 Nikos Skalkotos
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 d57775d4 Nikos Skalkotos
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 d57775d4 Nikos Skalkotos
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 d57775d4 Nikos Skalkotos
# POSSIBILITY OF SUCH DAMAGE.
28 d57775d4 Nikos Skalkotos
#
29 d57775d4 Nikos Skalkotos
# The views and conclusions contained in the software and
30 d57775d4 Nikos Skalkotos
# documentation are those of the authors and should not be
31 d57775d4 Nikos Skalkotos
# interpreted as representing official policies, either expressed
32 d57775d4 Nikos Skalkotos
# or implied, of GRNET S.A.
33 d57775d4 Nikos Skalkotos
34 aa2062ba Nikos Skalkotos
from image_creator import get_os_class
35 d57775d4 Nikos Skalkotos
from image_creator.disk import Disk
36 d57775d4 Nikos Skalkotos
import sys
37 d57775d4 Nikos Skalkotos
import os
38 d57775d4 Nikos Skalkotos
39 d57775d4 Nikos Skalkotos
def main():
40 d57775d4 Nikos Skalkotos
    if len(sys.argv) != 3:
41 d57775d4 Nikos Skalkotos
        sys.exit("Usage: %s <source> <output_file>" %
42 d57775d4 Nikos Skalkotos
                        os.path.basename(sys.argv[0]))
43 d57775d4 Nikos Skalkotos
    source = sys.argv[1]
44 d57775d4 Nikos Skalkotos
    dest = sys.argv[2]
45 d57775d4 Nikos Skalkotos
46 d57775d4 Nikos Skalkotos
    disk = Disk(source)
47 d57775d4 Nikos Skalkotos
    try:
48 d57775d4 Nikos Skalkotos
        dev = disk.get_device()
49 aa2062ba Nikos Skalkotos
        osclass = get_os_class(dev.distro, dev.ostype)
50 aa2062ba Nikos Skalkotos
        image_os = osclass(dev.root, dev.g)
51 aa2062ba Nikos Skalkotos
        metadata = image_os.get_metadata()
52 1377b8a7 Nikos Skalkotos
        for key, val in metadata.iteritems():
53 1377b8a7 Nikos Skalkotos
            print "%s=%s" % (key,val)
54 aa2062ba Nikos Skalkotos
55 d57775d4 Nikos Skalkotos
    finally:
56 d57775d4 Nikos Skalkotos
        disk.cleanup()
57 d57775d4 Nikos Skalkotos
58 d57775d4 Nikos Skalkotos
if __name__ == '__main__':
59 d57775d4 Nikos Skalkotos
    main()
60 d57775d4 Nikos Skalkotos
61 d57775d4 Nikos Skalkotos
# vim: set sta sts=4 shiftwidth=4 sw=4 et ai :