blob: 3af196b5f3d066bbba493dc997f7cc14c5147112 [file] [log] [blame]
#!/usr/bin/perl
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Extensions manager for Traffic Operations.
#
use strict;
use warnings;
$|++;
use Data::Dumper;
use Getopt::Std;
use Log::Log4perl qw(:easy);
use JSON;
use Extensions::Helper;
my $VERSION = "0.01";
my $hostn = `hostname`;
chomp($hostn);
my %args = ();
getopts( "l:c:u:a:f:i:", \%args );
Log::Log4perl->easy_init($ERROR);
if ( defined( $args{l} ) ) {
if ( $args{l} == 1 ) { Log::Log4perl->easy_init($INFO); }
elsif ( $args{l} == 2 ) { Log::Log4perl->easy_init($DEBUG); }
elsif ( $args{l} == 3 ) { Log::Log4perl->easy_init($TRACE); }
elsif ( $args{l} > 3 ) { Log::Log4perl->easy_init($TRACE); }
else { Log::Log4perl->easy_init($INFO); }
}
my $b_url = "https://localhost";
if ( defined( $args{u} ) ) {
$b_url = $args{u};
}
my $econ = Extensions::Helper->new( { base_url => $b_url, token => '91504CE6-8E4A-46B2-9F9F-FE7C15228498' } );
# add / delete / list
if ( $args{a} eq 'list' ) {
&mainlist($econ);
}
elsif ( $args{a} eq 'add' ) {
local $/ = undef;
open( FILE, $args{f} ) or die "Couldn't open file: $!";
my $json_text = <FILE>;
close FILE;
$econ->post_json( '/api/2.0/to_extensions', $json_text );
}
elsif ( $args{a} eq 'delete' ) {
my $json_text = encode_json( { id => $args{i} } );
$econ->post_json( '/api/2.0/to_extensions/delete', $json_text );
}
else {
ERROR "Use -a list|add|delete";
}
my ( $f1_id, $f1_name, $f1_type, $f1_colnames, $f1_version );
sub mainlist {
my $econ = shift;
my $ext_list = $econ->get('/api/2.0/to_extensions.json');
foreach my $extension ( @{$ext_list} ) {
$f1_id = $extension->{id};
$f1_name = $extension->{name};
$f1_type = $extension->{type};
$f1_version = $extension->{version};
$f1_colnames = $extension->{servercheck_short_name};
write;
}
}
format STDOUT_TOP =
Id Name Type Checknames Version
.
format =
@<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<
$f1_id,$f1_name, $f1_type, $f1_colnames, $f1_version
.