Ejemplo n.º 1
0
def _create_channel(channel, node, default_content_type=None):
    device = channel.get('device')
    if has_control_chars(device):
        raise ClusterConfigParsingError(
            _('Bad device name: %s in %s') % (device, node.name))
    path = parse_location(channel.get('path'))
    if not device:
        raise ClusterConfigParsingError(
            _('Must specify device for file in %s') % node.name)
    access = DEVICE_MAP.get(device, -1)
    mode = channel.get('mode', None)
    meta = channel.get('meta', {})
    content_type = channel.get('content_type',
                               default_content_type if path else 'text/html')
    if access & ACCESS_READABLE and path:
        if not is_swift_path(path):
            raise ClusterConfigParsingError(
                _('Readable device must be a swift object'))
        if not path.account or not path.container:
            raise ClusterConfigParsingError(
                _('Invalid path %s in %s') % (path.url, node.name))
    return ZvmChannel(device,
                      access,
                      path=path,
                      content_type=content_type,
                      meta_data=meta,
                      mode=mode)
Ejemplo n.º 2
0
def _create_node(node_config):
    name = node_config.get('name')
    if not name:
        raise ClusterConfigParsingError(_('Must specify node name'))
    if has_control_chars(name):
        raise ClusterConfigParsingError(_('Invalid node name'))
    nexe = node_config.get('exec')
    if not nexe:
        raise ClusterConfigParsingError(_('Must specify exec stanza for %s') % name)
    exe = parse_location(nexe.get('path'))
    if not exe:
        raise ClusterConfigParsingError(_('Must specify executable path for %s') % name)
    if is_zvm_path(exe):
        raise ClusterConfigParsingError(_('Executable path cannot be a zvm path in %s') % name)
    args = nexe.get('args')
    env = nexe.get('env')
    if has_control_chars('%s %s %s' % (exe.url, args, env)):
        raise ClusterConfigParsingError(_('Invalid nexe property for %s') % name)
    replicate = node_config.get('replicate', 1)
    return ZvmNode(0, name, exe, args, env, replicate)
Ejemplo n.º 3
0
def _create_node(node_config):
    name = node_config.get('name')
    if not name:
        raise ClusterConfigParsingError(_('Must specify node name'))
    if has_control_chars(name):
        raise ClusterConfigParsingError(_('Invalid node name'))
    nexe = node_config.get('exec')
    if not nexe:
        raise ClusterConfigParsingError(
            _('Must specify exec stanza for %s') % name)
    exe = parse_location(nexe.get('path'))
    if not exe:
        raise ClusterConfigParsingError(
            _('Must specify executable path for %s') % name)
    if is_zvm_path(exe):
        raise ClusterConfigParsingError(
            _('Executable path cannot be a zvm path in %s') % name)
    args = nexe.get('args')
    env = nexe.get('env')
    if has_control_chars('%s %s %s' % (exe.url, args, env)):
        raise ClusterConfigParsingError(
            _('Invalid nexe property for %s') % name)
    replicate = node_config.get('replicate', 1)
    return ZvmNode(0, name, exe, args, env, replicate)
Ejemplo n.º 4
0
def _create_channel(channel, node, default_content_type=None):
    device = channel.get('device')
    if has_control_chars(device):
        raise ClusterConfigParsingError(_('Bad device name: %s in %s') % (device, node.name))
    path = parse_location(channel.get('path'))
    if not device:
        raise ClusterConfigParsingError(_('Must specify device for file in %s') % node.name)
    access = DEVICE_MAP.get(device, -1)
    mode = channel.get('mode', None)
    meta = channel.get('meta', {})
    content_type = channel.get('content_type', default_content_type if path else 'text/html')
    if access & ACCESS_READABLE and path:
        if not is_swift_path(path):
            raise ClusterConfigParsingError(_('Readable device must be a swift object'))
        if not path.account or not path.container:
            raise ClusterConfigParsingError(_('Invalid path %s in %s')
                                            % (path.url, node.name))
    return ZvmChannel(device, access, path=path,
                      content_type=content_type, meta_data=meta, mode=mode)