[freeside-commits] branch FREESIDE_3_BRANCH updated. a7a669aa8b959519fe5fa088c7efe05eadbcc845

Christopher Burger burgerc at freeside.biz
Tue Jan 29 11:41:22 PST 2019


The branch, FREESIDE_3_BRANCH has been updated
       via  a7a669aa8b959519fe5fa088c7efe05eadbcc845 (commit)
       via  6315dc498f46f00601d99f899c33205b0315c929 (commit)
       via  fbc93d7fba89a548daf9e76e87434dc8f0f2b955 (commit)
      from  632a0514859f628594c8f63380aa23584c428db4 (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 a7a669aa8b959519fe5fa088c7efe05eadbcc845
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue Jan 29 14:40:26 2019 -0500

    rt# 78356 - fix v3 sector issue

diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 4397a266e..56c61187b 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -344,7 +344,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 6315dc498f46f00601d99f899c33205b0315c929
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 3eae5586c..4397a266e 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -324,6 +324,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 = {
@@ -344,6 +345,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;
@@ -426,7 +428,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; 
   }
@@ -650,7 +651,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",
@@ -779,6 +779,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};
 
@@ -791,14 +796,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);
 
@@ -808,6 +813,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};
 
@@ -862,10 +872,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 7933717b0..6e27ad4e2 100644
--- a/httemplate/edit/process/elements/process.html
+++ b/httemplate/edit/process/elements/process.html
@@ -477,9 +477,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 fbc93d7fba89a548daf9e76e87434dc8f0f2b955
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 6a42b94ba..3eae5586c 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -387,14 +387,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');
 
@@ -407,9 +407,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; 
   }
@@ -507,7 +524,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;
 }
@@ -827,7 +844,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
@@ -846,7 +863,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;
 }
 
@@ -891,7 +908,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                   | 63 ++++++++++++++++++++-------
 httemplate/edit/process/elements/process.html |  4 +-
 2 files changed, 50 insertions(+), 17 deletions(-)




More information about the freeside-commits mailing list