[freeside-commits] branch FREESIDE_4_BRANCH updated. a415347b25229ac13fa84ed8b8e5f2f5ee14205f

Christopher Burger burgerc at freeside.biz
Tue Jan 29 14:50:33 PST 2019


The branch, FREESIDE_4_BRANCH has been updated
       via  a415347b25229ac13fa84ed8b8e5f2f5ee14205f (commit)
       via  bc37eb128d35f1f458e78efa88c5c002e9de5490 (commit)
       via  c4d9dcee179e841480ac130df4637c07be756412 (commit)
       via  6393ebde278e8bcfc320096b60e857f11aeb8144 (commit)
      from  d217ce30db6cbb5d8f4559efcb8e6d5515a3f619 (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 a415347b25229ac13fa84ed8b8e5f2f5ee14205f
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue Jan 29 17:43:25 2019 -0500

    RT# 78356 - cleaned up error message display

diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 3ecef6e59..db42f6107 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -360,7 +360,7 @@ sub export_tower_sector {
       return $sector_access_point if $sector_access_point->{error};
   }
 
-  return $self->api_error;
+  return { error => $self->api_error, };
 }
 
 ## creates the rateplan name
@@ -537,7 +537,7 @@ sub api_get_host {
 
   my $get_host = $self->api_call("GET", "/hosts/$ip");
 
-  return $self->api_error if $self->api_error;
+  return { message => $self->api_error, } if $self->api_error;
 
   return $get_host;
 }
@@ -819,6 +819,7 @@ sub process_tower {
 
   my $accesspoint = $self->api_get_accesspoint($tower_name);
 
+  return { error => $self->api_error, } if $self->api_error;
   return $accesspoint;
 }
 
@@ -857,6 +858,7 @@ sub process_sector {
   # set access point to existing one or newly created one.
   my $accesspoint = $existing_sector_ap ? $existing_sector_ap : $self->api_get_accesspoint($sector_name);
 
+  return { error => $self->api_error, } if $self->api_error;
   return $accesspoint;
 }
 

commit bc37eb128d35f1f458e78efa88c5c002e9de5490
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue Jan 29 17:11:50 2019 -0500

    RT# 78356 - fix sector issue

diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index f409046a5..3ecef6e59 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -356,7 +356,7 @@ sub export_tower_sector {
       'sector_downrate_limit' => $tower_sector->{Hash}->{down_rate_limit},
       'modify_existing'       => '1', # modify an existing access point with this info
     };
-    my $sector_access_point = process_sector($self, $sector_opt);
+    my $sector_access_point = process_sector($self, $sector_opt) unless ($sector_name eq "_default");
       return $sector_access_point if $sector_access_point->{error};
   }
 

commit c4d9dcee179e841480ac130df4637c07be756412
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue Jan 29 13:25:01 2019 -0500

    RT 78356 - fixed display of error on tower and sector exports

diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 86e73e09c..f409046a5 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -336,6 +336,7 @@ sub export_tower_sector {
   };
 
   my $tower_access_point = process_tower($self, $tower_opt);
+    return $tower_access_point if $tower_access_point->{error};
 
   #get list of all access points
   my $hash_opt = {
@@ -356,6 +357,7 @@ sub export_tower_sector {
       'modify_existing'       => '1', # modify an existing access point with this info
     };
     my $sector_access_point = process_sector($self, $sector_opt);
+      return $sector_access_point if $sector_access_point->{error};
   }
 
   return $self->api_error;
@@ -438,7 +440,6 @@ sub api_call {
   }
   else {
     $self->{'__saisei_error'} = "Bad response from server during $method , received responce code: " . $client->responseCode() . " and message: " . $client->responseContent();
-#    unless ($method eq "GET");
     warn "Response Content is\n".$client->responseContent."\n" if $self->option('debug');
     return; 
   }
