usr/src/lib/install_ict/__init__.py
author Ethan Quach <Ethan.Quach@sun.com>
Tue, 31 May 2011 14:21:09 -0700
changeset 1160 6f7e708c38ec
parent 1151 95413393ef67
child 1161 5c1b6d445efc
permissions -rw-r--r--
16257 Support for zones configuration and installation should be included in AI 7041915 TransferFiles ICT should support transferring a directory that is more than one level deep. 7049824 System installed via AI ends up with incorrect mountpoints for shared ZFS datasets
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     1
#!/usr/bin/python
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     2
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     4
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     8
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    13
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    19
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    21
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    22
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    23
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    24
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    25
#
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    26
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    27
'''Python package for icts'''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    28
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    29
__all__ = ["apply_sysconfig", "boot_archive", "cleanup_cpio_install",
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    30
           "common", "create_snapshot", "device_config",
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    31
           "generate_sc_profile", "initialize_smf",
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents: 1099
diff changeset
    32
           "ips", "setup_swap", "transfer_files", "update_dumpadm"]
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    33
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    34
from solaris_install.engine import InstallEngine
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    35
from solaris_install.engine.checkpoint import AbstractCheckpoint
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    36
from solaris_install.target import Target
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    37
from solaris_install.target.logical import BE
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    38
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    39
# Define some ICT constants
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    40
BOOTADM = '/usr/sbin/bootadm'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    41
DEVFSADM = '/usr/sbin/devfsadm'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    42
DUMPADM_CONF = 'etc/dumpadm.conf'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    43
DUMPADM_SAVDIR = 'DUMPADM_SAVDIR'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    44
GENERIC_XML = 'etc/svc/profile/generic.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    45
GEN_LTD_NET_XML = 'generic_limited_net.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    46
GLOBAL_DB = 'lib/svc/seed/global.db'
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1151
diff changeset
    47
ZONE_DB = 'lib/svc/seed/nonglobal.db'
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    48
INETD_XML = 'inetd_generic.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    49
INETD_SVCS_XML = 'etc/svc/profile/inetd_services.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    50
KBD_DEFAULT = 'US-English'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    51
KBD_DEV = '/dev/kbd'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    52
KBD_LAYOUT_FILE = '/usr/share/lib/keytables/type_6/kbd_layouts'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    53
MNTTAB = 'etc/mnttab'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    54
NAME_SVC_XML = 'etc/svc/profile/name_service.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    55
NS_DNS_XML = 'ns_dns.xml'
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1151
diff changeset
    56
NS_FILES_XML = 'ns_files.xml'
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    57
PKG = '/usr/bin/pkg'
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1151
diff changeset
    58
PLATFORM_XML = 'etc/svc/profile/platform.xml'
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1151
diff changeset
    59
PLATFORM_NONE_XML = 'platform_none.xml'
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    60
PROFILE_DEST = 'etc/svc/profile/site'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    61
PROFILE_SITE = 'etc/svc/profile/site.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    62
REPO_DB = 'etc/svc/repository.db'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    63
SC_PROFILE = 'etc/svc/profile/sc_profile.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    64
SC_TEMPLATE = 'usr/share/install/sc_template.xml'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    65
SVCCFG = '/usr/sbin/svccfg'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    66
SVCCFG_DTD = 'SVCCFG_DTD'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    67
SVCCFG_REPOSITORY = 'SVCCFG_REPOSITORY'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    68
SVC_BUNDLE = 'usr/share/lib/xml/dtd/service_bundle.dtd.1'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    69
SVC_REPO = 'etc/svc/repository.db'
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    70
SYS = 'sys'
1151
95413393ef67 7038120 Update Auto Installer to use CUD
Darren Kenny <Darren.Kenny@Oracle.COM>
parents: 1099
diff changeset
    71
VFSTAB = 'etc/vfstab'
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    72
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    73
# Variables associated with the package image
1099
9685582c2e8a 7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents: 1055
diff changeset
    74
CLIENT_API_VERSION = 57
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    75
DEF_REPO_URI = "http://pkg.oracle.com/solaris/release"
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    76
PKG_CLIENT_NAME = "ICT"
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    77
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    78
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    79
class ICTError(Exception):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    80
    '''Base class for ict specific errors'''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    81
    pass
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    82
1055
26f4df2e408e 6255 ICT - Use more flexible method, than install-finish to invoke ICT (fix pep8 )
Mary Ding <mary.ding@oracle.com>
parents: 1041
diff changeset
    83
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    84
class ICTApplySysConfigError(ICTError):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    85
    '''Errors thrown by apply_sysconfig'''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    86
    pass
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    87
1055
26f4df2e408e 6255 ICT - Use more flexible method, than install-finish to invoke ICT (fix pep8 )
Mary Ding <mary.ding@oracle.com>
parents: 1041
diff changeset
    88
1041
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    89
class ICTBaseClass(AbstractCheckpoint):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    90
    '''ICTBaseClass is the abstract base class for the ICTs. It
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    91
       provides basic functionality for all ICTs.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    92
    '''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    93
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    94
    def __init__(self, name):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    95
        '''Initializes the class
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    96
           Parameters:
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    97
               -name - this arg is required by the AbstractCheckpoint
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    98
                       and is not used by the ict checkpoint.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
    99
        '''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   100
        super(ICTBaseClass, self).__init__(name)
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   101
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   102
        # The DOC instance from the engine
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   103
        self.doc = InstallEngine.get_instance().data_object_cache
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   104
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   105
        # The boot environment name for the target
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   106
        self.boot_env = None
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   107
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   108
        # The install target object and target directory
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   109
        self.target = None
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   110
        self.target_dir = None
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   111
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   112
    def parse_doc(self):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   113
        '''Get the parameters needed by the ICTs'''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   114
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   115
        # Get the target that holds the boot environment
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   116
        self.target = self.doc.get_descendants(name=Target.DESIRED,
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   117
                                               class_type=Target,
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   118
                                               not_found_is_err=True)[0]
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   119
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   120
        # Get the destination mountpoint
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   121
        self.boot_env = self.target.get_descendants(class_type=BE,
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   122
                                                    max_count=1,
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   123
                                                    not_found_is_err=True)[0]
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   124
        # Get the target directory
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   125
        self.target_dir = self.boot_env.mountpoint
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   126
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   127
    def execute(self, dry_run=False):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   128
        '''The AbstractCheckpoint requires this method. It is
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   129
           implemented uniquely in each ICT.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   130
        '''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   131
        pass
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   132
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   133
    def get_progress_estimate(self):
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   134
        '''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   135
            The AbstractCheckpoint class requires this method
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   136
            in sub-classes.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   137
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   138
            This returns an estimate of how long the execute() method
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   139
            will take to run.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   140
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   141
            For most ICTs, 1 is an accurate estimation. For those
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   142
            that need a different value will implement their own version
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   143
            of get_progress_estimate.
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   144
        '''
7e44b50b28cb 6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff changeset
   145
        return 1