示例#1
0
 def fill_port_forwarding_group(self, form, ctx, pf_fda):
     def _fill_port_forward_to_form(rdf_node, fda):
         fda['new_fw_protocol'] = rdf_node.getS(ns_ui.protocol, rdf.String)
         fda['new_fw_port_in'] = rdf_node.getS(ns_ui.incomingPort, rdf.Integer)
         fda['new_fw_ip_out'] = rdf_node.getS(ns_ui.ipAddress, rdf.IPv4Address)
         fda['new_fw_port_out'] = rdf_node.getS(ns_ui.destinationPort, rdf.Integer)
     
     ui_root = helpers.get_ui_config()
     uidatahelpers.fill_dynamic_list_to_form(ui_root, ns_ui.portForwards, ns_ui.PortForward, pf_fda, _fill_port_forward_to_form)
示例#2
0
    def fill_port_forwarding_group(self, form, ctx, pf_fda):
        def _fill_port_forward_to_form(rdf_node, fda):
            fda['new_fw_protocol'] = rdf_node.getS(ns_ui.protocol, rdf.String)
            fda['new_fw_port_in'] = rdf_node.getS(ns_ui.incomingPort,
                                                  rdf.Integer)
            fda['new_fw_ip_out'] = rdf_node.getS(ns_ui.ipAddress,
                                                 rdf.IPv4Address)
            fda['new_fw_port_out'] = rdf_node.getS(ns_ui.destinationPort,
                                                   rdf.Integer)

        ui_root = helpers.get_ui_config()
        uidatahelpers.fill_dynamic_list_to_form(ui_root, ns_ui.portForwards,
                                                ns_ui.PortForward, pf_fda,
                                                _fill_port_forward_to_form)
示例#3
0
    def fill_routing_group(self, form, ctx, toplevel_fda):
        def _fill_route_to_form(rdf_node, fda, subnet_exist):
            if rdf_node.hasType(ns_ui.InternetConnectionRoute):
                fda['network_connection'] = 'internet'
            elif rdf_node.hasType(ns_ui.PrivateNetworkConnectionRoute):
                fda['network_connection'] = 'private'
            else:
                raise uidatahelpers.RdfDataError('Route\'s destination network is neither internet nor private network connection')

            # Default route does not have subnet
            # XXX: why not 0.0.0.0/0 instead?
            if subnet_exist:
                fda['subnet'] = rdf_node.getS(ns_ui.subnet, rdf.IPv4Subnet)
                
            gw_node = rdf_node.getS(ns_ui.routeGateway)
            if gw_node.hasType(ns_ui.RouteGatewayNetworkDefault):
                fda['gateway_selection'] = 'nw_default_gw'
            elif gw_node.hasType(ns_ui.RouteGatewayManual):
                fda['gateway_selection'] = 'manual_gw'
                fda['gateway'] = gw_node.getS(ns_ui.ipAddress, rdf.IPv4Address)
            else:
                raise uidatahelpers.RdfDataError('Route\'s gateway is neither network default nor set gateway.')
            
        def _fill_additional_route_to_form(rdf_node, fda):
            _fill_route_to_form(rdf_node.getS(ns_ui.route), fda, True)    
            
        def _fill_ppp_firewall_rule_to_form(rdf_node, fda):
            if rdf_node.hasS(ns_ui.ipAddress):
                # XXX: this is never encountered in practice?
                fda['ip_subnet'] = rdf_node.getS(ns_ui.ipAddress, rdf.IPv4Address)
            elif rdf_node.hasS(ns_ui.subnet):
                fda['ip_subnet'] = rdf_node.getS(ns_ui.subnet, rdf.IPv4Subnet)
            else:
                raise uidatahelpers.RdfDataError('Prohibited service ip/subnet is neither ipaddress nor subnet.')

            if rdf_node.hasS(ns_ui.protocol):
                fda['protocol'] = rdf_node.getS(ns_ui.protocol, rdf.String)
            else:
                fda['protocol'] = 'any'

            uidatahelpers.fill_optional_field_to_form(rdf_node, ns_ui.port, rdf.Integer, fda, 'port')

            fda['action'] = rdf_node.getS(ns_ui.action, rdf.String)

        ui_root = helpers.get_ui_config()

        # Default route
        _fill_route_to_form(ui_root.getS(ns_ui.defaultRoute), toplevel_fda.descend('dr_group'), False)

        # Additional routes
        add_route_fda = toplevel_fda.descend('ar_group')
        uidatahelpers.fill_dynamic_list_to_form(ui_root, ns_ui.routes, ns_ui.Route, add_route_fda, _fill_additional_route_to_form)

        # Source routing (forced routing)
        source_fda = toplevel_fda.descend('sr_group')
        if ui_root.hasS(ns_ui.sourceRouting):      
            source_fda['source_routing_selection'] = 'on'
            _fill_route_to_form(ui_root.getS(ns_ui.sourceRouting), source_fda, False)
        else:
            source_fda['source_routing_selection'] = 'off'

        # PPP firewall rules
        fwrule_fda = toplevel_fda.descend('fwrule_group')
        uidatahelpers.fill_dynamic_list_to_form(ui_root, ns_ui.pppFirewallRules, ns_ui.PppFirewallRule, fwrule_fda, _fill_ppp_firewall_rule_to_form)
