Esempio n. 1
0
def do_argparse(sys_argv):
    desc_help = textwrap.dedent('''
        Emulate md5sum, sha1sum, etc... as if all were run in parallel...
    ''')
    parser = argparse.ArgumentParser(description=desc_help,
                                     formatter_class=utils.AlmostRawFormatter)

    parser.add_argument('-d',
                        '--directory',
                        default='.',
                        help='Directory where checksums files are output')

    parser.add_argument('-f',
                        '--force',
                        action='store_true',
                        help='Overwrite checksum files')

    parser.add_argument('-v',
                        '--verbose',
                        action='store_true',
                        help='Display additional information')

    parser.add_argument(dest='files',
                        nargs='+',
                        help='files to comute checksums of')

    args = parser.parse_args(sys_argv)

    if args.verbose:
        utils.set_verbose(True)
        vprint('verbose mode')

    return args
Esempio n. 2
0
def do_argparse(sys_argv):
    '''Handle CLI options
    '''
    parser = argparse.ArgumentParser(description=__doc__)

    parser.add_argument('-v',
                        '--verbose',
                        action='store_true',
                        help='Display additional information')

    parser.add_argument('-l',
                        '--vmlist',
                        default=[],
                        action='append',
                        help='File containing a list of endorsed VM image '
                        'marketplace IDs to upload in glance')

    parser.add_argument('-u',
                        '--url',
                        default=_DEFAULT_SL_MP_URL,
                        help='Market place base URL (default should be OK)')

    args = parser.parse_args(sys_argv)

    if args.verbose:
        utils.set_verbose(True)
        vprint('verbose mode')

    return args
Esempio n. 3
0
def main(args=sys.argv[1:]):
    '''Decompress all files given as CLI arguments'''
    utils.set_verbose(True)
    vprint('verbose mode')
    for fname in args:
        vprint('Decompressing archive: ' + fname)
        decomp = Decompressor(fname)
        decomp.doit()
    return True
Esempio n. 4
0
def main(args=sys.argv[1:]):
    '''Decompress all files given as CLI arguments'''
    utils.set_verbose(True)
    vprint('verbose mode')
    for fname in args:
        vprint('Decompressing archive: ' + fname)
        decomp = Decompressor(fname)
        decomp.doit()
    return True
Esempio n. 5
0
 def vprint_lines_verbose(self, verbosity, test_name):
     v = utils.get_verbose()
     utils.set_verbose(verbosity)
     with utils.stringio() as output:
         expected = ''
         if verbosity:
             expected = test_name + ': TOTO\n' + test_name + ': TITI\n'
         with utils.redirect('stdout', output):
             utils.vprint_lines('TOTO\nTITI', test_name)
             self.assertEqual(expected, output.getvalue())
         self.assertEqual(expected, output.getvalue())
     with self.assertRaises(ValueError):
         output.getvalue()
     utils.set_verbose(v)
Esempio n. 6
0
 def vprint_lines_verbose(self, verbosity, test_name):
     v = utils.get_verbose()
     utils.set_verbose(verbosity)
     with utils.stringio() as output:
         expected = ''
         if verbosity:
             expected = test_name + ': TOTO\n' + test_name + ': TITI\n'
         with utils.redirect('stdout', output):
             utils.vprint_lines('TOTO\nTITI', test_name)
             self.assertEqual(expected, output.getvalue())
         self.assertEqual(expected, output.getvalue())
     with self.assertRaises(ValueError):
         output.getvalue()
     utils.set_verbose(v)
Esempio n. 7
0
def do_argparse(sys_argv):
    parser = argparse.ArgumentParser(description='Manage glance VM images')

    # Global options
    parser.add_argument('-v', '--verbose', action='store_true',
                        help='display additional information')

    group = parser.add_mutually_exclusive_group()
    group.add_argument('-d', '--delete', dest='delete', metavar='NAME',
                       nargs='+', help='delete all images with the same '
                       'name as the specified VM')

    args = parser.parse_args(sys_argv)

    if args.verbose:
        utils.set_verbose(True)
        vprint('verbose mode')

    return args
Esempio n. 8
0
def do_argparse(sys_argv):
    parser = argparse.ArgumentParser(description='Manage glance VM images')

    # Global options
    parser.add_argument('-v', '--verbose', action='store_true',
                        help='display additional information')

    group = parser.add_mutually_exclusive_group()
    group.add_argument('-d', '--delete', dest='delete', metavar='NAME',
                       nargs='+', help='delete all images with the same '
                       'name as the specified VM')

    args = parser.parse_args(sys_argv)

    if args.verbose:
        utils.set_verbose(True)
        vprint('verbose mode')

    return args
Esempio n. 9
0
 def test_utils_set_verbose_value(self):
     v = utils.get_verbose()
     utils.set_verbose(True)
     self.assertTrue(utils.get_verbose() is True)
     utils.set_verbose(False)
     self.assertTrue(utils.get_verbose() is False)
     utils.set_verbose(v)
     self.assertTrue(utils.get_verbose() == v)
Esempio n. 10
0
 def test_utils_set_verbose_value(self):
     v = utils.get_verbose()
     utils.set_verbose(True)
     self.assertTrue(utils.get_verbose() is True)
     utils.set_verbose(False)
     self.assertTrue(utils.get_verbose() is False)
     utils.set_verbose(v)
     self.assertTrue(utils.get_verbose() == v)