@@ -662,7 +663,6 @@ Creates a access point.
 sub api_create_accesspoint {
   my ($self,$accesspoint, $upratelimit, $downratelimit) = @_;
 
-  # this has not been tested, but should work, if needed.
   my $new_accesspoint = $self->api_call(
       "PUT",
       "/access_points/$accesspoint",
@@ -791,6 +791,11 @@ sub api_delete_host_to_user {
 sub process_tower {
   my ($self, $opt) = @_;
 
+  if (!$opt->{tower_uprate_limit} || !$opt->{tower_downrate_limit}) {
+    $self->{'__saisei_error'} = "Can not export tower, no up or down rates attached to tower";
+    return { error => $self->api_error, };
+  }
+
   my $existing_tower_ap;
   my $tower_name = $opt->{tower_name};
 
@@ -803,14 +808,14 @@ sub process_tower {
     '', # tower does not have a uplink on sectors.
     $opt->{tower_uprate_limit},
     $opt->{tower_downrate_limit},
-  ) if $existing_tower_ap && $opt->{modify_existing};
+  ) if $existing_tower_ap->{collection} && $opt->{modify_existing};
 
   #if tower does not exist as an access point create it.
   $self->api_create_accesspoint(
       $tower_name,
       $opt->{tower_uprate_limit},
-      $opt->{tower_downrate_limit}
-  ) unless $existing_tower_ap;
+      $opt->{tower_downrate_limit},
+  ) unless $existing_tower_ap->{collection};
 
   my $accesspoint = $self->api_get_accesspoint($tower_name);
 
@@ -820,6 +825,11 @@ sub process_tower {
 sub process_sector {
   my ($self, $opt) = @_;
 
+  if (!$opt->{sector_uprate_limit} || !$opt->{sector_downrate_limit}) {
+    $self->{'__saisei_error'} = "Can not export sector, no up or down rates attached to sector";
+    return { error => $self->api_error, };
+  }
+
   my $existing_sector_ap;
   my $sector_name = $opt->{sector_name};
 
@@ -874,10 +884,10 @@ sub process_virtual_ap {
     $opt->{virtual_downrate_limit},
   ) unless $existing_virtual_ap;
 
-my $update_sector;
-if ($existing_virtual_ap && (ref $existing_virtual_ap->{collection}->[0]->{uplink} eq "HASH") && ($existing_virtual_ap->{collection}->[0]->{uplink}->{link}->{name} ne $opt->{sector_name})) {
-  $update_sector = 1;
-}
+  my $update_sector;
+  if ($existing_virtual_ap && (ref $existing_virtual_ap->{collection}->[0]->{uplink} eq "HASH") && ($existing_virtual_ap->{collection}->[0]->{uplink}->{link}->{name} ne $opt->{sector_name})) {
+    $update_sector = 1;
+  }
 
   # Attach newly created virtual ap to tower sector ap or if sector has changed.
   $self->api_modify_accesspoint($virtual_name, $opt->{sector_name}) unless ($self->{'__saisei_error'} || ($existing_virtual_ap && !$update_sector));
diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html
index 0e9edb064..1711b0118 100644
--- a/httemplate/edit/process/elements/process.html
+++ b/httemplate/edit/process/elements/process.html
@@ -481,9 +481,11 @@ foreach my $value ( @values ) {
 if ($class eq "FS::tower") {
   foreach my $part_svc_broadband_export ( FS::tower_sector->part_export_svc_broadband ) {
     if ($part_svc_broadband_export and $part_svc_broadband_export->can('export_tower_sector')) {
-      $error = $part_svc_broadband_export->export_tower_sector($new);
+      my $export_tower = $part_svc_broadband_export->export_tower_sector($new);
+      $error = $export_tower->{'error'} if $export_tower;
     }
   }
+  $cgi->param('error', $error) if $error;
 }
 
 # set up redirect URLs

commit 6393ebde278e8bcfc320096b60e857f11aeb8144
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Mon Jan 28 17:33:36 2019 -0500

    RT# 78356 - fixed root path error, and the display of 404 status returns

diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 6db43c11d..86e73e09c 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -399,14 +399,14 @@ sub api_call {
 
   warn "Calling $method on http://"
     .$self->{Hash}->{machine}.':'.$self->option('port')
-    ."/rest/stm/configurations/running/$path\n" if $self->option('debug');
+    ."/rest/top/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->{Hash}->{machine}.':'.$self->option('port'));
-  $client->$method('/rest/stm/configurations/running'.$path, $data, { "Content-type" => 'application/json'});
+  $client->$method('/rest/top/configurations/running'.$path, $data, { "Content-type" => 'application/json'});
 
   warn "Response Code is ".$client->responseCode()."\n" if $self->option('debug');
 
@@ -419,9 +419,26 @@ sub api_call {
       return;
     }
   }
+  elsif ($client->responseCode() eq '404') {
+    eval { $result = decode_json($client->responseContent()) };
+    unless ($result) {
+      $self->{'__saisei_error'} = "Error decoding json: $@";
+      return;
+    }
+    ## check if message is for empty hash.
+    my($does_not_exist) = $result->{message} =~ /'(.*)' does not exist$/;
+    $self->{'__saisei_error'} = "Error ".$result->{message} unless $does_not_exist;
+    warn "Response Content is\n".$client->responseContent."\n" if ($self->option('debug') && !$does_not_exist);
+    return;
+  }
+  elsif ($client->responseCode() eq '500') {
+    $self->{'__saisei_error'} = "Can't connect to host during $method , received responce code: " . $client->responseCode() . " and message: " . $client->responseContent();
+    warn "Response Content is\n".$client->responseContent."\n" if $self->option('debug');
+    return;
+  }
   else {
-    $self->{'__saisei_error'} = "Bad response from server during $method: " . $client->responseContent()
-    unless ($method eq "GET");
+    $self->{'__saisei_error'} = "Bad response from server during $method , received responce code: " . $client->responseCode() . " and message: " . $client->responseContent();
+#    unless ($method eq "GET");
     warn "Response Content is\n".$client->responseContent."\n" if $self->option('debug');
     return; 
   }
@@ -519,7 +536,7 @@ sub api_get_host {
 
   my $get_host = $self->api_call("GET", "/hosts/$ip");
 
-  return if $self->api_error;
+  return $self->api_error if $self->api_error;
 
   return $get_host;
 }
@@ -839,7 +856,7 @@ sub process_virtual_ap {
   my $existing_virtual_ap;
   my $virtual_name = $opt->{virtual_name};
 
-  #check if sector has been set up as an access point.
+  #check if virtual_ap has been set up as an access point.
   $existing_virtual_ap = $self->api_get_accesspoint($virtual_name);
 
   # modify the existing virtual accesspoint if changing it. this should never happen
@@ -858,7 +875,7 @@ sub process_virtual_ap {
   ) unless $existing_virtual_ap;
 
 my $update_sector;
-if ($existing_virtual_ap && ($existing_virtual_ap->{collection}->[0]->{uplink}->{link}->{name} ne $opt->{sector_name})) {
+if ($existing_virtual_ap && (ref $existing_virtual_ap->{collection}->[0]->{uplink} eq "HASH") && ($existing_virtual_ap->{collection}->[0]->{uplink}->{link}->{name} ne $opt->{sector_name})) {
   $update_sector = 1;
 }
 
@@ -903,7 +920,11 @@ sub export_provisioned_services {
   foreach my $svc (@svcs) {
     if ($status{$process_count}) { my $s = $status{$process_count}; $job->update_statustext($s); }
     ## check if service exists as host if not export it.
-    _export_insert($part_export,$svc) unless api_get_host($part_export, $svc->{Hash}->{ip_addr});
+    my $host = api_get_host($part_export, $svc->{Hash}->{ip_addr});
+    die $host->{message} if $host->{message};
+    warn "Exporting service ".$svc->{Hash}->{ip_addr}."\n" if ($part_export->option('debug'));
+    my $export_error = _export_insert($part_export,$svc) unless $host->{collection};
+    die $export_error if $export_error;
     $process_count++;
   }
 

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/part_export/saisei.pm                   | 67 ++++++++++++++++++++-------
 httemplate/edit/process/elements/process.html |  4 +-
 2 files changed, 53 insertions(+), 18 deletions(-)




More information about the freeside-commits mailing list