You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ma...@apache.org on 2013/10/18 02:25:24 UTC
[02/30] AMBARI-3266. Contribute Ambari-SCOM. (Tom Beerbower via
mahadev)
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/AmbariSetupTools/winpkg.utils.psm1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/AmbariSetupTools/winpkg.utils.psm1 b/contrib/ambari-scom/msi/src/AmbariSetupTools/winpkg.utils.psm1
new file mode 100644
index 0000000..8ff3276
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/AmbariSetupTools/winpkg.utils.psm1
@@ -0,0 +1,273 @@
+### Licensed to the Apache Software Foundation (ASF) under one or more
+### contributor license agreements. See the NOTICE file distributed with
+### this work for additional information regarding copyright ownership.
+### The ASF licenses this file to You under the Apache License, Version 2.0
+### (the "License"); you may not use this file except in compliance with
+### the License. You may obtain a copy of the License at
+###
+### http://www.apache.org/licenses/LICENSE-2.0
+###
+### Unless required by applicable law or agreed to in writing, software
+### distributed under the License is distributed on an "AS IS" BASIS,
+### WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+### See the License for the specific language governing permissions and
+### limitations under the License.
+
+
+### NOTE: This file is common across the Windows installer projects for Hadoop Core, Hive, and Pig.
+### This dependency is currently managed by convention.
+### If you find yourself needing to change something in this file, it's likely that you're
+### either doing something that's more easily done outside this file or is a bigger change
+### that likely has wider ramifications. Work intentionally.
+
+
+param( [parameter( Position=0, Mandatory=$true)]
+ [String] $ComponentName )
+
+function Write-Log ($message, $level, $pipelineObj )
+{
+ $message = SanitizeString $message
+ switch($level)
+ {
+ "Failure"
+ {
+ $message = "$ComponentName FAILURE: $message"
+ Write-Error $message
+ break;
+ }
+
+ "Info"
+ {
+ $message = "${ComponentName}: $message"
+ Write-Host $message
+ break;
+ }
+
+ default
+ {
+ $message = "${ComponentName}: $message"
+ Write-Host "$message"
+ }
+ }
+
+
+ Out-File -FilePath $ENV:WINPKG_LOG -InputObject "$message" -Append -Encoding "UTF8"
+
+ if( $pipelineObj -ne $null )
+ {
+ Out-File -FilePath $ENV:WINPKG_LOG -InputObject $pipelineObj.InvocationInfo.PositionMessage -Append -Encoding "UTF8"
+ }
+}
+
+function Write-LogRecord( $source, $record )
+{
+ if( $record -is [Management.Automation.ErrorRecord])
+ {
+ $message = "$ComponentName-$source FAILURE: " + $record.Exception.Message
+ $message = SanitizeString $message
+
+ if( $message.EndsWith( [Environment]::NewLine ))
+ {
+ Write-Host $message -NoNewline
+ [IO.File]::AppendAllText( "$ENV:WINPKG_LOG", "$message", [Text.Encoding]::UTF8 )
+ }
+ else
+ {
+ Write-Host $message
+ Out-File -FilePath $ENV:WINPKG_LOG -InputObject $message -Append -Encoding "UTF8"
+ }
+ }
+ else
+ {
+ $message = $record
+ $message = SanitizeString $message
+ Write-Host $message
+ Out-File -FilePath $ENV:WINPKG_LOG -InputObject "$message" -Append -Encoding "UTF8"
+ }
+}
+
+function SanitizeString($s)
+{
+ $s -replace "-password([a-z0-9]*) (\S*)", '-password$1 ****'
+}
+
+function Invoke-Cmd ($command)
+{
+ Write-Log $command
+ $out = cmd.exe /C "$command" 2>&1
+ $out | ForEach-Object { Write-LogRecord "CMD" $_ }
+ return $out
+}
+
+function Invoke-CmdChk ($command)
+{
+ Write-Log $command
+ $out = cmd.exe /C "$command" 2>&1
+ $out | ForEach-Object { Write-LogRecord "CMD" $_ }
+ if (-not ($LastExitCode -eq 0))
+ {
+ throw "Command `"$out`" failed with exit code $LastExitCode "
+ }
+ return $out
+}
+
+function Invoke-Ps ($command)
+{
+ Write-Log $command
+ $out = powershell.exe -InputFormat none -Command "$command" 2>&1
+ #$out | ForEach-Object { Write-LogRecord "PS" $_ }
+ return $out
+}
+
+function Invoke-PsChk ($command)
+{
+ Write-Log $command
+ $out = powershell.exe -InputFormat none -Command $command 2>&1
+ $captureExitCode = $LastExitCode
+ $out | ForEach-Object { Write-LogRecord "PS" $_ }
+ if (-not ($captureExitCode -eq 0))
+ {
+ throw "Command `"$command`" failed with exit code $captureExitCode. Output is `"$out`" "
+ }
+ return $out
+}
+
+
+function Test-JavaHome
+{
+ if( -not (Test-Path $ENV:JAVA_HOME\bin\java.exe))
+ {
+ throw "JAVA_HOME not set properly; $ENV:JAVA_HOME\bin\java.exe does not exist"
+ }
+}
+
+### Add service control permissions to authenticated users.
+### Reference:
+### http://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non-administrator-user-account
+### http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx
+
+function Set-ServiceAcl ($service)
+{
+ $cmd = "sc sdshow $service"
+ $sd = Invoke-Cmd $cmd
+
+ Write-Log "Current SD: $sd"
+
+ ## A;; --- allow
+ ## RP ---- SERVICE_START
+ ## WP ---- SERVICE_STOP
+ ## CR ---- SERVICE_USER_DEFINED_CONTROL
+ ## ;;;AU - AUTHENTICATED_USERS
+
+ $sd = [String]$sd
+ $sd = $sd.Replace( "S:(", "(A;;RPWPCR;;;AU)S:(" )
+ Write-Log "Modifying SD to: $sd"
+
+ $cmd = "sc sdset $service $sd"
+ Invoke-Cmd $cmd
+}
+
+function Expand-String([string] $source)
+{
+ return $ExecutionContext.InvokeCommand.ExpandString((($source -replace '"', '`"') -replace '''', '`'''))
+}
+
+function Copy-XmlTemplate( [string][parameter( Position=1, Mandatory=$true)] $Source,
+ [string][parameter( Position=2, Mandatory=$true)] $Destination,
+ [hashtable][parameter( Position=3 )] $TemplateBindings = @{} )
+{
+
+ ### Import template bindings
+ Push-Location Variable:
+
+ foreach( $key in $TemplateBindings.Keys )
+ {
+ $value = $TemplateBindings[$key]
+ New-Item -Path $key -Value $ExecutionContext.InvokeCommand.ExpandString( $value ) | Out-Null
+ }
+
+ Pop-Location
+
+ ### Copy and expand
+ $Source = Resolve-Path $Source
+
+ if( Test-Path $Destination -PathType Container )
+ {
+ $Destination = Join-Path $Destination ([IO.Path]::GetFilename( $Source ))
+ }
+
+ $DestinationDir = Resolve-Path (Split-Path $Destination -Parent)
+ $DestinationFilename = [IO.Path]::GetFilename( $Destination )
+ $Destination = Join-Path $DestinationDir $DestinationFilename
+
+ if( $Destination -eq $Source )
+ {
+ throw "Destination $Destination and Source $Source cannot be the same"
+ }
+
+ $template = [IO.File]::ReadAllText( $Source )
+ $expanded = Expand-String( $template )
+ ### Output xml files as ANSI files (same as original)
+ write-output $expanded | out-file -encoding ascii $Destination
+}
+
+# Convenience method for processing command-line credential objects
+# Assumes $credentialsHash is a hash with one of the following being true:
+# - keys "username" and "password"/"passwordBase64" are set to strings
+# - key "credentialFilePath" is set to the path of a serialized PSCredential object
+function Get-HadoopUserCredentials($credentialsHash)
+{
+ if($credentialsHash["username"])
+ {
+ Write-Log "Using provided credentials for username $($credentialsHash["username"])" | Out-Null
+ $username = $credentialsHash["username"]
+ if($username -notlike "*\*")
+ {
+ $username = "$ENV:COMPUTERNAME\$username"
+ }
+ if($credentialsHash["passwordBase64"])
+ {
+ $base64Password = $credentialsHash["passwordBase64"]
+ $decoded = [System.Convert]::FromBase64String($base64Password);
+ $decodedPassword = [System.Text.Encoding]::UTF8.GetString($decoded);
+ $securePassword = $decodedPassword | ConvertTo-SecureString -AsPlainText -Force
+ }
+ else
+ {
+ $securePassword = $credentialsHash["password"] | ConvertTo-SecureString -AsPlainText -Force
+ }
+ }
+ else
+ {
+ Write-Log "Reading credentials from $($credentialsHash['credentialFilePath'])" | Out-Null
+ $import = Import-Clixml -Path $credentialsHash["credentialFilePath"]
+ $username = $import.Username
+ $securePassword = $import.Password | ConvertTo-SecureString
+ }
+
+ $creds = New-Object System.Management.Automation.PSCredential $username, $securePassword
+ return $creds
+}
+
+function Check-Drive($path, $message){
+ if($path -cnotlike "*:*"){
+ Write-Warning "Target path doesn't contains drive identifier, checking skipped"
+ return
+ }
+ $pathvolume = $path.Split(":")[0] + ":"
+ if (! (Test-Path ($pathvolume + '\')) ) {
+ throw "Target volume for $message $pathvolume doesn't exist"
+ }
+}
+
+Export-ModuleMember -Function Copy-XmlTemplate
+Export-ModuleMember -Function Get-HadoopUserCredentials
+Export-ModuleMember -Function Initialize-WinpkgEnv
+Export-ModuleMember -Function Initialize-InstallationEnv
+Export-ModuleMember -Function Invoke-Cmd
+Export-ModuleMember -Function Invoke-CmdChk
+Export-ModuleMember -Function Invoke-Ps
+Export-ModuleMember -Function Invoke-PsChk
+Export-ModuleMember -Function Set-ServiceAcl
+Export-ModuleMember -Function Test-JavaHome
+Export-ModuleMember -Function Write-Log
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/App.config
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/App.config b/contrib/ambari-scom/msi/src/GUI/App.config
new file mode 100644
index 0000000..58f0a29
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/App.config
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<configuration>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+ </startup>
+</configuration>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Form1.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Form1.Designer.cs b/contrib/ambari-scom/msi/src/GUI/Form1.Designer.cs
new file mode 100644
index 0000000..df3168a
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Form1.Designer.cs
@@ -0,0 +1,352 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+namespace GUI_Ambari
+{
+ partial class Form1
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.Install = new System.Windows.Forms.Button();
+ this.AID = new System.Windows.Forms.TextBox();
+ this.Browse = new System.Windows.Forms.Button();
+ this.Sname = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.asda = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.Sport = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.Slogin = new System.Windows.Forms.TextBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.Spassword = new System.Windows.Forms.TextBox();
+ this.Cancel = new System.Windows.Forms.Button();
+ this.Reset = new System.Windows.Forms.Button();
+ this.BrowseDirs = new System.Windows.Forms.FolderBrowserDialog();
+ this.Spassworde = new System.Windows.Forms.CheckBox();
+ this.label5 = new System.Windows.Forms.Label();
+ this.Cbrowse = new System.Windows.Forms.Button();
+ this.Cpath = new System.Windows.Forms.TextBox();
+ this.OpenFile = new System.Windows.Forms.OpenFileDialog();
+ this.label6 = new System.Windows.Forms.Label();
+ this.SQLDbrowse = new System.Windows.Forms.Button();
+ this.SQLDpath = new System.Windows.Forms.TextBox();
+ this.Cstart = new System.Windows.Forms.CheckBox();
+ this.SuspendLayout();
+ //
+ // Install
+ //
+ this.Install.Location = new System.Drawing.Point(136, 282);
+ this.Install.Name = "Install";
+ this.Install.Size = new System.Drawing.Size(75, 23);
+ this.Install.TabIndex = 0;
+ this.Install.Text = "Install";
+ this.Install.UseVisualStyleBackColor = true;
+ this.Install.Click += new System.EventHandler(this.Install_Click);
+ //
+ // AID
+ //
+ this.AID.Location = new System.Drawing.Point(12, 24);
+ this.AID.Name = "AID";
+ this.AID.Size = new System.Drawing.Size(280, 20);
+ this.AID.TabIndex = 1;
+ this.AID.Text = "C:\\Ambari";
+ //
+ // Browse
+ //
+ this.Browse.Location = new System.Drawing.Point(298, 21);
+ this.Browse.Name = "Browse";
+ this.Browse.Size = new System.Drawing.Size(75, 23);
+ this.Browse.TabIndex = 2;
+ this.Browse.Text = "Browse";
+ this.Browse.UseVisualStyleBackColor = true;
+ this.Browse.Click += new System.EventHandler(this.Browse_Click);
+ //
+ // Sname
+ //
+ this.Sname.Location = new System.Drawing.Point(12, 63);
+ this.Sname.Name = "Sname";
+ this.Sname.Size = new System.Drawing.Size(280, 20);
+ this.Sname.TabIndex = 3;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(12, 9);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(161, 13);
+ this.label1.TabIndex = 4;
+ this.label1.Text = "Ambari SCOM package directory";
+ //
+ // asda
+ //
+ this.asda.AutoSize = true;
+ this.asda.Location = new System.Drawing.Point(12, 47);
+ this.asda.Name = "asda";
+ this.asda.Size = new System.Drawing.Size(111, 13);
+ this.asda.TabIndex = 5;
+ this.asda.Text = "SQL Server hostname";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(12, 86);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(83, 13);
+ this.label2.TabIndex = 7;
+ this.label2.Text = "SQL Server port";
+ //
+ // Sport
+ //
+ this.Sport.Location = new System.Drawing.Point(12, 102);
+ this.Sport.Name = "Sport";
+ this.Sport.Size = new System.Drawing.Size(280, 20);
+ this.Sport.TabIndex = 6;
+ this.Sport.Text = "1433";
+ this.Sport.TextChanged += new System.EventHandler(this.Sport_TextChanged);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(12, 125);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(87, 13);
+ this.label3.TabIndex = 9;
+ this.label3.Text = "SQL Server login";
+ //
+ // Slogin
+ //
+ this.Slogin.Location = new System.Drawing.Point(12, 141);
+ this.Slogin.Name = "Slogin";
+ this.Slogin.Size = new System.Drawing.Size(280, 20);
+ this.Slogin.TabIndex = 8;
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(12, 164);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(110, 13);
+ this.label4.TabIndex = 11;
+ this.label4.Text = "SQL Server password";
+ //
+ // Spassword
+ //
+ this.Spassword.Location = new System.Drawing.Point(12, 180);
+ this.Spassword.Name = "Spassword";
+ this.Spassword.Size = new System.Drawing.Size(277, 20);
+ this.Spassword.TabIndex = 10;
+ this.Spassword.UseSystemPasswordChar = true;
+ //
+ // Cancel
+ //
+ this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.Cancel.Location = new System.Drawing.Point(217, 282);
+ this.Cancel.Name = "Cancel";
+ this.Cancel.Size = new System.Drawing.Size(75, 23);
+ this.Cancel.TabIndex = 12;
+ this.Cancel.Text = "Cancel";
+ this.Cancel.UseVisualStyleBackColor = true;
+ this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
+ //
+ // Reset
+ //
+ this.Reset.Location = new System.Drawing.Point(298, 282);
+ this.Reset.Name = "Reset";
+ this.Reset.Size = new System.Drawing.Size(75, 23);
+ this.Reset.TabIndex = 13;
+ this.Reset.Text = "Reset";
+ this.Reset.UseVisualStyleBackColor = true;
+ this.Reset.Click += new System.EventHandler(this.Reset_Click);
+ //
+ // BrowseDirs
+ //
+ this.BrowseDirs.RootFolder = System.Environment.SpecialFolder.MyComputer;
+ //
+ // Spassworde
+ //
+ this.Spassworde.AutoSize = true;
+ this.Spassworde.Location = new System.Drawing.Point(295, 182);
+ this.Spassworde.Name = "Spassworde";
+ this.Spassworde.Size = new System.Drawing.Size(78, 17);
+ this.Spassworde.TabIndex = 14;
+ this.Spassworde.Text = "Show pass";
+ this.Spassworde.UseVisualStyleBackColor = true;
+ this.Spassworde.CheckedChanged += new System.EventHandler(this.Spassworde_CheckedChanged);
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(12, 241);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(219, 13);
+ this.label5.TabIndex = 17;
+ this.label5.Text = "Path to cluster layout file (clusterpoperties.txt)";
+ //
+ // Cbrowse
+ //
+ this.Cbrowse.Location = new System.Drawing.Point(298, 253);
+ this.Cbrowse.Name = "Cbrowse";
+ this.Cbrowse.Size = new System.Drawing.Size(75, 23);
+ this.Cbrowse.TabIndex = 16;
+ this.Cbrowse.Text = "Browse";
+ this.Cbrowse.UseVisualStyleBackColor = true;
+ this.Cbrowse.Click += new System.EventHandler(this.Cbrowse_Click);
+ //
+ // Cpath
+ //
+ this.Cpath.Location = new System.Drawing.Point(12, 256);
+ this.Cpath.Name = "Cpath";
+ this.Cpath.Size = new System.Drawing.Size(277, 20);
+ this.Cpath.TabIndex = 15;
+ //
+ // OpenFile
+ //
+ this.OpenFile.DefaultExt = "*.txt";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(12, 203);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(222, 13);
+ this.label6.TabIndex = 20;
+ this.label6.Text = "Path to SQL Server JDBC Driver (sqljdbc4.jar)";
+ //
+ // SQLDbrowse
+ //
+ this.SQLDbrowse.Location = new System.Drawing.Point(298, 215);
+ this.SQLDbrowse.Name = "SQLDbrowse";
+ this.SQLDbrowse.Size = new System.Drawing.Size(75, 23);
+ this.SQLDbrowse.TabIndex = 19;
+ this.SQLDbrowse.Text = "Browse";
+ this.SQLDbrowse.UseVisualStyleBackColor = true;
+ this.SQLDbrowse.Click += new System.EventHandler(this.SQLDbrowse_Click);
+ //
+ // SQLDpath
+ //
+ this.SQLDpath.Location = new System.Drawing.Point(12, 218);
+ this.SQLDpath.Name = "SQLDpath";
+ this.SQLDpath.Size = new System.Drawing.Size(277, 20);
+ this.SQLDpath.TabIndex = 18;
+ //
+ // Cstart
+ //
+ this.Cstart.AutoSize = true;
+ this.Cstart.Location = new System.Drawing.Point(12, 283);
+ this.Cstart.Name = "Cstart";
+ this.Cstart.Size = new System.Drawing.Size(92, 17);
+ this.Cstart.TabIndex = 21;
+ this.Cstart.Text = "Start Services";
+ this.Cstart.UseVisualStyleBackColor = true;
+ //
+ // Form1
+ //
+ this.AcceptButton = this.Install;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.Cancel;
+ this.ClientSize = new System.Drawing.Size(375, 308);
+ this.ControlBox = false;
+ this.Controls.Add(this.Cstart);
+ this.Controls.Add(this.label6);
+ this.Controls.Add(this.SQLDbrowse);
+ this.Controls.Add(this.SQLDpath);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.Cbrowse);
+ this.Controls.Add(this.Cpath);
+ this.Controls.Add(this.Spassworde);
+ this.Controls.Add(this.Reset);
+ this.Controls.Add(this.Cancel);
+ this.Controls.Add(this.label4);
+ this.Controls.Add(this.Spassword);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.Slogin);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.Sport);
+ this.Controls.Add(this.asda);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.Sname);
+ this.Controls.Add(this.Browse);
+ this.Controls.Add(this.AID);
+ this.Controls.Add(this.Install);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "Form1";
+ this.ShowIcon = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Ambari-SCOM setup";
+ this.TopMost = true;
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button Install;
+ private System.Windows.Forms.TextBox AID;
+ private System.Windows.Forms.Button Browse;
+ private System.Windows.Forms.TextBox Sname;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label asda;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox Sport;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.TextBox Slogin;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.TextBox Spassword;
+ private System.Windows.Forms.Button Cancel;
+ private System.Windows.Forms.Button Reset;
+ private System.Windows.Forms.FolderBrowserDialog BrowseDirs;
+ private System.Windows.Forms.CheckBox Spassworde;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Button Cbrowse;
+ private System.Windows.Forms.TextBox Cpath;
+ private System.Windows.Forms.OpenFileDialog OpenFile;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Button SQLDbrowse;
+ private System.Windows.Forms.TextBox SQLDpath;
+ private System.Windows.Forms.CheckBox Cstart;
+
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Form1.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Form1.cs b/contrib/ambari-scom/msi/src/GUI/Form1.cs
new file mode 100644
index 0000000..9d6cc8c
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Form1.cs
@@ -0,0 +1,276 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+
+namespace GUI_Ambari
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+
+ InitializeComponent();
+
+ }
+
+ private void Form1_Load(object sender, EventArgs e)
+ {
+ Sname.Text = Environment.GetEnvironmentVariable("computername");
+
+
+ }
+
+ private void Browse_Click(object sender, EventArgs e)
+ {
+ BrowseDirs.ShowDialog();
+
+ if (BrowseDirs.SelectedPath.ToString().Contains(" "))
+ {
+ MessageBox.Show("Please select correct log directory. Directories containing spaces are disallowed", "Error");
+
+
+ }
+ else if (BrowseDirs.SelectedPath.ToString().Length == 3)
+ {
+ MessageBox.Show("Please select correct log directory. Root directories are disallowed", "Error");
+
+ }
+ else
+ {
+
+ AID.Text = BrowseDirs.SelectedPath;
+ }
+ }
+
+ private void Sport_TextChanged(object sender, EventArgs e)
+ {
+ string test = Sport.Text.ToString();
+
+
+ if (!Regex.IsMatch(test, "[0-9]") || (Convert.ToInt32(test) > 65536))
+ {
+ Sport.Clear();
+ }
+
+ }
+
+ private void Install_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(AID.Text) || string.IsNullOrEmpty(Sname.Text) || string.IsNullOrEmpty(Sport.Text) || string.IsNullOrEmpty(Slogin.Text) || string.IsNullOrEmpty(Spassword.Text) || string.IsNullOrEmpty(SQLDpath.Text))
+ {
+ MessageBox.Show("Please fill in all fields", "Error");
+ }
+ else if (string.IsNullOrEmpty(AID.Text) || AID.Text.Contains(" ") || !AID.Text.Contains("\\") || !AID.Text.Contains(":") || (AID.Text.Length < 4))
+ {
+ MessageBox.Show("Please enter correct Ambari directory", "Error");
+ }
+ else if (string.IsNullOrEmpty(SQLDpath.Text) || SQLDpath.Text.Contains(" ") || !SQLDpath.Text.Contains("\\") || !SQLDpath.Text.Contains(":") || (SQLDpath.Text.Length < 4)|| !SQLDpath.Text.Contains(".jar"))
+ {
+ MessageBox.Show("Please enter correct SQL JDBC driver path", "Error");
+ }
+ else
+ {
+ //if (!(Sname.Text == Environment.GetEnvironmentVariable("computername")))
+ //{
+ // Validate_Hosts();
+ //}
+ //else
+ //{
+ Generate_Ambari_Props();
+ //}
+
+ }
+ }
+
+ private void Cancel_Click(object sender, EventArgs e)
+ {
+ DialogResult result = MessageBox.Show("Do you really want to exit?", "Warning", MessageBoxButtons.YesNo);
+ if (result == DialogResult.Yes)
+ {
+ Environment.Exit(1);
+ }
+
+ }
+
+ private void Reset_Click(object sender, EventArgs e)
+ {
+ AID.Text = "C:\\Ambari";
+ Sname.Text = Environment.GetEnvironmentVariable("computername");
+ Sport.Text = "1433";
+ Slogin.Clear();
+ Spassword.Clear();
+ Spassworde.Checked = false;
+ Cpath.Clear();
+ SQLDpath.Clear();
+ Cstart.Checked = false;
+ }
+
+ private void Spassworde_CheckedChanged(object sender, EventArgs e)
+ {
+ if (Spassworde.Checked)
+ {
+ Spassword.UseSystemPasswordChar = false;
+ Spassword.Text = Spassword.Text;
+ }
+ else
+ {
+ Spassword.UseSystemPasswordChar = true;
+ Spassword.Text = Spassword.Text;
+ }
+ }
+ private void Generate_Ambari_Props()
+ {
+ string res = Environment.GetEnvironmentVariable("appdata") + "\\amb_install";
+ if (System.IO.Directory.Exists(res))
+ {
+ System.IO.Directory.Delete(res, true);
+ System.IO.Directory.CreateDirectory(res);
+ }
+ if (!System.IO.Directory.Exists(res))
+ {
+ System.IO.Directory.CreateDirectory(res);
+ }
+ string cp = res + "\\ambariproperties.txt";
+ using (StreamWriter sw = File.CreateText(cp))
+ {
+ sw.WriteLine("AMB_DATA_DIR=" + AID.Text);
+ sw.WriteLine("SQL_SERVER_NAME=" + Sname.Text);
+ sw.WriteLine("SQL_SERVER_LOGIN=" + Slogin.Text);
+ sw.WriteLine("SQL_SERVER_PASSWORD=" + Spassword.Text);
+ sw.WriteLine("SQL_SERVER_PORT=" + Sport.Text);
+ sw.WriteLine("SQL_JDBC_PATH=" + SQLDpath.Text);
+ if (Cstart.Checked == true)
+ {
+ Environment.SetEnvironmentVariable("START_SERVICES", "yes", EnvironmentVariableTarget.Machine);
+ }
+
+ }
+ Environment.SetEnvironmentVariable("HDP_LAYOUT", Cpath.Text, EnvironmentVariableTarget.Machine);
+ Environment.Exit(0);
+ }
+ private void Validate_Hosts()
+ {
+
+ foreach (Control c in this.Controls)
+ {
+ c.Enabled = false;
+ }
+ string failed = "";
+
+ failed = ping(Sname.Text, failed);
+
+
+
+ if (!string.IsNullOrEmpty(failed))
+ {
+ DialogResult result = MessageBox.Show(new Form() { TopMost = true }, "SQL Server host is not accessible:\r\n" + failed + "Do you want to continue installation with inaccessible SQL Server host?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
+ if (result == DialogResult.Yes)
+ {
+ Generate_Ambari_Props();
+ }
+ else
+ {
+ foreach (Control c in this.Controls)
+ {
+ c.Enabled = true;
+ }
+ }
+ }
+
+ }
+ private string ping(string host, string failed)
+ {
+
+ Process process = new Process();
+ process.StartInfo.FileName = "C:\\windows\\system32\\ping.exe";
+ process.StartInfo.Arguments = host;
+ process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
+ process.Start();
+ process.WaitForExit();
+ int code = process.ExitCode;
+ if (code == 1)
+ {
+ failed = failed + host + "\r\n";
+ }
+
+ return failed;
+ }
+
+ private void Cbrowse_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog OpenFile = new OpenFileDialog();
+ OpenFile.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
+ OpenFile.InitialDirectory = @"C:\";
+ OpenFile.Title = "Please select Ambari properties file";
+ OpenFile.ShowDialog();
+
+ if (OpenFile.FileName.ToString().Contains(" "))
+ {
+ MessageBox.Show("Please select correct path. Path containing spaces are disallowed", "Error");
+
+
+ }
+ else if (OpenFile.FileName.ToString().Length <= 4)
+ {
+ MessageBox.Show("Please select correct path", "Error");
+
+ }
+ else
+ {
+
+ Cpath.Text = OpenFile.FileName.ToString();
+ }
+ }
+
+ private void SQLDbrowse_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog OpenFile = new OpenFileDialog();
+ OpenFile.Filter = "jar files (*.jar)|*.jar|All files (*.*)|*.*";
+ OpenFile.InitialDirectory = @"C:\";
+ OpenFile.Title = "Please select SQL JDBC driver.";
+ OpenFile.ShowDialog();
+
+
+ if (OpenFile.FileName.ToString().Contains(" "))
+ {
+ MessageBox.Show("Please select correct path. Path containing spaces are disallowed", "Error");
+
+
+ }
+ else if (OpenFile.FileName.ToString().Length <= 4)
+ {
+ MessageBox.Show("Please select correct path", "Error");
+
+ }
+ else
+ {
+ SQLDpath.Text = OpenFile.FileName.ToString();
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Form1.resx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Form1.resx b/contrib/ambari-scom/msi/src/GUI/Form1.resx
new file mode 100644
index 0000000..f0005b1
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Form1.resx
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="BrowseDirs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <metadata name="OpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>129, 17</value>
+ </metadata>
+</root>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/GUI_Ambari.csproj
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/GUI_Ambari.csproj b/contrib/ambari-scom/msi/src/GUI/GUI_Ambari.csproj
new file mode 100644
index 0000000..a2e9cc0
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/GUI_Ambari.csproj
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{48B27787-5714-4C28-9F9D-8B2A02237BAD}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>GUI_Ambari</RootNamespace>
+ <AssemblyName>GUI_Ambari</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Form1.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="Form1.Designer.cs">
+ <DependentUpon>Form1.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <EmbeddedResource Include="Form1.resx">
+ <DependentUpon>Form1.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="App.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Program.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Program.cs b/contrib/ambari-scom/msi/src/GUI/Program.cs
new file mode 100644
index 0000000..59de9d6
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Program.cs
@@ -0,0 +1,38 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace GUI_Ambari
+{
+ static class Program
+ {
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Properties/AssemblyInfo.cs b/contrib/ambari-scom/msi/src/GUI/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7f9c77f
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("GUI_Ambari")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("GUI_Ambari")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ad830f21-dcaf-4391-852b-6de098861879")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Properties/Resources.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Properties/Resources.Designer.cs b/contrib/ambari-scom/msi/src/GUI/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..20f852d
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Properties/Resources.Designer.cs
@@ -0,0 +1,87 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18052
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace GUI_Ambari.Properties
+{
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GUI_Ambari.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Properties/Resources.resx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Properties/Resources.resx b/contrib/ambari-scom/msi/src/GUI/Properties/Resources.resx
new file mode 100644
index 0000000..97b0bb7
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Properties/Resources.resx
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Properties/Settings.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Properties/Settings.Designer.cs b/contrib/ambari-scom/msi/src/GUI/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..98559d7
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Properties/Settings.Designer.cs
@@ -0,0 +1,46 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18052
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace GUI_Ambari.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/GUI/Properties/Settings.settings
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/GUI/Properties/Settings.settings b/contrib/ambari-scom/msi/src/GUI/Properties/Settings.settings
new file mode 100644
index 0000000..5f90ec3
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/GUI/Properties/Settings.settings
@@ -0,0 +1,20 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/Result/Ambari_Result.csproj
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/Result/Ambari_Result.csproj b/contrib/ambari-scom/msi/src/Result/Ambari_Result.csproj
new file mode 100644
index 0000000..49fb5b9
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/Result/Ambari_Result.csproj
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{94F51376-8532-48EE-8897-3F9A46B39702}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Ambari_Result</RootNamespace>
+ <AssemblyName>Ambari_Result</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="App.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/Result/App.config
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/Result/App.config b/contrib/ambari-scom/msi/src/Result/App.config
new file mode 100644
index 0000000..58f0a29
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/Result/App.config
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. -->
+
+<configuration>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+ </startup>
+</configuration>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/Result/Program.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/Result/Program.cs b/contrib/ambari-scom/msi/src/Result/Program.cs
new file mode 100644
index 0000000..9c64eb4
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/Result/Program.cs
@@ -0,0 +1,43 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Ambari_Result
+{
+ static class Program
+ {
+ [STAThread]
+ static void Main()
+ {
+ string file = Environment.GetEnvironmentVariable("tmp") + @"\ambari_failed.txt";
+ if (File.Exists(file))
+ {
+ string text = File.ReadAllText(file);
+ DialogResult result = MessageBox.Show("Uninstallation on next nodes failed.\r\nPlease proceed with manual uninstallation for these nodes\r\n" + text, "Ambari-SCOM Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1,MessageBoxOptions.DefaultDesktopOnly);
+ if (result == DialogResult.OK)
+ {
+ Environment.Exit(0);
+ }
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/Result/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/Result/Properties/AssemblyInfo.cs b/contrib/ambari-scom/msi/src/Result/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..4186e66
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/Result/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Ambari_Result")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Ambari_Result")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("d4bd1fc6-b566-4d42-b82e-e0f502cd9dfe")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/msi/src/Result/Properties/Resources.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/msi/src/Result/Properties/Resources.Designer.cs b/contrib/ambari-scom/msi/src/Result/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..36efa5c
--- /dev/null
+++ b/contrib/ambari-scom/msi/src/Result/Properties/Resources.Designer.cs
@@ -0,0 +1,87 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18052
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Ambari_Result.Properties
+{
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ambari_Result.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}