コード例 #1
0
ファイル: cli.py プロジェクト: jdavisp3/stor
def process_args(args):
    args_copy = copy.copy(vars(args))
    config = args_copy.pop('config', None)
    func = args_copy.pop('func', None)
    pth = args_copy.pop('path', None)
    cmd = args_copy.pop('cmd', None)

    if config:
        settings.update(settings.parse_config_file(config))
    func_kwargs = {
        key: Path(val) if type(val) is TempPath else val
        for key, val in args_copy.items() if val
    }
    try:
        if pth:
            return func(pth, **func_kwargs)
        return func(**func_kwargs)
    except NotImplementedError:
        if pth:
            value = pth
        elif len(func_kwargs) > 0:
            value = list(func_kwargs.values())[0]
        else:
            perror('%s is not a valid command for the given input\n' % cmd)
        perror('%s is not a valid command for %s\n' % (cmd, value))
    except ValueError as exc:
        perror('Error: %s\n' % str(exc))
    except exceptions.RemoteError as exc:
        if type(exc) is exceptions.NotFoundError and pth:
            perror('Not Found: %s' % pth)
        perror('%s: %s\n' % (exc.__class__.__name__, str(exc)))
コード例 #2
0
    def setUp(self):
        super(SwiftIntegrationTest, self).setUp()

        if not os.environ.get('SWIFT_TEST_USERNAME'):
            raise unittest.SkipTest(
                'SWIFT_TEST_USERNAME env var not set. Skipping integration test')

        # Disable loggers so nose output wont be trashed
        logging.getLogger('requests').setLevel(logging.CRITICAL)
        logging.getLogger('swiftclient').setLevel(logging.CRITICAL)
        logging.getLogger('keystoneclient').setLevel(logging.CRITICAL)

        settings.update({
            'swift': {
                'username': os.environ.get('SWIFT_TEST_USERNAME'),
                'password': os.environ.get('SWIFT_TEST_PASSWORD'),
                'num_retries': 5
            }})
        # fall back on to swiftstack auth for tenant
        tenant = os.environ.get('SWIFT_TEST_TENANT', 'AUTH_%s' % os.environ['SWIFT_TEST_USERNAME'])

        self.test_container = Path('swift://%s/%s' % (tenant, uuid.uuid4()))
        if self.test_container.exists():
            raise ValueError('test container %s already exists.' % self.test_container)

        try:
            self.test_container.post()
        except BaseException:
            self.test_container.rmtree()
            raise

        self.test_dir = self.test_container / 'test'
コード例 #3
0
 def test_update_w_settings(self):
     update_settings = {
         'swift:upload': {
             'skip_identical': True,
             'object_threads': 30
         },
         'swift:download': {
             'object_threads': 20
         }
     }
     expected_settings = {
         'swift:download': {
             'container_threads': 10,
             'object_threads': 20,
             'shuffle': True,
             'skip_identical': True
         },
         'swift:upload': {
             'changed': False,
             'checksum': True,
             'leave_segments': True,
             'object_threads': 30,
             'segment_size': 1073741824,
             'segment_threads': 10,
             'skip_identical': True,
             'use_slo': True
         }
     }
     settings.update(settings=update_settings)
     self.assertEquals(settings._global_settings, expected_settings)
コード例 #4
0
ファイル: test.py プロジェクト: anujkumar93/stor
    def setUp(self):
        super(SwiftTestCase, self).setUp()
        self.setup_swift_mocks()

        # make sure swift credentials aren't included
        settings.update({
            'swift': {
                'username': '******',
                'password': '******',
                'auth_url': '__dummy__'
            }
        })
コード例 #5
0
 def test_use_nested_w_update(self):
     settings.update({'foo': 0})
     self.assertEquals(settings.get(), {'foo': 0})
     with settings.use({'foo': 1}):
         self.assertEquals(settings.get(), {'foo': 1})
         self.assertEquals(settings._global_settings, {'foo': 0})
         with settings.use({'foo': 2}):
             self.assertEquals(settings.get(), {'foo': 2})
             self.assertEquals(settings._global_settings, {'foo': 0})
         self.assertEquals(settings.get(), {'foo': 1})
         self.assertEquals(settings._global_settings, {'foo': 0})
     self.assertEquals(settings.get(), {'foo': 0})
     self.assertFalse(hasattr(settings.thread_local, 'settings'))
     settings.update({'foo': 3})
     self.assertEquals(settings.get(), {'foo': 3})
コード例 #6
0
 def test_use_update_w_error(self):
     with settings.use({'foo': 1}):
         with self.assertRaises(RuntimeError):
             settings.update({'foo': 3})
コード例 #7
0
 def test_update_validation_error(self):
     with self.assertRaisesRegexp(ValueError, 'not a valid setting'):
         settings.update({'foo': {'bar': 3}})
     with self.assertRaisesRegexp(ValueError, 'not a valid setting'):
         settings.update({'bar': 4})
コード例 #8
0
 def test_update_wo_settings(self):
     settings.update()
     self.assertEquals(settings._global_settings, test_settings)