[KVM-AUTOTEST PATCH 5/9] [RFC] KVM test: DTM machine deletion tool for WHQL tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This C# program should run on a DTM server.  It's used by the
whql_client_install test to delete the client machine from the server's data
store (if listed there) prior to client installation.  This seems to be
necessary to prevent trouble during testing (like failure to contact the client
machine).

Note: the binary is copied to the server at run time, so it doesn't need to be
packaged in winutils.iso.

Signed-off-by: Michael Goldish <mgoldish@xxxxxxxxxx>
---
 client/tests/kvm/deps/whql_delete_machine_15.cs  |   82 ++++++++++++++++++++++
 client/tests/kvm/deps/whql_delete_machine_15.exe |  Bin 0 -> 10240 bytes
 2 files changed, 82 insertions(+), 0 deletions(-)
 create mode 100644 client/tests/kvm/deps/whql_delete_machine_15.cs
 create mode 100644 client/tests/kvm/deps/whql_delete_machine_15.exe

diff --git a/client/tests/kvm/deps/whql_delete_machine_15.cs b/client/tests/kvm/deps/whql_delete_machine_15.cs
new file mode 100644
index 0000000..1d78a6d
--- /dev/null
+++ b/client/tests/kvm/deps/whql_delete_machine_15.cs
@@ -0,0 +1,82 @@
+// DTM machine deletion tool
+// Author: Michael Goldish <mgoldish@xxxxxxxxxx>
+// Based on sample code by Microsoft.
+
+using System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using Microsoft.DistributedAutomation.DeviceSelection;
+using Microsoft.DistributedAutomation.SqlDataStore;
+
+namespace automate0
+{
+    class AutoJob
+    {
+        static int Main(string[] args)
+        {
+            if (args.Length != 2)
+            {
+                Console.WriteLine("Error: incorrect number of command line arguments");
+                Console.WriteLine("Usage: {0} serverName clientName",
+                    System.Environment.GetCommandLineArgs()[0]);
+                return 1;
+            }
+            string serverName = args[0];
+            string clientName = args[1];
+
+            try
+            {
+                // Initialize DeviceScript and connect to data store
+                Console.WriteLine("Initializing DeviceScript object");
+                DeviceScript script = new DeviceScript();
+                Console.WriteLine("Connecting to data store");
+                script.ConnectToNamedDataStore(serverName);
+
+                // Find the client machine
+                IResourcePool rootPool = script.GetResourcePoolByName("$");
+                Console.WriteLine("Looking for client machine '{0}'", clientName);
+                IResource machine = rootPool.GetResourceByName(clientName);
+                if (machine == null)
+                {
+                    Console.WriteLine("Client machine not found");
+                    return 0;
+                }
+                Console.WriteLine("Client machine '{0}' found ({1}, {2})",
+                    clientName, machine.OperatingSystem, machine.ProcessorArchitecture);
+
+                // Change the client machine's status to 'unsafe'
+                Console.WriteLine("Changing the client machine's status to 'Unsafe'");
+                try
+                {
+                    machine.ChangeResourceStatus("Unsafe");
+                }
+                catch (Exception e)
+                {
+                    Console.WriteLine("Warning: " + e.Message);
+                }
+                while (machine.Status != "Unsafe")
+                {
+                    try
+                    {
+                        machine = rootPool.GetResourceByName(clientName);
+                    }
+                    catch (Exception e)
+                    {
+                        Console.WriteLine("Warning: " + e.Message);
+                    }
+                    System.Threading.Thread.Sleep(1000);
+                }
+
+                // Delete the client machine from datastore
+                Console.WriteLine("Deleting client machine from data store");
+                script.DeleteResource(machine.Id);
+                return 0;
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine("Error: " + e.Message);
+                return 1;
+            }
+        }
+    }
+}
diff --git a/client/tests/kvm/deps/whql_delete_machine_15.exe b/client/tests/kvm/deps/whql_delete_machine_15.exe
new file mode 100644
index 0000000000000000000000000000000000000000..3817ac42d7748b87af3683e86e1137757ed6073a
GIT binary patch
literal 10240
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
NZOi_Y@&A1U{u`?1<*)z%

literal 0
HcmV?d00001

-- 
1.5.4.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux