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)
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)
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)
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)