def lxc_net(): """ lxc-net (/etc/default/lxc) settings page and actions if form post request """ if session['su'] != 'Yes': return abort(403) if request.method == 'POST': if lxc.running() == []: cfg = lwp.get_net_settings() ip_regex = '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' form = {} for key in [ 'bridge', 'address', 'netmask', 'network', 'range', 'max' ]: form[key] = request.form.get(key, None) form['use'] = request.form.get('use', None) if form['use'] != cfg['use']: lwp.push_net_value('USE_LXC_BRIDGE', 'true' if form['use'] else 'false') if form['bridge'] and form['bridge'] != cfg['bridge'] and \ re.match('^[a-zA-Z0-9_-]+$', form['bridge']): lwp.push_net_value('LXC_BRIDGE', form['bridge']) if form['address'] and form['address'] != cfg['address'] and \ re.match('^%s$' % ip_regex, form['address']): lwp.push_net_value('LXC_ADDR', form['address']) if form['netmask'] and form['netmask'] != cfg['netmask'] and \ re.match('^%s$' % ip_regex, form['netmask']): lwp.push_net_value('LXC_NETMASK', form['netmask']) if form['network'] and form['network'] != cfg['network'] and \ re.match('^%s(?:/\d{1,2}|)$' % ip_regex, form['network']): lwp.push_net_value('LXC_NETWORK', form['network']) if form['range'] and form['range'] != cfg['range'] and \ re.match('^%s,%s$' % (ip_regex, ip_regex), form['range']): lwp.push_net_value('LXC_DHCP_RANGE', form['range']) if form['max'] and form['max'] != cfg['max'] and \ re.match('^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$', form['max']): lwp.push_net_value('LXC_DHCP_MAX', form['max']) if lwp.net_restart() == 0: flash(u'LXC Network settings applied successfully!', 'success') else: flash(u'Failed to restart LXC networking.', 'error') else: flash(u'Stop all containers before restart lxc-net.', 'warning') return render_template('lxc-net.html', containers=lxc.ls(), cfg=lwp.get_net_settings(), running=lxc.running())
def lxc_net(): if 'logged_in' in session: if session['su'] != 'Yes': return abort(403) if request.method == 'POST': if lxc.running() == []: try: if request.form['status'] == 'Enable': lwp.push_net_value('USE_LXC_BRIDGE', 'true') if lwp.net_restart() == 0: flash(u'LXC Networking enabled successfully!', 'success') else: flash(u'Failed to restart LXC networking.', 'error') elif request.form['status'] == 'Disable': lwp.push_net_value('USE_LXC_BRIDGE', 'false') if lwp.net_restart() == 0: flash(u'LXC Networking disabled successfully!', 'success') else: flash(u'Failed to restart LXC networking.', 'error') except KeyError: cfg = lwp.get_net_settings() ip_regex = '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' if request.form['bridge'] != cfg['bridge'] and re.match('^\w+$', request.form['bridge']): lwp.push_net_value('LXC_BRIDGE', request.form['bridge']) if request.form['address'] != cfg['address'] and re.match('^%s$' % ip_regex, request.form['address']): lwp.push_net_value('LXC_ADDR', request.form['address']) if request.form['netmask'] != cfg['netmask'] and re.match('^%s$' % ip_regex, request.form['netmask']): lwp.push_net_value('LXC_NETMASK', request.form['netmask']) if request.form['network'] != cfg['network'] and re.match('^%s(?:/\d{1,2}|)$' % ip_regex, request.form['network']): lwp.push_net_value('LXC_NETWORK', request.form['network']) if request.form['range'] != cfg['range'] and re.match('^%s,%s$' % (ip_regex,ip_regex), request.form['range']): lwp.push_net_value('LXC_DHCP_RANGE', request.form['range']) if request.form['max'] != cfg['max'] and re.match('^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$', request.form['max']): lwp.push_net_value('LXC_DHCP_MAX', request.form['max']) if lwp.net_restart() == 0: flash(u'LXC Network settings applied successfully!', 'success') else: flash(u'Failed to restart LXC networking.', 'error') else: flash(u'Stop all containers before restart lxc-net.', 'warning') return render_template('lxc-net.html', containers=lwp.ls(), cfg=lwp.get_net_settings(), running=lxc.running()) return render_template('login.html')
def lxc_net(): ''' lxc-net (/etc/default/lxc) settings page and actions if form post request ''' if 'logged_in' in session: if session['su'] != 'Yes': return abort(403) if request.method == 'POST': if lxc.running() == []: cfg = lwp.get_net_settings() ip_regex = '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' form = {} try: form['use'] = request.form['use'] except KeyError: form['use'] = 'false' try: form['bridge'] = request.form['bridge'] except KeyError: form['bridge'] = None try: form['address'] = request.form['address'] except KeyError: form['address'] = None try: form['netmask'] = request.form['netmask'] except KeyError: form['netmask'] = None try: form['network'] = request.form['network'] except KeyError: form['network'] = None try: form['range'] = request.form['range'] except KeyError: form['range'] = None try: form['max'] = request.form['max'] except KeyError: form['max'] = None if form['use'] == 'true' and form['use'] != cfg['use']: lwp.push_net_value('USE_LXC_BRIDGE', 'true') elif form['use'] == 'false' and form['use'] != cfg['use']: lwp.push_net_value('USE_LXC_BRIDGE', 'false') if form['bridge'] and form['bridge'] != cfg['bridge'] and re.match('^[a-zA-Z0-9_-]+$', form['bridge']): lwp.push_net_value('LXC_BRIDGE', form['bridge']) if form['address'] and form['address'] != cfg['address'] and re.match('^%s$' % ip_regex, form['address']): lwp.push_net_value('LXC_ADDR', form['address']) if form['netmask'] and form['netmask'] != cfg['netmask'] and re.match('^%s$' % ip_regex, form['netmask']): lwp.push_net_value('LXC_NETMASK', form['netmask']) if form['network'] and form['network'] != cfg['network'] and re.match('^%s(?:/\d{1,2}|)$' % ip_regex, form['network']): lwp.push_net_value('LXC_NETWORK', form['network']) if form['range'] and form['range'] != cfg['range'] and re.match('^%s,%s$' % (ip_regex, ip_regex), form['range']): lwp.push_net_value('LXC_DHCP_RANGE', form['range']) if form['max'] and form['max'] != cfg['max'] and re.match('^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$', form['max']): lwp.push_net_value('LXC_DHCP_MAX', form['max']) if lwp.net_restart() == 0: flash(u'LXC Network settings applied successfully!', 'success') else: flash(u'Failed to restart LXC networking.', 'error') else: flash(u'Stop all containers before restart lxc-net.', 'warning') return render_template('lxc-net.html', containers=lxc.ls(), cfg=lwp.get_net_settings(), running=lxc.running()) return render_template('login.html')
def lxc_net(): """ lxc-net (/etc/default/lxc) settings page and actions if form post request """ if session["su"] != "Yes": return abort(403) if request.method == "POST": if lxc.running() == []: cfg = lwp.get_net_settings() ip_regex = "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" form = {} for key in ["bridge", "address", "netmask", "network", "range", "max"]: form[key] = request.form.get(key, None) form["use"] = request.form.get("use", None) if form["use"] != cfg["use"]: lwp.push_net_value("USE_LXC_BRIDGE", "true" if form["use"] else "false") if form["bridge"] and form["bridge"] != cfg["bridge"] and re.match("^[a-zA-Z0-9_-]+$", form["bridge"]): lwp.push_net_value("LXC_BRIDGE", form["bridge"]) if form["address"] and form["address"] != cfg["address"] and re.match("^%s$" % ip_regex, form["address"]): lwp.push_net_value("LXC_ADDR", form["address"]) if form["netmask"] and form["netmask"] != cfg["netmask"] and re.match("^%s$" % ip_regex, form["netmask"]): lwp.push_net_value("LXC_NETMASK", form["netmask"]) if ( form["network"] and form["network"] != cfg["network"] and re.match("^%s(?:/\d{1,2}|)$" % ip_regex, form["network"]) ): lwp.push_net_value("LXC_NETWORK", form["network"]) if ( form["range"] and form["range"] != cfg["range"] and re.match("^%s,%s$" % (ip_regex, ip_regex), form["range"]) ): lwp.push_net_value("LXC_DHCP_RANGE", form["range"]) if ( form["max"] and form["max"] != cfg["max"] and re.match("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", form["max"]) ): lwp.push_net_value("LXC_DHCP_MAX", form["max"]) if lwp.net_restart() == 0: flash(u"LXC Network settings applied successfully!", "success") else: flash(u"Failed to restart LXC networking.", "error") else: flash(u"Stop all containers before restart lxc-net.", "warning") return render_template("lxc-net.html", containers=lxc.ls(), cfg=lwp.get_net_settings(), running=lxc.running())