bldsystemtools/commonbldutils/GenResult/publishDiamonds.pm
changeset 0 83f4b4db085c
child 10 d4b442d23379
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/publishDiamonds.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,98 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script that actually calls the send_xml_to_diamonds.pl for sending data to Diamonds server
+# It also maintains the Diamonds BuildID
+#
+package publishDiamonds;
+use strict;
+use FindBin;
+use lib "$FindBin::Bin";
+
+my $buildIdFile = "DiamondsBuildID";
+#~ my $server = 'diamonds.nmp.nokia.com:9003';
+#~ my $localServer = '2ind04992.noe.nokia.com:8888';
+sub publishToDiamonds
+{
+  my $file = shift;
+  my $server = shift;
+  chomp ($file);
+  
+  ##--remove blank lines
+  open (FILE,"<$file") or warn "$file::$!\n";
+  open (OUT, ">tmpfile.$$") or warn "tmpfile.$$::$!\n";
+  while(<FILE>)
+  {
+    next if /^\s*$/;
+    print OUT $_;
+  }
+  close FILE; close OUT;
+  unlink("$file") or warn "Error in deleting: $!\n";
+  rename("tmpfile.$$", "$file") or warn "Error in rename: $!";
+  
+  my $command = "perl $FindBin::Bin\\send_xml_to_diamonds.pl -s $server -f $file";
+  
+  my $id = 0;
+  eval
+  {
+    open(FH,"<DiamondsBuildID") or warn "DiamondsBuildID file not created: $!\n";
+  };
+  if (!$@)
+  {
+    $id = <FH>;
+    close (FH);
+  }
+  if($id ne "" && $id > 1)
+  {
+    $command .= " -u /diamonds/builds/$id/";
+    executeCommand($command);
+  }
+  else
+  {
+    $command .= " -u /diamonds/builds/";
+    $id = executeCommand($command);
+    open (FH,">DiamondsBuildID") or die "DiamondsBuildID file not created: $!\n";
+    print FH $id;
+  }
+close(FH);
+}
+
+
+sub executeCommand
+{
+  my $command = shift;
+  #~ print "$command\n";
+  my @cmdOP = `$command`;
+  my @serverResponse = grep {/^Server response:/i} @cmdOP;
+  my @responseStatus = grep {/^Response status:/i} @cmdOP;
+  my @responseReason = grep {/^Response reason:/i} @cmdOP;
+  
+  chomp(@serverResponse,@responseReason,@responseStatus);
+  if ($responseStatus[0] !~ /:200/)
+  {
+    print "Error sending XML: $responseReason[0]\n";
+  }
+  elsif($serverResponse[0] !~ /:\/diamonds\/builds\/\d+\//)
+  {
+    print "Diamond Server Response: $serverResponse[0]\n";
+  }
+  else
+  {
+    $serverResponse[0] =~ /:\/diamonds\/builds\/(\d+)\//;
+    my $id = $1;
+    print "$id\n";
+    return $id;
+  }
+}
+
+1;