author | Ginnie Wray<virginia.wray@oracle.com> |
Tue, 19 Jun 2012 12:18:37 -0600 | |
changeset 1717 | 10cb4d15a248 |
parent 1350 | 025c6311d0d9 |
permissions | -rw-r--r-- |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.6 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
2 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
3 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
4 |
# CDDL HEADER START |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
5 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
6 |
# The contents of this file are subject to the terms of the |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
7 |
# Common Development and Distribution License (the "License"). |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
8 |
# You may not use this file except in compliance with the License. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
9 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
10 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
11 |
# or http://www.opensolaris.org/os/licensing. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
12 |
# See the License for the specific language governing permissions |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
13 |
# and limitations under the License. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
14 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
15 |
# When distributing Covered Code, include this CDDL HEADER in each |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
16 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
17 |
# If applicable, add the following below this CDDL HEADER, with the |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
18 |
# fields enclosed by brackets "[]" replaced with your own identifying |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
19 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
20 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
21 |
# CDDL HEADER END |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
22 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
23 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
24 |
# |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
25 |
# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
26 |
# |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
27 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
28 |
'''Some unit tests to cover engine functionality''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
29 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
30 |
import logging |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
31 |
import os |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
32 |
import sys |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
33 |
import shutil |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
34 |
import tempfile |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
35 |
import threading |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
36 |
import unittest |
913
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
37 |
import warnings |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
38 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
39 |
from itertools import izip |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
40 |
from logging import ERROR, DEBUG |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
41 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
42 |
import solaris_install.engine as engine |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
43 |
import solaris_install.engine.checkpoint_data as checkpoint_data |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
44 |
import osol_install.errsvc as errsvc |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
45 |
import osol_install.liberrsvc as liberrsvc |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
46 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
47 |
from empty_checkpoint import EmptyCheckpoint |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
48 |
from solaris_install.engine.test.engine_test_utils import reset_engine, \ |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
49 |
get_new_engine_instance |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
50 |
from solaris_install.data_object import DataObject |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
51 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
52 |
_THIS_DIR = os.path.dirname(os.path.abspath(__file__)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
53 |
sys.path.append(_THIS_DIR) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
54 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
55 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
56 |
class MockDataset(object): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
57 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
58 |
''' Fake Dataset object so the real ZFS dataset object does |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
59 |
not need to be used for testing |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
60 |
''' |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
61 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
62 |
def __init__(self, path): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
63 |
self.exists = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
64 |
self.mountpoint = path |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
65 |
self.snapped = (None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
66 |
self.snapshot_list = [] |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
67 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
68 |
def snapshot(self, name, overwrite=False): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
69 |
self.snapped = (name, overwrite) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
70 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
71 |
def snapname(self, name): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
72 |
return self.mountpoint + '@' + name |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
73 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
74 |
def rollback(self, name, recursive=True): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
75 |
pass |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
76 |
|
1073
7ff3ee2fcf57
7036435 Additional install unit tests failures after TI/TD CUD putback
Drew Fisher <drew.fisher@oracle.com>
parents:
913
diff
changeset
|
77 |
def get(self, property): |
7ff3ee2fcf57
7036435 Additional install unit tests failures after TI/TD CUD putback
Drew Fisher <drew.fisher@oracle.com>
parents:
913
diff
changeset
|
78 |
return getattr(self, property) |
7ff3ee2fcf57
7036435 Additional install unit tests failures after TI/TD CUD putback
Drew Fisher <drew.fisher@oracle.com>
parents:
913
diff
changeset
|
79 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
80 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
81 |
class MockDOC(object): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
82 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
83 |
''' Fake DOC object so the real DataObjectCache object we do not rely |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
84 |
on the actual DataObjectCache class for testing. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
85 |
''' |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
86 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
87 |
def take_snapshot(self, dummy): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
88 |
self.snapshotted = dummy |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
89 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
90 |
def insert_children(self, dummy): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
91 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
92 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
93 |
@property |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
94 |
def persistent(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
95 |
return self |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
96 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
97 |
def get_first_child(self, name=None): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
98 |
return self |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
99 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
100 |
def clear(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
101 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
102 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
103 |
def load_from_snapshot(self, filename): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
104 |
self.loaded_from = filename |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
105 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
106 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
107 |
class MockCheckpointRegData(DataObject): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
108 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
109 |
''' Fake CheckpointRegData object so we do not rely on the actual |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
110 |
CheckpointRegData object for testing |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
111 |
''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
112 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
113 |
def __init__(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
114 |
DataObject.__init__(self, "MokeCheckpointRegData") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
115 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
116 |
def to_xml(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
117 |
return None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
118 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
119 |
def from_xml(cls, xml_node): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
120 |
return None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
121 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
122 |
def can_handle(cls, xml_node): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
123 |
return False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
124 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
125 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
126 |
class MockCheckpointData(object): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
127 |
''' Fake CheckpointData object so we do not rely on the actual |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
128 |
CheckpointData object for testing |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
129 |
''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
130 |
def __init__(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
131 |
self.cp_info = MockCheckpointRegData() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
132 |
self.name = "MockCheckpointData" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
133 |
self.prog_reported = 0 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
134 |
self.prog_est_ratio = 0 |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
135 |
|
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
136 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
137 |
class EngineTest(unittest.TestCase): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
138 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
139 |
''' Tests that validates the interfaces in the install engine code. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
140 |
All tests here do not require a user to be |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
141 |
root to execute. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
142 |
''' |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
143 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
144 |
def setUp(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
145 |
self.callback_results = (None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
146 |
self.callback_executed = threading.Event() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
147 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
148 |
self.engine = get_new_engine_instance() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
149 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
150 |
def tearDown(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
151 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
152 |
# Force spawning of fresh singleton for each test. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
153 |
reset_engine(self.engine) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
154 |
self.engine = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
155 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
156 |
self.callback_results = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
157 |
self.callback_executed = None |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
158 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
159 |
def _exec_cp_callback(self, status, errsvc): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
160 |
''' Callback function for none-block execute_checkpoints() tests ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
161 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
162 |
self.callback_results = (status, errsvc) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
163 |
self.callback_executed.set() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
164 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
165 |
def create_fake_cache_snapshots(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
166 |
''' Create a few fake DOC snapshots in /tmp ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
167 |
cp_names = ["cp_one", "cp_two", "cp_three", "cp_four"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
168 |
self.full_cp_names = [] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
169 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
170 |
# create a tmp directory for it |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
171 |
self.cache_dir_name = ("/tmp/list_doc_snapshot_test_%s") % os.getpid() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
172 |
os.mkdir(self.cache_dir_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
173 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
174 |
for cp in cp_names: |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
175 |
file_name = os.path.join(self.cache_dir_name, |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
176 |
engine.InstallEngine.CACHE_FILE_NAME_PREFIX + cp) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
177 |
shutil.copyfile("/etc/hosts", file_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
178 |
self.full_cp_names.append(file_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
179 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
180 |
def destroy_fake_cache_snapshots(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
181 |
''' Destroyes the fake DOC snapshots in /tmp used for testing ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
182 |
shutil.rmtree(self.cache_dir_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
183 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
184 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
185 |
class SimpleEngineTests(EngineTest): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
186 |
'''Tests the less complicated engine functionality''' |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
187 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
188 |
def test_engine_is_singleton(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
189 |
engine.InstallEngine._instance = None |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
190 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
191 |
self.assertRaises(engine.SingletonError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
192 |
engine.InstallEngine.get_instance) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
193 |
|
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
194 |
log_tmp_dir = tempfile.mkdtemp(dir="/tmp", prefix="logging_") |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
195 |
log_tmp_file = log_tmp_dir + "/install_log" |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
196 |
|
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
197 |
install_engine = engine.InstallEngine(log_tmp_file) |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
198 |
self.assertTrue(isinstance(install_engine, engine.InstallEngine)) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
199 |
|
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
200 |
self.assertRaises(engine.SingletonError, engine.InstallEngine, |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
201 |
"secondlog") |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
202 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
203 |
engine_instance = engine.InstallEngine.get_instance() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
204 |
self.assertTrue(install_engine is engine_instance) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
205 |
|
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
206 |
try: |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
207 |
shutil.rmtree(os.path.dirname(log_tmp_file)) |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
208 |
except: |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
209 |
pass |
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
210 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
211 |
def test_check_callback_None(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
212 |
'''Assert InstallEngine._check_callback accepts None ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
213 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
214 |
self.engine._check_callback(None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
215 |
except TypeError: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
216 |
self.fail("Engine did not accept 'None' for callback") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
217 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
218 |
def test_check_callback_varargs(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
219 |
'''Assert InstallEngine._check_callback accepts a vararg function''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
220 |
def vararg_func(*args): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
221 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
222 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
223 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
224 |
self.engine._check_callback(vararg_func) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
225 |
except TypeError: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
226 |
self.fail("Engine did not accept function with *args param") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
227 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
228 |
def test_check_callback_two_args(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
229 |
'''Assert InstallEngine._check_callback accepts a two argument function''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
230 |
def arg_func(arg1, arg2): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
231 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
232 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
233 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
234 |
self.engine._check_callback(arg_func) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
235 |
except TypeError: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
236 |
self.fail("Engine did not accept function with exactly two args") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
237 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
238 |
def test_check_callback_under_two_args(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
239 |
'''Asserts InstallEngine._check_callback fails on a single argument function''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
240 |
def arg_func(arg1): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
241 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
242 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
243 |
self.assertRaises(TypeError, self.engine._check_callback, arg_func) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
244 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
245 |
def test_check_callback_over_two_required_args(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
246 |
'''Asserts InstallEngine._check_callback fails if 3 or more args are required''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
247 |
def arg_func(arg1, arg2, arg3): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
248 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
249 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
250 |
self.assertRaises(TypeError, self.engine._check_callback, arg_func) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
251 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
252 |
def test_check_callback_with_kwargs(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
253 |
'''Asserts InstallEngine._check_callback handles functions with keyword args''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
254 |
def kwarg_func_all(arg1=None, arg2=None, arg3=None): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
255 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
256 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
257 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
258 |
self.engine._check_callback(kwarg_func_all) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
259 |
except TypeError: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
260 |
self.fail("Engine did not accept function with kwargs for all" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
261 |
"arguments") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
262 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
263 |
def test_check_callback_2_arg_optional_kwarg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
264 |
'''Asserts InstallEngine._check_callback handles a function with an optional keyword argument''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
265 |
def optional_kwarg(arg1, arg2, arg3=None): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
266 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
267 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
268 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
269 |
self.engine._check_callback(optional_kwarg) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
270 |
except TypeError: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
271 |
self.fail("Engine did not accept function with optional kwarg") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
272 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
273 |
def test_check_callback_bound_class_method(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
274 |
'''Asserts InstallEngine._check_callback handles bound class methods''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
275 |
class DummyClass(object): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
276 |
def callback(self, status, errsvc): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
277 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
278 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
279 |
instance = DummyClass() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
280 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
281 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
282 |
self.engine._check_callback(instance.callback) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
283 |
except TypeError: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
284 |
self.fail("Engine did not accept bound class method") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
285 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
286 |
def test_check_callback_unbound_class_method(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
287 |
'''Asserts InstallEngine._check_callback rejects unbound class methods. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
288 |
(Unbound methods require a class instance as the first argument)''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
289 |
class DummyClass(object): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
290 |
def callback(self, status, errsvc): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
291 |
pass |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
292 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
293 |
self.assertRaises(TypeError, self.engine._check_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
294 |
DummyClass.callback) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
295 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
296 |
def test_snapshot_tmp_no_dataset(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
297 |
self.engine._dataset = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
298 |
self.engine.data_object_cache = MockDOC() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
299 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
300 |
cp_data = MockCheckpointData() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
301 |
|
1290
cfaa7349f221
7004000 Install engine enhancement to save original args/kwargs list before calling checkpoint's execute
Karen Tung <Karen.Tung@oracle.com>
parents:
1073
diff
changeset
|
302 |
self.engine.snapshot(cp_data=cp_data) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
303 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
304 |
self.assertEqual(cp_data.zfs_snap, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
305 |
self.assertEqual(self.engine.doc.snapshotted, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
306 |
cp_data.data_cache_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
307 |
"DOC path for Checkpoint not set") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
308 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
309 |
def test_snapshot_tmp_dataset_no_exist(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
310 |
ds = MockDataset("mock") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
311 |
self.engine._dataset = ds |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
312 |
self.engine.dataset.exists = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
313 |
self.engine.data_object_cache = MockDOC() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
314 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
315 |
cp_data = MockCheckpointData() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
316 |
|
1290
cfaa7349f221
7004000 Install engine enhancement to save original args/kwargs list before calling checkpoint's execute
Karen Tung <Karen.Tung@oracle.com>
parents:
1073
diff
changeset
|
317 |
self.engine.snapshot(cp_data=cp_data) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
318 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
319 |
self.assertEqual(cp_data.zfs_snap, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
320 |
self.assertEqual(self.engine.doc.snapshotted, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
321 |
cp_data.data_cache_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
322 |
"DOC path for Checkpoint not set") |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
323 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
324 |
def test_snapshot_zfs_dataset_exists(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
325 |
ds = MockDataset("mock") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
326 |
self.engine._dataset = ds |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
327 |
self.engine.dataset.exists = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
328 |
self.engine.data_object_cache = MockDOC() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
329 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
330 |
cp_data = MockCheckpointData() |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
331 |
|
1290
cfaa7349f221
7004000 Install engine enhancement to save original args/kwargs list before calling checkpoint's execute
Karen Tung <Karen.Tung@oracle.com>
parents:
1073
diff
changeset
|
332 |
self.engine.snapshot(cp_data=cp_data) |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
333 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
334 |
self.assertEqual(cp_data.zfs_snap, ds.snapped[0]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
335 |
self.assertEqual(self.engine.doc.snapshotted, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
336 |
cp_data.data_cache_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
337 |
"DOC path for Checkpoint not set") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
338 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
339 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
340 |
class EngineCheckpointsBase(EngineTest): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
341 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
342 |
def setUp(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
343 |
EngineTest.setUp(self) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
344 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
345 |
if _THIS_DIR == ".": |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
346 |
self.cp_data_args = ("empty_checkpoint", "EmptyCheckpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
347 |
self.failed_cp_data_args = ("empty_checkpoint", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
348 |
"FailureEmptyCheckpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
349 |
else: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
350 |
self.cp_data_args = (_THIS_DIR + "/empty_checkpoint", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
351 |
"EmptyCheckpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
352 |
self.failed_cp_data_args = (_THIS_DIR + "/empty_checkpoint", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
353 |
"FailureEmptyCheckpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
354 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
355 |
if _THIS_DIR.startswith("/"): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
356 |
self.expected_mod_name = "empty_checkpoint" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
357 |
self.expected_mod_path = _THIS_DIR |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
358 |
else: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
359 |
self.expected_mod_name = self.cp_data_args[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
360 |
self.expected_mod_path = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
361 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
362 |
self.name_list = ["one", "two", "three", "four", "five"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
363 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
364 |
# Squelch the logging during checkpoint registration |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
365 |
# (it clutters the test output) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
366 |
level = engine.LOGGER.level |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
367 |
engine.LOGGER.level = 100 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
368 |
for name in self.name_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
369 |
self.engine.register_checkpoint(name, *self.cp_data_args) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
370 |
engine.LOGGER.level = level |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
371 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
372 |
def tearDown(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
373 |
EngineTest.tearDown(self) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
374 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
375 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
376 |
class EngineCheckpointsTest(EngineCheckpointsBase): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
377 |
'''More complicated InstallEngine tests requiring DOC, checkpoints, etc.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
378 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
379 |
def test_register_checkpoint(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
380 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
381 |
self.assertEquals(len(self.name_list), len(self.engine._checkpoints)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
382 |
for cp_data in self.engine._checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
383 |
self.assertEquals(cp_data.cp_info.mod_name, self.expected_mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
384 |
"Module name: Expected '%s', got '%s'" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
385 |
(self.expected_mod_name, cp_data.cp_info.mod_name)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
386 |
self.assertEquals(cp_data.cp_info.module_path, self.expected_mod_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
387 |
"Module path: Expected '%s', got '%s'" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
388 |
(self.expected_mod_path, cp_data.cp_info.module_path)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
389 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
390 |
def test_register_duplicate_checkpoint(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
391 |
'''Assert cannot register two checkpoints with the same name''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
392 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
393 |
self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
394 |
self.name_list[1], *self.cp_data_args) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
395 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
396 |
def test_get_full_checkpoint_list(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
397 |
'''InstallEngine.get_exec_list - Default args (full list)''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
398 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
399 |
exec_list = self.engine.get_exec_list() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
400 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
401 |
self.assertEquals(len(self.name_list), len(exec_list)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
402 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
403 |
for exec_cp, cp_name in zip(exec_list, self.name_list): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
404 |
self.assertEquals(exec_cp.name, cp_name, "Exec list returned " |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
405 |
"checkpoints out of order") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
406 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
407 |
def test_get_cp_list_pause_before(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
408 |
'''InstallEngine.get_exec_list - pause_before arg works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
409 |
stop_at = 2 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
410 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
411 |
exec_list = self.engine.get_exec_list(pause_before=self.name_list[stop_at]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
412 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
413 |
self.assertEquals(len(self.name_list[:stop_at]), len(exec_list)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
414 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
415 |
for exec_cp, cp_name in zip(exec_list, self.name_list): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
416 |
self.assertEquals(exec_cp.name, cp_name, "Exec list returned " |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
417 |
"checkpoints out of order") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
418 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
419 |
def test_get_cp_list_resume_from(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
420 |
'''InstallEngine.get_exec_list - resume_from arg works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
421 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
422 |
for cp_data in self.engine._checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
423 |
cp_data.completed = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
424 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
425 |
resume_from = 1 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
426 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
427 |
exec_list = self.engine.get_exec_list(start_from=self.name_list[resume_from]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
428 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
429 |
self.assertEquals(len(self.name_list[resume_from:]), len(exec_list)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
430 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
431 |
for exec_cp, cp_name in zip(exec_list, self.name_list[resume_from:]): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
432 |
self.assertEquals(exec_cp.name, cp_name, "Exec list returned " |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
433 |
"checkpoints out of order") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
434 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
435 |
def test_get_cp_list_pause_before_resume(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
436 |
'''InstallEngine.get_exec_list - Error when pause_before cp is before the start_from cp in sequence''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
437 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
438 |
for cp_data in self.engine._checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
439 |
cp_data.completed = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
440 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
441 |
resume_from = 2 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
442 |
pause_before = 1 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
443 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
444 |
self.assertRaises(engine.UsageError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
445 |
self.engine.get_exec_list, start_from=self.name_list[resume_from], |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
446 |
pause_before=self.name_list[pause_before]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
447 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
448 |
def test_get_cp_list_resume_prev_cp_not_complete(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
449 |
'''InstallEngine.get_exec_list - Error when prior cp's not complete''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
450 |
resume_from = 1 |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
451 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
452 |
self.assertRaises(engine.UsageError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
453 |
self.engine.get_exec_list, start_from=self.name_list[resume_from]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
454 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
455 |
def test_resume_from_last_complete(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
456 |
'''InstallEngine.get_exec_list - Verify correct exec list is returned when some checkpoints are completed ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
457 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
458 |
self.engine._checkpoints[0].completed = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
459 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
460 |
first_inc = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
461 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
462 |
self.assertTrue(first_inc is self.engine._checkpoints[1]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
463 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
464 |
exec_list = self.engine.get_exec_list(start_from=None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
465 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
466 |
self.assertFalse(self.engine._checkpoints[0] in exec_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
467 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
468 |
def test_resume_from_last_none_complete(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
469 |
'''InstallEngine.get_exec_list - Verify when none of the checkpoints are complete''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
470 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
471 |
first_inc = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
472 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
473 |
self.assertTrue(first_inc is self.engine._checkpoints[0]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
474 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
475 |
exec_list = self.engine.get_exec_list() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
476 |
self.assertEquals(len(self.name_list), len(exec_list)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
477 |
for exec_cp, cp_name in zip(exec_list, self.name_list): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
478 |
self.assertEquals(exec_cp.name, cp_name, "Exec list returned " |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
479 |
"checkpoints out of order") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
480 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
481 |
def test_resume_from_last_all_complete(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
482 |
'''InstallEngine.get_exec_list - Verify nothing is returned when all cp's complete''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
483 |
for cp_data in self.engine._checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
484 |
cp_data.completed = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
485 |
first_inc = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
486 |
self.assertTrue(first_inc is None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
487 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
488 |
exec_list = self.engine.get_exec_list() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
489 |
self.assertEquals(0, len(exec_list)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
490 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
491 |
def test_get_cp_list_resume_no_exist(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
492 |
'''InstallEngine.get_exec_list - Verify UsageError on nonexistent start_from cp''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
493 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
494 |
self.assertRaises(engine.UsageError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
495 |
self.engine.get_exec_list, start_from="NOEXIST") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
496 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
497 |
def test_get_cp_list_pause_before_no_exist(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
498 |
'''InstallEngine.get_exec_list - Verify UsageError on nonexistent pause_before cp''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
499 |
self.assertRaises(engine.UsageError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
500 |
self.engine.get_exec_list, pause_before="NOEXIST") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
501 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
502 |
def test_get_cache_filename_no_dataset(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
503 |
self.engine.dataset = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
504 |
path = self.engine.get_cache_filename("cp") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
505 |
self.assertEquals(path, os.path.join(self.engine._tmp_cache_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
506 |
".data_cache.cp")) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
507 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
508 |
def test_get_cache_filename_dataset(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
509 |
self.engine._tmp_cache_path = "/a/b/c" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
510 |
dataset = MockDataset(self.engine._tmp_cache_path) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
511 |
self.engine._dataset = dataset |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
512 |
path = self.engine.get_cache_filename("cp") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
513 |
self.assertEquals(path, os.path.join(dataset.mountpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
514 |
".data_cache.cp")) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
515 |
self.engine._tmp_cache_path = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
516 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
517 |
def test_get_cache_filename_dataset_no_exist(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
518 |
self.engine._tmp_cache_path = "/x/y/z" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
519 |
dataset = MockDataset(self.engine._tmp_cache_path) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
520 |
dataset.exists = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
521 |
dataset.mountpoint = "/a/b/c" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
522 |
self.engine._dataset = dataset |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
523 |
path = self.engine.get_cache_filename("cp") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
524 |
self.assertNotEquals(path, os.path.join(dataset.mountpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
525 |
".data_cache.cp")) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
526 |
expected = os.path.join(self.engine._tmp_cache_path, ".data_cache.cp") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
527 |
self.assertEquals(path, expected) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
528 |
self.engine._tmp_cache_path = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
529 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
530 |
def test_rollback_in_process_no_zfs(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
531 |
'''Assert in process rollbacks w/o ZFS function''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
532 |
cp = self.engine._checkpoints[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
533 |
cp.completed = True |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
534 |
cp.data_cache_path = "/dev/null" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
535 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
536 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
537 |
self.engine._rollback(cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
538 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
539 |
for cp in self.engine._checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
540 |
self.assertFalse(cp.completed) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
541 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
542 |
def test_out_process_rollback(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
543 |
cp = self.engine._checkpoints[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
544 |
cp.completed = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
545 |
cp_doc = self.engine.get_cache_filename(cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
546 |
with open(cp_doc, "w") as tmp_file: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
547 |
tmp_file.write("") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
548 |
ds = MockDataset(os.path.dirname(cp_doc)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
549 |
self.engine._dataset = ds |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
550 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
551 |
ds.snapshot_list.append(ds.mountpoint + "@.step_" + cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
552 |
self.engine._rollback(cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
553 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
554 |
for cp in self.engine._checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
555 |
self.assertFalse(cp.completed) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
556 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
557 |
def test_in_process_rollback_cache_no_exist(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
558 |
'''Test that rollbacks fail when the cache doesn't exist''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
559 |
cp = self.engine._checkpoints[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
560 |
cp.completed = True |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
561 |
cp.data_cache_path = os.tempnam() # Guaranteed to not exist yet |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
562 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
563 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
564 |
self.assertRaises(engine.NoCacheError, self.engine._rollback, cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
565 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
566 |
def test_out_process_rollback_cache_no_exist(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
567 |
cp = self.engine._checkpoints[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
568 |
cp.completed = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
569 |
ds = MockDataset(os.tempnam()) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
570 |
self.engine._dataset = ds |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
571 |
ds.snapshot_list.append(ds.mountpoint + "@.step_" + cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
572 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
573 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
574 |
self.assertRaises(engine.NoCacheError, self.engine._rollback, cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
575 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
576 |
def test_out_process_rollback_no_dataset(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
577 |
cp = self.engine._checkpoints[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
578 |
cp.completed = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
579 |
self.engine._dataset = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
580 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
581 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
582 |
self.assertRaises(engine.RollbackError, self.engine._rollback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
583 |
cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
584 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
585 |
def test_out_process_rollback_no_snapshot(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
586 |
cp = self.engine._checkpoints[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
587 |
cp.completed = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
588 |
self.engine._dataset = MockDataset(os.tempnam()) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
589 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
590 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
591 |
self.assertRaises(engine.RollbackError, self.engine._rollback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
592 |
cp.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
593 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
594 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
595 |
class EngineExecuteTests(EngineCheckpointsBase): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
596 |
'''Test InstallEngine.execute_checkpoints(...) scenarios''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
597 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
598 |
def setUp(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
599 |
EngineCheckpointsBase.setUp(self) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
600 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
601 |
errsvc.clear_error_list() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
602 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
603 |
def check_expected_failures(self, expected_failure, status, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
604 |
failed_checkpoints): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
605 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
606 |
self.assertEquals(status, self.engine.EXEC_FAILED) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
607 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
608 |
self.assertEqual(len(expected_failure), len(failed_checkpoints)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
609 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
610 |
for (exp_name, failed_name) in (izip(expected_failure, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
611 |
failed_checkpoints)): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
612 |
self.assertEqual(exp_name, failed_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
613 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
614 |
for failed_name in failed_checkpoints: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
615 |
err_data_list = errsvc.get_errors_by_mod_id(failed_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
616 |
self.assertEqual(1, len(err_data_list)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
617 |
err_data = err_data_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
618 |
self.assertTrue(isinstance(err_data.error_data[liberrsvc.ES_DATA_EXCEPTION], RuntimeError)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
619 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
620 |
def test_execute_checkpoints_basic(self): |
1350
025c6311d0d9
7071386 Improve progress reporting for text installer and GUI installer
Karen Tung <Karen.Tung@oracle.com>
parents:
1290
diff
changeset
|
621 |
'''Uses InstallEngine._execute_checkpoints to run a list of checkpoints''' |
025c6311d0d9
7071386 Improve progress reporting for text installer and GUI installer
Karen Tung <Karen.Tung@oracle.com>
parents:
1290
diff
changeset
|
622 |
self.engine._execute_checkpoints(self.engine._checkpoints, True, |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
623 |
self._exec_cp_callback) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
624 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
625 |
status, failed_checkpoints = self.callback_results |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
626 |
self.assertEqual(status, engine.InstallEngine.EXEC_SUCCESS, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
627 |
"Execution reported non-success") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
628 |
# failed_checkpoints should be None or an empty list, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
629 |
# which evaluate to False in a boolean context |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
630 |
self.assertFalse(failed_checkpoints, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
631 |
"Execution call encountered errors") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
632 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
633 |
def test_blocking_execute(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
634 |
'''Run InstallEngine.execute_checkpoints in a blocking fashion (all cp's run)''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
635 |
status, failed_checkpoints = self.engine.execute_checkpoints(dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
636 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
637 |
self.assertEquals(status, self.engine.EXEC_SUCCESS) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
638 |
self.assertEqual(0, len(failed_checkpoints)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
639 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
640 |
# All checkpoints should be completed |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
641 |
self.assertEqual(self.engine.get_first_incomplete(), None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
642 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
643 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
644 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
645 |
def test_non_blocking_execute(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
646 |
'''Run InstallEngine.execute_checkpoints in a non-blocking fashion (all cp's run)''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
647 |
self.engine.execute_checkpoints(callback=self._exec_cp_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
648 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
649 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
650 |
# Empty checkpoints shouldn't take long - if they do, something's wrong |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
651 |
self.callback_executed.wait(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
652 |
self.assertTrue(self.callback_executed.is_set(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
653 |
"Callback wasn't called-back") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
654 |
self.engine.checkpoint_thread.join(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
655 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
656 |
self.assertEquals(self.callback_results[0], self.engine.EXEC_SUCCESS, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
657 |
"Engine returned non-success") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
658 |
self.assertEqual(0, len(self.callback_results[1])) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
659 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
660 |
# All checkpoints should be completed |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
661 |
self.assertTrue(self.engine.get_first_incomplete() is None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
662 |
"Not all checkpoints completed!") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
663 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
664 |
self.assertFalse(self.engine.checkpoint_thread.is_alive(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
665 |
"Checkpoint thread still running") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
666 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
667 |
def test_in_process_continue(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
668 |
'''Run a few checkpoints, then run the rest''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
669 |
pause_before = self.name_list[2] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
670 |
status, failed_checkpoints = self.engine.execute_checkpoints( |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
671 |
pause_before=pause_before, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
672 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
673 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
674 |
self.assertEquals(status, self.engine.EXEC_SUCCESS) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
675 |
self.assertEqual(0, len(failed_checkpoints)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
676 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
677 |
# First incomplete checkpoint should be 'pause_before' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
678 |
self.assertEquals(self.engine.get_first_incomplete().name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
679 |
pause_before, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
680 |
"Engine didn't pause at correct checkpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
681 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
682 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
683 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
684 |
status, failed_checkpoints = self.engine.execute_checkpoints( |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
685 |
start_from=pause_before, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
686 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
687 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
688 |
self.assertEquals(status, self.engine.EXEC_SUCCESS, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
689 |
"Engine returned non-success") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
690 |
self.assertEqual(0, len(failed_checkpoints)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
691 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
692 |
# All checkpoints should be completed now |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
693 |
self.assertTrue(self.engine.get_first_incomplete() is None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
694 |
"Not all checkpoints completed") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
695 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
696 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
697 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
698 |
def test_blocking_cp_init_failed(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
699 |
'''Failed to initalize a checkpoint in InstallEngine.execute_checkpoints, blocking mode ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
700 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
701 |
# Add the checkpoint that will fail to beginning of list |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
702 |
failed_chkpt_name = "fail_init_1" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
703 |
self.engine.register_checkpoint(failed_chkpt_name, "empty_checkpoint", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
704 |
"InitFailureEmptyCheckpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
705 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
706 |
status, failed_checkpoints = self.engine.execute_checkpoints( |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
707 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
708 |
self.assertEquals(status, self.engine.CP_INIT_FAILED) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
709 |
self.assertEqual(len(failed_checkpoints), 1) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
710 |
self.assertEqual(failed_checkpoints[0], failed_chkpt_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
711 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
712 |
# Make sure the execute thread is not created |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
713 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
714 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
715 |
def test_non_blocking_cp_init_failed(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
716 |
'''Failed to inistalize a checkpoint in InstallEngine.execute_checkpoints non-blocking mode ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
717 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
718 |
# Add the checkpoint that will fail to beginning of list |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
719 |
failed_chkpt_name = "fail_init_1" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
720 |
self.engine.register_checkpoint(failed_chkpt_name, "empty_checkpoint", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
721 |
"InitFailureEmptyCheckpoint") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
722 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
723 |
self.engine.execute_checkpoints(callback=self._exec_cp_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
724 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
725 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
726 |
# Empty checkpoints shouldn't take long - if they do, something's wrong |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
727 |
self.callback_executed.wait(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
728 |
self.assertTrue(self.callback_executed.is_set(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
729 |
"Callback wasn't called-back") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
730 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
731 |
self.assertEquals(self.callback_results[0], self.engine.CP_INIT_FAILED) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
732 |
self.assertEqual(len(self.callback_results[1]), 1) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
733 |
self.assertEqual((self.callback_results[1])[0], failed_chkpt_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
734 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
735 |
def test_blocking_execute_first_cp_failed(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
736 |
'''First checkpoint failed in InstallEngine.execute_checkpoints, blocking mode ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
737 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
738 |
# Add the checkpoint that will fail to beginning of list |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
739 |
failed_chkpt_name = "fail1" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
740 |
self.engine.register_checkpoint(failed_chkpt_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
741 |
*self.failed_cp_data_args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
742 |
insert_before="one") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
743 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
744 |
status, failed_checkpoints = self.engine.execute_checkpoints( |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
745 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
746 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
747 |
self.check_expected_failures([failed_chkpt_name], status, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
748 |
failed_checkpoints) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
749 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
750 |
# Make sure the first incomplete checkpoint is the failed checkpoint. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
751 |
cp = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
752 |
self.assertEqual(cp.name, failed_chkpt_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
753 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
754 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
755 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
756 |
def test_blocking_execute_middle_cp_failed(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
757 |
'''Checkpoint in middle of list failed in InstallEngine.execute_checkpoints blocking mode ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
758 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
759 |
# Add the checkpoint that will fail to middle of list |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
760 |
failed_chkpt_name = "fail1" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
761 |
self.engine.register_checkpoint(failed_chkpt_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
762 |
*self.failed_cp_data_args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
763 |
insert_before="four") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
764 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
765 |
status, failed = self.engine.execute_checkpoints(dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
766 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
767 |
self.check_expected_failures([failed_chkpt_name], status, failed) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
768 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
769 |
# Make sure the incomplete checkpoint is the failed checkpoint. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
770 |
cp = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
771 |
self.assertEqual(cp.name, failed_chkpt_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
772 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
773 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
774 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
775 |
def test_non_blocking_execute_first_cp_failed(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
776 |
'''First checkpoint failed in InstallEngine.execute_checkpoints non-blocking mode ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
777 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
778 |
# Add the checkpoint that will fail to beginning of list |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
779 |
failed_chkpt_name = "fail1" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
780 |
self.engine.register_checkpoint(failed_chkpt_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
781 |
*self.failed_cp_data_args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
782 |
insert_before="one") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
783 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
784 |
self.engine.execute_checkpoints(callback=self._exec_cp_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
785 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
786 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
787 |
# Empty checkpoints shouldn't take long - if they do, something's wrong |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
788 |
self.callback_executed.wait(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
789 |
self.assertTrue(self.callback_executed.is_set(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
790 |
"Callback wasn't called-back") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
791 |
self.engine.checkpoint_thread.join(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
792 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
793 |
self.check_expected_failures([failed_chkpt_name], |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
794 |
self.callback_results[0], |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
795 |
self.callback_results[1]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
796 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
797 |
# Make sure the incomplete checkpoint is the failed checkpoint. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
798 |
cp = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
799 |
self.assertEqual(cp.name, failed_chkpt_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
800 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
801 |
self.assertFalse(self.engine.checkpoint_thread.is_alive(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
802 |
"Checkpoint thread still running") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
803 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
804 |
def test_non_blocking_execute_middle_cp_failed(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
805 |
'''Checkpoint in middle of list failed in InstallEngine.execute_checkpoints non-blocking mode ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
806 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
807 |
# Add the checkpoint that will fail to middle of list |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
808 |
failed_chkpt_name = "fail1" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
809 |
self.engine.register_checkpoint(failed_chkpt_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
810 |
*self.failed_cp_data_args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
811 |
insert_before="four") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
812 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
813 |
self.engine.execute_checkpoints(callback=self._exec_cp_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
814 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
815 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
816 |
# Empty checkpoints shouldn't take long - if they do, something's wrong |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
817 |
self.callback_executed.wait(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
818 |
self.assertTrue(self.callback_executed.is_set(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
819 |
"Callback wasn't called-back") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
820 |
self.engine.checkpoint_thread.join(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
821 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
822 |
self.check_expected_failures([failed_chkpt_name], |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
823 |
self.callback_results[0], |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
824 |
self.callback_results[1]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
825 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
826 |
# Make sure the incomplete checkpoint is the failed checkpoint. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
827 |
cp = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
828 |
self.assertEqual(cp.name, failed_chkpt_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
829 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
830 |
self.assertFalse(self.engine.checkpoint_thread.is_alive(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
831 |
"Checkpoint thread still running") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
832 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
833 |
def test_cp_failed_stop_on_error(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
834 |
'''Validate that when stop_on_error is set to false, all errors are reported ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
835 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
836 |
# Add a few checkpoints that will fail to various spots on |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
837 |
# list of checkpoints to run |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
838 |
expected_failed_cp = ["failed1", "failed2", "failed3"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
839 |
insert_before_list = ["one", "three", "five"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
840 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
841 |
for (failed_cp, insert_name) in izip(expected_failed_cp, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
842 |
insert_before_list): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
843 |
self.engine.register_checkpoint(failed_cp, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
844 |
*self.failed_cp_data_args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
845 |
insert_before=insert_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
846 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
847 |
self.engine.stop_on_error = False |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
848 |
status, failed = self.engine.execute_checkpoints(dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
849 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
850 |
self.check_expected_failures(expected_failed_cp, status, failed) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
851 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
852 |
# Make sure the first incomplete checkpoint is the |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
853 |
# first failed checkpoint. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
854 |
cp = self.engine.get_first_incomplete() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
855 |
self.assertNotEqual(cp, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
856 |
self.assertEqual(cp.name, expected_failed_cp[0]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
857 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
858 |
def test_nothing_to_exec(self): |
913
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
859 |
'''Validate a warning is issued when there's no checkpoint to execute''' |
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
860 |
with warnings.catch_warnings(record=True) as w: |
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
861 |
self.engine.execute_checkpoints(start_from="one", |
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
862 |
pause_before="one") |
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
863 |
|
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
864 |
self.assertEqual(len(w), 1) |
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
865 |
self.assertTrue(w[-1].category, UserWarning) |
83925e67521c
6996397 InstallEngine missing import of warnings module
Karen Tung <karen.tung@oracle.com>
parents:
909
diff
changeset
|
866 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
867 |
def test_gen_tmp_dir_w_env(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
868 |
'''Validate path of tmp DOC dir is determined correctly with TEMP_DOC_DIR env variable ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
869 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
870 |
cache_path_env = "/tmp/__engine_doc_path_test" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
871 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
872 |
os.environ[self.engine.TMP_CACHE_ENV] = cache_path_env |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
873 |
path_result = self.engine._gen_tmp_dir() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
874 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
875 |
# clean up the values set for this test |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
876 |
del os.environ[self.engine.TMP_CACHE_ENV] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
877 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
878 |
self.assertEqual(path_result, cache_path_env) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
879 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
880 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
881 |
class EngineRegisterTests(EngineTest): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
882 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
883 |
def setUp(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
884 |
EngineTest.setUp(self) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
885 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
886 |
name_list = ["one", "two", "three", "four", "five"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
887 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
888 |
# a generic list of test checkpoints |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
889 |
self.test_chkpt_list = [] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
890 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
891 |
if _THIS_DIR.startswith("/"): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
892 |
self.cp_mod_name = "empty_checkpoint" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
893 |
self.cp_mod_path = _THIS_DIR |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
894 |
self.cp_path = _THIS_DIR + "/empty_checkpoint" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
895 |
else: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
896 |
self.cp_mod_name = _THIS_DIR + "/empty_checkpoint" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
897 |
self.cp_mod_path = None |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
898 |
self.cp_path = self.cp_mod_name |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
899 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
900 |
for n in name_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
901 |
chkpt = checkpoint_data.CheckpointData(n, self.cp_mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
902 |
self.cp_mod_path, "EmptyCheckpoint", None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
903 |
None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
904 |
self.test_chkpt_list.append(chkpt) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
905 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
906 |
def check_result(self, expected_list): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
907 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
908 |
self.assertEquals(len(expected_list), len(self.engine._checkpoints)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
909 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
910 |
for expected_data, cp_data in zip(expected_list, |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
911 |
self.engine._checkpoints): |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
912 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
913 |
self.assertEquals(cp_data.cp_info.cp_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
914 |
expected_data.cp_info.cp_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
915 |
"Module name: Expected %s, got %s" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
916 |
(expected_data.cp_info.cp_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
917 |
cp_data.cp_info.cp_name)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
918 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
919 |
self.assertEquals(cp_data.cp_info.mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
920 |
expected_data.cp_info.mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
921 |
"Module name: Expected %s, got %s" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
922 |
(expected_data.cp_info.mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
923 |
cp_data.cp_info.mod_name)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
924 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
925 |
self.assertEquals(cp_data.cp_info.module_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
926 |
expected_data.cp_info.module_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
927 |
"Module path: Expected %s, got %s" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
928 |
(expected_data.cp_info.module_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
929 |
cp_data.cp_info.module_path)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
930 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
931 |
self.assertEquals(cp_data.cp_info.checkpoint_class_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
932 |
expected_data.cp_info.checkpoint_class_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
933 |
"Checkpoint class name: Expected %s, got %s" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
934 |
(expected_data.cp_info.checkpoint_class_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
935 |
cp_data.cp_info.checkpoint_class_name)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
936 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
937 |
def test_reg_one_chkpt_min_arg_ok(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
938 |
'''Verify that register a checkpoint works with minimal required args ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
939 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
940 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
941 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
942 |
self.engine.register_checkpoint(chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
943 |
self.cp_path, chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
944 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
945 |
self.fail("Failed to register 1 checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
946 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
947 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
948 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
949 |
def test_reg_multi_chkpt_min_arg_ok(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
950 |
'''Verify that register multiple checkpoint works with minimal required args ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
951 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
952 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
953 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
954 |
self.engine.register_checkpoint(chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
955 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
956 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
957 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
958 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
959 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
960 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
961 |
self.check_result(self.test_chkpt_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
962 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
963 |
def test_reg_chkpt_no_name(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
964 |
'''Verify that register a checkpoint without checkpoint name fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
965 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
966 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
967 |
self.assertRaises(TypeError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
968 |
self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
969 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
970 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
971 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
972 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
973 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
974 |
def test_reg_chkpt_blank_name(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
975 |
'''Verify that register a checkpoint with a name of "" fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
976 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
977 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
978 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
979 |
self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
980 |
"", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
981 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
982 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
983 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
984 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
985 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
986 |
def test_reg_chkpt_None_name(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
987 |
'''Verify that register a checkpoint with a name of None fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
988 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
989 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
990 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
991 |
self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
992 |
None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
993 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
994 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
995 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
996 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
997 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
998 |
def test_reg_chkpt_dup_name(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
999 |
'''Verify that register a checkpoint with duplicate checkpoint name fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1000 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1001 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1002 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1003 |
self.engine.register_checkpoint(chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1004 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1005 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1006 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1007 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1008 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1009 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1010 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1011 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1012 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1013 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1014 |
# Make sure only 1 checkpoint is registered. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1015 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1016 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1017 |
def test_reg_chkpt_no_path(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1018 |
'''Verify that register a checkpoint without module path fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1019 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1020 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1021 |
self.assertRaises(TypeError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1022 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1023 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1024 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1025 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1026 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1027 |
def test_reg_chkpt_blank_path(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1028 |
'''Verify that register a checkpoint with module path of "" fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1029 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1030 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1031 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1032 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1033 |
"", chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1034 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1035 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1036 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1037 |
def test_reg_chkpt_none_path(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1038 |
'''Verify that register a checkpoint with module path of None fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1039 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1040 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1041 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1042 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1043 |
None, chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1044 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1045 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1046 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1047 |
def test_reg_chkpt_invalid_path(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1048 |
'''Verify that register a checkpoint with invalid module path fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1049 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1050 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1051 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1052 |
self.assertRaises(ImportError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1053 |
self.engine.register_checkpoint, chkpt.name, |
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
1054 |
chkpt.cp_info.mod_name+"/junk", |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1055 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1056 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1057 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1058 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1059 |
def test_reg_chkpt_no_chkp_class(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1060 |
'''Verify that register a checkpoint without checkpoint class name fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1061 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1062 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1063 |
self.assertRaises(TypeError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1064 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1065 |
self.cp_path) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1066 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1067 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1068 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1069 |
def test_reg_chkpt_blank_chkp_class(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1070 |
'''Verify that register a checkpoint with checkpoint class name of "" fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1071 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1072 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1073 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1074 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1075 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1076 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1077 |
"") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1078 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1079 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1080 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1081 |
def test_reg_chkpt_none_chkp_class(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1082 |
'''Verify that register a checkpoint with checkpoint class name of None fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1083 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1084 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1085 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1086 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1087 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1088 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1089 |
None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1090 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1091 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1092 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1093 |
def test_reg_chkpt_invalid_chkp_class(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1094 |
'''Verify that register a checkpoint with invalid checkpoint class name fails ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1095 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1096 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1097 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1098 |
self.assertRaises(AttributeError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1099 |
self.engine.register_checkpoint, chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1100 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1101 |
"Junk") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1102 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1103 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1104 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1105 |
def test_reg_with_one_arg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1106 |
'''Verify that register a checkpoint that expects 1 arg to instantiate works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1107 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1108 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1109 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1110 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1111 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1112 |
chkpt.cp_info.checkpoint_class_name, args=["arg1"]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1113 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1114 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1115 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1116 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1117 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1118 |
def test_reg_with_one_missing_arg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1119 |
'''Verify that register a checkpoint that expects 1 arg to instantiate, don't specify arg fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1120 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1121 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1122 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1123 |
self.assertRaises(TypeError, self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1124 |
chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1125 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1126 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1127 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1128 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1129 |
def test_reg_with_multi_arg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1130 |
'''Verify that register a checkpoint that expects multiple args to instantiate works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1131 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1132 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1133 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithMultipleArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1134 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1135 |
args = ["arg1", "arg2"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1136 |
self.engine.register_checkpoint(chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1137 |
self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1138 |
chkpt.cp_info.checkpoint_class_name, args=args) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1139 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1140 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1141 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1142 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1143 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1144 |
def test_reg_with_one_missing_multiple_arg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1145 |
'''Verify that register a checkpoint that expects multiple args to instantiate, only specify 1 arg fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1146 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1147 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1148 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithMultipleArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1149 |
self.assertRaises(TypeError, self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1150 |
chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1151 |
chkpt.cp_info.checkpoint_class_name, args=["arg1"]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1152 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1153 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1154 |
def test_reg_expect_1_kw_arg_provide_none(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1155 |
'''Verify that register a checkpoint that takes 1 keyword to instantiate, no providing keyword arg works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1156 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1157 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1158 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithKWArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1159 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1160 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1161 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1162 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1163 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1164 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1165 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1166 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1167 |
def test_reg_expect_1_kw_arg_provide_1(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1168 |
'''Verify that register a checkpoint that takes 1 keyword to instantiate, providing value keyword arg works ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1169 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1170 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1171 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithKWArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1172 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1173 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1174 |
chkpt.cp_info.checkpoint_class_name, kwargs={"kw1":"kw1"}) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1175 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1176 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1177 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1178 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1179 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1180 |
def test_reg_expect_1_kw_arg_provide_2(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1181 |
'''Verify that register a checkpoint that takes 1 keyword to instantiate, providing 2 keyword arg fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1182 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1183 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1184 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithKWArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1185 |
kwargs = {"kw1":"kw1", "other_kw":"other_kw"} |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1186 |
self.assertRaises(TypeError, self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1187 |
chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1188 |
chkpt.cp_info.checkpoint_class_name, kwargs=kwargs) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1189 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1190 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1191 |
def test_reg_expect_multi_kw_arg_provide_none(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1192 |
'''Verify that register a checkpoint that takes multiple keyword args to instantiate, not providing keyword arg works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1193 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1194 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1195 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithMultipleKWArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1196 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1197 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1198 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1199 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1200 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1201 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1202 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1203 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1204 |
def test_reg_expect_multi_kw_arg_provide_1(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1205 |
'''Verify that register a checkpoint that takes multiple keyword args to instantiate, providing one of them works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1206 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1207 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1208 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithMultipleKWArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1209 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1210 |
kwargs = {"kw2":"kw2"} |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1211 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1212 |
chkpt.cp_info.checkpoint_class_name, kwargs=kwargs) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1213 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1214 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1215 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1216 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1217 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1218 |
def test_reg_expect_multi_kw_arg_provide_multiple(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1219 |
'''Verify that register a checkpoint that takes multiple keyword args to instantiate, providing all of them works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1220 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1221 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1222 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithMultipleKWArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1223 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1224 |
kwargs = {"kw1":"kw1", "kw2":"kw2"} |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1225 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1226 |
chkpt.cp_info.checkpoint_class_name, kwargs=kwargs) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1227 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1228 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1229 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1230 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1231 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1232 |
def test_reg_expect_args_and_multi_kw_arg_ok(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1233 |
'''Verify that register a checkpoint that takes multiple arguments and multiple keyword args to instantiate, providing all of them works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1234 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1235 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1236 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithArgsAndKW" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1237 |
args = ["arg1", "arg2"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1238 |
kwargs = {"kw1":"kw1", "kw2":"kw2"} |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1239 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1240 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1241 |
chkpt.cp_info.checkpoint_class_name, args=args, kwargs=kwargs) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1242 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1243 |
self.fail("Failed to register checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1244 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1245 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1246 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1247 |
def test_reg_expect_args_and_multi_kw_arg_missing_arg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1248 |
'''Verify that register a checkpoint that takes multiple arguments and multiple keyword args to instantiate, not providing 1 required argument fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1249 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1250 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1251 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithArgsAndKW" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1252 |
self.assertRaises(TypeError, self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1253 |
chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1254 |
chkpt.cp_info.checkpoint_class_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1255 |
args=["arg1"], kwargs={"kw1":"kw1", "kw2":"kw2"}) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1256 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1257 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1258 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1259 |
def test_reg_missing_required_arg_with_arg(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1260 |
'''Verify that register a checkpoint with 1 required arg. Provide the arg, but do not provide classname, which is required for register_checkpoint function fails.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1261 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1262 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1263 |
chkpt.cp_info.checkpoint_class_name = "EmptyCheckpointWithArgs" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1264 |
self.assertRaises(TypeError, self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1265 |
chkpt.name, self.cp_path, args=["hello"]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1266 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1267 |
self.check_result([]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1268 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1269 |
def test_reg_one_chkpt_loglevel_ok(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1270 |
'''Verify that register a checkpoint specifying loglevel works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1271 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1272 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1273 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1274 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1275 |
chkpt.cp_info.checkpoint_class_name, loglevel=DEBUG) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1276 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1277 |
self.fail("Failed to register 1 checkpoint with valid arguments") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1278 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1279 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1280 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1281 |
def test_reg_insert_before_beginning(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1282 |
'''Verify that register a checkpoint at beginning of list using insert_before works.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1283 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1284 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1285 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1286 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1287 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1288 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1289 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1290 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1291 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1292 |
new_chkpt = checkpoint_data.CheckpointData("another", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1293 |
self.cp_mod_name, self.cp_mod_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1294 |
"EmptyCheckpoint", None, None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1295 |
self.engine.register_checkpoint(new_chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1296 |
new_chkpt.cp_info.checkpoint_class_name, insert_before="one") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1297 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1298 |
new_list = [new_chkpt] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1299 |
new_list.extend(self.test_chkpt_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1300 |
self.check_result(new_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1301 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1302 |
def test_reg_insert_before_middle_list(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1303 |
'''Verify that register a checkpoint at middle of list using insert_before works.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1304 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1305 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1306 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1307 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1308 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1309 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1310 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1311 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1312 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1313 |
new_chkpt = checkpoint_data.CheckpointData("another", self.cp_mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1314 |
self.cp_mod_path, "EmptyCheckpoint", None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1315 |
None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1316 |
self.engine.register_checkpoint(new_chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1317 |
new_chkpt.cp_info.checkpoint_class_name, insert_before="four") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1318 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1319 |
new_list = [self.test_chkpt_list[0], self.test_chkpt_list[1], |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1320 |
self.test_chkpt_list[2], new_chkpt, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1321 |
self.test_chkpt_list[3], self.test_chkpt_list[4]] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1322 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1323 |
self.check_result(new_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1324 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1325 |
def test_reg_insert_before_invalid_name(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1326 |
'''Verify that register a checkpoint specifying invalid name for insert_before fails.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1327 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1328 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1329 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1330 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1331 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1332 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1333 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1334 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1335 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1336 |
new_chkpt = checkpoint_data.CheckpointData("another", self.cp_mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1337 |
self.cp_mod_path, "EmptyCheckpoint", None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1338 |
None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1339 |
self.assertRaises(engine.ChkptRegistrationError, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1340 |
self.engine.register_checkpoint, new_chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1341 |
self.cp_path, new_chkpt.cp_info.checkpoint_class_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1342 |
insert_before="invalid_name") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1343 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1344 |
self.check_result(self.test_chkpt_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1345 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1346 |
def test_reg_insert_before_and_loglevel(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1347 |
'''Verify that register a checkpoint with both loglevel and insert_before argument works.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1348 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1349 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1350 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1351 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1352 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1353 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1354 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1355 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1356 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1357 |
new_chkpt = checkpoint_data.CheckpointData("another", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1358 |
self.cp_mod_name, self.cp_mod_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1359 |
"EmptyCheckpoint", None, None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1360 |
self.engine.register_checkpoint(new_chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1361 |
new_chkpt.cp_info.checkpoint_class_name, insert_before="one", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1362 |
loglevel=ERROR) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1363 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1364 |
new_list = [new_chkpt] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1365 |
new_list.extend(self.test_chkpt_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1366 |
self.check_result(new_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1367 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1368 |
def test_reg_insert_before_and_loglevel_and_args(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1369 |
'''Verify that register a checkpoint with both loglevel, insert_before argument, and arguments for checkpoint works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1370 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1371 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1372 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1373 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1374 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1375 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1376 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1377 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1378 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1379 |
new_chkpt = checkpoint_data.CheckpointData("another", self.cp_mod_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1380 |
self.cp_mod_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1381 |
"EmptyCheckpointWithArgsAndKW", None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1382 |
None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1383 |
args = ["arg1", "arg2"] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1384 |
kwargs = {"kw1":"kw1"} |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1385 |
self.engine.register_checkpoint(new_chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1386 |
new_chkpt.cp_info.checkpoint_class_name, args=args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1387 |
insert_before="one", loglevel=ERROR, kwargs=kwargs) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1388 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1389 |
new_list = [new_chkpt] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1390 |
new_list.extend(self.test_chkpt_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1391 |
self.check_result(new_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1392 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1393 |
def test_reg_insert_before_and_loglevel_and_missing_args(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1394 |
'''Verify that register a checkpoint with loglevel, insert_before argument, but missing arg for checkpoint fails''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1395 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1396 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1397 |
for chkpt in self.test_chkpt_list: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1398 |
self.engine.register_checkpoint(chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1399 |
chkpt.cp_info.checkpoint_class_name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1400 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1401 |
self.fail("Failed to register checkpoint %s with valid arguments" % |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1402 |
chkpt.name) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1403 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1404 |
new_chkpt = checkpoint_data.CheckpointData("another", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1405 |
self.cp_mod_name, self.cp_mod_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1406 |
"EmptyCheckpointWithArgsAndKW", None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1407 |
None, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1408 |
self.assertRaises(TypeError, self.engine.register_checkpoint, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1409 |
new_chkpt.name, self.cp_path, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1410 |
new_chkpt.cp_info.checkpoint_class_name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1411 |
args=["arg1"], insert_before="one", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1412 |
loglevel=ERROR, kwargs={"kw1":"kw1"}) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1413 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1414 |
self.check_result(self.test_chkpt_list) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1415 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1416 |
def test_reg_none_arg_ok(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1417 |
'''Verify that register a checkpoint providing None as args and kwargs works''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1418 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1419 |
chkpt = self.test_chkpt_list[0] |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1420 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1421 |
self.engine.register_checkpoint(chkpt.name, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1422 |
self.cp_path, chkpt.cp_info.checkpoint_class_name, args=None, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1423 |
kwargs=None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1424 |
except Exception: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1425 |
self.fail("Failed to register 1 checkpoint with args=None, kwargs=None") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1426 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1427 |
self.check_result([chkpt]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1428 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
1429 |
|
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1430 |
class EngineCancelTests(EngineCheckpointsBase): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1431 |
'''Test InstallEngine.cancel_checkpoints(...) scenarios''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1432 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1433 |
CANCEL_CP_NAME = "cancel_cp" |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1434 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1435 |
def setUp(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1436 |
EngineCheckpointsBase.setUp(self) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1437 |
self.engine.data_object_cache = MockDOC() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1438 |
errsvc.clear_error_list() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1439 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1440 |
def reg_cancel_checkpoint(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1441 |
# register a check that looks for the cancel flag in the middle |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1442 |
# of the previouly registered checkpoint list. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1443 |
self.engine.register_checkpoint(EngineCancelTests.CANCEL_CP_NAME, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1444 |
*self.cp_data_args, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1445 |
insert_before="three", |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1446 |
kwargs={"wait_for_cancel":True}) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1447 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1448 |
def test_cancel(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1449 |
'''Test InstallEngine.cancel_checkpoints for the success case''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1450 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1451 |
# register a checkpoint that looks for the cancel flag |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1452 |
self.reg_cancel_checkpoint() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1453 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1454 |
self.engine.execute_checkpoints(callback=self._exec_cp_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1455 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1456 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1457 |
# Wait a little bit so we get to the checkpoint we expect to cancel |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1458 |
self.callback_executed.wait(5) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1459 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1460 |
self.engine.cancel_checkpoints() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1461 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1462 |
# Wait for the cancel request to end the execute_checkpoints(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1463 |
# it should not take too long. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1464 |
self.callback_executed.wait(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1465 |
self.assertTrue(self.callback_executed.is_set(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1466 |
"Callback wasn't called-back") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1467 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1468 |
# Wait 15 seconds for the cancel to take place. It should |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1469 |
# not take that long. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1470 |
self.engine.checkpoint_thread.join(15) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1471 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1472 |
self.assertEqual(self.callback_results[0], self.engine.EXEC_CANCELED, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1473 |
"Engine did not return EXEC_CANCELED") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1474 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1475 |
# Name of the checkpoint canceled should be returned. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1476 |
self.assertEqual(1, len(self.callback_results[1])) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1477 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1478 |
self.assertEqual(EngineCancelTests.CANCEL_CP_NAME, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1479 |
(self.callback_results[1])[0]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1480 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1481 |
def test_cancel_did_not_start_exec(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1482 |
'''Verify InstallEngine.cancel_checkpoints behave correctly when checkpoints are registered, but nothing is executing.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1483 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1484 |
# register a checkpoint that looks for the cancel flag |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1485 |
self.reg_cancel_checkpoint() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1486 |
|
1717
10cb4d15a248
7066254 Problem with install/logging
Ginnie Wray<virginia.wray@oracle.com>
parents:
1350
diff
changeset
|
1487 |
# Call cancel_checkpoints |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1488 |
self.engine.cancel_checkpoints() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1489 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1490 |
# Make sure the cancel checkpoint is not executed |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1491 |
cp_data = self.engine.get_cp_data(EngineCancelTests.CANCEL_CP_NAME) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1492 |
self.assertFalse(cp_data.completed) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1493 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1494 |
def test_cancel_finished_exec(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1495 |
'''Verify InstallEngine.cancel_checkpoints behave correctly when all checkpoints finished executing and there's nothing to cancel.''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1496 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1497 |
status, failed_cp = self.engine.execute_checkpoints(dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1498 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1499 |
self.assertEquals(status, self.engine.EXEC_SUCCESS) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1500 |
self.assertEqual(0, len(failed_cp)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1501 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1502 |
# All checkpoints should be completed |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1503 |
self.assertEqual(self.engine.get_first_incomplete(), None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1504 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1505 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1506 |
# Call cancel_checkpoints, should be a no op, make sure no exception |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1507 |
# is raised. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1508 |
try: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1509 |
self.engine.cancel_checkpoints() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1510 |
except Exception, ex: |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1511 |
self.fail("cancel checkpoint failed after execute completed") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1512 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1513 |
def test_exec_after_cancel(self): |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1514 |
'''Verify execute_checkpoint() works correctly after cancel_checkpoints is called. ''' |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1515 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1516 |
# register a checkpoint that looks for the cancel flag |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1517 |
self.reg_cancel_checkpoint() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1518 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1519 |
self.engine.execute_checkpoints(callback=self._exec_cp_callback, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1520 |
dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1521 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1522 |
# Wait a little bit so we get to the checkpoint we expect to cancel |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1523 |
self.callback_executed.wait(5) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1524 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1525 |
self.engine.cancel_checkpoints() |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1526 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1527 |
# Wait for the cancel request to end the execute_checkpoints(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1528 |
# it should not take too long. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1529 |
self.callback_executed.wait(10) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1530 |
self.assertTrue(self.callback_executed.is_set(), |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1531 |
"Callback wasn't called-back") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1532 |
# Wait 15 seconds for the cancel to take place. It should |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1533 |
# not take that long. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1534 |
self.engine.checkpoint_thread.join(15) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1535 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1536 |
self.assertEqual(self.callback_results[0], self.engine.EXEC_CANCELED, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1537 |
"Engine did not return EXEC_CANCELED") |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1538 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1539 |
# Name of the checkpoint canceled should be returned. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1540 |
self.assertEqual(1, len(self.callback_results[1])) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1541 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1542 |
self.assertEqual(EngineCancelTests.CANCEL_CP_NAME, |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1543 |
(self.callback_results[1])[0]) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1544 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1545 |
# Change the parameter of the checkpoint that would wait for the |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1546 |
# cancel, to not do the waiting |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1547 |
cp_data = self.engine.get_cp_data(EngineCancelTests.CANCEL_CP_NAME) |
1290
cfaa7349f221
7004000 Install engine enhancement to save original args/kwargs list before calling checkpoint's execute
Karen Tung <Karen.Tung@oracle.com>
parents:
1073
diff
changeset
|
1548 |
cp_data.cp_info.reg_kwargs["wait_for_cancel"] = False |
909
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1549 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1550 |
# continue execution. Make sure rest of checkpoints are executed. |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1551 |
status, failed_cp = self.engine.execute_checkpoints(dry_run=True) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1552 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1553 |
self.assertEquals(status, self.engine.EXEC_SUCCESS) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1554 |
self.assertEqual(0, len(failed_cp)) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1555 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1556 |
# All checkpoints should be completed |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1557 |
self.assertEqual(self.engine.get_first_incomplete(), None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1558 |
self.assertEqual(self.engine.checkpoint_thread, None) |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1559 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1560 |
|
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1561 |
if __name__ == '__main__': |
ab25dde8919d
16323 Implement Install Execution Engine
Karen Tung <karen.tung@oracle.com>
parents:
diff
changeset
|
1562 |
unittest.main() |