author | Dan Price <daniel.price@oracle.com> |
Tue, 19 Jun 2012 15:59:08 -0700 | |
changeset 1721 | 4ee0239d9a9f |
parent 1709 | ee7123806386 |
child 1723 | d23bbc08f2ac |
permissions | -rw-r--r-- |
947
29603af1b942
6999599 Missing shebang lines in python modules leads to incorrect dependency generation
Keith Mitchell <keith.mitchell@oracle.com>
parents:
942
diff
changeset
|
1 |
#!/usr/bin/python |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
2 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
4 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
8 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
13 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
19 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
21 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
22 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
23 |
# |
1599
118f135d9d1e
7143246 pylint errors in solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1454
diff
changeset
|
24 |
# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
25 |
# |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
26 |
'''Transfer IPS checkpoint. Sub-class of the checkpoint class''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
27 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
28 |
import abc |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
29 |
import copy |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
30 |
import gettext |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
31 |
import locale |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
32 |
import logging |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
33 |
import os |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
34 |
import shutil |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
35 |
import sys |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
36 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
37 |
import pkg.client.api as api |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
38 |
import pkg.client.api_errors as api_errors |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
39 |
import pkg.client.image as image |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
40 |
import pkg.client.progress as progress |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
41 |
import pkg.client.printengine as printengine |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
42 |
import pkg.client.publisher as publisher |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
43 |
import pkg.misc as misc |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
44 |
|
1706
bfbbe94a121d
7125955 install_transfer/ips module should log more info about the packages being installed into the image
Geoffrey Hart <geoffrey.hart@oracle.com>
parents:
1692
diff
changeset
|
45 |
from pkg.fmri import PkgFmri |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
46 |
from pkg.client import global_settings |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
47 |
from pkg.client.api import IMG_TYPE_ENTIRE, IMG_TYPE_PARTIAL |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
48 |
from solaris_install import PKG5_API_VERSION |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
49 |
from solaris_install.engine.checkpoint import AbstractCheckpoint as Checkpoint |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
50 |
from solaris_install.engine import InstallEngine |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
51 |
from solaris_install.transfer.info import Args |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
52 |
from solaris_install.transfer.info import Destination |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
53 |
from solaris_install.transfer.info import Facet |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
54 |
from solaris_install.transfer.info import Image |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
55 |
from solaris_install.transfer.info import ImType |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
56 |
from solaris_install.transfer.info import IPSSpec |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
57 |
from solaris_install.transfer.info import Mirror |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
58 |
from solaris_install.transfer.info import Origin |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
59 |
from solaris_install.transfer.info import Property |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
60 |
from solaris_install.transfer.info import Publisher |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
61 |
from solaris_install.transfer.info import Software |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
62 |
from solaris_install.transfer.info import Source |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
63 |
from solaris_install.transfer.info import ACTION, CONTENTS, \ |
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
64 |
PURGE_HISTORY, APP_CALLBACK, IPS_ARGS, UPDATE_INDEX, REJECT_LIST |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
65 |
from solaris_install.transfer.prog import ProgressMon |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
66 |
|
1619
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
67 |
LICENSE_ACCEPTED = "automatically accepted" |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
68 |
LICENSE_NOT_DISP = "not displayed" |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
69 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
70 |
PKG_CLIENT_NAME = "transfer module" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
71 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
72 |
global_settings.client_name = PKG_CLIENT_NAME |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
73 |
misc.setlocale(locale.LC_ALL, "") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
74 |
gettext.install("pkg", "/usr/share/locale") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
75 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
76 |
class AbstractIPS(Checkpoint): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
77 |
'''Subclass for transfer IPS checkpoint''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
78 |
__metaclass__ = abc.ABCMeta |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
79 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
80 |
# Variables associated with the package image |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
81 |
DEF_REPO_URI = "http://pkg.opensolaris.org/release" |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
82 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
83 |
# Variables used in calculating the image size |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
84 |
DEFAULT_PROG_EST = 10 |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
85 |
DEFAULT_SIZE = 1000 |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
86 |
DEFAULT_PKG_NUM = 5 |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
87 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
88 |
# Variables used to check system version info |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
89 |
SYSTEM_IMAGE = "/" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
90 |
ENT_PKG = ["entire"] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
91 |
SYSTEM_CLIENT_NAME = "host" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
92 |
INFO_NEEDED = api.PackageInfo.ALL_OPTIONS |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
93 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
94 |
# Action variables |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
95 |
CREATE = "create" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
96 |
EXISTING = "use_existing" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
97 |
UPDATE = "update" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
98 |
|
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
99 |
def __init__(self, name, zonename=None, show_stdout=False): |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
100 |
super(AbstractIPS, self).__init__(name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
101 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
102 |
# attributes per image |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
103 |
self.dst = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
104 |
self.img_action = self.CREATE |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
105 |
self.index = False |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
106 |
self.src = None # [(pub_name, [origin], [mirror])] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
107 |
self.image_args = {} |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
108 |
self.completeness = IMG_TYPE_ENTIRE |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
109 |
self.is_zone = False |
1239
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
110 |
self.zonename = zonename |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
111 |
self.show_stdout = show_stdout |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
112 |
self.facets = {} |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
113 |
self.properties = {} |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
114 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
115 |
# To be used for progress reporting |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
116 |
self.distro_size = 0 |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
117 |
self.give_progress = False |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
118 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
119 |
# Handle for the progress monitor |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
120 |
self.pmon = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
121 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
122 |
# handle for the ips api |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
123 |
self.api_inst = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
124 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
125 |
# Determines whether a dry run occurs |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
126 |
self.dry_run = False |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
127 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
128 |
# Flag to cancel whatever action is going on. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
129 |
self._cancel_event = False |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
130 |
|
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
131 |
# Set the progress tracker for IPS operations. |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
132 |
trackers = [] |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
133 |
if self.show_stdout: |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
134 |
# Try to create a Fancy progress tracker. If we're not running on a |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
135 |
# capable terminal, then bump the loglevel up to INFO. This is a |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
136 |
# hack, but it will cause the log messages to appear on stdout |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
137 |
# and in the log file. |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
138 |
try: |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
139 |
t = progress.FancyUNIXProgressTracker(output_file=sys.stdout) |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
140 |
trackers.append(t) |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
141 |
loglevel = logging.DEBUG |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
142 |
except progress.ProgressTrackerException: |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
143 |
loglevel = logging.INFO |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
144 |
else: |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
145 |
loglevel = logging.DEBUG |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
146 |
|
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
147 |
# Set up the logging progress tracker-- this is a |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
148 |
# CommandLineProgressTracker hooked up to a special printengine. |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
149 |
pe = printengine.LoggingPrintEngine(self.logger, loglevel) |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
150 |
logt = progress.CommandLineProgressTracker(print_engine=pe) |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
151 |
trackers.append(logt) |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
152 |
|
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
153 |
self.prog_tracker = progress.MultiProgressTracker(trackers) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
154 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
155 |
# local attributes used to create the publisher. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
156 |
self._publ = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
157 |
self._origin = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
158 |
self._mirror = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
159 |
self._add_publ = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
160 |
self._add_origin = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
161 |
self._add_mirror = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
162 |
self._image_args = {} |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
163 |
|
1706
bfbbe94a121d
7125955 install_transfer/ips module should log more info about the packages being installed into the image
Geoffrey Hart <geoffrey.hart@oracle.com>
parents:
1692
diff
changeset
|
164 |
# list for holding package plans (publisher, package, version) |
bfbbe94a121d
7125955 install_transfer/ips module should log more info about the packages being installed into the image
Geoffrey Hart <geoffrey.hart@oracle.com>
parents:
1692
diff
changeset
|
165 |
self._package_dict = {} |
bfbbe94a121d
7125955 install_transfer/ips module should log more info about the packages being installed into the image
Geoffrey Hart <geoffrey.hart@oracle.com>
parents:
1692
diff
changeset
|
166 |
|
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
167 |
# publisher list to hold a reference between publishers and |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
168 |
# origins/mirrors |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
169 |
self.publisher_list = list() |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
170 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
171 |
# List to hold dictionaries of transfer actions |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
172 |
self._transfer_list = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
173 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
174 |
def get_size(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
175 |
'''Compute the size of the transfer specified.''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
176 |
self._parse_input() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
177 |
self._validate_input() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
178 |
num_pkgs = 0 |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
179 |
for trans in self._transfer_list: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
180 |
num_pkgs += len(trans.get(CONTENTS)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
181 |
return self.DEFAULT_SIZE * (num_pkgs / self.DEFAULT_PKG_NUM) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
182 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
183 |
def get_progress_estimate(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
184 |
'''Returns an estimate of the time this checkpoint will |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
185 |
take. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
186 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
187 |
if self.distro_size == 0: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
188 |
self.distro_size = self.get_size() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
189 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
190 |
progress_estimate = \ |
1049
d4eefe3ca0fd
7032666 Problems with progress reporting in transfer checkpoint
Karen Tung <karen.tung@oracle.com>
parents:
1025
diff
changeset
|
191 |
int((float(self.distro_size) / self.DEFAULT_SIZE) * \ |
d4eefe3ca0fd
7032666 Problems with progress reporting in transfer checkpoint
Karen Tung <karen.tung@oracle.com>
parents:
1025
diff
changeset
|
192 |
self.DEFAULT_PROG_EST) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
193 |
self.give_progress = True |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
194 |
return progress_estimate |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
195 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
196 |
def cancel(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
197 |
'''Cancel the transfer in progress''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
198 |
self._cancel_event = True |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
199 |
if self.api_inst: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
200 |
self.api_inst.cancel() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
201 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
202 |
def execute(self, dry_run=False): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
203 |
'''Execute method for the IPS checkpoint module. Will read the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
204 |
input parameters and perform the specified transfer. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
205 |
''' |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
206 |
self.logger.debug("=== Executing %s Checkpoint ===" % self.name) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
207 |
try: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
208 |
if self.give_progress: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
209 |
self.logger.report_progress("Beginning IPS transfer", 0) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
210 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
211 |
self.dry_run = dry_run |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
212 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
213 |
# Read the parameters from the DOC and put into the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
214 |
# local attributes. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
215 |
self._parse_input() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
216 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
217 |
# Validate the attributes |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
218 |
self._validate_input() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
219 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
220 |
# Get the handle to the IPS image api. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
221 |
if not self.dry_run: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
222 |
self.get_ips_api_inst() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
223 |
|
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
224 |
# Perform the transferring of the bit/updating of the image. |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
225 |
self._transfer() |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
226 |
|
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
227 |
if not self.dry_run: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
228 |
# Check to see that the entire package on the host system |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
229 |
# matches the package in the target image, if the entire |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
230 |
# package is included in the package list. Log a warning |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
231 |
# message if the versions don't match. |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
232 |
# If it isn't found in the package list or on the system, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
233 |
# this isn't an error. Continue with the installation. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
234 |
for trans_val in self._transfer_list: |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
235 |
if trans_val.get(ACTION) == "install": |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
236 |
for pkg in trans_val.get(CONTENTS): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
237 |
if "entire" in pkg: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
238 |
sysinst = api.ImageInterface(self.SYSTEM_IMAGE, |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
239 |
PKG5_API_VERSION, |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
240 |
self.prog_tracker, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
241 |
False, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
242 |
self.SYSTEM_CLIENT_NAME) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
243 |
|
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
244 |
installer_entire_info = \ |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
245 |
sysinst.info(fmri_strings=self.ENT_PKG, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
246 |
local=True, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
247 |
info_needed=self.INFO_NEEDED) |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
248 |
|
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
249 |
target_entire_info = self.api_inst.info( |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
250 |
fmri_strings=self.ENT_PKG, |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
251 |
local=True, |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
252 |
info_needed=self.INFO_NEEDED) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
253 |
|
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
254 |
if not installer_entire_info[ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
255 |
api.ImageInterface.INFO_FOUND] or \ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
256 |
not target_entire_info[ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
257 |
api.ImageInterface.INFO_FOUND]: |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
258 |
continue |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
259 |
|
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
260 |
installer_entire_pi = \ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
261 |
installer_entire_info[ \ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
262 |
api.ImageInterface.INFO_FOUND][0] |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
263 |
target_entire_pi = \ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
264 |
target_entire_info[ \ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
265 |
api.ImageInterface.INFO_FOUND][0] |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
266 |
|
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
267 |
if installer_entire_pi.branch != \ |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
268 |
target_entire_pi.branch: |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
269 |
self.logger.warning("Version mismatch: ") |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
270 |
self.logger.warning( |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
271 |
"Installer build version: %s" % |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
272 |
(installer_entire_pi.fmri)) |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
273 |
self.logger.warning( |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
274 |
"Target build version: %s" % |
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
275 |
(target_entire_pi.fmri)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
276 |
self.check_cancel_event() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
277 |
|
1389
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
278 |
except api_errors.CatalogRefreshException, cre: |
1680
902e7dbd8043
7155706 pylint errors in usr/src/lib/install_transfer/ips.py
Mary Ding <mary.ding@oracle.com>
parents:
1650
diff
changeset
|
279 |
# Handle CatalogRefreshException especially since it doesn't |
902e7dbd8043
7155706 pylint errors in usr/src/lib/install_transfer/ips.py
Mary Ding <mary.ding@oracle.com>
parents:
1650
diff
changeset
|
280 |
# pretty-print it's contents in a __str__() impl. |
1692
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
281 |
|
1389
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
282 |
raise RuntimeError(self.catalog_failures_to_str(cre)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
283 |
finally: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
284 |
self._cleanup() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
285 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
286 |
@abc.abstractmethod |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
287 |
def _parse_input(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
288 |
'''This method is required to be implemented by all subclasses.''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
289 |
raise NotImplementedError |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
290 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
291 |
def _validate_input(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
292 |
'''Do whatever validation is necessary on the attributes.''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
293 |
self.logger.debug("Validating IPS input") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
294 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
295 |
# dst is required |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
296 |
if self.dst is None: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
297 |
raise ValueError("IPS destination must be specified") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
298 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
299 |
if self.img_action not in (self.EXISTING, self.CREATE, self.UPDATE): |
1025
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
300 |
raise ValueError("The IPS action is not valid: %s" % |
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
301 |
self.img_action) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
302 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
303 |
self.logger.debug("Destination: %s", self.dst) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
304 |
self.logger.debug("Image action: %s", self.img_action) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
305 |
if self.completeness == "full": |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
306 |
self.completeness = IMG_TYPE_ENTIRE |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
307 |
self.logger.debug("Image Type: full") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
308 |
elif self.completeness == "partial": |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
309 |
self.completeness = IMG_TYPE_PARTIAL |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
310 |
self.logger.debug("Image Type: partial") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
311 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
312 |
if self.is_zone: |
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
313 |
self.logger.debug("Image Variant: zone") |
1239
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
314 |
# For images of type zone, we need the zonename so that |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
315 |
# we can construct the linked image name when attaching |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
316 |
# it to the parent image. |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
317 |
if not self.zonename: |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
318 |
raise ValueError("For images of type 'zone', a zonename " |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
319 |
"must be provided.") |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
320 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
321 |
not_allowed = set(["prefix", "repo_uri", "origins", "mirrors"]) |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
322 |
img_args = set(self.image_args.keys()) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
323 |
overlap = list(not_allowed & img_args) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
324 |
if overlap: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
325 |
raise ValueError("The following components may be specified " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
326 |
"with the source component of the manifest but " |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
327 |
"are invalid as args: " + str(overlap)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
328 |
|
1373
06749bba0075
7052074 zones autoinstall needs more fine-grained progress reporting
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1350
diff
changeset
|
329 |
self.prog_tracker = self.image_args.get("progtrack", self.prog_tracker) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
330 |
|
1692
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
331 |
invalid_prefix_uri = None |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
332 |
if self.img_action == self.CREATE: |
1692
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
333 |
# Set the image args we always want set. |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
334 |
self.set_image_args() |
1692
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
335 |
elif not self.dry_run and not self._publ: |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
336 |
# It's either None or empty string, so fail |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
337 |
# Should always have index 0 since DTD won't allow otherwise, but |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
338 |
# should ignore in case of dry_run since unlikely to be set. |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
339 |
invalid_prefix_uri = self._origin[0] |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
340 |
|
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
341 |
if invalid_prefix_uri is None: |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
342 |
for idx, element in enumerate(self._add_publ): |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
343 |
if not element: |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
344 |
# It's either None or empty string, so fail |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
345 |
# Should always have index 0 since DTD won't allow |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
346 |
# otherwise. |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
347 |
invalid_prefix_uri = self._add_origin[idx][0] |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
348 |
break |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
349 |
|
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
350 |
if invalid_prefix_uri is not None: |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
351 |
raise ValueError( |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
352 |
"Only the publisher being used for image creation can have\n" |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
353 |
"its prefix auto-discovered, please specify the prefix for\n" |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
354 |
"the publisher with the URI:\n %s" |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
355 |
% invalid_prefix_uri) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
356 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
357 |
def _transfer(self): |
1101
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
358 |
'''If an update of the image has been specified, the publishers of the |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
359 |
existing image are examined. If a matching publisher is found, the |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
360 |
origins and mirrors (if present) are reset to the desired entries. |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
361 |
All other publishers in the image are removed and the new additional |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
362 |
publishers are added. Then properties are set, if specified and the |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
363 |
transfer specific operations of install, uninstall and purge history |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
364 |
are performed. |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
365 |
If creation of the image has been specified, the additional |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
366 |
publishers are added to the image, properties are set and the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
367 |
transfer specific operations of install, uninstall and purge history |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
368 |
are performed. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
369 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
370 |
if self.give_progress and self.distro_size != 0: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
371 |
# Start up the ProgressMon to report progress |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
372 |
# while the actual transfer is taking place. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
373 |
self.pmon = ProgressMon(logger=self.logger) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
374 |
self.pmon.startmonitor(self.dst, self.distro_size, 0, 100) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
375 |
|
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
376 |
if self.img_action == self.EXISTING and self._publ \ |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
377 |
and not self.dry_run: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
378 |
# See what publishers/origins/mirrors we have |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
379 |
self.logger.debug("Updating the publishers") |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
380 |
pub_list = self.api_inst.get_publishers(duplicate=True) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
381 |
|
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
382 |
self.logger.info("Setting post-install publishers to:") |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
383 |
self.print_repository_uris() |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
384 |
|
1101
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
385 |
# Look to see if the publisher in _publ is already in the Image |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
386 |
if self.api_inst.has_publisher(prefix=self._publ): |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
387 |
# update the publisher |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
388 |
pub = self.api_inst.get_publisher(prefix=self._publ, |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
389 |
duplicate=True) |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
390 |
self.logger.debug("Updating publisher information for " \ |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
391 |
"%s" % str(self._publ)) |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
392 |
repository = pub.repository |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
393 |
repository.reset_origins() |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
394 |
repository.reset_mirrors() |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
395 |
for origin in self._origin: |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
396 |
repository.add_origin(origin) |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
397 |
if self._mirror is not None: |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
398 |
for mirror in self._mirror: |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
399 |
repository.add_mirror(mirror) |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
400 |
self.api_inst.update_publisher(pub=pub, refresh_allowed=False, |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
401 |
search_first=True) |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
402 |
else: |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
403 |
# create a new publisher and set it to the highest ranked |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
404 |
# publisher |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
405 |
if self._mirror: |
1099
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
406 |
repo = publisher.Repository(mirrors=self._mirror, |
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
407 |
origins=self._origin) |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
408 |
else: |
1099
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
409 |
repo = publisher.Repository(origins=self._origin) |
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
410 |
pub = publisher.Publisher(prefix=self._publ, repository=repo) |
1101
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
411 |
self.api_inst.add_publisher(pub=pub, refresh_allowed=False, |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
412 |
search_first=True) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
413 |
|
1101
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
414 |
# the highest ranking publisher has been set. Walk the other |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
415 |
# publishers in the list and remove them. |
30df8e9b5f27
7040795 install fails with setting preferred publisher errors after fix for 7039499 is integrated
Drew Fisher <drew.fisher@oracle.com>
parents:
1099
diff
changeset
|
416 |
for pub in self.api_inst.get_publishers(duplicate=True)[1:]: |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
417 |
self.api_inst.remove_publisher(prefix=pub.prefix) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
418 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
419 |
# Add specified publishers/origins/mirrors to the image. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
420 |
for idx, element in enumerate(self._add_publ): |
1174
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
421 |
# If this publisher doesn't already exist, add it. (In dry_run |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
422 |
# mode, api_inst is not initialized so always add these publishers |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
423 |
# as additionals because we know they won't be pre-existing.) |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
424 |
if self.dry_run or not self.api_inst.has_publisher(prefix=element): |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
425 |
self.logger.debug("Adding additional publisher %s" % \ |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
426 |
str(element)) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
427 |
if self._add_mirror[idx]: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
428 |
repo = publisher.Repository(mirrors=self._add_mirror[idx], |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
429 |
origins=self._add_origin[idx]) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
430 |
else: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
431 |
repo = publisher.Repository(origins=self._add_origin[idx]) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
432 |
pub = publisher.Publisher(prefix=element, repository=repo) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
433 |
if not self.dry_run: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
434 |
self.api_inst.add_publisher(pub=pub, refresh_allowed=False) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
435 |
# Else update the existing publisher with this spec |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
436 |
else: |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
437 |
self.logger.debug("Updating publisher information for " \ |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
438 |
"%s" % str(element)) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
439 |
pub = self.api_inst.get_publisher(prefix=element, |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
440 |
duplicate=True) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
441 |
repository = pub.repository |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
442 |
if self._add_origin[idx]: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
443 |
for origin in self._add_origin[idx]: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
444 |
if not repository.has_origin(origin): |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
445 |
repository.add_origin(origin) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
446 |
if self._add_mirror[idx]: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
447 |
for mirror in self._add_mirror[idx]: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
448 |
if not repository.has_mirror(mirror): |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
449 |
repository.add_mirror(mirror) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
450 |
self.api_inst.update_publisher(pub=pub, refresh_allowed=False) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
451 |
|
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
452 |
# Get the publisher information of what the image is set with now. |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
453 |
# Re-set publisher_list to that list, so that it can be used later |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
454 |
# to be printed out |
1174
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
455 |
if not self.dry_run: |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
456 |
pub_list = self.api_inst.get_publishers(duplicate=True) |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
457 |
pub_list_for_print = list() |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
458 |
for pub in pub_list: |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
459 |
repo = pub.repository |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
460 |
origin_uris = list() |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
461 |
mirror_uris = list() |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
462 |
if repo.origins: |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
463 |
for origin in repo.origins: |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
464 |
origin_uris.append(origin.uri) |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
465 |
if repo.mirrors: |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
466 |
for mirror in repo.mirrors: |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
467 |
mirror_uris.append(mirror.uri) |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
468 |
pub_list_for_print.append((pub.prefix, origin_uris, |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
469 |
mirror_uris)) |
2e24c69f77d0
7050248 Additional 49 install unit test failure after zones AI putback
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1169
diff
changeset
|
470 |
self.publisher_list = pub_list_for_print |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
471 |
|
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
472 |
if self.dry_run: |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
473 |
self.logger.debug("Dry Run: publishers updated") |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
474 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
475 |
self.check_cancel_event() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
476 |
|
1099
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
477 |
if self.properties and not self.dry_run: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
478 |
# Update properties if needed. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
479 |
self.logger.debug("Updating image properties") |
1235
fea9874bba56
7059924 All 5 DC isos double in size in snv_169 and livecd install fails since / ran out of room.
Drew Fisher <drew.fisher@oracle.com>
parents:
1174
diff
changeset
|
480 |
img = self.api_inst.img |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
481 |
for prop in self.properties.keys(): |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
482 |
if prop == "preferred-publisher": |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
483 |
# Can't set preferred-publisher via set_property, you |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
484 |
# must use set_preferred_publisher |
1099
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
485 |
img.set_highest_ranked_publisher( |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
486 |
prefix=self.properties[prop]) |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
487 |
else: |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
488 |
if isinstance(self.properties[prop], bool): |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
489 |
self.properties[prop] = str(self.properties[prop]) |
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
490 |
img.set_property(prop, self.properties[prop]) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
491 |
|
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
492 |
# Refresh publishers now that we've set the publishers, otherwise |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
493 |
# avoid/unavoid will not work and will cause install failures |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
494 |
if not self.dry_run: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
495 |
self.api_inst.refresh(immediate=True) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
496 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
497 |
# Perform the transfer specific operations. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
498 |
for trans_val in self._transfer_list: |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
499 |
if trans_val.get(ACTION) == "install": |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
500 |
self.check_cancel_event() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
501 |
callback = trans_val.get(APP_CALLBACK) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
502 |
if trans_val.get(CONTENTS): |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
503 |
self.logger.info("Installing packages from:") |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
504 |
self.print_repository_uris() |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
505 |
|
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
506 |
reject_list = trans_val.get(REJECT_LIST) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
507 |
if reject_list: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
508 |
self.logger.info( |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
509 |
"Transfer set to reject packages matching:") |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
510 |
for pkg in reject_list: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
511 |
self.logger.info(" %s", pkg) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
512 |
else: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
513 |
# Set the reject list to be the default value rather |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
514 |
# than None |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
515 |
self.logger.debug( |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
516 |
"Transfer reject package list is empty") |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
517 |
reject_list = misc.EmptyI |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
518 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
519 |
if not self.dry_run: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
520 |
# Install packages |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
521 |
if trans_val.get(IPS_ARGS): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
522 |
self.api_inst.plan_install( |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
523 |
pkg_list=trans_val.get(CONTENTS), |
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
524 |
reject_list=reject_list, |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
525 |
**trans_val.get(IPS_ARGS)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
526 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
527 |
self.api_inst.plan_install( |
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
528 |
pkg_list=trans_val.get(CONTENTS), |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
529 |
reject_list=reject_list) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
530 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
531 |
if callback: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
532 |
# execute the callback function passing it |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
533 |
# the api object we are using to perform the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
534 |
# transfer to perform additional inspection or |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
535 |
# deal with things such as license acceptance. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
536 |
callback(self.api_inst) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
537 |
|
1619
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
538 |
licensed = dict() |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
539 |
plan = self.api_inst.describe() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
540 |
for pfmri, src, dest, accepted, displayed \ |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
541 |
in plan.get_licenses(): |
1619
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
542 |
|
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
543 |
if not dest.must_accept and not dest.must_display: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
544 |
continue |
1619
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
545 |
|
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
546 |
# Use just the package name, no publisher or |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
547 |
# version, neater output. |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
548 |
fmri = pfmri.get_name() |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
549 |
licensed[fmri] = list() |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
550 |
if dest.must_accept: |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
551 |
licensed[fmri].append(LICENSE_ACCEPTED) |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
552 |
if dest.must_display: |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
553 |
licensed[fmri].append(LICENSE_NOT_DISP) |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
554 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
555 |
self.api_inst.set_plan_license_status(pfmri, |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
556 |
dest.license, displayed=True, accepted=True) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
557 |
|
1619
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
558 |
if licensed: |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
559 |
self.logger.info("Please review the licenses " |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
560 |
"for the following packages post-install:") |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
561 |
for fmri in licensed: |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
562 |
if len(licensed[fmri]) == 2: |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
563 |
# Looks better to output over two lines, |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
564 |
# when there are two flags to output |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
565 |
self.logger.info(" %-40s (%s,", fmri, |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
566 |
licensed[fmri][0]) |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
567 |
self.logger.info(" %-40s %s)", "", |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
568 |
licensed[fmri][1]) |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
569 |
else: |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
570 |
# Always at least one, otherwise wouldn't |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
571 |
# be in the dictionary at all. |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
572 |
self.logger.info(" %-40s (%s)", fmri, |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
573 |
licensed[fmri][0]) |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
574 |
self.logger.info("Package licenses may be viewed " |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
575 |
"using the command:") |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
576 |
self.logger.info(" pkg info --license <pkg_fmri>") |
8146839f7594
7152537 AI fails to install packages with licenses using must-display=true and not must-accept=true
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1599
diff
changeset
|
577 |
|
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
578 |
# Describe the install plan in the debug log. |
1706
bfbbe94a121d
7125955 install_transfer/ips module should log more info about the packages being installed into the image
Geoffrey Hart <geoffrey.hart@oracle.com>
parents:
1692
diff
changeset
|
579 |
plan = self.api_inst.describe().get_changes() |
1721
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
580 |
self.logger.debug("Installation Plan:") |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
581 |
for src_pkg, dest_pkg in plan: |
4ee0239d9a9f
7176734 adjust for new IPS progress module API
Dan Price <daniel.price@oracle.com>
parents:
1709
diff
changeset
|
582 |
self.logger.debug(" %s" % str(dest_pkg)) |
1706
bfbbe94a121d
7125955 install_transfer/ips module should log more info about the packages being installed into the image
Geoffrey Hart <geoffrey.hart@oracle.com>
parents:
1692
diff
changeset
|
583 |
|
955
000af470aa07
7001612-Detailed output when reporting package transfer needed/remove unneeded output
Ginnie Wray<virginia.wray@oracle.com>
parents:
954
diff
changeset
|
584 |
# Execute the transfer action |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
585 |
self.api_inst.prepare() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
586 |
self.api_inst.execute_plan() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
587 |
self.api_inst.reset() |
955
000af470aa07
7001612-Detailed output when reporting package transfer needed/remove unneeded output
Ginnie Wray<virginia.wray@oracle.com>
parents:
954
diff
changeset
|
588 |
|
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
589 |
# The above call will end up leaving our process's cwd |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
590 |
# in the image's root area, which will cause pain later |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
591 |
# in trying to unmount the image. So we manually |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
592 |
# change dir back to "/". |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
593 |
os.chdir("/") |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
594 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
595 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
596 |
self.logger.debug("Dry Run: Installing packages") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
597 |
|
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
598 |
elif trans_val.get(ACTION) == "uninstall": |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
599 |
self.logger.debug("Uninstalling packages") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
600 |
if not self.dry_run: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
601 |
# Uninstall packages |
1161
5c1b6d445efc
7048838 update CLIENT_API_VERSION and remove 'recursive_removal' from install libraries
Drew Fisher <drew.fisher@oracle.com>
parents:
1160
diff
changeset
|
602 |
if IPS_ARGS in trans_val: |
5c1b6d445efc
7048838 update CLIENT_API_VERSION and remove 'recursive_removal' from install libraries
Drew Fisher <drew.fisher@oracle.com>
parents:
1160
diff
changeset
|
603 |
self.api_inst.plan_uninstall(trans_val.get(CONTENTS), |
5c1b6d445efc
7048838 update CLIENT_API_VERSION and remove 'recursive_removal' from install libraries
Drew Fisher <drew.fisher@oracle.com>
parents:
1160
diff
changeset
|
604 |
**trans_val.get(IPS_ARGS)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
605 |
else: |
1161
5c1b6d445efc
7048838 update CLIENT_API_VERSION and remove 'recursive_removal' from install libraries
Drew Fisher <drew.fisher@oracle.com>
parents:
1160
diff
changeset
|
606 |
self.api_inst.plan_uninstall(trans_val.get(CONTENTS)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
607 |
|
955
000af470aa07
7001612-Detailed output when reporting package transfer needed/remove unneeded output
Ginnie Wray<virginia.wray@oracle.com>
parents:
954
diff
changeset
|
608 |
# Execute the transfer action |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
609 |
self.api_inst.prepare() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
610 |
self.api_inst.execute_plan() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
611 |
self.api_inst.reset() |
955
000af470aa07
7001612-Detailed output when reporting package transfer needed/remove unneeded output
Ginnie Wray<virginia.wray@oracle.com>
parents:
954
diff
changeset
|
612 |
|
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
613 |
elif trans_val.get(ACTION) == "avoid": |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
614 |
self.logger.info("Setting packages to avoid:") |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
615 |
avoid_list = trans_val.get(CONTENTS) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
616 |
for pkg in avoid_list: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
617 |
self.logger.info(" %s", pkg) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
618 |
if not self.dry_run: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
619 |
# Avoid packages |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
620 |
self.api_inst.avoid_pkgs(avoid_list) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
621 |
|
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
622 |
elif trans_val.get(ACTION) == "unavoid": |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
623 |
self.logger.info("Removing packages from list to avoid:") |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
624 |
unavoid_list = trans_val.get(CONTENTS) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
625 |
for pkg in unavoid_list: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
626 |
self.logger.info(" %s", pkg) |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
627 |
if not self.dry_run: |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
628 |
# Avoid packages |
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
629 |
self.api_inst.avoid_pkgs(unavoid_list, unavoid=True) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
630 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
631 |
if trans_val.get(PURGE_HISTORY): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
632 |
# purge history if requested. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
633 |
self.logger.debug("Purging History") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
634 |
if not self.dry_run: |
1235
fea9874bba56
7059924 All 5 DC isos double in size in snv_169 and livecd install fails since / ran out of room.
Drew Fisher <drew.fisher@oracle.com>
parents:
1174
diff
changeset
|
635 |
img = self.api_inst.img |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
636 |
img.history.purge() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
637 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
638 |
def check_cancel_event(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
639 |
'''Check to see if a cancel event of the transfer is requested. If so, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
640 |
cleanup changes made to the system and raise an exception. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
641 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
642 |
if self._cancel_event: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
643 |
self._cleanup() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
644 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
645 |
def _cleanup(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
646 |
'''Method to perform any necessary cleanup needed.''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
647 |
self.logger.debug("Cleaning up") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
648 |
if self.pmon: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
649 |
self.pmon.done = True |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
650 |
self.pmon.wait() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
651 |
self.pmon = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
652 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
653 |
def set_image_args(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
654 |
'''Set the image args we need set because the information |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
655 |
was passed in via other attributes. These include progtrack, |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
656 |
prefix, repo_uri, origins, and mirrors. If we're creating a |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
657 |
zone image, we also need to set the use-system-repo property |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
658 |
in the props argument. |
1692
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
659 |
|
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
660 |
For the publisher used to create the image, it is possible to |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
661 |
omit the prefix (_publ) and allow IPS to do auto-discovery from |
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
662 |
the repo itself. |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
663 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
664 |
self._image_args = copy.copy(self.image_args) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
665 |
self._image_args["progtrack"] = self.prog_tracker |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
666 |
if self._publ and self._publ is not None: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
667 |
self._image_args["prefix"] = self._publ |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
668 |
if self._origin and self._origin is not None: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
669 |
self._image_args["repo_uri"] = self._origin[0] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
670 |
if self._origin[1:]: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
671 |
self._image_args["origins"] = self._origin[1:] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
672 |
if self._mirror and self._mirror is not None: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
673 |
self._image_args["mirrors"] = self._mirror |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
674 |
if self.is_zone: |
1350
025c6311d0d9
7071386 Improve progress reporting for text installer and GUI installer
Karen Tung <Karen.Tung@oracle.com>
parents:
1261
diff
changeset
|
675 |
if "props" in self._image_args: |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
676 |
props_dict = self._image_args["props"] |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
677 |
props_dict["use-system-repo"] = True |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
678 |
else: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
679 |
props_dict = {"use-system-repo": True} |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
680 |
self._image_args["props"] = props_dict |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
681 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
682 |
def get_ips_api_inst(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
683 |
'''Get a handle to the api instance. If it is specified to use |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
684 |
the existing image grab the handle for the appropriate |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
685 |
image. If it's specified to create, remove any image that may |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
686 |
be located at the destination and create a new one there. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
687 |
If any facets are specified, set them upon image creation. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
688 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
689 |
if self.img_action == self.EXISTING: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
690 |
# An IPS image should exist and we are to use it. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
691 |
self.logger.debug("Using existing image") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
692 |
_img = image.Image(root=self.dst, user_provided_dir=True) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
693 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
694 |
try: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
695 |
self.api_inst = api.ImageInterface(self.dst, |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
696 |
PKG5_API_VERSION, self.prog_tracker, None, PKG_CLIENT_NAME) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
697 |
except api_errors.VersionException, ips_err: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
698 |
raise ValueError("The IPS API version specified, " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
699 |
+ str(ips_err.received_version) + |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
700 |
" does not agree with " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
701 |
"the expected version, " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
702 |
+ str(ips_err.expected_version)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
703 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
704 |
elif self.img_action == self.CREATE: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
705 |
# Create a new image, destroy the old one if it exists. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
706 |
self.logger.info("Creating IPS image") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
707 |
if self.facets: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
708 |
allow = {"TRUE": True, "FALSE": False} |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
709 |
for fname in self.facets.keys(): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
710 |
if not fname.startswith("facet."): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
711 |
raise ValueError("Facet name, %s, must " |
942
0a70ee0305fa
7001344-A couple of transfer files got copied over incorrectly
Ginnie Wray<virginia.wray@oracle.com>
parents:
940
diff
changeset
|
712 |
"begin with \"facet\"." % fname) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
713 |
if not isinstance(self.facets[fname], bool): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
714 |
if self.facets[fname].upper() not in allow: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
715 |
raise ValueError("Facet argument must be " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
716 |
"True|False") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
717 |
self.facets[fname] = \ |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
718 |
allow[self.facets[fname].upper()] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
719 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
720 |
self._image_args.update({"facets": self.facets}) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
721 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
722 |
if os.path.exists(self.dst): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
723 |
shutil.rmtree(self.dst, ignore_errors=True) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
724 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
725 |
try: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
726 |
self.api_inst = api.image_create( |
1099
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
727 |
pkg_client_name=PKG_CLIENT_NAME, |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
728 |
version_id=PKG5_API_VERSION, root=self.dst, |
1099
9685582c2e8a
7039499 Need to change slim_source for IPS API_VERSION change of 57 for snv_165
Drew Fisher <drew.fisher@oracle.com>
parents:
1092
diff
changeset
|
729 |
imgtype=self.completeness, is_zone=self.is_zone, |
1692
aa8503663e0f
7170813 AI fails on client hits assert (prefix or refresh_allowed) or not repo_uri
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1680
diff
changeset
|
730 |
force=True, **self._image_args) |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
731 |
|
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
732 |
# The above call will end up leaving our process's cwd in |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
733 |
# the image's root area, which will cause pain later on |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
734 |
# in tyring to unmount the image. So we manually change |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
735 |
# dir back to "/". |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
736 |
os.chdir("/") |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
737 |
|
1239
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
738 |
if self.is_zone: |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
739 |
# If installing a zone image, attach its image as a |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
740 |
# linked image to the global zone. |
1239
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
741 |
|
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
742 |
# Get an api object for the current global system image. |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
743 |
gz_api_inst = api.ImageInterface(self.SYSTEM_IMAGE, |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
744 |
PKG5_API_VERSION, self.prog_tracker, False, |
1239
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
745 |
self.SYSTEM_CLIENT_NAME) |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
746 |
|
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
747 |
# For a zone's linked image name, we construct it as: |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
748 |
# "zone:<zonename>" |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
749 |
lin = gz_api_inst.parse_linked_name( |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
750 |
"zone:" + self.zonename, allow_unknown=True) |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
751 |
self.logger.debug("Linked image name: %s" % lin) |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
752 |
|
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
753 |
# Attach the zone image as a linked image. |
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
754 |
(ret, err, _none) = gz_api_inst.attach_linked_child(lin, |
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
755 |
self.dst, force=True, li_md_only=True) |
1239
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
756 |
if err != None: |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
757 |
raise ValueError("Linked image error while attaching " |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
758 |
"zone image '%s':\n%s" % |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
759 |
(self.zonename, str(err))) |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
760 |
|
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
761 |
# Refresh the zone's api object now that it has been |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
762 |
# attached as a linked image. |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
763 |
self.api_inst.reset() |
427d479252a9
7058140 zones AI installer doesn't use linked images.
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1235
diff
changeset
|
764 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
765 |
except api_errors.VersionException, ips_err: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
766 |
self.logger.exception("Error creating the IPS image") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
767 |
raise ValueError("The IPS API version specified, " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
768 |
+ str(ips_err.received_version) + |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
769 |
" does not agree with " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
770 |
"the expected version, " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
771 |
+ str(ips_err.expected_version)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
772 |
|
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
773 |
def print_repository_uris(self): |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
774 |
'''print_repository_uris() - simple method to print out the |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
775 |
repository uris used |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
776 |
''' |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
777 |
indent = 4 * " " |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
778 |
indent2 = indent * 2 |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
779 |
for publisher, origin_list, mirror_list in self.publisher_list: |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
780 |
self.logger.info(indent + publisher) |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
781 |
for origin in origin_list: |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
782 |
self.logger.info(indent2 + "origin: " + origin) |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
783 |
for mirror in mirror_list: |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
784 |
self.logger.info(indent2 + "mirror: " + mirror) |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
785 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
786 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
787 |
class TransferIPS(AbstractIPS): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
788 |
'''IPS Transfer class to take input from the DOC. It implements the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
789 |
checkpoint interface. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
790 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
791 |
VALUE_SEPARATOR = "," |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
792 |
|
1454
6d92a4a4c834
7086390 Turn on transfer/ips phase output for DC
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1389
diff
changeset
|
793 |
# Default values for arguments |
6d92a4a4c834
7086390 Turn on transfer/ips phase output for DC
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1389
diff
changeset
|
794 |
DEFAULT_ARG = {'zonename': None, 'show_stdout': False} |
6d92a4a4c834
7086390 Turn on transfer/ips phase output for DC
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1389
diff
changeset
|
795 |
|
6d92a4a4c834
7086390 Turn on transfer/ips phase output for DC
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1389
diff
changeset
|
796 |
def __init__(self, name, arg=DEFAULT_ARG): |
6d92a4a4c834
7086390 Turn on transfer/ips phase output for DC
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1389
diff
changeset
|
797 |
super(TransferIPS, self).__init__(name, zonename=arg.get('zonename'), |
6d92a4a4c834
7086390 Turn on transfer/ips phase output for DC
Ethan Quach <Ethan.Quach@oracle.com>
parents:
1389
diff
changeset
|
798 |
show_stdout=arg.get('show_stdout')) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
799 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
800 |
# Holds the list of transfer dictionaries |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
801 |
self._transfer_list = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
802 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
803 |
# get the handle to the DOC |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
804 |
self._doc = InstallEngine.get_instance().data_object_cache |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
805 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
806 |
# Get the checkpoint info from the DOC |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
807 |
self.soft_list = self._doc.get_descendants(name=self.name, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
808 |
class_type=Software) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
809 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
810 |
# Add check that soft_list has only one entry |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
811 |
if len(self.soft_list) != 1: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
812 |
raise ValueError("Only one value for Software node can be " |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
813 |
"specified with name " + self.name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
814 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
815 |
def _parse_input(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
816 |
'''Method to read the parameters from the DOC and place |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
817 |
them into the local lists. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
818 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
819 |
self._publ = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
820 |
self._origin = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
821 |
self._mirror = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
822 |
self._add_publ = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
823 |
self._add_origin = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
824 |
self._add_mirror = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
825 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
826 |
self.logger.debug("Parsing the Data Object Cache") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
827 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
828 |
soft_node = self.soft_list[0] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
829 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
830 |
# Read the destination which for IPS involves reading the |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
831 |
# image node. The image node contains the action, img_root, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
832 |
# and index. The image type node contains the completeness, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
833 |
# and zone info. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
834 |
dst_list = soft_node.get_children(Destination.DESTINATION_LABEL, |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
835 |
Destination, not_found_is_err=True) |
1025
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
836 |
dst_image = dst_list[0].get_children(Image.IMAGE_LABEL, |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
837 |
Image, not_found_is_err=True)[0] |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
838 |
self.dst = self._doc.str_replace_paths_refs(dst_image.img_root) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
839 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
840 |
self.img_action = dst_image.action |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
841 |
self.index = dst_image.index |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
842 |
|
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
843 |
im_type = dst_image.get_first_child(ImType.IMTYPE_LABEL, ImType) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
844 |
if im_type: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
845 |
self.completeness = im_type.completeness |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
846 |
self.is_zone = bool(im_type.zone) |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
847 |
else: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
848 |
self.completeness = "full" |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
849 |
self.is_zone = False |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
850 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
851 |
# Read properties to be set and put them into the properties |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
852 |
# dictionary. |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
853 |
prop_list = dst_image.get_children(Property.PROPERTY_LABEL, |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
854 |
Property) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
855 |
for prop in prop_list: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
856 |
self.properties[prop.prop_name] = prop.val |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
857 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
858 |
# Read the facets to be used in image creation and put them |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
859 |
# into the facet dictionary. |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
860 |
facet_list = dst_image.get_children(Facet.FACET_LABEL, Facet) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
861 |
for facet in facet_list: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
862 |
self.facets[facet.facet_name] = facet.val |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
863 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
864 |
# Parse the Source node |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
865 |
self._parse_src(soft_node) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
866 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
867 |
# Get the IPS Image creations Args from the DOC if they exist. |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
868 |
img_arg_list = dst_image.get_children(Args.ARGS_LABEL, Args) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
869 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
870 |
# If arguments were specified, validate that the |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
871 |
# user only specified them once, and that they |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
872 |
# didn't specify arguments they're not allowed to. |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
873 |
for args in img_arg_list: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
874 |
# ssl_key and ssl_cert are part of the image specification. |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
875 |
# If the user has put them into the args that's an error |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
876 |
# since we wouldn't know which one to use if they were |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
877 |
# specified in both places. |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
878 |
not_allowed = set(["ssl_key", "ssl_cert"]) |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
879 |
cur_img_args = set(args.arg_dict.keys()) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
880 |
overlap = list(not_allowed & cur_img_args) |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
881 |
if overlap: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
882 |
raise ValueError("The following components may be specified " |
1025
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
883 |
"with the destination image of the manifest " |
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
884 |
"but are invalid as args: %s" % str(overlap)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
885 |
|
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
886 |
# Check that the current set of image args being processed |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
887 |
# are not duplicates of one we've already processed. |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
888 |
image_args = set(self.image_args.keys()) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
889 |
overlap = list(image_args & cur_img_args) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
890 |
if overlap: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
891 |
raise ValueError("The following components are specified " |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
892 |
"twice in the manifest: %s" % str(overlap)) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
893 |
|
1380
2f3830b79568
7072842 update install gate for pkg5 API version bump to 66
Drew Fisher <drew.fisher@oracle.com>
parents:
1373
diff
changeset
|
894 |
# Update the image args with the current image args being |
1169
83735ef8ac29
7042081 usr/src/lib/install_utils is not pep8 clean
Mary Ding <mary.ding@oracle.com>
parents:
1161
diff
changeset
|
895 |
# processed. |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
896 |
self.image_args.update(args.arg_dict) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
897 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
898 |
# Parse the transfer specific attributes. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
899 |
self._parse_transfer_node(soft_node) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
900 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
901 |
def _parse_transfer_node(self, soft_node): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
902 |
'''Parse the DOC for the attributes that are specific for each |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
903 |
transfer specified. Create a list with the attributes for each |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
904 |
transfer. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
905 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
906 |
# Get the list of transfers from this specific node in the DOC |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
907 |
transfer_list = soft_node.get_children(class_type=IPSSpec) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
908 |
for trans in transfer_list: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
909 |
trans_attr = dict() |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
910 |
trans_attr[ACTION] = trans.action |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
911 |
trans_attr[CONTENTS] = trans.contents |
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
912 |
trans_attr[REJECT_LIST] = trans.reject_list |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
913 |
trans_attr[PURGE_HISTORY] = trans.purge_history |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
914 |
trans_attr[APP_CALLBACK] = trans.app_callback |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
915 |
|
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
916 |
trans_args = trans.get_first_child(Args.ARGS_LABEL, Args) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
917 |
if trans_args: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
918 |
if not self.index: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
919 |
trans_args.arg_dict[UPDATE_INDEX] = False |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
920 |
trans_attr[IPS_ARGS] = trans_args.arg_dict |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
921 |
else: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
922 |
if not self.index: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
923 |
trans_arg_dict = {UPDATE_INDEX: False} |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
924 |
trans_attr[IPS_ARGS] = trans_arg_dict |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
925 |
else: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
926 |
trans_attr[IPS_ARGS] = None |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
927 |
|
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
928 |
# Append the information found to the list of |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
929 |
# transfers that will be performed |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
930 |
if trans_attr not in self._transfer_list: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
931 |
self._transfer_list.append(trans_attr) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
932 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
933 |
def _set_publisher_info(self, pub, preferred=False): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
934 |
'''Set the preferred or additional publishers. Which publisher type to |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
935 |
set is determined by the boolean, preferred. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
936 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
937 |
if preferred: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
938 |
self._publ = pub.publisher |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
939 |
if pub.publisher: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
940 |
self.logger.debug("Primary Publisher Info: %s", pub.publisher) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
941 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
942 |
self.logger.debug("Primary Publisher Info:") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
943 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
944 |
self._add_publ.append(pub.publisher) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
945 |
if pub.publisher: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
946 |
self.logger.debug("Additional Publisher Info: %s", |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
947 |
pub.publisher) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
948 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
949 |
self.logger.debug("Additional Publisher Info: ") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
950 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
951 |
origin_name = [] |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
952 |
origin_uris = [] |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
953 |
# Get the origins for this publisher. If one isn't specified, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
954 |
# use the default origin. |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
955 |
origin_list = pub.get_children(Origin.ORIGIN_LABEL, Origin) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
956 |
if origin_list: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
957 |
for origin in origin_list: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
958 |
if preferred: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
959 |
or_repo = origin.origin |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
960 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
961 |
or_repo = publisher.RepositoryURI(uri=origin.origin) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
962 |
origin_name.append(or_repo) |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
963 |
origin_uris.append(origin.origin) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
964 |
self.logger.debug(" Origin Info: %s", origin.origin) |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
965 |
else: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
966 |
origin_name = self.DEF_REPO_URI |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
967 |
origin_uris.append(self.DEF_REPO_URI) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
968 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
969 |
# Get the mirrors for the publisher if they are specified. |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
970 |
mirror_name = [] |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
971 |
mirror_uris = [] |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
972 |
mirror_list = pub.get_children(Mirror.MIRROR_LABEL, Mirror) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
973 |
for mirror in mirror_list: |
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
974 |
mirror_uris.append(mirror.mirror) |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
975 |
if preferred: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
976 |
mir_repo = mirror.mirror |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
977 |
else: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
978 |
mir_repo = publisher.RepositoryURI(uri=mirror.mirror) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
979 |
mirror_name.append(mir_repo) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
980 |
self.logger.debug(" Mirror Info: %s", mirror.mirror) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
981 |
|
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
982 |
if len(mirror_name) == 0: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
983 |
mirror_name = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
984 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
985 |
if preferred: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
986 |
self._origin = origin_name |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
987 |
self._mirror = mirror_name |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
988 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
989 |
self._add_origin.append(origin_name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
990 |
self._add_mirror.append(mirror_name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
991 |
|
1092
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
992 |
# set the publisher_list for this publisher, only if it's not already |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
993 |
# been inserted. |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
994 |
entry = (pub.publisher, origin_uris, mirror_uris) |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
995 |
if entry not in self.publisher_list: |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
996 |
self.publisher_list.append(entry) |
e0a902891787
7005892 simple_log should log which IPS repos it try to install from and setting post-install publisher
Drew Fisher <drew.fisher@oracle.com>
parents:
1077
diff
changeset
|
997 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
998 |
def _parse_src(self, soft_node): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
999 |
'''Parse the DOC Source, filling in the local attributes for |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1000 |
_publ, _origin, _mirror, _add_publ, _add_origin, _add_mirror. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1001 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1002 |
self.logger.debug("Reading the IPS source") |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1003 |
|
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1004 |
src_list = soft_node.get_children(Source.SOURCE_LABEL, Source) |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1005 |
if len(src_list) > 1: |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1006 |
raise ValueError("Only one IPS image source may be specified") |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1007 |
|
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1008 |
if len(src_list) == 1: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1009 |
src = src_list[0] |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1010 |
pub_list = src.get_children(Publisher.PUBLISHER_LABEL, Publisher, |
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1011 |
not_found_is_err=True) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1012 |
|
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1013 |
# If we're not installing a zone image, the first publisher is |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1014 |
# treated as the preferred one (i.e. it's passed as arguments to |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1015 |
# the image_create() call); for a zone, all publishers should |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1016 |
# be processed as additional publishers since a zone image will |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1017 |
# be created with the system repository already in place. |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1018 |
if not self.is_zone: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1019 |
pub = pub_list.pop(0) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1020 |
self._set_publisher_info(pub, preferred=True) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1021 |
for pub in pub_list: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1022 |
self._set_publisher_info(pub, preferred=False) |
954
a7a34c8289ec
7003533 get_descendents should return an empty list when no objects are found
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
953
diff
changeset
|
1023 |
else: |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1024 |
if self.img_action != self.EXISTING: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1025 |
# If the source isn't specified, use the defaults for create. |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1026 |
# For a zone image, the system repo will already be set up |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1027 |
# as the default repo so we don't need to set up a the default |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1028 |
# here if source isn't specified. |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1029 |
if not self.is_zone: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1030 |
self._origin = [self.DEF_REPO_URI] |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1031 |
self.logger.debug(" Origin Info: %s", self.DEF_REPO_URI) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1151
diff
changeset
|
1032 |
self._mirror = None |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1033 |
|
1389
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1034 |
def catalog_failures_to_str(self, cre): |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1035 |
'''Convert a CatalogRefreshException into a formatted string. |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1036 |
|
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1037 |
This is based on the IPS pkg/client.py display_catalog_failures() |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1038 |
implementation. |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1039 |
''' |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1040 |
total = cre.total |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1041 |
succeeded = cre.succeeded |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1042 |
|
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1043 |
lines = list() |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1044 |
lines.append("Error refreshing publishers, %s/%s " |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1045 |
"catalogs successfully updated:" % |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1046 |
(succeeded, total)) |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1047 |
|
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1048 |
for pub, err in cre.failed: |
1599
118f135d9d1e
7143246 pylint errors in solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1454
diff
changeset
|
1049 |
lines.append("") |
118f135d9d1e
7143246 pylint errors in solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1454
diff
changeset
|
1050 |
lines.append(str(err)) |
1389
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1051 |
|
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1052 |
if cre.errmessage: |
1599
118f135d9d1e
7143246 pylint errors in solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1454
diff
changeset
|
1053 |
lines.append(cre.errmessage) |
1389
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1054 |
|
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1055 |
return "\n".join(lines) |
39e1a166f0c6
7057702 AI installer should catch CatalogRefreshException exceptions and print it's contents on error
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1380
diff
changeset
|
1056 |
|
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1057 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1058 |
class TransferIPSAttr(AbstractIPS): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1059 |
'''IPS Transfer class to take input from the attributes.''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1060 |
def __init__(self, name): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1061 |
super(TransferIPSAttr, self).__init__(name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1062 |
# Attributes per transfer |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1063 |
self.action = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1064 |
self.contents = None |
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
1065 |
self.reject_list = None |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1066 |
self.purge_history = False |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1067 |
self.app_callback = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1068 |
self.args = {} |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1069 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1070 |
self._transfer_list = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1071 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1072 |
def _parse_input(self): |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1073 |
'''Parse the source and transfer specific attributes and put |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1074 |
into local versions. The attributes to be parsed are: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1075 |
src (for publisher, origin, mirror), pkg_install, pkg_uninstall, |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1076 |
purge_history, and args. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1077 |
''' |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1078 |
self._publ = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1079 |
self._origin = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1080 |
self._mirror = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1081 |
self._add_publ = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1082 |
self._add_origin = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1083 |
self._add_mirror = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1084 |
trans_attr = dict() |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1085 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1086 |
self.logger.debug("Reading the Source") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1087 |
if self.src: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1088 |
self._publ, self._origin, self._mirror = self.src[0] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1089 |
self.logger.debug("Source Info:") |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1090 |
if self._publ: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1091 |
self.logger.debug("Primary Publisher name: %s", |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1092 |
str(self._publ)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1093 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1094 |
for origin in self._origin: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1095 |
self.logger.debug(" Origin name: %s", str(origin)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1096 |
if self._mirror: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1097 |
for mirror in self._mirror: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1098 |
self.logger.debug(" Mirror name: %s", str(mirror)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1099 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1100 |
for pub in self.src[1:]: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1101 |
pub_name, origin_lst, mirror_lst = pub |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1102 |
if pub_name: |
1025
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
1103 |
self.logger.debug("Additional publisher: %s", |
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
1104 |
str(pub_name)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1105 |
origin_name = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1106 |
if origin_lst: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1107 |
for origin in origin_lst: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1108 |
or_repo = publisher.RepositoryURI(uri=origin) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1109 |
origin_name.append(or_repo) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1110 |
self.logger.debug(" Origin name: %s", str(origin)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1111 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1112 |
origin_name = [self.DEF_REPO_URI] |
1025
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
1113 |
self.logger.debug(" Origin name: %s", |
7daf8a6d0a61
7023927 Need fix to take care of pep8audit tests failure for solaris_install/transfer
Mary Ding <mary.ding@oracle.com>
parents:
1012
diff
changeset
|
1114 |
str(self.DEF_REPO_URI)) |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1115 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1116 |
mirror_name = [] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1117 |
if mirror_lst: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1118 |
for mirror in mirror_lst: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1119 |
mir_repo = publisher.RepositoryURI(uri=mirror) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1120 |
mirror_name.append(mir_repo) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1121 |
self.logger.debug(" Mirror name: %s", str(mirror)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1122 |
else: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1123 |
mirror_name = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1124 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1125 |
self._add_publ.append(pub_name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1126 |
self._add_origin.append(origin_name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1127 |
self._add_mirror.append(mirror_name) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1128 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1129 |
elif self.img_action != self.EXISTING: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1130 |
# The source isn't specified so use the default. |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1131 |
self._origin = [self.DEF_REPO_URI] |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1132 |
self.logger.debug("Origin name: %s", str(self.DEF_REPO_URI)) |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1133 |
self._mirror = None |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1134 |
|
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1135 |
trans_attr[ACTION] = self.action |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1136 |
trans_attr[CONTENTS] = self.contents |
1650
0a799935ac50
7145997 support for avoid lists and reject during install action should be added.
Darren Kenny <Darren.Kenny@Oracle.COM>
parents:
1619
diff
changeset
|
1137 |
trans_attr[REJECT_LIST] = self.reject_list |
940
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1138 |
trans_attr[PURGE_HISTORY] = self.purge_history |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1139 |
trans_attr[APP_CALLBACK] = self.app_callback |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1140 |
if not self.index: |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1141 |
self.args[UPDATE_INDEX] = False |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1142 |
trans_attr[IPS_ARGS] = self.args |
8b8b5f371bf9
6997589 - implement CUD transfer mechanism
Ginnie Wray<virginia.wray@oracle.com>
parents:
diff
changeset
|
1143 |
self._transfer_list.append(trans_attr) |