On Tue, 26 May 2015 at 16:08 Steve Allen <[email protected]> wrote:
> Hi Derek
>
> Please find attached 2 files.
>
> Both files contain the output of the file you requested. One for the
> server running 4.7.0 and one for when I upgraded to 5.0.2.
>
> Kind regards,
>
> On Mon, 25 May 2015 at 15:57 Derek Wuelfrath <[email protected]>
> wrote:
>
>> Steve,
>>
>> Please provide the following file:
>> /usr/local/pf/html/pfappserver/lib/pfappserver/Controller/Configuration.pm
>>
>> Cheers!
>> dw.
>>
>> --
>> Derek Wuelfrath
>> [email protected] :: +1.514.447.4918 (x110) :: +1.866.353.6153 (x110)
>> Inverse inc. (www.inverse.ca) :: Leaders behind SOGo (www.sogo.nu) and
>> PacketFence (www.packetfence.org)
>>
>> On May 24, 2015 at 12:51:58, Steve Allen ([email protected])
>> wrote:
>>
>> Hi Derek
>>
>> I had a look and the "Fingerprints.pm" file does not exist.
>>
>> Can you tell me what the following means:
>>
>> ---------------
>>
>> Syntax error on line 69 of /usr/local/pf/conf/httpd.conf.d/httpd.admin:
>> Can't locate pf/os.pm in @INC (@INC contains: /usr/local/pf/conf
>> /usr/local/fingerbank/lib /usr/local/pf/lib
>> /usr/local/pf/html/pfappserver/lib /usr/local/lib64/perl5
>> /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl
>> /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /etc/httpd)
>> at
>> /usr/local/pf/html/pfappserver/lib/pfappserver/Controller/Configuration.pm
>> line 24.\nBEGIN failed--compilation aborted at
>> /usr/local/pf/html/pfappserver/lib/pfappserver/Controller/Configuration.pm
>> line 24.\nCompilation failed in require at
>> /usr/share/perl5/vendor_perl/Catalyst/Utils.pm line 294.\nCompilation failed
>> in require at (eval 2) line 3.\n
>> httpd.admin|not started
>>
>> ---------------
>>
>> I had a look and on my 4.7.0 server I can find the pf/os.pm file but after
>> upgrading to 5.0.2 the file is no longer there.
>>
>> Is this what is causing the problems?
>>
>>
>> Kind regards,
>>
>>
#####################
## PF 4.7.0 SERVER ##
#####################
[root@packetfence01 ~]# cat
/usr/local/pf/html/pfappserver/lib/pfappserver/Controller/Configuration.pm
package pfappserver::Controller::Configuration;
=head1 NAME
pfappserver::Controller::Configuration - Catalyst Controller
=head1 DESCRIPTION
Catalyst Controller.
=cut
use strict;
use warnings;
use Date::Parse;
use HTTP::Status qw(:constants is_error is_success);
use Moose;
use namespace::autoclean;
use POSIX;
use URI::Escape::XS;
use Log::Log4perl qw(get_logger);
use pf::os;
use pf::util qw(load_oui download_oui);
# imported only for the $TIME_MODIFIER_RE regex. Ideally shouldn't be
# imported but it's better than duplicating regex all over the place.
use pf::config;
use pf::admin_roles;
use pfappserver::Form::Config::Pf;
BEGIN {extends 'pfappserver::Base::Controller'; }
=head1 METHODS
=cut
=head2 _process_section
=cut
our %ALLOWED_SECTIONS = (
general => undef,
network => undef,
trapping => undef,
registration => undef,
guests_self_registration => undef,
guests_admin_registration => undef,
billing => undef,
alerting => undef,
scan => undef,
maintenance => undef,
expire => undef,
services => undef,
vlan => undef,
inline => undef,
servicewatch => undef,
captive_portal => undef,
advanced => undef,
provisioning => undef,
webservices => undef,
);
=head2 index
=cut
sub index :Path :Args(0) { }
=head2 section
The generic handler for all pf sections
=cut
sub section :Path :Args(1) :AdminRole('CONFIGURATION_MAIN_READ') {
my ($self, $c, $section) = @_;
my $logger = get_logger();
if (exists $ALLOWED_SECTIONS{$section} ) {
my ($params, $form);
my ($status,$status_msg,$results);
$c->stash->{section} = $section;
my $model = $c->model('Config::Pf');
$form = $c->form("Config::Pf", section => $section);
if ($c->request->method eq 'POST') {
if(admin_can([$c->user->roles], 'CONFIGURATION_MAIN_UPDATE')) {
$form->process(params => $c->req->params);
$logger->info("Processed form");
if ($form->has_errors) {
$status = HTTP_PRECONDITION_FAILED;
$status_msg = $form->field_errors;
} else {
($status,$status_msg) = $model->update($section,
$form->value);
if (is_success($status)) {
($status,$status_msg) = $model->commit();
}
}
} else {
$c->response->status(HTTP_UNAUTHORIZED);
$c->stash->{status_msg} = "You don't have the rights to perform
this action.";
$c->stash->{current_view} = 'JSON';
$c->detach();
}
} else {
($status,$results) = $model->read($section);
if (is_success($status)) {
$form->process(init_object => $results);
$c->stash->{form} = $form;
} else {
$status_msg = $results;
}
}
$c->log->info("status $status");
if(is_error($status)) {
$c->stash(
current_view => 'JSON',
status_msg => $status_msg
);
}
$c->response->status($status);
} else {
$c->go('Root','default');
}
}
=head2 duration
Given the number of seconds since the Epoch and a trigger, returns the
formatted end date.
=cut
sub duration :Local :Args(2) {
my ($self, $c, $time, $trigger) = @_;
my $status = HTTP_PRECONDITION_FAILED;
if ($time && $trigger) {
my $duration = access_duration($trigger, $time);
if ($duration) {
$status = HTTP_OK;
$c->stash->{status_msg} = $duration;
}
}
$c->stash->{current_view} = 'JSON';
$c->response->status($status);
}
=head2 interfaces
=cut
sub interfaces :Local {
my ($self, $c) = @_;
$c->go('Controller::Interface', 'index');
}
=head2 switches
=cut
sub switches :Local {
my ($self, $c) = @_;
$c->go('Controller::Config::Switch', 'index');
}
=head2 floating_devices
=cut
sub floating_devices :Local {
my ($self, $c) = @_;
$c->go('Controller::Config::FloatingDevice', 'index');
}
=head2 authentication
=cut
sub authentication :Local {
my ($self, $c) = @_;
$c->go('Controller::Authentication', 'index');
}
=head2 users
=cut
sub users :Local {
my ($self, $c) = @_;
$c->go('Controller::User', 'create');
}
=head2 violations
=cut
sub violations :Local {
my ($self, $c) = @_;
$c->go('Controller::Violation', 'index');
}
=head2 soh
=cut
sub soh :Local {
my ($self, $c) = @_;
$c->go('Controller::SoH', 'index');
}
=head2 roles
=cut
sub roles :Local {
my ($self, $c) = @_;
$c->go('Controller::Roles', 'index');
}
=head1 COPYRIGHT
Copyright (C) 2012-2013 Inverse inc.
=head1 LICENSE
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA.
=cut
__PACKAGE__->meta->make_immutable;
1;
[root@packetfence01 ~]# exit
logout
#####################
## PF 5.0.2 SERVER ##
#####################
[root@packetfence01 ~]# cat
/usr/local/pf/html/pfappserver/lib/pfappserver/Controller/Configuration.pm
package pfappserver::Controller::Configuration;
=head1 NAME
pfappserver::Controller::Configuration - Catalyst Controller
=head1 DESCRIPTION
Catalyst Controller.
=cut
use strict;
use warnings;
use Date::Parse;
use HTTP::Status qw(:constants is_error is_success);
use Moose;
use namespace::autoclean;
use POSIX;
use URI::Escape::XS;
use Log::Log4perl qw(get_logger);
use pf::os;
use pf::util qw(load_oui download_oui);
# imported only for the $TIME_MODIFIER_RE regex. Ideally shouldn't be
# imported but it's better than duplicating regex all over the place.
use pf::config;
use pf::admin_roles;
use pfappserver::Form::Config::Pf;
BEGIN {extends 'pfappserver::Base::Controller'; }
=head1 METHODS
=cut
=head2 _process_section
=cut
our %ALLOWED_SECTIONS = (
general => undef,
network => undef,
trapping => undef,
registration => undef,
guests_self_registration => undef,
guests_admin_registration => undef,
billing => undef,
alerting => undef,
scan => undef,
maintenance => undef,
expire => undef,
services => undef,
vlan => undef,
inline => undef,
servicewatch => undef,
captive_portal => undef,
advanced => undef,
provisioning => undef,
webservices => undef,
);
=head2 index
=cut
sub index :Path :Args(0) { }
=head2 section
The generic handler for all pf sections
=cut
sub section :Path :Args(1) :AdminRole('CONFIGURATION_MAIN_READ') {
my ($self, $c, $section) = @_;
my $logger = get_logger();
if (exists $ALLOWED_SECTIONS{$section} ) {
my ($params, $form);
my ($status,$status_msg,$results);
$c->stash->{section} = $section;
my $model = $c->model('Config::Pf');
$form = $c->form("Config::Pf", section => $section);
if ($c->request->method eq 'POST') {
if(admin_can([$c->user->roles], 'CONFIGURATION_MAIN_UPDATE')) {
$form->process(params => $c->req->params);
$logger->info("Processed form");
if ($form->has_errors) {
$status = HTTP_PRECONDITION_FAILED;
$status_msg = $form->field_errors;
} else {
($status,$status_msg) = $model->update($section,
$form->value);
if (is_success($status)) {
($status,$status_msg) = $model->commit();
}
}
} else {
$c->response->status(HTTP_UNAUTHORIZED);
$c->stash->{status_msg} = "You don't have the rights to perform
this action.";
$c->stash->{current_view} = 'JSON';
$c->detach();
}
} else {
($status,$results) = $model->read($section);
if (is_success($status)) {
$form->process(init_object => $results);
$c->stash->{form} = $form;
} else {
$status_msg = $results;
}
}
$c->log->info("status $status");
if(is_error($status)) {
$c->stash(
current_view => 'JSON',
status_msg => $status_msg
);
}
$c->response->status($status);
} else {
$c->go('Root','default');
}
}
=head2 duration
Given the number of seconds since the Epoch and a trigger, returns the
formatted end date.
=cut
sub duration :Local :Args(2) {
my ($self, $c, $time, $trigger) = @_;
my $status = HTTP_PRECONDITION_FAILED;
if ($time && $trigger) {
my $duration = access_duration($trigger, $time);
if ($duration) {
$status = HTTP_OK;
$c->stash->{status_msg} = $duration;
}
}
$c->stash->{current_view} = 'JSON';
$c->response->status($status);
}
=head2 interfaces
=cut
sub interfaces :Local {
my ($self, $c) = @_;
$c->go('Controller::Interface', 'index');
}
=head2 switches
=cut
sub switches :Local {
my ($self, $c) = @_;
$c->go('Controller::Config::Switch', 'index');
}
=head2 floating_devices
=cut
sub floating_devices :Local {
my ($self, $c) = @_;
$c->go('Controller::Config::FloatingDevice', 'index');
}
=head2 authentication
=cut
sub authentication :Local {
my ($self, $c) = @_;
$c->go('Controller::Authentication', 'index');
}
=head2 users
=cut
sub users :Local {
my ($self, $c) = @_;
$c->go('Controller::User', 'create');
}
=head2 violations
=cut
sub violations :Local {
my ($self, $c) = @_;
$c->go('Controller::Violation', 'index');
}
=head2 soh
=cut
sub soh :Local {
my ($self, $c) = @_;
$c->go('Controller::SoH', 'index');
}
=head2 roles
=cut
sub roles :Local {
my ($self, $c) = @_;
$c->go('Controller::Roles', 'index');
}
=head1 COPYRIGHT
Copyright (C) 2012-2013 Inverse inc.
=head1 LICENSE
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA.
=cut
__PACKAGE__->meta->make_immutable;
1;
[root@packetfence01 ~]# exit
logout
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
PacketFence-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/packetfence-users