Re: [Autotest] [PATCH 1/2] KVM test: Parallel install of guest OS v2

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

 



On Mon, Mar 15, 2010 at 6:04 PM, Michael Goldish <mgoldish@xxxxxxxxxx> wrote:
>
> ----- "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> wrote:
>
>> From: yogi <anantyog@xxxxxxxxxxxxxxxxxx>
>>
>> The patch enables doing mulitple install of guest OS in parallel.
>> Have added four more options to  test_base.cfg, port redirection
>> entry "guest_port_unattend_shell" for host to communicate with
>> guest during installation, "pxe_dir", 'pxe_image' and
>> 'pxe_initrd" to specify locations for kernel and initrd.
>> For parallel installation to work in unattended mode, the floppy
>> image and pxe boot path also  has to be unique for each quest.
>
> I don't think being unique for each guest is always enough.  It's
> possible for the same guest to run twice in parallel in different
> configurations (e.g. up.Fedora.11 and smp2.Fedora.11 at the same
> time).  Each such run requires a unique floppy image and pxe path.
> Come to think of it, it also requires a unique disk image, so right
> now parallel tests on the same guest shouldn't work at all.  I'll
> think of a solution to that (in the form of a modification to
> kvm_scheduler) but in the mean time, parallel tests should work as
> long as they're for different guests.

Maybe we can add random strings to all those files to make sure they
are still unique, maybe in kvm_config, with maybe a new operator that
appends a random string to the config values.... not sure of the side
effects, but in a first thought, I can't think of any right now...

