Firewall-Config-Parser
view release on metacpan or search on metacpan
lib/Firewall/Config/Parser/Asa.pm view on Meta::CPAN
use Firewall::Config::Element::Zone::Asa;
use Firewall::Config::Element::Interface::Asa;
use Firewall::Config::Element::StaticNat::Asa;
use Firewall::Config::Element::NatPool::Asa;
use Firewall::Config::Element::DynamicNat::Asa;
use Firewall::Utils::Ip;
#------------------------------------------------------------------------------
# Firewall::Config::Parser::Asa éç¨å±æ§
#------------------------------------------------------------------------------
has aclLineNumbers => ( is => 'ro', isa => 'HashRef[Int]', default => sub { {} }, );
#------------------------------------------------------------------------------
# å®ä¹ Firewall::Config::Parser::Asa é
置解æå
¥å£å½æ°
# parse 为 Firewall::Config::Parser::Role è§è²å¿
é¡»å®ç°çæ¹æ³
#------------------------------------------------------------------------------
sub parse {
my $self = shift;
while ( my $string = $self->nextUnParsedLine ) {
if ( $self->isRoute($string) ) { $self->parseRoute($string) }
elsif ( $self->isInterfaceZone($string) ) {$self->parseInterfaceZone($string)}
lib/Firewall/Config/Parser/Elements.pm view on Meta::CPAN
use Firewall::Config::Element::Schedule::Role;
use Firewall::Config::Element::Service::Role;
use Firewall::Config::Element::ServiceGroup::Role;
use Firewall::Config::Element::ServiceMeta::Role;
use Firewall::Config::Element::StaticNat::Role;
use Firewall::Config::Element::Zone::Role;
#------------------------------------------------------------------------------
# Firewall::Config::Parser::Elements éç¨å±æ§
#------------------------------------------------------------------------------
has natPool => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::NatPool::Role]', default => sub { {} }, );
has zone => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Zone::Role]', default => sub { {} }, );
has interface => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Interface::Role]', default => sub { {} }, );
has route => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Route::Role]', default => sub { {} }, );
has staticNat => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::StaticNat::Role]', default => sub { {} }, );
has dynamicNat =>
( is => 'ro', does => 'HashRef[Firewall::Config::Element::DynamicNat::Role]', default => sub { {} }, );
has address => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Address::Role]', default => sub { {} }, );
has addressGroup =>
( is => 'ro', does => 'HashRef[Firewall::Config::Element::AddressGroup::Role]', default => sub { {} }, );
has protocolGroup =>
( is => 'ro', does => 'HashRef[Firewall::Config::Element::ProtocolGroup::Role]', default => sub { {} }, );
has schedule => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Schedule::Role]', default => sub { {} }, );
has service => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Service::Role]', default => sub { {} }, );
has serviceGroup =>
( is => 'ro', does => 'HashRef[Firewall::Config::Element::ServiceGroup::Role]', default => sub { {} }, );
has rule => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Rule::Role]', default => sub { {} }, );
#------------------------------------------------------------------------------
# addElement æ°å¢è§£æå¯¹è±¡å
ç´ ç±»å
#------------------------------------------------------------------------------
sub addElement {
my ( $self, $obj ) = @_;
#say dumper $obj;
my $className = ref($obj);
if ( $className =~ /^Firewall::Config::Element::(?<elementType>\w+)::\w+$/o ) {
lib/Firewall/Config/Parser/Report.pm view on Meta::CPAN
#------------------------------------------------------------------------------
# å è½½æ©å±æ¨¡å
#------------------------------------------------------------------------------
use Moose;
use namespace::autoclean;
#------------------------------------------------------------------------------
# Firewall::Config::Parser::Report éç¨å±æ§
#------------------------------------------------------------------------------
has source =>
( is => 'ro', isa => 'HashRef[Firewall::Policy::Element::Source]', default => sub { {} }, writer => 'setSource', );
has destination => (
is => 'ro',
isa => 'HashRef[Firewall::Policy::Element::Destination]',
default => sub { {} },
writer => 'setDestination',
);
has service => (
is => 'ro',
lib/Firewall/Config/Parser/Role.pm view on Meta::CPAN
handles => {
nextUnParsedLine => 'nextUnParsedLine',
backtrackLine => 'backtrack',
ignoreLine => 'ignore',
getUnParsedLines => 'getUnParsedLines',
lineNumber => 'cursor',
goToHeadLine => 'goToHead',
},
);
has preDefinedService => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Service::Role]', required => 1, );
has elements => (
is => 'ro',
isa => 'Firewall::Config::Parser::Elements',
default => sub { Firewall::Config::Parser::Elements->new },
handles => {addElement => 'addElement',},
);
has report => (
is => 'ro',
isa => 'Firewall::Config::Parser::Report',
default => sub { Firewall::Config::Parser::Report->new },
);
has elementType => ( is => 'ro', isa => 'Str|Undef', default => undef, writer => 'setElementType', );
has ruleIndex => ( is => 'ro', isa => 'HashRef', default => sub { {} }, );
#------------------------------------------------------------------------------
# Firewall::Config::Parser::Role éç¨å±æ§
#------------------------------------------------------------------------------
sub getElement {
my ( $self, $elementType, @params ) = @_;
confess "ERROR: number of params must bigger then 0" if @params == 0;
my $sign = Firewall::Config::Element::Role->createSign(@params);
$self->elements->getElement( $elementType, $sign );
}
( run in 0.660 second using v1.01-cache-2.11-cpan-5f2e87ce722 )