From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Goldish Subject: [KVM-AUTOTEST PATCH 5/9] [RFC] KVM test: DTM machine deletion tool for WHQL tests Date: Thu, 15 Jul 2010 18:57:34 +0300 Message-ID: <1279209458-19590-5-git-send-email-mgoldish@redhat.com> References: <1279209458-19590-1-git-send-email-mgoldish@redhat.com> <1279209458-19590-2-git-send-email-mgoldish@redhat.com> <1279209458-19590-3-git-send-email-mgoldish@redhat.com> <1279209458-19590-4-git-send-email-mgoldish@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: autotest@test.kernel.org, kvm@vger.kernel.org Return-path: In-Reply-To: <1279209458-19590-4-git-send-email-mgoldish@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: autotest-bounces@test.kernel.org Errors-To: autotest-bounces@test.kernel.org List-Id: kvm.vger.kernel.org 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 --- 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 +// 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