Squashed commit of the following: 83/107783/1 release-20161231
authorJunghyun Kim <jh0822.kim@samsung.com>
Fri, 30 Dec 2016 01:35:32 +0000 (10:35 +0900)
committerJunghyun Kim <jh0822.kim@samsung.com>
Fri, 30 Dec 2016 01:35:32 +0000 (10:35 +0900)
Major changes
- Relaying events (SPIN->public) is implemented.

commit 3746a88e237eeacbc231517768c18e2629ab0927
Author: Junghyun Kim <jh0822.kim@samsung.com>
Date:   Thu Dec 29 16:11:13 2016 +0900

    FIX: Method of triggerinf OBS_REPO_PUBLISHED

    Change-Id: I8a12d8d4205bc33877b9e41b78b23b8c64e9a44d
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
commit a153463691d5d78d6f6b613dd244694b0f0ab25f
Author: Junghyun Kim <jh0822.kim@samsung.com>
Date:   Thu Dec 29 15:13:15 2016 +0900

    Implement notification relay event.

    This is required to communicate (SPIN -> public)

    Change-Id: I3d62d30749f8a208860a69abdf5f3530314c2507
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
commit f9c0e50e14915695ad62a3f5e276ea988dd467d6
Author: Junghyun Kim <jh0822.kim@samsung.com>
Date:   Thu Dec 29 14:01:09 2016 +0900

    FIX: typo.

    Change-Id: I03e2900a239fa19ca23db60edbf06451abda35cd
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
commit 3e5aa0d328811fcdf11b2311a582c7573d17e617
Author: Junghyun Kim <jh0822.kim@samsung.com>
Date:   Thu Dec 29 13:49:50 2016 +0900

    update SUCCEEDED in DB after build_target_id is generated for aggregate packages.

    Change-Id: Ie13914e8595ee3fefd720d3319951129501fd88c
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
commit fb8b4668d3037f16a5e52f7f1349f8ac9fe0f9e3
Author: Junghyun Kim <jh0822.kim@samsung.com>
Date:   Thu Dec 29 10:31:28 2016 +0900

    Make failed detail log to be less than 100 characters.

    Change-Id: Ib5c6201b5e3014f1d2ea95eeb7067639f20fb27f
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
commit c1b4bafacee796197502374b54a0f59eebb7b0ca
Author: Junghyun Kim <jh0822.kim@samsung.com>
Date:   Thu Dec 29 10:29:54 2016 +0900

    Add feature [relay_src_server]

    PROBLEM:
    - We have two different obs services: public/SPIN
    - The database for both obs services should be merged.

    SOLUTION:
    - the source server's notification feature is relayed to public.

    Change-Id: I8a5fe775ac3bb056155e44c4f9aff16c0ecafd46
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
Change-Id: I772282a61d65668fffe35208c6af54945fbc41eb
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
BuildMonitorDB.pm
notify_buildmonitor.pm

index 29900c2..909670f 100644 (file)
@@ -440,7 +440,7 @@ sub trigger_make_dep_graph {
 sub trigger_obs_published {
   my ($proj_name) = @_;
 
-  # trigger making build_progress graph.
+  # trigger OBS_REPO_PUBLISHED.
   my $jenkinsuri = "$BSConfig::jenkinsserver/job/obs-event-dispatcher/buildWithParameters";
   my $param = {
     'request' => 'POST',
@@ -453,7 +453,9 @@ sub trigger_obs_published {
     'project' => $proj_name,
     'event_type' => 'OBS_REPO_PUBLISHED'
   };
-  my @para = ("TRIGGER_INFO=".encode_base64(encode_json($args), ''));
+  my @para = ("project=$proj_name",
+              "event_type=OBS_REPO_PUBLISHED",
+              "para=".encode_base64(encode_json($args), ''));
   print "notify: trigger Jenkins uri=[$jenkinsuri] para=[@para]\n";
   eval {
     BSRPC::rpc( $param, undef, @para );
@@ -1177,6 +1179,8 @@ sub get_buildmonitor_project_status {
     }
   }
 
+  $failed_detail = substr($failed_detail, 0, 100);
+
   print "[", __LINE__, "] $projid: $failed, $failed_detail\n";
 
   return ($failed, $failed_detail);
@@ -1407,11 +1411,11 @@ sub package_build_finished {
     return;
   }
 
-  my $build_target_id=get_build_target_id($build_project_id, $repo, $arch);
-  print "[", __LINE__, "][package_build_finished($package_name)] $pre_install_time, $install_time, $main_build_time, $build_log_url, $status, $build_target_id, $repo, $arch, $info_package_id\n";
   if ( $package_name =~ ".*_aggregate") {
     package_build_start("test", $projid, $repo, $arch, $package_name, $time);
   }
+  my $build_target_id=get_build_target_id($build_project_id, $repo, $arch);
+  print "[", __LINE__, "][package_build_finished($package_name)] $pre_install_time, $install_time, $main_build_time, $build_log_url, $status, $build_target_id, $repo, $arch, $info_package_id\n";
   eval {
     $g_dbh->begin_work();
     $package_build_finished_sth->execute($time, $pre_install_time, $install_time, $main_build_time, "$build_log_url", "$status", "$detail", $build_target_id, $info_package_id);
index 6169c54..cefcd06 100644 (file)
@@ -48,6 +48,28 @@ my %event_handlers = (
   'REPO_PUBLISHED' => \&BuildMonitorDB::repo_published,
 );
 
+sub relay_src_server {
+  my ($type, $p) = @_;
+
+  return unless $BSConfig::relay_obs_server;
+
+  my $uri= "$BSConfig::relay_obs_server/source?cmd=relay_notify&notify_type=$type";
+  my $param = {
+    'request' => 'POST',
+    'uri' => $uri,
+    'timeout' => 60,
+    'headers' => [ 'Content-Type: application/x-www-form-urlencoded' ],
+  };
+  my @args = map {"$_=$p->{$_}"} sort keys %$p;
+  eval {
+    BSRPC::rpc($param, undef, @args);
+  };
+  if ($@) {
+    warn($@);
+  }
+
+}
+
 sub notify() {
   my ($self, $type, $paramRef ) = @_;
 
@@ -65,6 +87,7 @@ sub notify() {
   my $evhandler = $event_handlers{$type};
   if( $evhandler ) {
     $evhandler->($paramRef);
+    relay_src_server($type, $paramRef);
   } else {
     print "[BuildMonitor] undefined event type: $type\n";
   }