>> All the relevant unattended post install steps for guests were
>> changed, now they are server based codes.
>
> I still think much code can be saved by using the existing remote
> login servers (ssh for Linux, rss.exe for Windows) that should
> already be running when unattended install is done.
> It's not critical however.
>
>> Changes from v1:
>>  * Fixed the logic for the new unattended install test (original
>> implementation would hang indefinitely if guest dies in the middle
>> of the install).
>>  * Fixed the config changes to make sure the unattended install
>> port actually gets redirected so the test can work, also made the
>> config specific to unattended install
>>  * Merged the finish.exe patch, including a binary patch that
>> changes the binary shipped to the new version
>>  * Changed all unattended install files to use the parallel
>> mechanism
>>
>> Tested with Windows 7 and Fedora 11 guests. I (lmr) am going to
>> keep this in the queue for a bit so I can test it more in the
>> internal test farm and everybody can take a look at the patch.
>
> See one more comment below in tests_base.cfg.sample.
> Other than that everything looks fine.
>
>>
>> Signed-off-by: Yogananth Subramanian <anantyog@xxxxxxxxxxxxxxxxxx>
>> Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx>
>> ---
>>  client/tests/kvm/deps/finish.cpp                   |  111 ++--
>>  client/tests/kvm/deps/finish.exe                   |  Bin 26913 ->
>> 26926 bytes
>>  client/tests/kvm/kvm_utils.py                      |    4 +-
>>  client/tests/kvm/scripts/unattended.py             |   56 +-
>>  client/tests/kvm/tests/unattended_install.py       |   44 +-
>>  client/tests/kvm/tests_base.cfg.sample             |   66 ++-
>>  client/tests/kvm/unattended/Fedora-10.ks           |   12 +-
>>  client/tests/kvm/unattended/Fedora-11.ks           |   11 +-
>>  client/tests/kvm/unattended/Fedora-12.ks           |   11 +-
>>  client/tests/kvm/unattended/Fedora-8.ks            |   11 +-
>>  client/tests/kvm/unattended/Fedora-9.ks            |   11 +-
>>  client/tests/kvm/unattended/RHEL-3-series.ks       |   12 +-
>>  client/tests/kvm/unattended/RHEL-4-series.ks       |   11 +-
>>  client/tests/kvm/unattended/RHEL-5-series.ks       |   11 +-
>>  client/tests/kvm/unattended/Sles11-64-autoinst.xml |  898
>> ++++++++++++++++++++
>>  client/tests/kvm/unattended/win2003-32.sif         |    2 +-
>>  client/tests/kvm/unattended/win2003-64.sif         |    2 +-
>>  .../kvm/unattended/win2008-32-autounattend.xml     |    2 +-
>>  .../kvm/unattended/win2008-64-autounattend.xml     |    2 +-
>>  .../kvm/unattended/win2008-r2-autounattend.xml     |    2 +-
>>  .../tests/kvm/unattended/win7-32-autounattend.xml  |    2 +-
>>  .../tests/kvm/unattended/win7-64-autounattend.xml  |    2 +-
>>  .../kvm/unattended/winvista-32-autounattend.xml    |    2 +-
>>  .../kvm/unattended/winvista-64-autounattend.xml    |    2 +-
>>  client/tests/kvm/unattended/winxp32.sif            |    2 +-
>>  client/tests/kvm/unattended/winxp64.sif            |    2 +-
>>  26 files changed, 1121 insertions(+), 170 deletions(-)
>>  create mode 100644
>> client/tests/kvm/unattended/Sles11-64-autoinst.xml
>>
>> diff --git a/client/tests/kvm/deps/finish.cpp
>> b/client/tests/kvm/deps/finish.cpp
>> index 9c2867c..e5ba128 100644
>> --- a/client/tests/kvm/deps/finish.cpp
>> +++ b/client/tests/kvm/deps/finish.cpp
>> @@ -1,12 +1,13 @@
>> -// Simple app that only sends an ack string to the KVM unattended
>> install
>> -// watch code.
>> +// Simple application that creates a server socket, listening for
>> connections
>> +// of the unattended install test. Once it gets a client connected,
>> the
>> +// app will send back an ACK string, indicating the install process
>> is done.
>>  //
>>  // You must link this code with Ws2_32.lib, Mswsock.lib, and
>> Advapi32.lib
>>  //
>>  // Author: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx>
>>  // Code was adapted from an MSDN sample.
>>
>> -// Usage: finish.exe [Host OS IP]
>> +// Usage: finish.exe
>>
>>  // MinGW's ws2tcpip.h only defines getaddrinfo and other functions
>> only for
>>  // the case _WIN32_WINNT >= 0x0501.
>> @@ -21,24 +22,18 @@
>>  #include <stdlib.h>
>>  #include <stdio.h>
>>
>> -#define DEFAULT_BUFLEN 512
>>  #define DEFAULT_PORT "12323"
>> -
>>  int main(int argc, char **argv)
>>  {
>>      WSADATA wsaData;
>> -    SOCKET ConnectSocket = INVALID_SOCKET;
>> -    struct addrinfo *result = NULL,
>> -                    *ptr = NULL,
>> -                    hints;
>> +    SOCKET ListenSocket = INVALID_SOCKET, ClientSocket =
>> INVALID_SOCKET;
>> +    struct addrinfo *result = NULL, hints;
>>      char *sendbuf = "done";
>> -    char recvbuf[DEFAULT_BUFLEN];
>> -    int iResult;
>> -    int recvbuflen = DEFAULT_BUFLEN;
>> +    int iResult, iSendResult;
>>
>>      // Validate the parameters
>> -    if (argc != 2) {
>> -        printf("usage: %s server-name\n", argv[0]);
>> +    if (argc != 1) {
>> +        printf("usage: %s", argv[0]);
>>          return 1;
>>      }
>>
>> @@ -49,72 +44,84 @@ int main(int argc, char **argv)
>>          return 1;
>>      }
>>
>> -    ZeroMemory( &hints, sizeof(hints) );
>> -    hints.ai_family = AF_UNSPEC;
>> +    ZeroMemory(&hints, sizeof(hints));
>> +    hints.ai_family = AF_INET;
>>      hints.ai_socktype = SOCK_STREAM;
>>      hints.ai_protocol = IPPROTO_TCP;
>> +    hints.ai_flags = AI_PASSIVE;
>>
>>      // Resolve the server address and port
>> -    iResult = getaddrinfo(argv[1], DEFAULT_PORT, &hints, &result);
>> -    if ( iResult != 0 ) {
>> +    iResult = getaddrinfo(NULL, DEFAULT_PORT, &hints, &result);
>> +    if (iResult != 0) {
>>          printf("getaddrinfo failed: %d\n", iResult);
>>          WSACleanup();
>>          return 1;
>>      }
>>
>> -    // Attempt to connect to an address until one succeeds
>> -    for(ptr=result; ptr != NULL ;ptr=ptr->ai_next) {
>> -
>> -        // Create a SOCKET for connecting to server
>> -        ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype,
>> -            ptr->ai_protocol);
>> -        if (ConnectSocket == INVALID_SOCKET) {
>> -            printf("Error at socket(): %ld\n", WSAGetLastError());
>> -            freeaddrinfo(result);
>> -            WSACleanup();
>> -            return 1;
>> -        }
>> -
>> -        // Connect to server.
>> -        iResult = connect( ConnectSocket, ptr->ai_addr,
>> (int)ptr->ai_addrlen);
>> -        if (iResult == SOCKET_ERROR) {
>> -            closesocket(ConnectSocket);
>> -            ConnectSocket = INVALID_SOCKET;
>> -            continue;
>> -        }
>> -        break;
>> +    // Create a SOCKET for connecting to server
>> +    ListenSocket = socket(result->ai_family, result->ai_socktype,
>> +                          result->ai_protocol);
>> +    if (ListenSocket == INVALID_SOCKET) {
>> +        printf("socket failed: %ld\n", WSAGetLastError());
>> +        freeaddrinfo(result);
>> +        WSACleanup();
>> +        return 1;
>> +    }
>> +
>> +    // Setup the TCP listening socket
>> +    iResult = bind(ListenSocket, result->ai_addr,
>> (int)result->ai_addrlen);
>> +    if (iResult == SOCKET_ERROR) {
>> +        printf("bind failed: %d\n", WSAGetLastError());
>> +        freeaddrinfo(result);
>> +        closesocket(ListenSocket);
>> +        WSACleanup();
>> +        return 1;
>>      }
>>
>>      freeaddrinfo(result);
>>
>> -    if (ConnectSocket == INVALID_SOCKET) {
>> -        printf("Unable to connect to server!\n");
>> +    iResult = listen(ListenSocket, SOMAXCONN);
>> +    if (iResult == SOCKET_ERROR) {
>> +        printf("listen failed: %d\n", WSAGetLastError());
>> +        closesocket(ListenSocket);
>>          WSACleanup();
>>          return 1;
>>      }
>>
>> -    // Send the ACK buffer
>> -    iResult = send( ConnectSocket, sendbuf, (int)strlen(sendbuf), 0
>> );
>> -    if (iResult == SOCKET_ERROR) {
>> -        printf("send failed: %d\n", WSAGetLastError());
>> -        closesocket(ConnectSocket);
>> +    // Accept a client socket
>> +    ClientSocket = accept(ListenSocket, NULL, NULL);
>> +    if (ClientSocket == INVALID_SOCKET) {
>> +        printf("accept failed: %d\n", WSAGetLastError());
>> +        closesocket(ListenSocket);
>>          WSACleanup();
>>          return 1;
>>      }
>>
>> -    printf("Bytes Sent: %ld\n", iResult);
>> +    // No longer need the server socket
>> +    closesocket(ListenSocket);
>> +
>> +    // Send the ack string to the client
>> +    iSendResult = send(ClientSocket, sendbuf, sizeof(sendbuf), 0);
>> +    if (iSendResult == SOCKET_ERROR) {
>> +        printf("send failed: %d\n", WSAGetLastError());
>> +        closesocket(ClientSocket);
>> +        WSACleanup();
>> +        return 1;
>> +    }
>> +    // Report the number of bytes sent
>> +    printf("Bytes sent: %d\n", iSendResult);
>>
>> -    // shutdown the connection since no more data will be sent
>> -    iResult = shutdown(ConnectSocket, SD_SEND);
>> +    // Shutdown the connection since we're done
>> +    iResult = shutdown(ClientSocket, SD_SEND);
>>      if (iResult == SOCKET_ERROR) {
>>          printf("shutdown failed: %d\n", WSAGetLastError());
>> -        closesocket(ConnectSocket);
>> +        closesocket(ClientSocket);
>>          WSACleanup();
>>          return 1;
>>      }
>>
>> -    // cleanup
>> -    closesocket(ConnectSocket);
>> +    // Cleanup
>> +    closesocket(ClientSocket);
>>      WSACleanup();
>>
>>      return 0;
>> diff --git a/client/tests/kvm/deps/finish.exe
>> b/client/tests/kvm/deps/finish.exe
>> index
>> 5387780fd769fe574ef5c4cc93e57fece35d2132..59792973aea6e405d725371c077d032e2aa936b1
>> 100755
>> GIT binary patch
>> delta 4604
>> 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
>> Zp}+ZaM4rB9rIgSZD&O-mJ|>#-{|gl$Ak_c>
>>
>> delta 4371
>> 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
>>
>> diff --git a/client/tests/kvm/kvm_utils.py
>> b/client/tests/kvm/kvm_utils.py
>> index 4565dc1..9201b87 100644
>> --- a/client/tests/kvm/kvm_utils.py
>> +++ b/client/tests/kvm/kvm_utils.py
>> @@ -635,7 +635,7 @@ def is_port_free(port):
>>
>>  def find_free_port(start_port, end_port):
>>      """
>> -    Return a free port in the range [start_port, end_port).
>> +    Return a host free port in the range [start_port, end_port].
>>
>>      @param start_port: First port that will be checked.
>>      @param end_port: Port immediately after the last one that will be
>> checked.
>> @@ -648,7 +648,7 @@ def find_free_port(start_port, end_port):
>>
>>  def find_free_ports(start_port, end_port, count):
>>      """
>> -    Return count free ports in the range [start_port, end_port).
>> +    Return count of host free ports in the range [start_port,
>> end_port].
>>
>>      @count: Initial number of ports known to be free in the range.
>>      @param start_port: First port that will be checked.
>> diff --git a/client/tests/kvm/scripts/unattended.py
>> b/client/tests/kvm/scripts/unattended.py
>> index 343f955..3c48fb3 100755
>> --- a/client/tests/kvm/scripts/unattended.py
>> +++ b/client/tests/kvm/scripts/unattended.py
>> @@ -31,35 +31,31 @@ class UnattendedInstall(object):
>>          self.deps_dir = os.path.join(kvm_test_dir, 'deps')
>>          self.unattended_dir = os.path.join(kvm_test_dir,
>> 'unattended')
>>
>> -        try:
>> -            tftp_root = os.environ['KVM_TEST_tftp']
>> +        tftp_root = os.environ.get('KVM_TEST_tftp', '')
>> +        if tftp_root:
>>              self.tftp_root = os.path.join(kvm_test_dir, tftp_root)
>>              if not os.path.isdir(self.tftp_root):
>>                  os.makedirs(self.tftp_root)
>> -        except KeyError:
>> -            self.tftp_root = ''
>> -
>> -        try:
>> -            self.kernel_args = os.environ['KVM_TEST_kernel_args']
>> -        except KeyError:
>> -            self.kernel_args = ''
>> -
>> -        try:
>> -            self.finish_program=
>> os.environ['KVM_TEST_finish_program']
>> -        except:
>> -            self.finish_program = None
>> -
>> +        else:
>> +            self.tftp_root = tftp_root
>>
>> -        cdrom_iso = os.environ['KVM_TEST_cdrom']
>> -        self.unattended_file =
>> os.environ['KVM_TEST_unattended_file']
>> +        self.kernel_args = os.environ.get('KVM_TEST_kernel_args',
>> '')
>> +        self.finish_program=
>> os.environ.get('KVM_TEST_finish_program', '')
>> +        cdrom_iso = os.environ.get('KVM_TEST_cdrom')
>> +        self.unattended_file =
>> os.environ.get('KVM_TEST_unattended_file')
>>
>> -        self.qemu_img_bin = os.environ['KVM_TEST_qemu_img_binary']
>> +        self.qemu_img_bin =
>> os.environ.get('KVM_TEST_qemu_img_binary')
>>          if not os.path.isabs(self.qemu_img_bin):
>>              self.qemu_img_bin = os.path.join(kvm_test_dir,
>> self.qemu_img_bin)
>>          self.cdrom_iso = os.path.join(kvm_test_dir, cdrom_iso)
>>          self.floppy_mount = tempfile.mkdtemp(prefix='floppy_',
>> dir='/tmp')
>>          self.cdrom_mount = tempfile.mkdtemp(prefix='cdrom_',
>> dir='/tmp')
>> -        self.floppy_img = os.path.join(images_dir, 'floppy.img')
>> +        flopy_name = os.path.basename(os.environ['KVM_TEST_floppy'])
>> +        self.floppy_img = os.path.join(images_dir, flopy_name)
>> +
>> +        self.pxe_dir = os.environ.get('KVM_TEST_pxe_dir', '')
>> +        self.pxe_image = os.environ.get('KVM_TEST_pxe_image', '')
>> +        self.pxe_initrd = os.environ.get('KVM_TEST_pxe_initrd', '')
>>
>>
>>      def create_boot_floppy(self):
>> @@ -94,9 +90,15 @@ class UnattendedInstall(object):
>>                  setup_file_dest = os.path.join(self.floppy_mount,
>> setup_file)
>>                  shutil.copyfile(setup_file_path, setup_file_dest)
>>              elif self.unattended_file.endswith('.ks'):
>> +                # Red Hat kickstart install
>>                  dest_fname = 'ks.cfg'
>>              elif self.unattended_file.endswith('.xml'):
>> -                dest_fname = "autounattend.xml"
>> +                if  self.tftp_root is '':
>> +                    # Windows unattended install
>> +                    dest_fname = "autounattend.xml"
>> +                else:
>> +                    # SUSE autoyast install
>> +                    dest_fname = "autoinst.xml"
>>
>>              dest = os.path.join(self.floppy_mount, dest_fname)
>>
>> @@ -166,21 +168,20 @@ class UnattendedInstall(object):
>>                  raise SetupError('Could not mount CD image %s.' %
>>                                   self.cdrom_iso)
>>
>> -            p = os.path.join('images', 'pxeboot')
>> -            pxe_dir = os.path.join(self.cdrom_mount, p)
>> -            pxe_image = os.path.join(pxe_dir, 'vmlinuz')
>> -            pxe_initrd = os.path.join(pxe_dir, 'initrd.img')
>> +            pxe_dir = os.path.join(self.cdrom_mount, self.pxe_dir)
>> +            pxe_image = os.path.join(pxe_dir, self.pxe_image)
>> +            pxe_initrd = os.path.join(pxe_dir, self.pxe_initrd)
>>
>>              if not os.path.isdir(pxe_dir):
>>                  raise SetupError('The ISO image does not have a %s
>> dir. The '
>>                                   'script assumes that the cd has a %s
>> dir '
>>                                   'where to search for the vmlinuz
>> image.' %
>> -                                 (p, p))
>> +                                 (self.pxe_dir, self.pxe_dir))
>>
>>              if not os.path.isfile(pxe_image) or not
>> os.path.isfile(pxe_initrd):
>>                  raise SetupError('The location %s is lacking either a
>> vmlinuz '
>>                                   'or a initrd.img file. Cannot find a
>> PXE '
>> -                                 'image to proceed.' % pxe_dir)
>> +                                 'image to proceed.' % self.pxe_dir)
>>
>>              tftp_image = os.path.join(self.tftp_root, 'vmlinuz')
>>              tftp_initrd = os.path.join(self.tftp_root, 'initrd.img')
>> @@ -239,6 +240,9 @@ class UnattendedInstall(object):
>>          print "    floppy_mount: " + str(self.floppy_mount)
>>          print "    floppy_img: " + str(self.floppy_img)
>>          print "    finish_program: " + str(self.finish_program)
>> +        print "    pxe_dir: " + str(self.pxe_dir)
>> +        print "    pxe_image: " + str(self.pxe_image)
>> +        print "    pxe_initrd: " + str(self.pxe_initrd)
>>
>>          self.create_boot_floppy()
>>          if self.tftp_root:
>> diff --git a/client/tests/kvm/tests/unattended_install.py
>> b/client/tests/kvm/tests/unattended_install.py
>> index e3df72a..ee587a8 100644
>> --- a/client/tests/kvm/tests/unattended_install.py
>> +++ b/client/tests/kvm/tests/unattended_install.py
>> @@ -13,34 +13,34 @@ def run_unattended_install(test, params, env):
>>      @param params: Dictionary with the test parameters.
>>      @param env: Dictionary with test environment.
>>      """
>> +    buf = 1024
>>      vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
>>
>> -    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -    server.bind(('', 12323))
>> -    server.listen(1)
>> +    port =
>> vm.get_port(int(params.get("guest_port_unattended_install")))
>> +    addr = ('localhost', port)
>>
>>      install_timeout = float(params.get("timeout", 3000))
>>      logging.info("Starting unattended install watch process. "
>>                   "Timeout set to %ds (%d min)", install_timeout,
>>                   install_timeout/60)
>>      start_time = time.time()
>> -
>> -    while True:
>> -        server.settimeout(install_timeout)
>> +    time_elapsed = 0
>> +    while time_elapsed < install_timeout:
>> +        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>          try:
>> -            (client, addr) = server.accept()
>> -        except socket.timeout:
>> -            server.close()
>> -            raise error.TestFail('Timeout elapsed while waiting for
>> install to '
>> -                                 'finish.')
>> -        msg = client.recv(1024)
>> -        logging.debug("Received '%s' from %s", msg, addr)
>> -        if msg == 'done':
>> -            end_time = time.time()
>> -            time_elapsed = int(end_time - start_time)
>> -            logging.info('Guest reported successful installation
>> after %ds '
>> -                         '(%d min)', time_elapsed, time_elapsed/60)
>> -            server.close()
>> -            break
>> -        else:
>> -            logging.error('Got invalid string from client: %s.' %
>> msg)
>> +            client.connect(addr)
>> +            msg = client.recv(1024)
>> +            if msg == 'done':
>> +                break
>> +        finally:
>> +            time.sleep(1)
>> +            client.close()
>> +        end_time = time.time()
>> +        time_elapsed = int(end_time - start_time)
>> +
>> +    if time_elapsed < install_timeout:
>> +        logging.info('Guest reported successful installation after
>> %ds '
>> +                     '(%d min)', time_elapsed, time_elapsed/60)
>> +    else:
>> +        raise error.TestFail('Timeout elapsed while waiting for
>> install to '
>> +                             'finish.')
>> diff --git a/client/tests/kvm/tests_base.cfg.sample
>> b/client/tests/kvm/tests_base.cfg.sample
>> index beae786..c76470d 100644
>> --- a/client/tests/kvm/tests_base.cfg.sample
>> +++ b/client/tests/kvm/tests_base.cfg.sample
>> @@ -70,6 +70,8 @@ variants:
>>          floppy = "images/floppy.img"
>>          extra_params += " -boot d"
>>          nic_mode = user
>> +        redirs += " unattended_install"
>> +        guest_port_unattended_install = 12323
>>
>>      - boot:         install setup unattended_install
>>          type = boot
>> @@ -337,6 +339,9 @@ variants:
>>                  no setup
>>                  shell_prompt = "^\[.*\][\#\$]\s*$"
>>                  unattended_install:
>> +                    pxe_dir = "images/pxeboot"
>> +                    pxe_image = "vmlinuz"
>> +                    pxe_initrd = "initrd.img"
>>                      tftp = "images/tftpboot"
>>                      extra_params += " -bootp /pxelinux.0 -boot n"
>>                      kernel_args = "ks=floppy nicdelay=60"
>> @@ -352,10 +357,12 @@ variants:
>>                              steps = Fedora-8-i386.steps
>>                          unattended_install:
>>                              unattended_file = unattended/Fedora-8.ks
>> +                            tftp = "images/f8-32/tftpboot"
>> +                            floppy = "images/f8-32floppy.img"
>>
>>                      - 8.64:
>>                          no setup
>> -                        image_name = fc8-64
>> +                        image_name = f8-64
>>                          cdrom = linux/Fedora-8-x86_64-DVD.iso
>>                          md5sum = 2cb231a86709dec413425fd2f8bf5295
>>                          md5sum_1m = 145f6414e19492649a56c89f0a45e719
>> @@ -363,9 +370,11 @@ variants:
>>                              steps = Fedora-8-64.steps
>>                          unattended_install:
>>                              unattended_file = unattended/Fedora-8.ks
>> +                            tftp = "images/f8-64/tftpboot"
>> +                            floppy = "images/f8-64floppy.img"
>
> Is this intentional or a typo?
> tftp is in a subdir of images/ but floppy is directly under images/.
> Looks intentional but I'm just making sure.
>
>>
>>                      - 9.32:
>> -                        image_name = fc9-32
>> +                        image_name = f9-32
>>                          cdrom = linux/Fedora-9-i386-DVD.iso
>>                          md5sum = 72601f685ea8c808c303353d8bf4d307
>>                          md5sum_1m = f24fa25689e5863f1b99984c6feb787f
>> @@ -373,9 +382,11 @@ variants:
>>                              steps = Fedora-9-i386.steps
>>                          unattended_install:
>>                              unattended_file = unattended/Fedora-9.ks
>> +                            tftp = "images/f9-32/tftpboot"
>> +                            floppy = "images/f9-32floppy.img"
>>
>>                      - 9.64:
>> -                        image_name = fc9-64
>> +                        image_name = f9-64
>>                          cdrom = linux/Fedora-9-x86_64-DVD.iso
>>                          md5sum = 05b2ebeed273ec54d6f9ed3d61ea4c96
>>                          md5sum_1m = 9822ab5097e37e8fe306ef2192727db4
>> @@ -383,25 +394,31 @@ variants:
>>                              steps = Fedora-9-64.steps
>>                          unattended_install:
>>                              unattended_file = unattended/Fedora-9.ks
>> +                            tftp = "images/f9-64/tftpboot"
>> +                            floppy = "images/f9-64floppy.img"
>>
>>                      - 10.32:
>> -                        image_name = fc10-32
>> +                        image_name = f10-32
>>                          cdrom = linux/Fedora-10-i386-DVD.iso
>>                          md5sum = 27e581edb392728c4a07d00d3fc5ced0
>>                          md5sum_1m = bd67c68bdf595e4ba7131ec702159181
>>                          unattended_install:
>>                              unattended_file =
>> unattended/Fedora-10.ks
>> +                            tftp = "images/f10-32/tftpboot"
>> +                            floppy = "images/f10-32floppy.img"
>>
>>                      - 10.64:
>> -                        image_name = fc10-64
>> +                        image_name = f10-64
>>                          cdrom = linux/Fedora-10-x86_64-DVD.iso
>>                          sha1sum =
>> f1e5ae7db6a1ba227de7294c4112385922388648
>>                          md5sum_1m = 732857cbf40c80c34683e874601d982c
>>                          unattended_install:
>>                              unattended_file =
>> unattended/Fedora-10.ks
>> +                            tftp = "images/f10-64/tftpboot"
>> +                            floppy = "images/f10-64floppy.img"
>>
>>                      - 11.32:
>> -                        image_name = fc11-32
>> +                        image_name = f11-32
>>                          cdrom = linux/Fedora-11-i386-DVD.iso
>>                          md5sum = e3b1e2d1ba42aa4705fa5f41771b3927
>>                          md5sum_1m = dc8ddf90648c247339c721395aa49714
>> @@ -409,30 +426,38 @@ variants:
>>                              steps = Fedora-11-32.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/Fedora-11.ks
>> +                            tftp = "images/f11-32/tftpboot"
>> +                            floppy = "images/f11-32floppy.img"
>>
>>                      - 11.64:
>> -                        image_name = fc11-64
>> +                        image_name = f11-64
>>                          cdrom = linux/Fedora-11-x86_64-DVD.iso
>>                          md5sum = 9d419844adeb93120215fe7505c9bce8
>>                          md5sum_1m = 405ee05e2387a2e4328b008d5bcbdd1e
>>                          unattended_install:
>>                              unattended_file =
>> unattended/Fedora-11.ks
>> +                            tftp = "images/f11-64/tftpboot"
>> +                            floppy = "images/f11-64floppy.img"
>>
>>                      - 12.32:
>> -                        image_name = fc12-32
>> +                        image_name = f12-32
>>                          cdrom = linux/Fedora-12-i386-DVD.iso
>>                          md5sum = 2c4c1c0d09f2fbcfd8ee6a0c5542eeb2
>>                          md5sum_1m = eee935d7f0cf2ef03f6ddce3a2a50050
>>                          unattended_install:
>>                              unattended_file =
>> unattended/Fedora-12.ks
>> +                            tftp = "images/f12-32/tftpboot"
>> +                            floppy = "images/f12-32floppy.img"
>>
>>                      - 12.64:
>> -                        image_name = fc12-64
>> +                        image_name = f12-64
>>                          cdrom = linux/Fedora-12-x86_64-DVD.iso
>>                          md5sum = 6dd31e292cc2eb1140544e9b1ba61c56
>>                          md5sum_1m = 514efbd7698b55ff6768c8605438bfc5
>>                          unattended_install:
>>                              unattended_file =
>> unattended/Fedora-12.ks
>> +                            tftp = "images/f12-64/tftpboot"
>> +                            floppy = "images/f12-64floppy.img"
>>
>>              - DSL-4.2.5:
>>                  no setup dbench bonnie linux_s3
>> @@ -517,6 +542,9 @@ variants:
>>                  block_hotplug:
>>                      modprobe_module = acpiphp
>>                  unattended_install:
>> +                    pxe_dir = "images/pxeboot"
>> +                    pxe_image = "vmlinuz"
>> +                    pxe_initrd = "initrd.img"
>>                      tftp = "images/tftpboot"
>>                      extra_params += " -bootp /pxelinux.0 -boot n"
>>                      kernel_args = "ks=floppy nicdelay=60"
>> @@ -533,6 +561,8 @@ variants:
>>                              steps=RHEL-3.9-i386.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-3-series.ks
>> +                            tftp = "images/rhel39-32/tftpboot"
>> +                            floppy = "images/rhel39-32floppy.img"
>>
>>                      - 3.9.x86_64:
>>                          no setup autotest linux_s3
>> @@ -545,6 +575,8 @@ variants:
>>                              steps=RHEL-3.9-x86_64.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-3-series.ks
>> +                            tftp = "images/rhel39-64/tftpboot"
>> +                            floppy = "images/rhel39-64floppy.img"
>>
>>                      - 4.7.i386:
>>                          no setup autotest
>> @@ -556,6 +588,8 @@ variants:
>>                              steps=RHEL-4.7-i386.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-4-series.ks
>> +                            tftp = "images/rhel47-32/tftpboot"
>> +                            floppy = "images/rhel47-32floppy.img"
>>
>>                      - 4.7.x86_64:
>>                          no setup autotest
>> @@ -567,6 +601,8 @@ variants:
>>                              steps=RHEL-4.7-x86_64.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-4-series.ks
>> +                            tftp = "images/rhel47-64/tftpboot"
>> +                            floppy = "images/rhel47-64floppy.img"
>>
>>                      - 4.8.i386:
>>                          no setup autotest
>> @@ -576,6 +612,8 @@ variants:
>>                          md5sum_1m = 969c197402b9058f28a278c1f807d15b
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-4-series.ks
>> +                            tftp = "images/rhel48-32/tftpboot"
>> +                            floppy = "images/rhel48-32floppy.img"
>>
>>                      - 4.8.x86_64:
>>                          no setup autotest
>> @@ -585,6 +623,8 @@ variants:
>>                          md5sum_1m = b11ac0ef7fd345ad712966972db63886
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-4-series.ks
>> +                            tftp = "images/rhel48-64/tftpboot"
>> +                            floppy = "images/rhel48-64floppy.img"
>>
>>                      - 5.3.i386:
>>                          no setup
>> @@ -596,6 +636,8 @@ variants:
>>                              steps=RHEL-5.3-i386.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-5-series.ks
>> +                            tftp = "images/rhel53-32/tftpboot"
>> +                            floppy = "images/rhel53-32floppy.img"
>>
>>                      - 5.3.x86_64:
>>                          no setup
>> @@ -607,6 +649,8 @@ variants:
>>                              steps=RHEL-5.3-x86_64.steps
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-5-series.ks
>> +                            tftp = "images/rhel53-64/tftpboot"
>> +                            floppy = "images/rhel53-64floppy.img"
>>
>>                      - 5.4.i386:
>>                          no setup
>> @@ -616,6 +660,8 @@ variants:
>>                          md5sum_1m = 0dbeb8f58d213752d8c029e8601abfbb
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-5-series.ks
>> +                            tftp = "images/rhel54-32/tftpboot"
>> +                            floppy = "images/rhel54-32floppy.img"
>>
>>                      - 5.4.x86_64:
>>                          no setup
>> @@ -625,6 +671,8 @@ variants:
>>                          md5sum_1m = 3e74112003e88a966754849dbb8f5c3f
>>                          unattended_install:
>>                              unattended_file =
>> unattended/RHEL-5-series.ks
>> +                            tftp = "images/rhel54-64/tftpboot"
>> +                            floppy = "images/rhel54-64floppy.img"
>>
>>      # Windows section
>>      - @Windows:
>> diff --git a/client/tests/kvm/unattended/Fedora-10.ks
>> b/client/tests/kvm/unattended/Fedora-10.ks
>> index 41bb391..61e59d7 100644
>> --- a/client/tests/kvm/unattended/Fedora-10.ks
>> +++ b/client/tests/kvm/unattended/Fedora-10.ks
>> @@ -28,10 +28,10 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>> +
>> diff --git a/client/tests/kvm/unattended/Fedora-11.ks
>> b/client/tests/kvm/unattended/Fedora-11.ks
>> index 65e42c3..0be7d06 100644
>> --- a/client/tests/kvm/unattended/Fedora-11.ks
>> +++ b/client/tests/kvm/unattended/Fedora-11.ks
>> @@ -28,11 +28,10 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>>  %end
>> diff --git a/client/tests/kvm/unattended/Fedora-12.ks
>> b/client/tests/kvm/unattended/Fedora-12.ks
>> index 65e42c3..0be7d06 100644
>> --- a/client/tests/kvm/unattended/Fedora-12.ks
>> +++ b/client/tests/kvm/unattended/Fedora-12.ks
>> @@ -28,11 +28,10 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>>  %end
>> diff --git a/client/tests/kvm/unattended/Fedora-8.ks
>> b/client/tests/kvm/unattended/Fedora-8.ks
>> index 41bb391..f4a872d 100644
>> --- a/client/tests/kvm/unattended/Fedora-8.ks
>> +++ b/client/tests/kvm/unattended/Fedora-8.ks
>> @@ -28,10 +28,9 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>> diff --git a/client/tests/kvm/unattended/Fedora-9.ks
>> b/client/tests/kvm/unattended/Fedora-9.ks
>> index 41bb391..f4a872d 100644
>> --- a/client/tests/kvm/unattended/Fedora-9.ks
>> +++ b/client/tests/kvm/unattended/Fedora-9.ks
>> @@ -28,10 +28,9 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>> diff --git a/client/tests/kvm/unattended/RHEL-3-series.ks
>> b/client/tests/kvm/unattended/RHEL-3-series.ks
>> index 2fcc96e..ad748cb 100644
>> --- a/client/tests/kvm/unattended/RHEL-3-series.ks
>> +++ b/client/tests/kvm/unattended/RHEL-3-series.ks
>> @@ -27,10 +27,10 @@ import socket, os
>>  os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +os.system('echo 0 > /selinux/enforce')
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>> diff --git a/client/tests/kvm/unattended/RHEL-4-series.ks
>> b/client/tests/kvm/unattended/RHEL-4-series.ks
>> index 233c98f..ce4a430 100644
>> --- a/client/tests/kvm/unattended/RHEL-4-series.ks
>> +++ b/client/tests/kvm/unattended/RHEL-4-series.ks
>> @@ -28,10 +28,9 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>> diff --git a/client/tests/kvm/unattended/RHEL-5-series.ks
>> b/client/tests/kvm/unattended/RHEL-5-series.ks
>> index 41bb391..f4a872d 100644
>> --- a/client/tests/kvm/unattended/RHEL-5-series.ks
>> +++ b/client/tests/kvm/unattended/RHEL-5-series.ks
>> @@ -28,10 +28,9 @@ os.system('dhclient')
>>  os.system('chkconfig sshd on')
>>  os.system('iptables -F')
>>  os.system('echo 0 > /selinux/enforce')
>> -port = 12323
>> -buf = 1024
>> -addr = ('10.0.2.2', port)
>> -client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> -client.connect(addr)
>> -client.sendto('done', addr)
>> +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('', 12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>>  client.close()
>> diff --git a/client/tests/kvm/unattended/Sles11-64-autoinst.xml
>> b/client/tests/kvm/unattended/Sles11-64-autoinst.xml
>> new file mode 100644
>> index 0000000..93e5685
>> --- /dev/null
>> +++ b/client/tests/kvm/unattended/Sles11-64-autoinst.xml
>> @@ -0,0 +1,898 @@
>> +<?xml version="1.0"?>
>> +<!DOCTYPE profile>
>> +<profile xmlns="http://www.suse.com/1.0/yast2ns";
>> xmlns:config="http://www.suse.com/1.0/configns";>
>> +  <add-on/>
>> +  <bootloader>
>> +    <global>
>> +      <activate>true</activate>
>> +      <boot_boot>false</boot_boot>
>> +      <boot_extended>false</boot_extended>
>> +      <boot_mbr>false</boot_mbr>
>> +      <boot_root>true</boot_root>
>> +      <debug>false</debug>
>> +      <default>SUSE Linux Enterprise Server 11 -
>> 2.6.27.19-5</default>
>> +      <generic_mbr>true</generic_mbr>
>> +      <hiddenmenu>false</hiddenmenu>
>> +      <lines_cache_id>2</lines_cache_id>
>> +      <timeout config:type="integer">8</timeout>
>> +      <trusted_grub>false</trusted_grub>
>> +    </global>
>> +    <initrd_modules config:type="list">
>> +      <initrd_module>
>> +        <module>processor</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>thermal</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>ata_piix</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>ata_generic</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>piix</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>ide_pci_generic</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>fan</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>jbd</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>ext3</module>
>> +      </initrd_module>
>> +      <initrd_module>
>> +        <module>edd</module>
>> +      </initrd_module>
>> +    </initrd_modules>
>> +    <loader_type>grub</loader_type>
>> +    <sections config:type="list"/>
>> +  </bootloader>
>> +  <ca_mgm>
>> +    <CAName>YaST_Default_CA</CAName>
>> +    <ca_commonName>YaST Default CA (linux-h1i4)</ca_commonName>
>> +    <country>US</country>
>> +    <password>ENTER PASSWORD HERE</password>
>> +    <server_commonName>linux-h1i4.site</server_commonName>
>> +    <server_email>postmaster@site</server_email>
>> +    <takeLocalServerName
>> config:type="boolean">false</takeLocalServerName>
>> +  </ca_mgm>
>> +  <deploy_image>
>> +    <image_installation
>> config:type="boolean">false</image_installation>
>> +  </deploy_image>
>> +  <firewall>
>> +    <FW_ALLOW_FW_BROADCAST_DMZ>no</FW_ALLOW_FW_BROADCAST_DMZ>
>> +    <FW_ALLOW_FW_BROADCAST_EXT>no</FW_ALLOW_FW_BROADCAST_EXT>
>> +    <FW_ALLOW_FW_BROADCAST_INT>no</FW_ALLOW_FW_BROADCAST_INT>
>> +    <FW_CONFIGURATIONS_EXT>sshd</FW_CONFIGURATIONS_EXT>
>> +    <FW_DEV_DMZ></FW_DEV_DMZ>
>> +    <FW_DEV_EXT>any</FW_DEV_EXT>
>> +    <FW_DEV_INT></FW_DEV_INT>
>> +    <FW_IGNORE_FW_BROADCAST_DMZ>no</FW_IGNORE_FW_BROADCAST_DMZ>
>> +    <FW_IGNORE_FW_BROADCAST_EXT>yes</FW_IGNORE_FW_BROADCAST_EXT>
>> +    <FW_IGNORE_FW_BROADCAST_INT>no</FW_IGNORE_FW_BROADCAST_INT>
>> +    <FW_IPSEC_TRUST>no</FW_IPSEC_TRUST>
>> +    <FW_LOAD_MODULES>nf_conntrack_netbios_ns</FW_LOAD_MODULES>
>> +    <FW_LOG_ACCEPT_ALL>no</FW_LOG_ACCEPT_ALL>
>> +    <FW_LOG_ACCEPT_CRIT>yes</FW_LOG_ACCEPT_CRIT>
>> +    <FW_LOG_DROP_ALL>no</FW_LOG_DROP_ALL>
>> +    <FW_LOG_DROP_CRIT>yes</FW_LOG_DROP_CRIT>
>> +    <FW_MASQUERADE>no</FW_MASQUERADE>
>> +    <FW_PROTECT_FROM_INT>no</FW_PROTECT_FROM_INT>
>> +    <FW_ROUTE>no</FW_ROUTE>
>> +    <enable_firewall config:type="boolean">false</enable_firewall>
>> +    <start_firewall config:type="boolean">false</start_firewall>
>> +  </firewall>
>> +  <general>
>> +    <ask-list config:type="list"/>
>> +    <mode>
>> +      <confirm config:type="boolean">false</confirm>
>> +    </mode>
>> +    <mouse>
>> +      <id>none</id>
>> +    </mouse>
>> +    <proposals config:type="list"/>
>> +    <signature-handling>
>> +      <accept_file_without_checksum
>> config:type="boolean">true</accept_file_without_checksum>
>> +      <accept_non_trusted_gpg_key
>> config:type="boolean">true</accept_non_trusted_gpg_key>
>> +      <accept_unknown_gpg_key
>> config:type="boolean">true</accept_unknown_gpg_key>
>> +      <accept_unsigned_file
>> config:type="boolean">true</accept_unsigned_file>
>> +      <accept_verification_failed
>> config:type="boolean">false</accept_verification_failed>
>> +      <import_gpg_key config:type="boolean">true</import_gpg_key>
>> +    </signature-handling>
>> +  </general>
>> +  <groups config:type="list">
>> +    <group>
>> +      <gid>1000</gid>
>> +
>> <group_password>$1$9ibtMhyS$uY16P2nxSWgejk4Ffz/LB0</group_password>
>> +      <groupname>users</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>19</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>floppy</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>1</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>bin</groupname>
>> +      <userlist>daemon</userlist>
>> +    </group>
>> +    <group>
>> +      <gid>41</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>xok</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>65533</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>nobody</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>43</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>modem</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>5</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>tty</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>7</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>lp</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>104</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>uuidd</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>51</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>postfix</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>111</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>gdm</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>65534</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>nogroup</groupname>
>> +      <userlist>nobody</userlist>
>> +    </group>
>> +    <group>
>> +      <gid>101</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>messagebus</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>59</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>maildrop</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>33</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>video</groupname>
>> +      <userlist>linux</userlist>
>> +    </group>
>> +    <group>
>> +      <gid>3</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>sys</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>15</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>shadow</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>20</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>cdrom</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>21</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>console</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>42</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>trusted</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>102</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>haldaemon</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>16</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>dialout</groupname>
>> +      <userlist>linux</userlist>
>> +    </group>
>> +    <group>
>> +      <gid>106</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>polkituser</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>10</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>wheel</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>107</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>pulse</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>8</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>www</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>40</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>games</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>6</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>disk</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>17</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>audio</groupname>
>> +      <userlist>pulse</userlist>
>> +    </group>
>> +    <group>
>> +      <gid>110</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>suse-ncc</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>49</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>ftp</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>25</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>at</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>9</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>kmem</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>32</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>public</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>12</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>mail</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>0</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>root</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>2</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>daemon</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>103</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>sfcb</groupname>
>> +      <userlist>root</userlist>
>> +    </group>
>> +    <group>
>> +      <gid>105</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>ntp</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>14</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>uucp</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>109</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>pulse-access</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>71</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>ntadmin</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>62</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>man</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>108</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>pulse-rt</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>22</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>utmp</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>13</gid>
>> +      <group_password>x</group_password>
>> +      <groupname>news</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +    <group>
>> +      <gid>65</gid>
>> +      <group_password>!</group_password>
>> +      <groupname>sshd</groupname>
>> +      <userlist></userlist>
>> +    </group>
>> +  </groups>
>> +  <host>
>> +    <hosts config:type="list">
>> +      <hosts_entry>
>> +        <host_address>127.0.0.1</host_address>
>> +        <names config:type="list">
>> +          <name>localhost</name>
>> +        </names>
>> +      </hosts_entry>
>> +      <hosts_entry>
>> +        <host_address>::1</host_address>
>> +        <names config:type="list">
>> +          <name>localhost ipv6-localhost ipv6-loopback</name>
>> +        </names>
>> +      </hosts_entry>
>> +      <hosts_entry>
>> +        <host_address>fe00::0</host_address>
>> +        <names config:type="list">
>> +          <name>ipv6-localnet</name>
>> +        </names>
>> +      </hosts_entry>
>> +      <hosts_entry>
>> +        <host_address>ff00::0</host_address>
>> +        <names config:type="list">
>> +          <name>ipv6-mcastprefix</name>
>> +        </names>
>> +      </hosts_entry>
>> +      <hosts_entry>
>> +        <host_address>ff02::1</host_address>
>> +        <names config:type="list">
>> +          <name>ipv6-allnodes</name>
>> +        </names>
>> +      </hosts_entry>
>> +      <hosts_entry>
>> +        <host_address>ff02::2</host_address>
>> +        <names config:type="list">
>> +          <name>ipv6-allrouters</name>
>> +        </names>
>> +      </hosts_entry>
>> +      <hosts_entry>
>> +        <host_address>ff02::3</host_address>
>> +        <names config:type="list">
>> +          <name>ipv6-allhosts</name>
>> +        </names>
>> +      </hosts_entry>
>> +    </hosts>
>> +  </host>
>> +  <iscsi-client>
>> +    <version>1.0</version>
>> +  </iscsi-client>
>> +  <keyboard>
>> +    <keymap>english-us</keymap>
>> +  </keyboard>
>> +  <language>
>> +    <language>en_US</language>
>> +    <languages>en_US</languages>
>> +  </language>
>> +  <ldap>
>> +    <base_config_dn></base_config_dn>
>> +    <bind_dn></bind_dn>
>> +    <create_ldap config:type="boolean">false</create_ldap>
>> +    <file_server config:type="boolean">false</file_server>
>> +    <ldap_domain>dc=example,dc=com</ldap_domain>
>> +    <ldap_server>127.0.0.1</ldap_server>
>> +    <ldap_tls config:type="boolean">true</ldap_tls>
>> +    <ldap_v2 config:type="boolean">false</ldap_v2>
>> +    <login_enabled config:type="boolean">true</login_enabled>
>> +    <member_attribute>member</member_attribute>
>> +    <nss_base_group></nss_base_group>
>> +    <nss_base_passwd></nss_base_passwd>
>> +    <nss_base_shadow></nss_base_shadow>
>> +    <pam_password>exop</pam_password>
>> +    <start_autofs config:type="boolean">false</start_autofs>
>> +    <start_ldap config:type="boolean">false</start_ldap>
>> +  </ldap>
>> +  <login_settings/>
>> +  <networking>
>> +    <dns>
>> +      <dhcp_hostname config:type="boolean">true</dhcp_hostname>
>> +      <resolv_conf_policy>auto</resolv_conf_policy>
>> +    </dns>
>> +    <interfaces config:type="list">
>> +      <interface>
>> +        <bootproto>dhcp</bootproto>
>> +        <device>eth0</device>
>> +        <startmode>auto</startmode>
>> +        <usercontrol>no</usercontrol>
>> +      </interface>
>> +    </interfaces>
>> +    <managed config:type="boolean">false</managed>
>> +    <routing>
>> +      <ip_forward config:type="boolean">false</ip_forward>
>> +    </routing>
>> +  </networking>
>> +  <nis>
>> +    <netconfig_policy>auto</netconfig_policy>
>> +    <nis_broadcast config:type="boolean">false</nis_broadcast>
>> +    <nis_broken_server
>> config:type="boolean">false</nis_broken_server>
>> +    <nis_local_only config:type="boolean">false</nis_local_only>
>> +    <start_autofs config:type="boolean">false</start_autofs>
>> +    <start_nis config:type="boolean">false</start_nis>
>> +  </nis>
>> +  <partitioning config:type="list">
>> +    <drive>
>> +      <initialize config:type="boolean">true</initialize>
>> +      <partitions config:type="list"/>
>> +      <pesize></pesize>
>> +      <type config:type="symbol">CT_DISK</type>
>> +      <use>all</use>
>> +    </drive>
>> +  </partitioning>
>> +  <proxy>
>> +    <enabled config:type="boolean">false</enabled>
>> +    <ftp_proxy></ftp_proxy>
>> +    <http_proxy></http_proxy>
>> +    <https_proxy></https_proxy>
>> +    <no_proxy>localhost, 127.0.0.1</no_proxy>
>> +    <proxy_password></proxy_password>
>> +    <proxy_user></proxy_user>
>> +  </proxy>
>> +  <report>
>> +    <errors>
>> +      <log config:type="boolean">true</log>
>> +      <show config:type="boolean">true</show>
>> +      <timeout config:type="integer">10</timeout>
>> +    </errors>
>> +    <messages>
>> +      <log config:type="boolean">true</log>
>> +      <show config:type="boolean">true</show>
>> +      <timeout config:type="integer">10</timeout>
>> +    </messages>
>> +    <warnings>
>> +      <log config:type="boolean">true</log>
>> +      <show config:type="boolean">true</show>
>> +      <timeout config:type="integer">10</timeout>
>> +    </warnings>
>> +    <yesno_messages>
>> +      <log config:type="boolean">true</log>
>> +      <show config:type="boolean">true</show>
>> +      <timeout config:type="integer">10</timeout>
>> +    </yesno_messages>
>> +  </report>
>> +  <runlevel>
>> +    <default>3</default>
>> +  </runlevel>
>> +  <scripts>
>> +    <post-scripts config:type="list">
>> +      <script>
>> +        <debug config:type="boolean">true</debug>
>> +        <feedback config:type="boolean">false</feedback>
>> +        <filename>server</filename>
>> +        <interpreter>python</interpreter>
>> +        <location></location>
>> +        <network_needed config:type="boolean">true</network_needed>
>> +        <source><![CDATA[import socket, os
>> +os.system('dhclient')
>> +os.system('iptables -F')
>> +server=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> +server.bind(('',12323))
>> +server.listen(1)
>> +(client, addr) = server.accept()
>> +client.send("done")
>> +client.close()
>> +]]></source>
>> +      </script>
>> +    </post-scripts>
>> +  </scripts>
>> +  <software>
>> +    <packages config:type="list">
>> +      <package>dhcp-client</package>
>> +    </packages>
>> +    <patterns config:type="list">
>> +      <pattern>Basis-Devel</pattern>
>> +      <pattern>base</pattern>
>> +      <pattern>laptop</pattern>
>> +      <pattern>Minimal</pattern>
>> +    </patterns>
>> +  </software>
>> +  <timezone>
>> +    <hwclock>UTC</hwclock>
>> +    <timezone>America/New_York</timezone>
>> +  </timezone>
>> +  <user_defaults>
>> +    <group>100</group>
>> +    <groups>video,dialout</groups>
>> +    <home>/home</home>
>> +    <inactive>-1</inactive>
>> +    <shell>/bin/bash</shell>
>> +    <skel>/etc/skel</skel>
>> +  </user_defaults>
>> +  <users config:type="list">
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>linux</fullname>
>> +      <gid>100</gid>
>> +      <home>/home/linux</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/bash</shell>
>> +      <uid>1000</uid>
>> +
>> <user_password>$2a$05$FAAcDkjOVQxuDKvppCzcROelTVQeDSr9FIKSwP02wrg7SBulFkeXK</user_password>
>> +      <username>linux</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Games account</fullname>
>> +      <gid>100</gid>
>> +      <home>/var/games</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>12</uid>
>> +      <user_password>*</user_password>
>> +      <username>games</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>bin</fullname>
>> +      <gid>1</gid>
>> +      <home>/bin</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>1</uid>
>> +      <user_password>*</user_password>
>> +      <username>bin</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>nobody</fullname>
>> +      <gid>65533</gid>
>> +      <home>/var/lib/nobody</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>65534</uid>
>> +      <user_password>*</user_password>
>> +      <username>nobody</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Printing daemon</fullname>
>> +      <gid>7</gid>
>> +      <home>/var/spool/lpd</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>4</uid>
>> +      <user_password>*</user_password>
>> +      <username>lp</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>User for uuidd</fullname>
>> +      <gid>104</gid>
>> +      <home>/var/run/uuidd</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>102</uid>
>> +      <user_password>*</user_password>
>> +      <username>uuidd</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Postfix Daemon</fullname>
>> +      <gid>51</gid>
>> +      <home>/var/spool/postfix</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>51</uid>
>> +      <user_password>*</user_password>
>> +      <username>postfix</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Novell Customer Center User</fullname>
>> +      <gid>110</gid>
>> +      <home>/var/lib/YaST2/suse-ncc-fakehome</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/bash</shell>
>> +      <uid>105</uid>
>> +      <user_password>*</user_password>
>> +      <username>suse-ncc</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>FTP account</fullname>
>> +      <gid>49</gid>
>> +      <home>/srv/ftp</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>40</uid>
>> +      <user_password>*</user_password>
>> +      <username>ftp</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Gnome Display Manager daemon</fullname>
>> +      <gid>111</gid>
>> +      <home>/var/lib/gdm</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>106</uid>
>> +      <user_password>*</user_password>
>> +      <username>gdm</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Batch jobs daemon</fullname>
>> +      <gid>25</gid>
>> +      <home>/var/spool/atjobs</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/bash</shell>
>> +      <uid>25</uid>
>> +      <user_password>*</user_password>
>> +      <username>at</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>root</fullname>
>> +      <gid>0</gid>
>> +      <home>/root</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>0</uid>
>> +
>> <user_password>$2a$05$6EDh/ymzfFidFVZ9GxPpR.QLaswYgGBxlmCoy0WUo42stJDGcPcxK</user_password>
>> +      <username>root</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Mailer daemon</fullname>
>> +      <gid>12</gid>
>> +      <home>/var/spool/clientmqueue</home>
>> +      <shell>/bin/false</shell>
>> +      <uid>8</uid>
>> +      <user_password>*</user_password>
>> +      <username>mail</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Daemon</fullname>
>> +      <gid>2</gid>
>> +      <home>/sbin</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>2</uid>
>> +      <user_password>*</user_password>
>> +      <username>daemon</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>NTP daemon</fullname>
>> +      <gid>105</gid>
>> +      <home>/var/lib/ntp</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>74</uid>
>> +      <user_password>*</user_password>
>> +      <username>ntp</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Unix-to-Unix CoPy system</fullname>
>> +      <gid>14</gid>
>> +      <home>/etc/uucp</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>10</uid>
>> +      <user_password>*</user_password>
>> +      <username>uucp</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>User for D-Bus</fullname>
>> +      <gid>101</gid>
>> +      <home>/var/run/dbus</home>
>> +      <password_settings>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>100</uid>
>> +      <user_password>*</user_password>
>> +      <username>messagebus</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>User for haldaemon</fullname>
>> +      <gid>102</gid>
>> +      <home>/var/run/hald</home>
>> +      <password_settings>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>101</uid>
>> +      <user_password>*</user_password>
>> +      <username>haldaemon</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>WWW daemon apache</fullname>
>> +      <gid>8</gid>
>> +      <home>/var/lib/wwwrun</home>
>> +      <shell>/bin/false</shell>
>> +      <uid>30</uid>
>> +      <user_password>*</user_password>
>> +      <username>wwwrun</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>Manual pages viewer</fullname>
>> +      <gid>62</gid>
>> +      <home>/var/cache/man</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>13</uid>
>> +      <user_password>*</user_password>
>> +      <username>man</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>PolicyKit</fullname>
>> +      <gid>106</gid>
>> +      <home>/var/run/PolicyKit</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>103</uid>
>> +      <user_password>*</user_password>
>> +      <username>polkituser</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>News system</fullname>
>> +      <gid>13</gid>
>> +      <home>/etc/news</home>
>> +      <shell>/bin/bash</shell>
>> +      <uid>9</uid>
>> +      <user_password>*</user_password>
>> +      <username>news</username>
>> +    </user>
>> +    <user>
>> +      <fullname>SSH daemon</fullname>
>> +      <gid>65</gid>
>> +      <home>/var/lib/sshd</home>
>> +      <password_settings>
>> +        <flag></flag>
>> +        <inact>-1</inact>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/bin/false</shell>
>> +      <uid>71</uid>
>> +      <username>sshd</username>
>> +    </user>
>> +    <user>
>> +      <encrypted config:type="boolean">true</encrypted>
>> +      <fullname>PulseAudio daemon</fullname>
>> +      <gid>107</gid>
>> +      <home>/var/lib/pulseaudio</home>
>> +      <password_settings>
>> +        <max>99999</max>
>> +        <min>0</min>
>> +        <warn>7</warn>
>> +      </password_settings>
>> +      <shell>/sbin/nologin</shell>
>> +      <uid>104</uid>
>> +      <user_password>*</user_password>
>> +      <username>pulse</username>
>> +    </user>
>> +  </users>
>> +  <x11>
>> +    <color_depth config:type="integer">16</color_depth>
>> +    <display_manager>gdm</display_manager>
>> +    <enable_3d config:type="boolean">false</enable_3d>
>> +    <monitor>
>> +      <display>
>> +        <max_hsync config:type="integer">38</max_hsync>
>> +        <max_vsync config:type="integer">60</max_vsync>
>> +        <min_hsync config:type="integer">31</min_hsync>
>> +        <min_vsync config:type="integer">50</min_vsync>
>> +      </display>
>> +      <monitor_device>800X600@60HZ</monitor_device>
>> +      <monitor_vendor>--&gt; VESA</monitor_vendor>
>> +    </monitor>
>> +    <resolution>800x600 (SVGA)</resolution>
>> +    <window_manager>gnome</window_manager>
>> +  </x11>
>> +</profile>
>> diff --git a/client/tests/kvm/unattended/win2003-32.sif
>> b/client/tests/kvm/unattended/win2003-32.sif
>> index 85d4694..f58b0b0 100644
>> --- a/client/tests/kvm/unattended/win2003-32.sif
>> +++ b/client/tests/kvm/unattended/win2003-32.sif
>> @@ -61,4 +61,4 @@
>>      Command2="cmd /c net start telnet"
>>      Command3="cmd /c E:\setuprss.bat"
>>      Command4="cmd /c netsh interface ip set address local dhcp"
>> -    Command5="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe 10.0.2.2"
>> +    Command5="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe"
>> diff --git a/client/tests/kvm/unattended/win2003-64.sif
>> b/client/tests/kvm/unattended/win2003-64.sif
>> index 85d4694..f58b0b0 100644
>> --- a/client/tests/kvm/unattended/win2003-64.sif
>> +++ b/client/tests/kvm/unattended/win2003-64.sif
>> @@ -61,4 +61,4 @@
>>      Command2="cmd /c net start telnet"
>>      Command3="cmd /c E:\setuprss.bat"
>>      Command4="cmd /c netsh interface ip set address local dhcp"
>> -    Command5="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe 10.0.2.2"
>> +    Command5="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe"
>> diff --git a/client/tests/kvm/unattended/win2008-32-autounattend.xml
>> b/client/tests/kvm/unattended/win2008-32-autounattend.xml
>> index e5f244b..c6fafac 100644
>> --- a/client/tests/kvm/unattended/win2008-32-autounattend.xml
>> +++ b/client/tests/kvm/unattended/win2008-32-autounattend.xml
>> @@ -140,7 +140,7 @@
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>>                                       <Order>7</Order>
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>>                       <OOBE>
>> diff --git a/client/tests/kvm/unattended/win2008-64-autounattend.xml
>> b/client/tests/kvm/unattended/win2008-64-autounattend.xml
>> index 68f6fcf..2520a7a 100644
>> --- a/client/tests/kvm/unattended/win2008-64-autounattend.xml
>> +++ b/client/tests/kvm/unattended/win2008-64-autounattend.xml
>> @@ -149,7 +149,7 @@
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>>                                       <Order>7</Order>
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>>                       <OOBE>
>> diff --git a/client/tests/kvm/unattended/win2008-r2-autounattend.xml
>> b/client/tests/kvm/unattended/win2008-r2-autounattend.xml
>> index 68f6fcf..2520a7a 100644
>> --- a/client/tests/kvm/unattended/win2008-r2-autounattend.xml
>> +++ b/client/tests/kvm/unattended/win2008-r2-autounattend.xml
>> @@ -149,7 +149,7 @@
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>>                                       <Order>7</Order>
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>>                       <OOBE>
>> diff --git a/client/tests/kvm/unattended/win7-32-autounattend.xml
>> b/client/tests/kvm/unattended/win7-32-autounattend.xml
>> index e858ce9..c37afb7 100644
>> --- a/client/tests/kvm/unattended/win7-32-autounattend.xml
>> +++ b/client/tests/kvm/unattended/win7-32-autounattend.xml
>> @@ -146,7 +146,7 @@
>>                                       <Order>6</Order>
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                                       <Order>7</Order>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>> diff --git a/client/tests/kvm/unattended/win7-64-autounattend.xml
>> b/client/tests/kvm/unattended/win7-64-autounattend.xml
>> index 1bff3c9..ad047d0 100644
>> --- a/client/tests/kvm/unattended/win7-64-autounattend.xml
>> +++ b/client/tests/kvm/unattended/win7-64-autounattend.xml
>> @@ -146,7 +146,7 @@
>>                                       <Order>6</Order>
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                                       <Order>7</Order>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>> diff --git a/client/tests/kvm/unattended/winvista-32-autounattend.xml
>> b/client/tests/kvm/unattended/winvista-32-autounattend.xml
>> index 443aec6..297c6e5 100644
>> --- a/client/tests/kvm/unattended/winvista-32-autounattend.xml
>> +++ b/client/tests/kvm/unattended/winvista-32-autounattend.xml
>> @@ -147,7 +147,7 @@
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>>                                       <Order>7</Order>
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>>               </component>
>> diff --git a/client/tests/kvm/unattended/winvista-64-autounattend.xml
>> b/client/tests/kvm/unattended/winvista-64-autounattend.xml
>> index ec35cbb..71eae87 100644
>> --- a/client/tests/kvm/unattended/winvista-64-autounattend.xml
>> +++ b/client/tests/kvm/unattended/winvista-64-autounattend.xml
>> @@ -148,7 +148,7 @@
>>                               </SynchronousCommand>
>>                               <SynchronousCommand wcm:action="add">
>>                                       <Order>7</Order>
>> -                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe 10.0.2.2</CommandLine>
>> +                                     <CommandLine>%WINDIR%\System32\cmd /c ping 10.0.2.2 -n 20
>> &#38;&#38; A:\finish.exe</CommandLine>
>>                               </SynchronousCommand>
>>                       </FirstLogonCommands>
>>               </component>
>> diff --git a/client/tests/kvm/unattended/winxp32.sif
>> b/client/tests/kvm/unattended/winxp32.sif
>> index 4711a3d..7562846 100644
>> --- a/client/tests/kvm/unattended/winxp32.sif
>> +++ b/client/tests/kvm/unattended/winxp32.sif
>> @@ -70,4 +70,4 @@
>>  [GuiRunOnce]
>>     Command0="cmd /c E:\setuprss.bat"
>>     Command1="cmd /c netsh interface ip set address local dhcp"
>> -   Command2="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe 10.0.2.2"
>> +   Command2="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe"
>> diff --git a/client/tests/kvm/unattended/winxp64.sif
>> b/client/tests/kvm/unattended/winxp64.sif
>> index 4711a3d..7562846 100644
>> --- a/client/tests/kvm/unattended/winxp64.sif
>> +++ b/client/tests/kvm/unattended/winxp64.sif
>> @@ -70,4 +70,4 @@
>>  [GuiRunOnce]
>>     Command0="cmd /c E:\setuprss.bat"
>>     Command1="cmd /c netsh interface ip set address local dhcp"
>> -   Command2="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe 10.0.2.2"
>> +   Command2="cmd /c ping 10.0.2.2 -n 20 && A:\finish.exe"
>> --
>> 1.6.6.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
> _______________________________________________
> Autotest mailing list
> Autotest@xxxxxxxxxxxxxxx
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>



-- 
Lucas
--
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