author | Ethan Quach <Ethan.Quach@sun.com> |
Tue, 31 May 2011 14:21:09 -0700 | |
changeset 1160 | 6f7e708c38ec |
parent 1041 | 7e44b50b28cb |
permissions | -rw-r--r-- |
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 |
|
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
27 |
import os |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
28 |
|
1041
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
29 |
import solaris_install.ict as ICT |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
30 |
import pkg.client.api_errors as api_errors |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
31 |
import pkg.client.image as image |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
32 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
33 |
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
|
34 |
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
|
35 |
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
|
36 |
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
|
37 |
|
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 |
class SetFlushContentCache(ICT.ICTBaseClass): |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
40 |
'''ICT checkpoint to flush the IPS content cache. |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
41 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
42 |
The SetFlushContentCache restores the original IPS default to not purge |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
43 |
the IPS download cache. |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
44 |
''' |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
45 |
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
|
46 |
'''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
|
47 |
Parameters: |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
48 |
-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
|
49 |
''' |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
50 |
super(SetFlushContentCache, 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
|
51 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
52 |
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
|
53 |
''' |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
54 |
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
|
55 |
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
|
56 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
57 |
Parameters: |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
58 |
- the dry_run keyword paramater. The default value is False. |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
59 |
If set to True, the log message describes the checkpoint tasks. |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
60 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
61 |
Returns: |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
62 |
- Nothing |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
63 |
On failure, errors raised are managed by the engine. |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
64 |
''' |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
65 |
self.logger.debug('ICT current task: Set IPS ' |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
66 |
'flush-content-cache-on-success') |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
67 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
68 |
# parse_doc populates variables necessary to execute the checkpoint |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
69 |
self.parse_doc() |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
70 |
|
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
71 |
# Restore the original IPS default and |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
72 |
# set purging the IPS download cache to "False" |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
73 |
self.logger.debug('Executing: Set IPS flush-content-cache-on-success ' |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
74 |
'to False') |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
75 |
if not dry_run: |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
76 |
try: |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
77 |
img = image.Image(root=self.target_dir, user_provided_dir=True) |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
78 |
img.set_property('flush-content-cache-on-success', 'False') |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
79 |
except api_errors.ImageNotFoundException, err: |
7e44b50b28cb
6255:ICT - Use more flexible method, than install-finish to invoke ICT
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
80 |
self.logger.debug("No IPS image found at install target") |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
81 |
|
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
82 |
# The above call will end up leaving our process's cwd |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
83 |
# in the image's root area, which will cause pain later |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
84 |
# on in trying to unmount the image. So we manually |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
85 |
# change dir back to "/". |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1041
diff
changeset
|
86 |
os.chdir("/") |