[freeside-commits] branch master updated. 024e1169b90e76d4ecd61e6b8e7dbf1ade83bef1
Christopher Burger
burgerc at freeside.biz
Fri Feb 16 10:22:31 PST 2018
The branch, master has been updated
via 024e1169b90e76d4ecd61e6b8e7dbf1ade83bef1 (commit)
from 29a34baf1ce240da8e012a7147c4a88d48242260 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 024e1169b90e76d4ecd61e6b8e7dbf1ade83bef1
Author: Christopher Burger <burgerc at freeside.biz>
Date: Fri Feb 16 13:22:05 2018 -0500
RT# 78356 - cleaned up code and added debug code
diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 799220ef2..5e6279b68 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -1,15 +1,13 @@
package FS::part_export::saisei;
use strict;
-use base qw( FS::part_export );
use vars qw( @ISA %info );
+use base qw( FS::part_export );
use Date::Format 'time2str';
use Cpanel::JSON::XS;
-use Net::HTTPS::Any qw(https_post);
use MIME::Base64;
use REST::Client;
use Data::Dumper;
-
use FS::Conf;
#@ISA = qw( FS::part_export::http );
@@ -33,19 +31,12 @@ This module also provides generic methods for working through the L</Saisei API>
=cut
tie my %options, 'Tie::IxHash',
+ 'port' => { label => 'Port',
+ default => 5000 },
'username' => { label => 'User Name',
default => '' },
'password' => { label => 'Password',
default => '' },
- 'host' => { label => 'Host',
- default => 'STM IP ADDRESS' },
- 'port' => { label => 'Port',
- default => 5000 },
- 'customer_name' => { label => 'Customer Name',
- default => 'FREESIDE CUST $custnum' },
- 'account_id' => { label => 'Account ID',
- default => 'SVC$svcnum' },
- 'product_id' => { label => 'Account Product ID' },
'debug' => { type => 'checkbox',
label => 'Enable debug warnings' },
;
@@ -101,22 +92,28 @@ sub _export_insert {
my $username = $email[0];
my $description = $cust_main->{Hash}->{first}." ".$cust_main->{Hash}->{last};
- # check for existing user.
- my $existing_user;
- $existing_user = $self->api_get_user($username) unless ( $self->{'__saisei_error'} || !$username);
+ if (!$username) {
+ $self->{'__saisei_error'} = 'no username - can not export';
+ warn "No email found $username\n" if $self->option('debug');
+ return;
+ }
+ else {
+ # check for existing user.
+ my $existing_user;
+ $existing_user = $self->api_get_user($username) unless $self->{'__saisei_error'};
- # if no existing user create one.
- $self->api_create_user($username, $description) unless $existing_user;
+ # if no existing user create one.
+ $self->api_create_user($username, $description) unless $existing_user;
- # set user to existing one or newly created one.
- my $user = $existing_user ? $existing_user : $self->api_get_user($username);
+ # set user to existing one or newly created one.
+ my $user = $existing_user ? $existing_user : $self->api_get_user($username);
- ## add access point ?
+ ## add access point ?
- ## tie host to user
- $self->api_add_host_to_user($user->{collection}->[0]->{name}, $rateplan->{collection}->[0]->{name}, $svc_broadband->{Hash}->{ip_addr}) unless $self->{'__saisei_error'};
+ ## tie host to user
+ $self->api_add_host_to_user($user->{collection}->[0]->{name}, $rateplan->{collection}->[0]->{name}, $svc_broadband->{Hash}->{ip_addr}) unless $self->{'__saisei_error'};
+ }
- #die('ending for testing');
return '';
}
@@ -187,15 +184,19 @@ sub api_call {
my $auth_info = $self->option('username') . ':' . $self->option('password');
$params ||= {};
- print "Calling /$method\n" if $self->option('debug');
+ warn "Calling $method on http://"
+ .$self->{Hash}->{machine}.':'.$self->option('port')
+ ."/rest/stm/configurations/running/$path\n" if $self->option('debug');
my $data = encode_json($params) if keys %{ $params };
my $client = REST::Client->new();
$client->addHeader("Authorization", "Basic ".encode_base64($auth_info));
- $client->setHost('http://'.$self->option('host').':'.$self->option('port'));
+ $client->setHost('http://'.$self->{Hash}->{machine}.':'.$self->option('port'));
$client->$method('/rest/stm/configurations/running/'.$path, $data, { "Content-type" => 'application/json'});
+ warn "Response Code is ".$client->responseCode()."\n" if $self->option('debug');
+
my $result;
if ($client->responseCode() eq '200' || $client->responseCode() eq '201') {
@@ -207,7 +208,7 @@ sub api_call {
}
else {
$self->{'__saisei_error'} = "Bad response from server during $method: " . $client->responseContent();
- print "My response content fo /$method\n". Dumper($client->responseContent) if $self->option('debug');
+ warn "Response Content is\n".$client->responseContent."\n" if $self->option('debug');
return;
}
@@ -387,16 +388,16 @@ Creates a access point.
sub api_create_accesspoint {
my ($self,$accesspoint) = @_;
- my $new_accesspoint = $self->api_call(
- "PUT",
- "access_points/$accesspoint",
- {
- 'description' => 'my description',
- },
- );
+ #my $new_accesspoint = $self->api_call(
+ # "PUT",
+ # "access_points/$accesspoint",
+ # {
+ # 'description' => 'my description',
+ # },
+ #);
- $self->{'__saisei_error'} = "Access point not created"
- unless $new_accesspoint; # should never happen
+ #$self->{'__saisei_error'} = "Access point not created"
+ # unless $new_accesspoint; # should never happen
return;
}
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_export/saisei.pm | 71 +++++++++++++++++++++++----------------------
1 file changed, 36 insertions(+), 35 deletions(-)
More information about the freeside-commits
mailing list