Esempio n. 11
0
def do_argparse(sys_argv):
    '''Handle CLI options
    '''
    parser = argparse.ArgumentParser(description=__doc__)

    parser.add_argument('-v', '--verbose', action='store_true',
                        help='Display additional information')

    parser.add_argument('-l', '--vmlist', default=[],
                        action='append',
                        help='File containing a list of endorsed VM image '
                             'marketplace IDs to upload in glance')

    parser.add_argument('-u', '--url', default=_DEFAULT_SL_MP_URL,
                        help='Market place base URL (default should be OK)')

    args = parser.parse_args(sys_argv)

    if args.verbose:
        utils.set_verbose(True)
        vprint('verbose mode')

    return args
Esempio n. 12
0
 def setUp(self):
     self._v = utils.get_verbose()
     utils.set_verbose(True)
Esempio n. 13
0
 def test_utils_set_verbose_toggle(self):
     v = utils.get_verbose()
     utils.set_verbose()
     self.assertFalse(v == utils.get_verbose())
     utils.set_verbose()
     self.assertTrue(v == utils.get_verbose())
Esempio n. 14
0
 def test_utils_set_verbose_toggle(self):
     v = utils.get_verbose()
     utils.set_verbose()
     self.assertFalse(v == utils.get_verbose())
     utils.set_verbose()
     self.assertTrue(v == utils.get_verbose())
#! /usr/bin/env python

import unittest

from tutils import local_pythonpath, get_local_path

# Setup project-local PYTHONPATH
local_pythonpath('..', '..', 'src')

import utils
import glance
import glance_manager

utils.set_verbose(True)

# Check we have a cloud ready to import images into...
_GLANCE_OK = False
with utils.devnull('stderr'):
    _GLANCE_OK = glance.glance_run('image-list') is not None

_OLDGMF = glance_manager.get_meta_file

class GlanceManagerBasicTest(unittest.TestCase):

    def test_glance_manager_nolist(self):
        ret = glance_manager.main([])
        self.assertFalse(ret)

    def test_glance_manager_badlistpath(self):
        ret = glance_manager.main(['-l', '/nonexistent'])
        self.assertFalse(ret)
Esempio n. 16
0
 def tearDown(self):
     utils.set_verbose(self._v)
Esempio n. 17
0
def do_argparse(sys_argv):
    desc_help = textwrap.dedent('''
        Import VM images into OpenStack glance image registry.
        Verify checksum(s), image size, etc...
        Backup old images being replaced.
    ''')
    parser = argparse.ArgumentParser(description=desc_help,
                                     formatter_class=utils.AlmostRawFormatter)

    group = parser.add_mutually_exclusive_group()
    group.add_argument('-f', '--force', action='store_true',
                       help=('Import image into glance even if checksum '
                             'verification failed'))
    group.add_argument('-d', '--dry-run', dest='dryrun', action='store_true',
                       help='Do not import image into glance')

    parser.add_argument('-D', '--no-checksum', action='store_true',
                        help='Do not verify checksums', dest='nocheck')

    parser.add_argument('-v', '--verbose', action='store_true',
                        help='Display additional information')

    parser.add_argument('-n', '--name', dest='name', default=None,
                        help=('Name of the image in glance registry. Default '
                              'value derived from image file name.'))

    parser.add_argument('-k', '--keep-temps', dest='keeptemps',
                        action='store_true',
                        help='Keep temporary files (VM image & other)')

    parser.add_argument('-c', '--cern-list', dest='cernlist',
                        help='Image list from CERN, as a JSON file')

    parser.add_argument('-b', '--backup-dir', dest='backupdir',
                        help='Backup already existing images in this directory')

    digests_help = ('''>>>
        A colon-separated list of message digests of the image.

        This overrides / complements the checksums that are present in
        metadata, if using the StratusLab marketplace. It also overrides
        checksum files loaded with -S or --sums-files.

        Algorithms are deduced from checksum lengths.

        For example, an MD5 (32 chars) and a SHA-1 (40 chars):
        "3bea57666cdead13f0ed4a91beef2b98:1b5229d5dad92bc6662553be01608af2180eafbe"
    ''')
    parser.add_argument('-s', '--sums', dest='digests', help=digests_help)

    digests_files_help = ('''>>>
        A message digest file to load.

        This overrides / complements the checksums that are present in
        metadata, if using the StratusLab marketplace.

        Algorithms are deduced from checksum lengths.
    ''')
    parser.add_argument('-S', '--sums-files', dest='sums_files', nargs='*',
                        help=digests_files_help)

    descriptor_help = ('''>>>
        This can be:
          * a local file path:
             - to an image file in "raw" format
             - to a StratusLab marketplace metadata file in JSON or XML format
          * a StratusLab marketplace ID
          * a network location (URL)
          * a CERN image list ID, with the VM image list passed in as --cern-list

        The StratusLab marketplace is located here:

          https://marketplace.stratuslab.eu
    ''')
    parser.add_argument('descriptor', metavar='STRING', help=descriptor_help)

    args = parser.parse_args(sys_argv)

    if args.verbose:
        utils.set_verbose(True)
        vprint('verbose mode')

    return args
#! /usr/bin/env python

import unittest

from tutils import local_pythonpath, get_local_path

# Setup project-local PYTHONPATH
local_pythonpath('..', '..', 'src')

import utils
import glance
import glance_manager

utils.set_verbose(True)

# Check we have a cloud ready to import images into...
_GLANCE_OK = False
with utils.devnull('stderr'):
    _GLANCE_OK = glance.glance_run('image-list') is not None

_OLDGMF = glance_manager.get_meta_file


class GlanceManagerBasicTest(unittest.TestCase):
    def test_glance_manager_nolist(self):
        ret = glance_manager.main([])
        self.assertFalse(ret)

    def test_glance_manager_badlistpath(self):
        ret = glance_manager.main(['-l', '/nonexistent'])
        self.assertFalse(ret)