author | Devjani Ray <devjani.ray@oracle.com> |
Fri, 20 May 2016 17:42:29 -0400 | |
branch | s11u3-sru |
changeset 6035 | c9748fcc32de |
parent 4508 | d8924d870370 |
permissions | -rw-r--r-- |
4508
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
1 |
#!/bin/ksh93 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
2 |
|
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4508
diff
changeset
|
3 |
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. |
4508
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
4 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); you may |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
6 |
# not use this file except in compliance with the License. You may obtain |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
7 |
# a copy of the License at |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
8 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
10 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
13 |
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
14 |
# License for the specific language governing permissions and limitations |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
15 |
# under the License. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
16 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
17 |
# The default AI manifest is a Derived Manifest (DM) script. The |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
18 |
# script creates a temp file from xml within the script, loads that |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
19 |
# file in as the manifest then replaces the source to be a specific |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
20 |
# archive specified for this client. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
21 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
22 |
SCRIPT_SUCCESS=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
23 |
SOLPKG="entire" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
24 |
DEFAULT_SERVER_PKG="pkg:/group/system/solaris-large-server" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
25 |
TMPFILE=`/usr/bin/mktemp /tmp/default.xml.XXXXXX` |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
26 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
27 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
28 |
# create_xml_file |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
29 |
# Create xml tmp file from here document. The contents of the |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
30 |
# here document are inserted during installadm create-service. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
31 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
32 |
function create_xml_file |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
33 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
34 |
# Create xml tmp file using this AI Clients default.xml as a base |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
35 |
/usr/bin/cat /usr/share/auto_install/default.xml > $TMPFILE |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
36 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
37 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
38 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
39 |
# error_handler |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
40 |
# Error handling function |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
41 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
42 |
function error_handler |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
43 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
44 |
exit $? |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
45 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
46 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
47 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
48 |
# load_xml |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
49 |
# Load the default manifest from previously created tmp file |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
50 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
51 |
function load_xml |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
52 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
53 |
# load the default manifest |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
54 |
trap error_handler ERR |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
55 |
/usr/bin/aimanifest load $TMPFILE |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
56 |
trap - ERR |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
57 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
58 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
59 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
60 |
# validate_entire |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
61 |
# Update the manifest entry of the Solaris consolidation package |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
62 |
# so that the build of Solaris being installed is the same as |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
63 |
# that running on the client. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
64 |
# Remove all packages other than the Solaris consolidation package. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
65 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
66 |
function validate_entire |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
67 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
68 |
# Override SI_SYSPKG using exact version from the client |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
69 |
SI_SYSPKG=$(/usr/bin/pkg info ${SOLPKG} | /usr/bin/nawk '/FMRI:/{print $2}') |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
70 |
if [ -z ${SI_SYSPKG} ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
71 |
echo "'${SOLPKG}' package not found on system" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
72 |
echo "Unable to constrain Solaris version being installed." |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
73 |
SI_SYSPKG="pkg:/$SOLPKG" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
74 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
75 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
76 |
# Get IPS software_data path |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
77 |
software_data=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
78 |
/auto_install/ai_instance/software[@type="IPS"]/software_data[@action="install"] \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
79 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
80 |
software_data_path=($(echo ${software_data} | /usr/bin/nawk '{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
81 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
82 |
# Clear out packages adding back just $SOLPKG |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
83 |
echo "Removing all packages" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
84 |
/usr/bin/aimanifest delete ${software_data_path}/name |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
85 |
echo "Adding Solaris consolidation package ${SI_SYSPKG}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
86 |
/usr/bin/aimanifest add ${software_data_path}/name ${SI_SYSPKG} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
87 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
88 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
89 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
90 |
# Validate one of solaris-small-server or solaris-larger-server |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
91 |
# packages are present in the manifest, adding default solaris-large-server |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
92 |
# if neither are present. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
93 |
function validate_server_pkgs |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
94 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
95 |
# Get list of pkgs to install from the manifest |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
96 |
pkgs=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
97 |
/auto_install/ai_instance/software[@type="IPS"]/software_data[@action="install"]/name \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
98 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
99 |
# array will be formatted as: <pkg> <aimanifest path>... |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
100 |
array=($(echo ${pkgs} | /usr/bin/nawk 'BEGIN{FS="\n"} {print $NF}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
101 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
102 |
idx=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
103 |
pkg_found=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
104 |
while [ $idx -lt ${#array[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
105 |
pkgname=${array[$idx]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
106 |
path=${array[$idx+1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
107 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
108 |
# check if pkgname is large|small server |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
109 |
echo $pkgname | /usr/bin/egrep -s "solaris-(large|small)-server" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
110 |
if [ $? -eq 0 ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
111 |
pkg_found=1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
112 |
break |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
113 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
114 |
# look at next pkg |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
115 |
(( idx=idx+2 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
116 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
117 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
118 |
if [ $pkg_found -eq 0 ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
119 |
# Add solaris-large-server |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
120 |
# Get IPS software_data path |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
121 |
software_data=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
122 |
/auto_install/ai_instance/software[@type="IPS"]/software_data[@action="install"] \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
123 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
124 |
software_data_path=($(echo ${software_data} | /usr/bin/nawk '{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
125 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
126 |
echo "Adding default server package ${DEFAULT_SERVER_PKG}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
127 |
/usr/bin/aimanifest add ${software_data_path}/name ${DEFAULT_SERVER_PKG} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
128 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
129 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
130 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
131 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
132 |
# add_publishers |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
133 |
# Add publishers to the software source section |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
134 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
135 |
function add_publishers |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
136 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
137 |
publishers=$1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
138 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
139 |
# publishers is plus(+) delimited list, split it into an array |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
140 |
OLDIFS=$IFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
141 |
IFS="+" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
142 |
set -A pub_list ${publishers} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
143 |
IFS=$OLDIFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
144 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
145 |
# Get IPS software paths |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
146 |
software=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
147 |
/auto_install/ai_instance/software[@type="IPS"] \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
148 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
149 |
software_path=($(echo ${software} | /usr/bin/nawk '{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
150 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
151 |
software_source=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
152 |
${software_path}/source 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
153 |
software_source_path=($(echo ${software_source} | /usr/bin/nawk '{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
154 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
155 |
software_publishers=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
156 |
${software_source_path}/publisher 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
157 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
158 |
# Save list existing publisher names and associated origins |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
159 |
pub_array=($(echo ${software_publishers} | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
160 |
'BEGIN{FS="\n"} {print $NF}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
161 |
pub_idx=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
162 |
idx1=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
163 |
while [ $idx1 -lt ${#pub_array[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
164 |
pub=${pub_array[$idx1+1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
165 |
pub_name=$(/usr/bin/aimanifest get ${pub}@name 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
166 |
origins=$(/usr/bin/aimanifest get -r ${pub}/origin 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
167 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
168 |
publisher=${pub_name} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
169 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
170 |
idx2=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
171 |
origin_array=($(echo ${origins} | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
172 |
'BEGIN{FS="\n"} {print $NF}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
173 |
while [ $idx2 -lt ${#origin_array[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
174 |
origin=${origin_array[$idx2+1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
175 |
origin_name=$(/usr/bin/aimanifest get ${origin}@name 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
176 |
publisher="${publisher}+${origin_name}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
177 |
(( idx2=idx2+2 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
178 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
179 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
180 |
saved_pubs[$pub_idx]=${publisher} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
181 |
(( pub_idx=pub_idx+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
182 |
(( idx1=idx1+2 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
183 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
184 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
185 |
if [[ -n ${software_source_path} ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
186 |
# Delete source and start a fresh |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
187 |
/usr/bin/aimanifest delete ${software_source_path} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
188 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
189 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
190 |
# Cycle through each custom publisher, adding in custom ordering |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
191 |
# If already existed add custome origin before original |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
192 |
idx1=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
193 |
software_source_path= |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
194 |
while [ $idx1 -lt ${#pub_list[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
195 |
echo ${pub_list[$idx1]} | IFS='@' read publisher_name publisher_origin |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
196 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
197 |
# Add specified publisher |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
198 |
echo "Adding custom publisher ${publisher_name} @ ${publisher_origin}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
199 |
if [ -z ${software_source_path} ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
200 |
publisher_path=$(/usr/bin/aimanifest add -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
201 |
${software_path}/source/publisher@name ${publisher_name} 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
202 |
/usr/bin/aimanifest add ${publisher_path}/origin@name ${publisher_origin} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
203 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
204 |
software_source=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
205 |
${software_path}/source 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
206 |
software_source_path=($(echo ${software_source} | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
207 |
'{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
208 |
else |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
209 |
publisher_path=$(/usr/bin/aimanifest add -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
210 |
${software_source_path}/publisher@name ${publisher_name} 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
211 |
/usr/bin/aimanifest add ${publisher_path}/origin@name ${publisher_origin} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
212 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
213 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
214 |
# Check if this publisher already in manifest and add back original origins |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
215 |
idx2=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
216 |
while [ $idx2 -lt ${#saved_pubs[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
217 |
saved_publisher=${saved_pubs[$idx2]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
218 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
219 |
# saved_publisher is plus(+) delimited list, first item is publisher name |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
220 |
# and remaining items are origins, split it into an array |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
221 |
OLDIFS=$IFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
222 |
IFS="+" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
223 |
set -A saved_pub_details ${saved_publisher} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
224 |
IFS=$OLDIFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
225 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
226 |
pub_name=${saved_pub_details[0]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
227 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
228 |
if [ ${pub_name} == ${publisher_name} ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
229 |
# Add all saved origins for this publisher |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
230 |
idx3=1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
231 |
while [ $idx3 -lt ${#saved_pub_details[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
232 |
saved_origin=${saved_pub_details[idx3]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
233 |
echo "Adding extra saved origin ${saved_origin}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
234 |
/usr/bin/aimanifest add ${publisher_path}/origin@name ${saved_origin} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
235 |
(( idx3=idx3+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
236 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
237 |
saved_pubs[idx2]="PROCESSED" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
238 |
break |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
239 |
else |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
240 |
# look at next publisher |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
241 |
(( idx2=idx2+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
242 |
continue |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
243 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
244 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
245 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
246 |
(( idx1=idx1+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
247 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
248 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
249 |
# Cycle through saved publishers adding back unprocessed ones |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
250 |
idx1=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
251 |
while [ $idx1 -lt ${#saved_pubs[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
252 |
saved_publisher=${saved_pubs[$idx1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
253 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
254 |
OLDIFS=$IFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
255 |
IFS="+" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
256 |
set -A saved_pub_details ${saved_publisher} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
257 |
IFS=$OLDIFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
258 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
259 |
if [ ${saved_pub_details[0]} != "PROCESSED" ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
260 |
# Add specified publisher |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
261 |
echo "Adding saved publisher ${saved_pub_details[0]}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
262 |
publisher_path=$(/usr/bin/aimanifest add -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
263 |
${software_source_path}/publisher@name ${saved_pub_details[0]} \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
264 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
265 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
266 |
# Add all saved origins for this publisher |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
267 |
idx2=1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
268 |
while [ $idx2 -lt ${#saved_pub_details[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
269 |
saved_origin=${saved_pub_details[idx2]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
270 |
echo "Adding saved origin ${saved_origin}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
271 |
/usr/bin/aimanifest add ${publisher_path}/origin@name ${saved_origin} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
272 |
(( idx2=idx2+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
273 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
274 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
275 |
(( idx1=idx1+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
276 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
277 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
278 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
279 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
280 |
# add_fmri |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
281 |
# Add specific fmri to be installed to software_data section |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
282 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
283 |
function add_fmri |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
284 |
{ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
285 |
fmri=$1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
286 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
287 |
# fmri is plus(+) delimited list, split into an array |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
288 |
OLDIFS=$IFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
289 |
IFS="+" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
290 |
set -A pkg_list ${fmri} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
291 |
IFS=$OLDIFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
292 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
293 |
# Get IPS software_data path |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
294 |
software_data=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
295 |
/auto_install/ai_instance/software[@type="IPS"]/software_data[@action="install"] \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
296 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
297 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
298 |
# Get software_data path |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
299 |
software_data_path=($(echo ${software_data} | /usr/bin/nawk '{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
300 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
301 |
# Get list of pkgs to install from the manifest |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
302 |
# array will be formatted as: <pkg> <aimanifest path>... |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
303 |
pkgs=($(/usr/bin/aimanifest get -r ${software_data_path}/name 2> /dev/null | /usr/bin/tr '\n' ' ')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
304 |
set -A array ${pkgs} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
305 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
306 |
# Cycle through each fmri package and add if not in manifest |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
307 |
idx1=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
308 |
while [ $idx1 -lt ${#pkg_list[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
309 |
new_pkg=${pkg_list[$idx1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
310 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
311 |
found=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
312 |
idx2=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
313 |
while [ $idx2 -lt ${#array[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
314 |
pkgname=${array[$idx2]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
315 |
path=${array[$idx2+1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
316 |
echo ${new_pkg} | /usr/bin/egrep -s ${pkgname} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
317 |
if [ $? -ne 0 ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
318 |
# Not found try comparing next package |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
319 |
(( idx2=idx2+2 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
320 |
continue |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
321 |
else |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
322 |
# Package already in manifest can break out of this loop |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
323 |
echo "Package ${new_pkg} already present in manifest." |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
324 |
found=1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
325 |
break |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
326 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
327 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
328 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
329 |
# Package not found, so add to manifest |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
330 |
if [ ${found} -eq 0 ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
331 |
echo "Adding package ${new_pkg} to manifest." |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
332 |
/usr/bin/aimanifest add ${software_data_path}/name ${new_pkg} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
333 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
334 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
335 |
(( idx1=idx1+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
336 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
337 |
} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
338 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
339 |
######################################## |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
340 |
# main |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
341 |
######################################## |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
342 |
# Create xml tmp file, then use aimanifest(1M) to load the |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
343 |
# file and update the Solaris version to install. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
344 |
if [ -z "$TMPFILE" ]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
345 |
echo "Error: Unable to create temporary manifest file" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
346 |
exit 1 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
347 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
348 |
create_xml_file |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
349 |
load_xml |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
350 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
351 |
# Process bootargs |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
352 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
353 |
if [[ ${SI_ARCH} = sparc ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
354 |
ARCHIVE_URI=$(/usr/sbin/prtconf -vp | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
355 |
'/bootargs.*archive_uri=/{n=split($0,a,"archive_uri=");split(a[2],b);split(b[1],c,"'\''");print c[1]}') |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
356 |
AUTH_TOKEN=$(/usr/sbin/prtconf -vp | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
357 |
'/bootargs.*auth_token=/{n=split($0,a,"auth_token=");split(a[2],b);split(b[1],c,"'\''");print c[1]}') |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
358 |
PUBLISHERS=$(/usr/sbin/prtconf -vp | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
359 |
'/bootargs.*publishers=/{n=split($0,a,"publishers=");split(a[2],b);split(b[1],c,"'\''");print c[1]}') |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
360 |
FMRI=$(/usr/sbin/prtconf -vp | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
361 |
'/bootargs.*fmri=/{n=split($0,a,"fmri=");split(a[2],b);split(b[1],c,"'\''");print c[1]}') |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
362 |
else |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
363 |
ARCHIVE_URI=$(/usr/sbin/devprop -s archive_uri) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
364 |
AUTH_TOKEN=$(/usr/sbin/devprop -s auth_token) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
365 |
PUBLISHERS=$(/usr/sbin/devprop -s publishers) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
366 |
FMRI=$(/usr/sbin/devprop -s fmri) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
367 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
368 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
369 |
if [[ -n "$ARCHIVE_URI" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
370 |
# Save list of default facets to re-insertion if required |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
371 |
if [[ -n "$PUBLISHERS" || -n "$FMRI" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
372 |
# Get IPS software paths |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
373 |
software=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
374 |
/auto_install/ai_instance/software[@type="IPS"] \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
375 |
2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
376 |
software_path=($(echo ${software} | /usr/bin/nawk '{print $2}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
377 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
378 |
facets=$(/usr/bin/aimanifest get -r \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
379 |
${software_path}/destination/image/facet 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
380 |
facet_array=($(echo ${facets} | /usr/bin/nawk \ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
381 |
'BEGIN{FS="\n"} {print $NF}')) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
382 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
383 |
facet_idx=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
384 |
idx1=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
385 |
while [ $idx1 -lt ${#facet_array[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
386 |
facet=${facet_array[$idx1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
387 |
facet_path=${facet_array[$idx1+1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
388 |
facet_set=$(/usr/bin/aimanifest get ${facet_path}@set 2> /dev/null) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
389 |
saved_facets[$facet_idx]="${facet_set}+${facet}" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
390 |
(( facet_idx=facet_idx+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
391 |
(( idx1=idx1+2 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
392 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
393 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
394 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
395 |
# Replace package software section with archive |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
396 |
/usr/bin/aimanifest delete software |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
397 |
swpath=$(/usr/bin/aimanifest add -r /auto_install/ai_instance/software@type ARCHIVE) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
398 |
file=$(/usr/bin/aimanifest add -r $swpath/source/file@uri $ARCHIVE_URI) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
399 |
if [[ -n "$AUTH_TOKEN" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
400 |
/usr/bin/aimanifest add $file/credentials/http_auth_token $AUTH_TOKEN |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
401 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
402 |
inspath=$(/usr/bin/aimanifest add -r $swpath/software_data@action install) |
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4508
diff
changeset
|
403 |
/usr/bin/aimanifest add $inspath/name "*" |
4508
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
404 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
405 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
406 |
if [[ -n "$PUBLISHERS" || -n "$FMRI" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
407 |
if [[ -n "$ARCHIVE_URI" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
408 |
# All software was removed, so add back stub IPS software |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
409 |
swpath=$(/usr/bin/aimanifest add -r /auto_install/ai_instance/software@type IPS) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
410 |
swdatapath=$(/usr/bin/aimanifest add -r $swpath/software_data@action install) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
411 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
412 |
# Add back list of default facets |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
413 |
echo "Adding back facets" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
414 |
idx1=0 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
415 |
while [ $idx1 -lt ${#saved_facets[@]} ]; do |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
416 |
saved_facet=${saved_facets[$idx1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
417 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
418 |
# saved_facet is plus(+) delimited two value string, |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
419 |
# first item is set value and 2nd is actual facet |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
420 |
OLDIFS=$IFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
421 |
IFS="+" |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
422 |
set -A saved_facet_details ${saved_facet} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
423 |
IFS=$OLDIFS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
424 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
425 |
facet_set=${saved_facet_details[0]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
426 |
facet=${saved_facet_details[1]} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
427 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
428 |
facet_path=$(/usr/bin/aimanifest add -r ${swpath}/destination/image/facet ${facet}) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
429 |
/usr/bin/aimanifest set ${facet_path}@set ${facet_set} |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
430 |
(( idx1=idx1+1 )) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
431 |
done |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
432 |
else |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
433 |
# Ensure version if $SOLPKG is correct, remove all packages |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
434 |
# other than $SOLPKG |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
435 |
validate_entire |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
436 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
437 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
438 |
if [[ -n "$PUBLISHERS" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
439 |
# Add specific publishers to software source |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
440 |
add_publishers $PUBLISHERS |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
441 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
442 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
443 |
if [[ -n "$FMRI" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
444 |
# Add specific FMRI to package set to install |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
445 |
add_fmri $FMRI |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
446 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
447 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
448 |
# Minumum package set is entire and one of solaris-small-server or |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
449 |
# solaris-large-server |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
450 |
# Ensure one of server packages are present in manifest |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
451 |
if [[ -z "$ARCHIVE_URI" ]]; then |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
452 |
validate_server_pkgs |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
453 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
454 |
fi |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
455 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
456 |
# Ensure manifest indicates to auto_reboot |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
457 |
/usr/bin/aimanifest set -r /auto_install/ai_instance@auto_reboot true |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
458 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
459 |
exit $SCRIPT_SUCCESS |