def test_create_host_pipe_dir_with_real_dir(self, temp_dir): runtime_paths = RunTimePaths('account', {'host_root': temp_dir}) runtime_paths.create_host_pipe_dir() path = runtime_paths.host_pipe_dir self.assertTrue(os.path.exists(path)) self.assertTrue(os.path.isdir(path)) permission = oct(os.stat(path)[ST_MODE])[-3:] # TODO(kota_): make sure if this is really acceptable self.assertEqual('777', permission)
def __init__(self, conf, logger, scope): """ :param conf: a dict for gateway conf :param logger: a logger instance :param scope: scope name to identify the container """ super(StorletGatewayDocker, self).__init__(conf, logger, scope) self.storlet_timeout = int(self.conf.get('storlet_timeout', 40)) self.paths = RunTimePaths(scope, conf)
def _initialize(self): # TODO(takashi): take these values from config file base_dir = '/home/docker_device' self.script_dir = os.path.join(base_dir, 'scripts') self.pipes_dir = os.path.join(base_dir, 'pipes', 'scopes') self.storlets_dir = os.path.join(base_dir, 'storlets', 'scopes') self.log_dir = os.path.join(base_dir, 'logs', 'scopes') self.cache_dir = os.path.join(base_dir, 'cache', 'scopes') self.conf = {} self.storlet_id = 'org.openstack.storlet.mystorlet' self.paths = RunTimePaths(self.scope, self.conf)
def test_runtime_paths_default(self): # CHECK: docs says we need 4 dirs for communicate # ==================================================================== # |1| host_factory_pipe_path | <pipes_dir>/<scope>/factory_pipe | # ==================================================================== # |2| host_storlet_pipe_path | <pipes_dir>/<scope>/<storlet_id> | # ==================================================================== # |3| sandbox_factory_pipe_path | /mnt/channels/factory_pipe | # ==================================================================== # |4| sandbox_storlet_pipe_path | /mnt/channels/<storlet_id> | # ==================================================================== # # With this test, the scope value is "account" and the storlet_id is # "Storlet-1.0.jar" (app name?) # ok, let's check for these values runtime_paths = RunTimePaths('account', {}) storlet_id = 'Storlet-1.0.jar' # For pipe self.assertEqual('/home/docker_device/pipes/scopes/account', runtime_paths.host_pipe_dir) # 1. host_factory_pipe_path <pipes_dir>/<scope>/factory_pipe self.assertEqual( '/home/docker_device/pipes/scopes/account/factory_pipe', runtime_paths.host_factory_pipe) # 2. host_storlet_pipe_path <pipes_dir>/<scope>/<storlet_id> self.assertEqual( '/home/docker_device/pipes/scopes/account/Storlet-1.0.jar', runtime_paths.get_host_storlet_pipe(storlet_id)) # 3. Yes, right now, we don't have the path for #3 in Python # 4. sandbox_storlet_pipe_path | /mnt/channels/<storlet_id> self.assertEqual('/mnt/channels/Storlet-1.0.jar', runtime_paths.get_sbox_storlet_pipe(storlet_id)) # This looks like for jar load? self.assertEqual('/home/docker_device/storlets/scopes/account', runtime_paths.host_storlet_base_dir) self.assertEqual( '/home/docker_device/storlets/scopes/account/Storlet-1.0.jar', runtime_paths.get_host_storlet_dir(storlet_id)) # And this one is a mount poit in sand box? self.assertEqual('/home/swift/Storlet-1.0.jar', runtime_paths.get_sbox_storlet_dir(storlet_id))