示例#4
0
    def fill_routing_group(self, form, ctx, toplevel_fda):
        def _fill_route_to_form(rdf_node, fda, subnet_exist):
            if rdf_node.hasType(ns_ui.InternetConnectionRoute):
                fda['network_connection'] = 'internet'
            elif rdf_node.hasType(ns_ui.PrivateNetworkConnectionRoute):
                fda['network_connection'] = 'private'
            else:
                raise uidatahelpers.RdfDataError(
                    'Route\'s destination network is neither internet nor private network connection'
                )

            # Default route does not have subnet
            # XXX: why not 0.0.0.0/0 instead?
            if subnet_exist:
                fda['subnet'] = rdf_node.getS(ns_ui.subnet, rdf.IPv4Subnet)

            gw_node = rdf_node.getS(ns_ui.routeGateway)
            if gw_node.hasType(ns_ui.RouteGatewayNetworkDefault):
                fda['gateway_selection'] = 'nw_default_gw'
            elif gw_node.hasType(ns_ui.RouteGatewayManual):
                fda['gateway_selection'] = 'manual_gw'
                fda['gateway'] = gw_node.getS(ns_ui.ipAddress, rdf.IPv4Address)
            else:
                raise uidatahelpers.RdfDataError(
                    'Route\'s gateway is neither network default nor set gateway.'
                )

        def _fill_additional_route_to_form(rdf_node, fda):
            _fill_route_to_form(rdf_node.getS(ns_ui.route), fda, True)

        def _fill_ppp_firewall_rule_to_form(rdf_node, fda):
            if rdf_node.hasS(ns_ui.ipAddress):
                # XXX: this is never encountered in practice?
                fda['ip_subnet'] = rdf_node.getS(ns_ui.ipAddress,
                                                 rdf.IPv4Address)
            elif rdf_node.hasS(ns_ui.subnet):
                fda['ip_subnet'] = rdf_node.getS(ns_ui.subnet, rdf.IPv4Subnet)
            else:
                raise uidatahelpers.RdfDataError(
                    'Prohibited service ip/subnet is neither ipaddress nor subnet.'
                )

            if rdf_node.hasS(ns_ui.protocol):
                fda['protocol'] = rdf_node.getS(ns_ui.protocol, rdf.String)
            else:
                fda['protocol'] = 'any'

            uidatahelpers.fill_optional_field_to_form(rdf_node, ns_ui.port,
                                                      rdf.Integer, fda, 'port')

            fda['action'] = rdf_node.getS(ns_ui.action, rdf.String)

        ui_root = helpers.get_ui_config()

        # Default route
        _fill_route_to_form(ui_root.getS(ns_ui.defaultRoute),
                            toplevel_fda.descend('dr_group'), False)

        # Additional routes
        add_route_fda = toplevel_fda.descend('ar_group')
        uidatahelpers.fill_dynamic_list_to_form(
            ui_root, ns_ui.routes, ns_ui.Route, add_route_fda,
            _fill_additional_route_to_form)

        # Source routing (forced routing)
        source_fda = toplevel_fda.descend('sr_group')
        if ui_root.hasS(ns_ui.sourceRouting):
            source_fda['source_routing_selection'] = 'on'
            _fill_route_to_form(ui_root.getS(ns_ui.sourceRouting), source_fda,
                                False)
        else:
            source_fda['source_routing_selection'] = 'off'

        # PPP firewall rules
        fwrule_fda = toplevel_fda.descend('fwrule_group')
        uidatahelpers.fill_dynamic_list_to_form(
            ui_root, ns_ui.pppFirewallRules, ns_ui.PppFirewallRule, fwrule_fda,
            _fill_ppp_firewall_rule_to_form)