usr/src/cmd/auto-install/test/test_auto_install_manifest.py
author Ginnie Wray<virginia.wray@oracle.com>
Fri, 29 Jun 2012 00:42:35 -0600
changeset 1737 c20116627c69
parent 1227 4ecf733307ad
permissions -rw-r--r--
7178513 slim_source unit tests can hose /system/volatile
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     1
#!/usr/bin/python
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     2
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     3
# CDDL HEADER START
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     4
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     8
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    12
# and limitations under the License.
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    13
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    19
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    20
# CDDL HEADER END
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    21
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    22
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    23
#
1737
c20116627c69 7178513 slim_source unit tests can hose /system/volatile
Ginnie Wray<virginia.wray@oracle.com>
parents: 1227
diff changeset
    24
# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    25
#
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    26
'''
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1151
diff changeset
    27
Tests auto install to a specified XML Manifest
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    28
'''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    29
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    30
import os
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    31
import sys
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    32
import unittest
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    33
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    34
from solaris_install.auto_install import auto_install
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    35
from solaris_install.engine.test.engine_test_utils import reset_engine
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    36
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    37
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1151
diff changeset
    38
class TestAutoInstallManifest(unittest.TestCase):
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    39
    '''Tests to auto installation succeeds with -m specified manifest '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    40
    AI = None
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    41
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    42
    def setUp(self):
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    43
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    44
        Create a auto_install client for testing with.
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    45
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    46
        self.AI = None
1227
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    47
        self.test_dir = os.path.dirname(os.path.abspath(__file__))
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    48
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    49
    def tearDown(self):
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    50
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    51
        Clean Up
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    52
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    53
        if self.AI is not None:
1737
c20116627c69 7178513 slim_source unit tests can hose /system/volatile
Ginnie Wray<virginia.wray@oracle.com>
parents: 1227
diff changeset
    54
            reset_engine()
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    55
            self.AI = None
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    56
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    57
    def test_manifest_install_auto_reboot_true(self):
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    58
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    59
        Test installation with manifest containing auto_reboot set to true
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    60
        '''
1227
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    61
        testmanifest = os.path.join(self.test_dir,
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    62
                                    "manifest_auto_reboot_true.xml")
1209
7758ee0bc272 7057103 test_auto_install_manifest.py unit tests fails with Unsupported Transfer type IPS
Darren Kenny <Darren.Kenny@Oracle.COM>
parents: 1160
diff changeset
    63
        args = ["-n", "-s", "target-discovery", "-m", testmanifest]
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    64
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    65
        try:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    66
            self.AI = auto_install.AutoInstall(args)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    67
            self.assertNotEqual(self.AI, None)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    68
            self.AI.perform_autoinstall()
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    69
            self.assertNotEqual(self.AI.exitval, self.AI.AI_EXIT_FAILURE)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    70
        except KeyboardInterrupt:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    71
            pass
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    72
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    73
    def test_manifest_install_auto_reboot_false(self):
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    74
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    75
        Test installation with manifest containing auto_reboot set to false
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    76
        '''
1227
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    77
        testmanifest = os.path.join(self.test_dir,
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    78
                                    "manifest_auto_reboot_false.xml")
1209
7758ee0bc272 7057103 test_auto_install_manifest.py unit tests fails with Unsupported Transfer type IPS
Darren Kenny <Darren.Kenny@Oracle.COM>
parents: 1160
diff changeset
    79
        args = ["-n", "-s", "target-discovery", "-m", testmanifest]
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    80
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    81
        try:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    82
            self.AI = auto_install.AutoInstall(args)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    83
            self.assertNotEqual(self.AI, None)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    84
            self.AI.perform_autoinstall()
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    85
            self.assertNotEqual(self.AI.exitval, self.AI.AI_EXIT_FAILURE)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    86
        except KeyboardInterrupt:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    87
            pass
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    88
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    89
    def test_manifest_install_auto_reboot_not_set(self):
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    90
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    91
        Test installation with manifest containing auto_reboot set to not set
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    92
        '''
1227
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    93
        testmanifest = os.path.join(self.test_dir,
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
    94
                                    "manifest_auto_reboot_not_set.xml")
1209
7758ee0bc272 7057103 test_auto_install_manifest.py unit tests fails with Unsupported Transfer type IPS
Darren Kenny <Darren.Kenny@Oracle.COM>
parents: 1160
diff changeset
    95
        args = ["-n", "-s", "target-discovery", "-m", testmanifest]
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    96
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    97
        try:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    98
            self.AI = auto_install.AutoInstall(args)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
    99
            self.assertNotEqual(self.AI, None)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   100
            self.AI.perform_autoinstall()
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   101
            self.assertNotEqual(self.AI.exitval, self.AI.AI_EXIT_FAILURE)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   102
        except KeyboardInterrupt:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   103
            pass
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   104
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   105
    def test_manifest_auto_reboot_invalid(self):
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   106
        '''
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   107
        Test installation with a manifest that fails to parse.
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   108
        Achieved by setting auto_reboot to an invalid value
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   109
        exitval should be set to AI_EXIT_FAILIRE
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   110
        '''
1227
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
   111
        testmanifest = os.path.join(self.test_dir,
4ecf733307ad 7058653 undefined variable disk_kd and discovered_disk in checkpoints/target_selection.py
Drew Fisher <drew.fisher@oracle.com>
parents: 1209
diff changeset
   112
                                    "manifest_auto_reboot_invalid.xml")
1209
7758ee0bc272 7057103 test_auto_install_manifest.py unit tests fails with Unsupported Transfer type IPS
Darren Kenny <Darren.Kenny@Oracle.COM>
parents: 1160
diff changeset
   113
        args = ["-n", "-s", "target-discovery", "-m", testmanifest]
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   114
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   115
        try:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   116
            self.AI = auto_install.AutoInstall(args)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   117
            self.assertNotEqual(self.AI, None)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   118
            self.AI.perform_autoinstall()
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   119
            self.assertNotEqual(self.AI.exitval, None)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   120
            self.assertEqual(self.AI.exitval, self.AI.AI_EXIT_FAILURE)
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   121
        except:
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   122
            raise
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   123
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   124
if __name__ == '__main__':
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
diff changeset
   125
    unittest.main()