usr/src/cmd/auto-install/auto_install.c
author Keith Mitchell <keith.mitchell@oracle.com>
Mon, 30 Aug 2010 15:52:14 -0700
changeset 869 424db5e50fb5
parent 867 cfbbedf29419
child 870 1cd031050724
permissions -rw-r--r--
GK: Backed out changeset cfbbedf29419 for build 147
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     1
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     2
 * CDDL HEADER START
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     3
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     7
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    11
 * and limitations under the License.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    12
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    18
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    19
 * CDDL HEADER END
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    20
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    21
/*
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
    22
 * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    23
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    24
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    25
#include <alloca.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    26
#include <fcntl.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    27
#include <stdio.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    28
#include <errno.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    29
#include <stdarg.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    30
#include <stdlib.h>
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
    31
#include <strings.h>
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    32
#include <unistd.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    33
#include <libnvpair.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    34
#include <locale.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    35
#include <sys/param.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    36
#include <sys/types.h>
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    37
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    38
#include "auto_install.h"
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    39
#include <ls_api.h>
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
    40
#include <orchestrator_api.h>
633
e631367ff83d 12459 AI hangs if "Disk doesn't contain valid Solaris partition"
William Schumann <william.schumann@sun.com>
parents: 539
diff changeset
    41
658
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    42
/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    43
 * use presence of hidden file to indicate iSCSI boot installation
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    44
 * pending code refactoring to make less kludgy
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    45
 * see also ict.py
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    46
 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    47
#define	ISCSI_BOOT_INDICATOR_FILE "/.iscsi_boot"
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    48
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    49
static  boolean_t install_done = B_FALSE;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    50
static	boolean_t install_failed = B_FALSE;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    51
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    52
/* debug mode - disabled by default */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    53
static	boolean_t debug_mode_enabled = B_FALSE;
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    54
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    55
int	install_error = 0;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    56
install_params	params;
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
    57
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
    58
static boolean_t convert_to_sectors(auto_size_units_t,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
    59
    uint64_t, uint64_t *);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    60
658
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    61
void auto_update_progress(om_callback_info_t *, uintptr_t);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
    62
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    63
static void
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    64
usage()
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
    65
{
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
    66
	(void) fprintf(stderr,
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
    67
	    "usage: auto-install -d <diskname> | -p <profile>\n"
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    68
	    "\t-i - end installation before Target Instantiation\n"
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    69
	    "\t-I - end installation after Target Instantiation\n"
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    70
	    "\t-v - run the installer in verbose mode\n");
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    71
}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    72
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    73
/*
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    74
 * enable_debug_mode()
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    75
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    76
 * Description: Enable/disable debug mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    77
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    78
 * Scope: private
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    79
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    80
 * Parameters:
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    81
 *   enable: B_TRUE - enable debug mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    82
 *           B_FALSE - disable debug mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    83
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    84
 * Returns: none
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    85
 */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    86
static void
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    87
enable_debug_mode(boolean_t enable)
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    88
{
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    89
	debug_mode_enabled = enable;
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    90
}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    91
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    92
/*
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    93
 * is_debug_mode_enabled()
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    94
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    95
 * Description: Checks, if we run in debug mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    96
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    97
 * Scope: private
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    98
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
    99
 * Parameters: none
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   100
 *
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   101
 * Returns:
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   102
 *   B_TRUE - debug mode enabled
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   103
 *   B_FALSE - debug mode disabled
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   104
 */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   105
static boolean_t
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   106
is_debug_mode_enabled(void)
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   107
{
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
   108
	return (debug_mode_enabled);
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   109
}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   110
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   111
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   112
 * auto_debug_print()
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   113
 * Description:	Posts debug message
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   114
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   115
void
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   116
auto_debug_print(ls_dbglvl_t dbg_lvl, char *fmt, ...)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   117
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   118
	va_list	ap;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   119
	char	buf[MAXPATHLEN + 1] = "";
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   120
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   121
	va_start(ap, fmt);
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   122
	(void) vsnprintf(buf, MAXPATHLEN+1, fmt, ap);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   123
	(void) ls_write_dbg_message("AI", dbg_lvl, buf);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   124
	va_end(ap);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   125
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   126
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   127
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   128
 * auto_log_print()
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   129
 * Description:	Posts log message
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   130
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   131
void
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   132
auto_log_print(char *fmt, ...)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   133
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   134
	va_list	ap;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   135
	char	buf[MAXPATHLEN + 1] = "";
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   136
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   137
	va_start(ap, fmt);
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   138
	(void) vsnprintf(buf, MAXPATHLEN+1, fmt, ap);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   139
	(void) ls_write_log_message("AI", buf);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   140
	va_end(ap);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   141
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   142
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   143
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   144
 * Callback that gets passed to om_perform_install.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   145
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   146
 * Sets the install_done variable when an install is
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   147
 * finished. If an install fails, it sets the install_failed
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   148
 * variable and also sets the install_error variable to
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   149
 * indicate the specific reason for the failure.
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   150
 */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   151
void
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   152
auto_update_progress(om_callback_info_t *cb_data, uintptr_t app_data)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   153
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   154
	if (cb_data->curr_milestone == -1) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   155
		install_error = cb_data->percentage_done;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   156
		install_failed = B_TRUE;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   157
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   158
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   159
	if (cb_data->curr_milestone == OM_SOFTWARE_UPDATE &&
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   160
	    cb_data->percentage_done == 100)
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   161
		auto_debug_print(AUTO_DBGLVL_INFO,
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   162
		    "Transfer completed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   163
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   164
	if (cb_data->curr_milestone == OM_POSTINSTAL_TASKS &&
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   165
	    cb_data->percentage_done == 100)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   166
		install_done = B_TRUE;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   167
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   168
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   169
/*
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   170
 * auto_debug_dump_file()
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   171
 * Description: dumps a file using auto_debug_print()
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   172
 */
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   173
void
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   174
auto_debug_dump_file(ls_dbglvl_t level, char *filename)
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   175
{
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   176
	FILE *file_ptr;
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   177
	char buffer[MAXPATHLEN];
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   178
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   179
	/* Logfile does not exist.  Nothing to print. */
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   180
	if (access(filename, F_OK) < 0) {
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   181
		return;
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   182
	}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   183
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   184
	if (access(filename, R_OK) < 0) {
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   185
		auto_debug_print(AUTO_DBGLVL_ERR,
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   186
		    "ddu errlog %s does not have read permissions.\n");
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   187
		return;
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   188
	}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   189
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   190
	/* Use buffer to set up the command. */
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   191
	snprintf(buffer, MAXPATHLEN, "/usr/bin/cat %s", filename);
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   192
	if ((file_ptr = popen(buffer, "r")) == NULL) {
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   193
		auto_debug_print(AUTO_DBGLVL_ERR,
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   194
		    "Error opening ddu errlog %s to dump errors: %s\n",
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   195
		    filename, strerror(errno));
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   196
		return;
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   197
	}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   198
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   199
	/* Reuse buffer to get the file data. */
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   200
	while (fgets(buffer, MAXPATHLEN, file_ptr) != NULL) {
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   201
		auto_debug_print(level, "%s", buffer);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   202
	}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   203
	(void) pclose(file_ptr);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   204
}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   205
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
   206
/*
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   207
 * This function splits the passed in file into AI manifest and SC manifest
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   208
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   209
 * Input:
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   210
 * char *input_file	- AI manifest file with embedded SC manifest
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   211
 *
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   212
 * Output:
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   213
 * char *ai_manifest	- Writes the AI manifest portion of the input to this
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   214
 *			  file name
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   215
 * char *sc_manifest	- Writes the SC manifest portion of the input to this
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   216
 *			  file name
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   217
 * Returns:
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   218
 * AUTO_VALID_MANIFEST (0)	- If the operation is successful
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   219
 * AUTO_INVALID_MANIFEST (-1)	- If the operation fails
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   220
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   221
static int
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   222
auto_split_manifests(char *input_file, char *ai_manifest, char *sc_manifest)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   223
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   224
	FILE		*ifp;	/* Input file */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   225
	FILE		*aifp;	/* AI manifest */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   226
	FILE		*scfp;	/* SC manifest */
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   227
	boolean_t	writing_ai_manifest = B_TRUE;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   228
	boolean_t	writing_sc_manifest = B_FALSE;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   229
	char		buf[BUFSIZ];
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   230
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   231
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   232
	if (input_file == NULL || ai_manifest == NULL || sc_manifest == NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   233
		return (AUTO_INVALID_MANIFEST);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   234
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   235
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   236
	if (access(input_file, F_OK) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   237
		return (AUTO_INVALID_MANIFEST);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   238
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   239
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   240
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   241
	 * Open the input file in read-only mode
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   242
	 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   243
	ifp = fopen(input_file, "r");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   244
	if (ifp == NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   245
		auto_log_print(gettext("Cannot open AI manifest %s\n"),
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   246
		    input_file);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   247
		return (AUTO_INVALID_MANIFEST);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   248
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   249
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   250
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   251
	 * Open the output files in write mode
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   252
	 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   253
	aifp = fopen(ai_manifest, "w");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   254
	if (aifp == NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   255
		auto_log_print(gettext("Cannot open AI manifest %s\n"),
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   256
		    ai_manifest);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   257
		return (AUTO_INVALID_MANIFEST);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   258
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   259
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   260
	scfp = fopen(sc_manifest, "w");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   261
	if (scfp == NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   262
		auto_log_print(gettext("Cannot open SC manifest %s\n"),
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   263
		    sc_manifest);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   264
		return (AUTO_INVALID_MANIFEST);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   265
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   266
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   267
	while (fgets(buf, sizeof (buf), ifp) != NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   268
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   269
		/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   270
		 * The SC manifest begins with <?xml version='1.0'?> and
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   271
		 * ends with the line "</service_bundle>". It is embedded
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   272
		 * in the input file between <sc_embedded_manifest ...>
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   273
		 * and  </sc_embedded_manifest>.
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   274
		 */
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   275
		if (strstr(buf, SC_EMBEDDED_BEGIN_MARKER) != NULL) {
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   276
			writing_ai_manifest = B_FALSE;
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   277
			continue;
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   278
		}
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   279
		if (strstr(buf, SC_EMBEDDED_END_MARKER) != NULL) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   280
			writing_ai_manifest = B_TRUE;
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   281
			continue;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   282
		}
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   283
		if ((strstr(buf, SC_MANIFEST_BEGIN_MARKER) != NULL) &&
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   284
		    (! writing_ai_manifest)) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   285
			writing_sc_manifest = B_TRUE;
846
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   286
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   287
			/*
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   288
			 * XML is pretty strict about format of XML prolog.
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   289
			 * It is optional, but if present, no leading comments
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   290
			 * or whitespace characters are allowed.
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   291
			 * Assure this by replacing the whole first line
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   292
			 * of SC manifest with following string:
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   293
			 * "<?xml version='1.0'?>\n"
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   294
			 */
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   295
			fputs(SC_MANIFEST_BEGIN_MARKER, scfp);
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   296
			fputs("\n", scfp);
846
70dd9e819f25 15723 - Teach AI to use new SMF based System Configuration framework for configuring user and root accounts
Jan Damborsky <jan.damborsky@sun.com>
parents: 834
diff changeset
   297
			continue;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   298
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   299
		if (writing_ai_manifest) {
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   300
			fputs(buf, aifp);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   301
			continue;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   302
		} else if (writing_sc_manifest) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   303
			if (strstr(buf, SC_MANIFEST_END_MARKER) != NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   304
				writing_sc_manifest = B_FALSE;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   305
			}
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   306
			fputs(buf, scfp);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   307
			continue;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   308
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   309
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   310
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   311
	fclose(ifp);
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   312
	fclose(aifp);
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   313
	fclose(scfp);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   314
	return (AUTO_VALID_MANIFEST);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   315
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   316
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   317
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   318
 * Create a file that contains the list
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   319
 * of packages to be installed or removed.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   320
 *
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   321
 * Parameters:
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   322
 *   hardcode - if set to B_TRUE, hardcode the list of packages. This is for
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   323
 *              testing purposes only, when AI engine is not provided with
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   324
 *              AI manifest.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   325
 *
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   326
 *   pkg_list_type - specify list of packages to be obtained -
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   327
 *                   install or remove.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   328
 *
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   329
 *   pkg_list_file - output file where the package list will be saved
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   330
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   331
 * Returns:
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   332
 *	AUTO_INSTALL_SUCCESS for success
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   333
 *	AUTO_INSTALL_FAILURE for failure
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   334
 *	AUTO_INSTALL_EMPTY_LIST - 'remove' list is empty
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   335
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   336
static int
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   337
create_package_list_file(boolean_t hardcode,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   338
    auto_package_list_type_t pkg_list_type, char *pkg_list_file)
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   339
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   340
	FILE *fp;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   341
	char **package_list;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   342
	int i, num_packages = 0;
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   343
	int ret = AUTO_INSTALL_SUCCESS;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   344
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   345
	if ((fp = fopen(pkg_list_file, "wb")) == NULL) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   346
		auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   347
		    "Couldn't open file %s for storing list of packages\n",
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   348
		    pkg_list_file);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   349
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   350
		return (AUTO_INSTALL_FAILURE);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   351
	}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   352
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   353
	auto_debug_print(AUTO_DBGLVL_INFO,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   354
	    "File %s successfully opened - list of packages to be %s "
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   355
	    "will be saved there\n", pkg_list_file,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   356
	    pkg_list_type == AI_PACKAGE_LIST_INSTALL ? "installed" : "removed");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   357
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   358
	/*
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   359
	 * When invoked in test mode (without AI manifest), lists of packages
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   360
	 * are hardcoded
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   361
	 */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   362
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   363
	if (hardcode) {
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   364
		auto_debug_print(AUTO_DBGLVL_INFO,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   365
		    "Hardcoded list of packages will be generated\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   366
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   367
		if (pkg_list_type == AI_PACKAGE_LIST_INSTALL) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   368
			if (fputs(AI_TEST_PACKAGE_LIST_INSTALL, fp) == EOF)
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   369
				ret = AUTO_INSTALL_FAILURE;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   370
		} else {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   371
			if (fputs(AI_TEST_PACKAGE_LIST_REMOVE, fp) == EOF)
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   372
				ret = AUTO_INSTALL_FAILURE;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   373
		}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   374
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   375
		(void) fclose(fp);
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   376
		return (ret);
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   377
	}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   378
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   379
	/*
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   380
	 * Obtain list of packages to be installed or removed from AI manifest.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   381
	 *
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   382
	 * With respect to install list, there are two tags supported for
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   383
	 * specifying list of packages in order to keep backward compatibility.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   384
	 * Try new tag first. If it is not specified, then try the old one.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   385
	 */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   386
	if (pkg_list_type == AI_PACKAGE_LIST_INSTALL) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   387
		package_list = ai_get_manifest_packages(&num_packages,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   388
		    AIM_PACKAGE_INSTALL_NAME);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   389
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   390
		if (package_list == NULL) {
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   391
			/* If no package list given, use default */
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   392
			auto_debug_print(AUTO_DBGLVL_ERR,
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   393
			    "No install package list given, using default\n");
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   394
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   395
			num_packages = 4;
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
   396
			package_list = malloc((num_packages + 1) * sizeof (char *));
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   397
			package_list[0] = strdup("pkg:/SUNWcsd");
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   398
			package_list[1] = strdup("pkg:/SUNWcs");
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   399
			package_list[2] = strdup("pkg:/babel_install");
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   400
			package_list[3] = strdup("pkg:/entire");
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   401
			package_list[4] = NULL;
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   402
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   403
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
   404
		auto_log_print(gettext(
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
   405
		    "list of packages to be installed is:\n"));
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   406
	} else {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   407
		package_list = ai_get_manifest_packages(&num_packages,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   408
		    AIM_PACKAGE_REMOVE_NAME);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   409
		if (package_list == NULL) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   410
			auto_debug_print(AUTO_DBGLVL_INFO,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   411
			    "List of packages to be removed is empty\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   412
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   413
			(void) fclose(fp);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   414
			return (AUTO_INSTALL_EMPTY_LIST);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   415
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   416
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
   417
		auto_log_print(gettext(
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
   418
		    "list of packages to be removed is:\n"));
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   419
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   420
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   421
	/*
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   422
	 * Save list of packages to the file
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   423
	 */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   424
	for (i = 0; i < num_packages; i++) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   425
		auto_log_print("%s\n", package_list[i]);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   426
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   427
		if (fputs(package_list[i], fp) == EOF) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   428
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   429
			    "Write to %s file failed\n", pkg_list_file);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   430
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   431
			ret = AUTO_INSTALL_FAILURE;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   432
			break;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   433
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   434
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   435
		if (fputs("\n", fp) == EOF) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   436
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   437
			    "Write to %s file failed\n", pkg_list_file);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   438
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   439
			ret = AUTO_INSTALL_FAILURE;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   440
			break;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   441
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   442
	}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   443
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   444
	(void) fclose(fp);
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   445
	return (ret);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   446
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   447
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   448
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   449
 * Create/delete/preserve vtoc slices as specified
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   450
 * in the manifest
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   451
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   452
static int
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   453
auto_modify_target_slices(auto_slice_info *asi, uint8_t install_slice_id)
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   454
{
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   455
	for (; asi->slice_action[0] != '\0'; asi++) {
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   456
		uint64_t slice_size_sec;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   457
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   458
		auto_debug_print(AUTO_DBGLVL_INFO,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   459
		    "slice action %s, size=%lld units=%s\n",
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   460
		    asi->slice_action, asi->slice_size,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   461
		    CONVERT_UNITS_TO_TEXT(asi->slice_size_units));
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   462
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   463
		if (!convert_to_sectors(asi->slice_size_units,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   464
		    asi->slice_size, &slice_size_sec)) {
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   465
			auto_debug_print(AUTO_DBGLVL_ERR,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   466
			    "conversion failure from %lld %s to sectors\n",
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   467
			    asi->slice_size,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   468
			    CONVERT_UNITS_TO_TEXT(asi->slice_size_units));
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   469
			return (AUTO_INSTALL_FAILURE);
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   470
		}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   471
		if (strcmp(asi->slice_action, "create") == 0) {
539
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   472
			om_slice_tag_type_t slice_tag;
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   473
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   474
			if (asi->slice_number == install_slice_id)
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   475
				slice_tag = OM_ROOT;
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   476
			else
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   477
				slice_tag = OM_UNASSIGNED;
2d996f9b841a 7758 AI install always fails after swap slice is created
William Schumann <william.schumann@sun.com>
parents: 528
diff changeset
   478
			if (!om_create_slice(asi->slice_number, slice_size_sec,
810
8f09387744e3 8661 AI fails to continue installation if slices exist from previous configuration
William Schumann <william.schumann@sun.com>
parents: 789
diff changeset
   479
			    slice_tag, asi->on_existing))
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   480
				return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   481
		} else if (strcmp(asi->slice_action, "delete") == 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   482
			if (!om_delete_slice(asi->slice_number))
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   483
				return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   484
		} else if (strcmp(asi->slice_action, "preserve") == 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   485
			if (!om_preserve_slice(asi->slice_number))
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   486
				return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   487
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   488
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   489
	return (AUTO_INSTALL_SUCCESS);
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   490
}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   491
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   492
/*
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   493
 * convert value to sectors given basic unit size
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   494
 * TODO uint64_t overflow check
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   495
 */
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   496
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   497
static boolean_t
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   498
convert_to_sectors(auto_size_units_t units, uint64_t src,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   499
    uint64_t *psecs)
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   500
{
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   501
	if (psecs == NULL)
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   502
		return (B_FALSE);
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   503
	switch (units) {
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   504
		case AI_SIZE_UNITS_SECTORS:
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   505
			*psecs = src;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   506
			break;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   507
		case AI_SIZE_UNITS_MEGABYTES:
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   508
			*psecs = src*2048;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   509
			break;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   510
		case AI_SIZE_UNITS_GIGABYTES:
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   511
			*psecs = src*2048*1024; /* sec=>MB=>GB */
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   512
			break;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   513
		case AI_SIZE_UNITS_TERABYTES:
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   514
			*psecs = src*2048*1024*1024; /* sec=>MB=>GB=>TB */
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   515
			break;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   516
		default:
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   517
			return (B_FALSE);
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   518
	}
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   519
	if (units != AI_SIZE_UNITS_SECTORS)
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   520
		auto_debug_print(AUTO_DBGLVL_INFO,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   521
		    "converting from %lld %s to %lld sectors\n",
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   522
		    src, CONVERT_UNITS_TO_TEXT(units), *psecs);
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   523
	return (B_TRUE);
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   524
}
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   525
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   526
#ifndef	__sparc
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   527
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   528
 * Create/delete/preserve fdisk partitions as specifed
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   529
 * in the manifest
457
c7530e1b1ad2 5654 AI could allow deletion of existing fdisk partition by number
William Schumann <william.schumann@sun.com>
parents: 450
diff changeset
   530
 * Note that the partition size is converted using the units specified
c7530e1b1ad2 5654 AI could allow deletion of existing fdisk partition by number
William Schumann <william.schumann@sun.com>
parents: 450
diff changeset
   531
 *	for both create and delete actions
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   532
 */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   533
static int
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   534
auto_modify_target_partitions(auto_partition_info *api)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   535
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   536
	for (; api->partition_action[0] != '\0'; api++) {
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   537
		uint64_t partition_size_sec;
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   538
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   539
		auto_debug_print(AUTO_DBGLVL_INFO,
667
808a042e4938 1777 Installer doesn't recognize logical volumes defined within extended partition
William Schumann <william.schumann@sun.com>
parents: 664
diff changeset
   540
		    "partition action %s, size=%lld units=%s logical? %s\n",
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   541
		    api->partition_action, api->partition_size,
667
808a042e4938 1777 Installer doesn't recognize logical volumes defined within extended partition
William Schumann <william.schumann@sun.com>
parents: 664
diff changeset
   542
		    CONVERT_UNITS_TO_TEXT(api->partition_size_units),
808a042e4938 1777 Installer doesn't recognize logical volumes defined within extended partition
William Schumann <william.schumann@sun.com>
parents: 664
diff changeset
   543
		    api->partition_is_logical ? "yes" : "no");
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   544
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   545
		if (!convert_to_sectors(api->partition_size_units,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   546
		    api->partition_size, &partition_size_sec)) {
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   547
			auto_debug_print(AUTO_DBGLVL_ERR,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   548
			    "conversion failure from %lld %s to sectors\n",
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   549
			    api->partition_size,
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   550
			    CONVERT_UNITS_TO_TEXT(api->partition_size_units));
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   551
			return (AUTO_INSTALL_FAILURE);
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
   552
		}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   553
		if (strcmp(api->partition_action, "create") == 0) {
449
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   554
			if (!om_create_partition(api->partition_type,
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   555
			    api->partition_start_sector,
667
808a042e4938 1777 Installer doesn't recognize logical volumes defined within extended partition
William Schumann <william.schumann@sun.com>
parents: 664
diff changeset
   556
			    partition_size_sec, B_FALSE,
808a042e4938 1777 Installer doesn't recognize logical volumes defined within extended partition
William Schumann <william.schumann@sun.com>
parents: 664
diff changeset
   557
			    api->partition_is_logical))
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   558
				return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   559
		} else if (strcmp(api->partition_action, "delete") == 0) {
457
c7530e1b1ad2 5654 AI could allow deletion of existing fdisk partition by number
William Schumann <william.schumann@sun.com>
parents: 450
diff changeset
   560
			if (!om_delete_partition(api->partition_number,
c7530e1b1ad2 5654 AI could allow deletion of existing fdisk partition by number
William Schumann <william.schumann@sun.com>
parents: 450
diff changeset
   561
			    api->partition_start_sector, partition_size_sec))
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   562
				return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   563
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   564
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   565
	return (AUTO_INSTALL_SUCCESS);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   566
}
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   567
#endif
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   568
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   569
/*
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   570
 * Initialize the image area with default publisher
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   571
 * Set the nv-list for configuring default publisher to be used
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   572
 * with the installation. This passes the publisher name and url along
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   573
 * mount point (/a) and action (initilaize pkg image area). The transfer module
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   574
 * will use these parameters and calls the appropriate pkg commands to
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   575
 * initialize the pkg imag area and setup the default publisher
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   576
 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   577
static int
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   578
configure_ips_init_nv_list(nvlist_t **attr, auto_repo_info_t *repo)
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   579
{
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   580
	if (nvlist_add_uint32(*attr, TM_ATTR_MECHANISM,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   581
	    TM_PERFORM_IPS) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   582
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   583
		    "Setting of TM_ATTR_MECHANISM failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   584
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   585
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   586
	if (nvlist_add_uint32(*attr, TM_IPS_ACTION,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   587
	    TM_IPS_INIT) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   588
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   589
		    "Setting of TMP_IPS_ACTION failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   590
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   591
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   592
	if (nvlist_add_string(*attr, TM_IPS_INIT_MNTPT,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   593
	    INSTALLED_ROOT_DIR) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   594
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   595
		    "Setting of TM_IPS_INIT_MNTPT failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   596
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   597
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   598
	if (nvlist_add_string(*attr, TM_IPS_PKG_URL, repo->url) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   599
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   600
		    "Setting of TM_IPS_PKG_URL failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   601
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   602
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   603
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   604
	auto_log_print(gettext("installation will be performed "
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   605
	    "from %s (%s)\n"), repo->url, repo->publisher);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   606
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   607
	if (nvlist_add_string(*attr, TM_IPS_PKG_AUTH, repo->publisher)
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   608
	    != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   609
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   610
		    "Setting of TM_IPS_PKG_AUTH failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   611
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   612
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   613
695
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   614
	if (nvlist_add_string(*attr, TM_IPS_INIT_RETRY_TIMEOUT,
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   615
	    TM_IPS_INIT_TIMEOUT_DEFAULT) != 0) {
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   616
		auto_debug_print(AUTO_DBGLVL_INFO,
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   617
		    "Setting of TM_IPS_INIT_RETRY_TIMEOUT failed\n");
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   618
		return (-1);
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   619
	}
68b0dc3a8806 13537 transfer module keeps trying to contact an unreachable IPS server indefinitely
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 679
diff changeset
   620
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   621
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   622
	 * We need to ask IPS to force creating IPS image, since when
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   623
	 * default path is chosen, IPS refuses to create the image.
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   624
	 * The reason is that even if we created empty BE to be
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   625
	 * populated by IPS, it contains ZFS shared and non-shared
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   626
	 * datasets mounted on appropriate mount points. And
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   627
	 * IPS complains in the case the target mount point contains
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   628
	 * subdirectories.
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   629
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   630
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   631
	if (nvlist_add_boolean_value(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   632
	    TM_IPS_IMAGE_CREATE_FORCE, B_TRUE) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   633
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   634
		    "Setting of TM_IPS_IMAGE_CREATE_FORCE failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   635
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   636
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   637
	return (0);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   638
}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   639
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   640
/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   641
 * configure_ips_addl_publisher_nv_list
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   642
 * Set the nv-list for configuring additional publisher(s) to be used
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   643
 * with the installation. The nv_list contains the publisher name and url along
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   644
 * with mount point (/a) and action (set-publisher). The transfer module
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   645
 * will use these parameters and calls the appropriate pkg commands to
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   646
 * setup additional publisher.
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   647
 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   648
static int
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   649
configure_ips_addl_publisher_nv_list(
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   650
    nvlist_t **attr, auto_repo_info_t *repo)
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   651
{
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   652
	if (nvlist_add_uint32(*attr, TM_ATTR_MECHANISM,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   653
	    TM_PERFORM_IPS) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   654
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   655
		    "Setting of TM_ATTR_MECHANISM failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   656
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   657
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   658
	if (nvlist_add_uint32(*attr, TM_IPS_ACTION,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   659
	    TM_IPS_SET_AUTH) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   660
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   661
		    "Setting of TMP_IPS_ACTION failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   662
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   663
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   664
	if (nvlist_add_string(*attr, TM_IPS_INIT_MNTPT,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   665
	    INSTALLED_ROOT_DIR) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   666
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   667
		    "Setting of TM_IPS_INIT_MNTPT failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   668
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   669
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   670
	if (nvlist_add_string(*attr, TM_IPS_ALT_URL, repo->url) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   671
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   672
		    "Setting of TM_IPS_PKG_URL failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   673
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   674
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   675
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   676
	auto_log_print(gettext("Using addditional repository "
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   677
	    "from %s (%s)\n"), repo->url, repo->publisher);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   678
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   679
	if (nvlist_add_string(*attr, TM_IPS_ALT_AUTH, repo->publisher)
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   680
	    != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   681
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   682
		    "Setting of TM_IPS_PKG_AUTH failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   683
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   684
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   685
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   686
	return (0);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   687
}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   688
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   689
/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   690
 * configure_ips_mirror_nv_list
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   691
 * Set the nv-list for configuring a mirror to either the default repository
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   692
 * or any additional repository to be used with the installation. The nv_list
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   693
 * contains the publisher name and url along with mount point (/a) and action
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   694
 * (set-publisher). The transfer module will use these parameters and calls
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   695
 * appropriate pkg commands to setup the mirror.
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   696
 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   697
static int
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   698
configure_ips_mirror_nv_list(nvlist_t **attr, char *publisher, char *mirror_url)
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   699
{
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   700
	if (publisher == NULL || mirror_url == NULL) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   701
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   702
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   703
	auto_log_print(gettext("using mirror at %s for publisher %s\n"),
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   704
	    mirror_url, publisher);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   705
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   706
	if (nvlist_add_uint32(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   707
	    TM_ATTR_MECHANISM, TM_PERFORM_IPS) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   708
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   709
		    "Setting of TM_ATTR_MECHANISM failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   710
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   711
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   712
	if (nvlist_add_string(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   713
	    TM_IPS_INIT_MNTPT, INSTALLED_ROOT_DIR) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   714
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   715
		    "Setting of TM_IPS_INIT_MNTPT failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   716
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   717
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   718
	if (nvlist_add_uint32(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   719
	    TM_IPS_ACTION, TM_IPS_SET_AUTH) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   720
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   721
		    "Setting of TMP_IPS_ACTION failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   722
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   723
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   724
	if (nvlist_add_string(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   725
	    TM_IPS_ALT_URL, mirror_url) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   726
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   727
		    "Setting of TM_IPS_ALT_URL failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   728
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   729
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   730
	if (nvlist_add_string(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   731
	    TM_IPS_ALT_AUTH, publisher) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   732
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   733
		    "Setting of TM_IPS_ALT_AUTH failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   734
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   735
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   736
	if (nvlist_add_string(*attr,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   737
	    TM_IPS_MIRROR_FLAG, TM_IPS_SET_MIRROR) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   738
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   739
		    "Setting of TM_IPS_MIRROR_FLAG failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   740
		return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   741
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   742
	auto_log_print(gettext("Using the mirror %s for the publisher %s\n"),
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   743
	    mirror_url, publisher);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   744
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   745
	return (0);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   746
}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   747
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   748
/*
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   749
 * Install the target based on the criteria specified in
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
   750
 * ai.xml.
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   751
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   752
 * NOTE: ai_validate_manifest() MUST have been called prior
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   753
 * to calling this function.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   754
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   755
 * RETURNS:
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   756
 *	AUTO_INSTALL_SUCCESS on success
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   757
 *	AUTO_INSTALL_FAILURE on failure
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   758
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   759
static int
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   760
install_from_manifest()
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   761
{
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   762
	char *p = NULL;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   763
	auto_disk_info adi;
789
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   764
	auto_swap_device_info adsi;
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   765
	auto_dump_device_info addi;
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   766
	auto_sc_params asp;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   767
	int status;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   768
	int return_status = AUTO_INSTALL_FAILURE;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   769
	uint8_t install_slice_id;
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
   770
	int ita = 0;
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   771
	int number = 0;
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   772
	/*
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   773
	 * pointers to heap - free later if not NULL
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   774
	 */
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   775
	auto_slice_info *asi = NULL;
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   776
#ifndef	__sparc
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   777
	auto_partition_info *api = NULL;
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   778
#endif
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   779
	char *diskname = NULL;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   780
	nvlist_t *install_attr = NULL, **transfer_attr = NULL;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   781
	char *proxy = NULL;
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   782
	auto_repo_info_t	*default_ips_repo = NULL;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   783
	auto_repo_info_t	*addl_ips_repo = NULL;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   784
	auto_repo_info_t	*rptr;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
   785
	auto_mirror_repo_t  *mptr;
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
   786
	int ret = AUTO_INSTALL_SUCCESS;
658
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   787
	char iscsi_devnam[MAXNAMELEN] = "";
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   788
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   789
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   790
	 * Start out by getting the install target and
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   791
	 * validating that target
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   792
	 */
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   793
	bzero(&adi, sizeof (auto_disk_info));
658
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   794
	ret = ai_get_manifest_disk_info(&adi);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   795
	if (ret == AUTO_INSTALL_FAILURE) {
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   796
		auto_log_print(gettext("disk info manifest error\n"));
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   797
		return (AUTO_INSTALL_FAILURE);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   798
	}
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   799
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   800
	/*
789
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   801
	 * Retrieve device swap information if specified
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   802
	 */
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   803
	bzero(&adsi, sizeof (auto_swap_device_info));
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   804
	ret = ai_get_manifest_swap_device_info(&adsi);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   805
	if (ret == AUTO_INSTALL_FAILURE) {
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   806
		auto_log_print(gettext("device swap manifest error\n"));
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   807
		return (AUTO_INSTALL_FAILURE);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   808
	}
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   809
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   810
	/*
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   811
	 * Retrieve device dump information if specified
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   812
	 */
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   813
	bzero(&addi, sizeof (auto_dump_device_info));
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   814
	ret = ai_get_manifest_dump_device_info(&addi);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   815
	if (ret == AUTO_INSTALL_FAILURE) {
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   816
		auto_log_print(gettext("device dump manifest error\n"));
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   817
		return (AUTO_INSTALL_FAILURE);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   818
	}
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   819
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
   820
	/*
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   821
	 * grab target slice number
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   822
	 */
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   823
	install_slice_id = adi.install_slice_number;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   824
658
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   825
	/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   826
	 * if iSCSI target requested, mount it through iSCSI initiator
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   827
	 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   828
	ret = mount_iscsi_target_if_requested(&adi,
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   829
	    iscsi_devnam, sizeof (iscsi_devnam));
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   830
	if (ret == -1) {
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   831
		auto_log_print(gettext("iSCSI boot target device error\n"));
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   832
		return (AUTO_INSTALL_FAILURE);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   833
	}
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   834
	/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   835
	 * if iSCSI device was discovered and mounted,
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   836
	 *	write iSCSI boot marker file for ICT reference
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   837
	 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   838
	if (iscsi_devnam[0] == '\0') { /* no iSCSI target mounted */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   839
		/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   840
		 * make sure indicator file not there from previous run
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   841
		 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   842
		errno = 0;
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   843
		if (unlink(ISCSI_BOOT_INDICATOR_FILE) != 0 &&
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   844
		    errno != ENOENT) {
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   845
			auto_log_print(gettext(
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   846
			    "Could not delete " ISCSI_BOOT_INDICATOR_FILE
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   847
			    " to indicate no iSCSI boot target\n"));
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   848
			return (AUTO_INSTALL_FAILURE);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   849
		}
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   850
	} else { /* iSCSI target mounted - indicate for ICT */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   851
		FILE *fd;
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   852
		/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   853
		 * take device name from iSCSI target as selected
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   854
		 * install device
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   855
		 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   856
		(void) strncpy(adi.diskname, iscsi_devnam,
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   857
		    sizeof (adi.diskname));
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   858
		/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   859
		 * create marker to signal ICT to enable nwam
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   860
		 * in service repository
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   861
		 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   862
		fd = fopen(ISCSI_BOOT_INDICATOR_FILE, "w");
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   863
		if (fd == NULL) {
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   864
			auto_log_print(gettext(
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   865
			    "Could not create " ISCSI_BOOT_INDICATOR_FILE
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   866
			    " to indicate iSCSI boot target\n"));
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   867
			return (AUTO_INSTALL_FAILURE);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   868
		}
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   869
		/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   870
		 * write device name - used for debugging only
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   871
		 */
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   872
		(void) fputs(iscsi_devnam, fd);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   873
		(void) fclose(fd);
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   874
	}
698
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   875
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   876
	/*
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   877
	 * Initiate target discovery and wait until it is finished
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   878
	 */
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   879
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   880
	if (auto_target_discovery() != AUTO_TD_SUCCESS) {
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   881
		auto_log_print(gettext("Automated installation failed in "
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   882
		    "Target Discovery module\n"));
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   883
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   884
		auto_log_print(gettext("Please see previous messages for more "
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   885
		    "details\n"));
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   886
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   887
		return (AUTO_INSTALL_FAILURE);
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   888
	}
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
   889
658
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   890
	/*
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   891
	 * given manifest input and discovery information,
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   892
	 *	select a target disk for the installation
831357e2155d 6590 Need support for iSCSI boot installations in Caiman
William Schumann <william.schumann@sun.com>
parents: 635
diff changeset
   893
	 */
679
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
   894
	if (auto_select_install_target(&diskname, &adi) != AUTO_TD_SUCCESS) {
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   895
		auto_log_print(gettext("ai target device not found\n"));
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   896
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   897
	}
679
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
   898
414
ad63b7c430bb 5739 AutomatedInstaller cannot find disks when default manifest is used
William Schumann <william.schumann@sun.com>
parents: 409
diff changeset
   899
	auto_log_print(gettext("Disk name selected for installation is %s\n"),
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   900
	    diskname);
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   901
#ifndef	__sparc
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   902
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   903
	 * Configure the partitions as specified in the
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   904
	 * manifest
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   905
	 */
449
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   906
	api = ai_get_manifest_partition_info(&status);
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   907
	if (status != 0) {
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   908
		auto_debug_print(AUTO_DBGLVL_ERR,
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   909
		    "failed to process manifest due to illegal value\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   910
		goto error_ret;
449
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
   911
	}
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   912
	if (api == NULL)
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   913
		auto_log_print(gettext("no manifest partition "
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   914
		    "information found\n"));
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   915
	else {
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   916
		if (auto_modify_target_partitions(api) !=
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   917
		    AUTO_INSTALL_SUCCESS) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   918
			auto_log_print(gettext("failed to modify partition(s) "
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   919
			    "specified in the manifest\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   920
			goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   921
		}
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   922
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   923
		/* we're done with futzing with partitions, free the memory */
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   924
		free(api);
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   925
		api = NULL; /* don't release later */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   926
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   927
363
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   928
	/*
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   929
	 * if no partition exists and no partitions were specified in manifest,
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   930
	 *	there is no info about partitions for TI,
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   931
	 *	so create info table from scratch
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   932
	 */
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   933
	om_create_target_partition_info_if_absent();
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   934
363
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   935
	/* finalize modified partition table for TI to apply to target disk */
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   936
	if (!om_finalize_fdisk_info_for_TI()) {
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   937
		auto_log_print(gettext("failed to finalize fdisk info\n"));
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   938
		return (AUTO_INSTALL_FAILURE);
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   939
	}
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   940
#endif
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   941
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   942
	 * Configure the vtoc slices as specified in the
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   943
	 * manifest
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   944
	 */
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   945
	asi = ai_get_manifest_slice_info(&status);
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   946
	if (status != 0) {
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   947
		auto_debug_print(AUTO_DBGLVL_ERR,
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   948
		    "failed to process manifest due to illegal value\n");
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   949
		goto error_ret;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   950
	}
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   951
	if (asi == NULL)
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   952
		auto_log_print(gettext(
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   953
		    "no manifest slice information found\n"));
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   954
	else {
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   955
		if (auto_modify_target_slices(asi, install_slice_id) !=
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   956
		    AUTO_INSTALL_SUCCESS) {
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   957
			auto_log_print(gettext(
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   958
			    "failed to modify slice(s) specified "
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   959
			    "in the manifest\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   960
			goto error_ret;
363
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   961
		}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   962
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   963
		/* we're done with futzing with slices, free the memory */
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
   964
		free(asi);
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   965
		asi = NULL;	/* already freed */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   966
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   967
363
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   968
	/* finalize modified vtoc for TI to apply to target disk partition */
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
   969
	if (!om_finalize_vtoc_for_TI(install_slice_id)) {
363
130c19a9f4de 4233 target instantiation gets called multiple times which results in installation failure
William Schumann <william.schumann@sun.com>
parents: 315
diff changeset
   970
		auto_log_print(gettext("failed to finalize vtoc info\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   971
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   972
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   973
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   974
	if (nvlist_alloc(&install_attr, NV_UNIQUE_NAME, 0) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   975
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   976
		    "nvlist allocation failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   977
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   978
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   979
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   980
	if (nvlist_add_uint8(install_attr, OM_ATTR_INSTALL_TYPE,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   981
	    OM_INITIAL_INSTALL) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   982
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   983
		    "Setting of OM_ATTR_INSTALL_TYPE failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   984
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   985
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   986
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   987
	if (nvlist_add_string(install_attr, OM_ATTR_DISK_NAME,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   988
	    diskname) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   989
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   990
		    "Setting of OM_ATTR_DISK_NAME failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   991
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   992
	}
311
7ec66097ab2e 4074 AI preserve slice will not work if install slice is not specified
William Schumann <william.schumann@sun.com>
parents: 301
diff changeset
   993
	free(diskname);
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
   994
	diskname = NULL;	/* already freed */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   995
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   996
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   997
	 * Parse the SC (system configuration manifest)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
   998
	 */
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
   999
	auto_log_print(gettext("Parsing system configuration manifest\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1000
503
2b8b124acb94 7799 Missing SC manifest information can cause hostname, other failures
William Schumann <william.schumann@sun.com>
parents: 495
diff changeset
  1001
	bzero(&asp, sizeof (auto_sc_params));
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1002
	if (auto_parse_sc_manifest(SC_MANIFEST_FILE, &asp) !=
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1003
	    AUTO_INSTALL_SUCCESS) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1004
		auto_log_print(gettext("Automated Installation failed in"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1005
		    " parser module\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1006
		auto_log_print(gettext("Invalid System Configuration manifest"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1007
		    " provided\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1008
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1009
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1010
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1011
477
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1012
	/*
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1013
	 * if no hostname provided in SC manifest, use "opensolaris"
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1014
	 */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1015
	if (nvlist_add_string(install_attr, OM_ATTR_HOST_NAME,
477
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1016
	    asp.hostname == NULL ? "opensolaris" : asp.hostname) != 0) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1017
		auto_log_print(gettext("Setting of OM_ATTR_HOST_NAME"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1018
		    " failed\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1019
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1020
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1021
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1022
	if (nvlist_add_string(install_attr, OM_ATTR_TIMEZONE_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1023
	    asp.timezone) != 0) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1024
		auto_log_print(gettext("Setting of OM_ATTR_TIMEZONE_INFO"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1025
		    " failed\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1026
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1027
	}
477
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1028
	if (asp.timezone != NULL && *asp.timezone != '\0' &&
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1029
	    om_set_time_zone(asp.timezone) != OM_SUCCESS) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1030
		auto_log_print(gettext("The time zone in the installed system"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1031
		    " will not be the timezone specified in the SC manifest"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1032
		    " (%s)\n"), asp.timezone);
477
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1033
		om_set_error(OM_SUCCESS);	/* reset Orchestrator errno */
04c667d64a87 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 471
diff changeset
  1034
	}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1035
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1036
	if (nvlist_add_string(install_attr, OM_ATTR_DEFAULT_LOCALE,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1037
	    "C") != 0) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1038
		auto_log_print(gettext("Setting of OM_ATTR_DEFAULT_LOCALE"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1039
		    " failed\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1040
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1041
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1042
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1043
	/*
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1044
	 * If proxy is specified, set the http_proxy environemnet variable for
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1045
	 * IPS to use
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1046
	 */
369
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1047
	p = ai_get_manifest_http_proxy();
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1048
	if (p != NULL) {
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1049
		int proxy_len;
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1050
369
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1051
		proxy_len = strlen("http_proxy=") + strlen(p) + 1;
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1052
		proxy = malloc(proxy_len);
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1053
		snprintf(proxy, proxy_len, "%s%s", "http_proxy=", p);
369
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1054
		auto_debug_print(AUTO_DBGLVL_INFO,
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1055
		    "Setting http_proxy environment variable to %s\n", p);
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1056
		if (putenv(proxy)) {
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1057
			auto_debug_print(AUTO_DBGLVL_INFO,
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
  1058
			    "Setting of http_proxy environment variable failed:"
409
141e3dc11d9f 4460 "partition_size" tag in ai_manifest.xml template should mention sectors
William Schumann <william.schumann@sun.com>
parents: 405
diff changeset
  1059
			    " %s\n", strerror(errno));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1060
			goto error_ret;
405
785221d05f6b 4195 need to make changes to AI Engine for SPARC
William Schumann <william.schumann@sun.com>
parents: 369
diff changeset
  1061
		}
369
e750468b2782 4487 Add http proxy suport
Jens Deppe <jens.deppe@sun.com>
parents: 363
diff changeset
  1062
	}
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1063
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1064
	 * Get the IPS default publisher, mirrors for the default publisher,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1065
	 * additional publishers and mirrors for each additinal publishers.
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1066
	 * Based on the data, the space for nv list allocated to perform
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1067
	 * Transfer initialization
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1068
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1069
	default_ips_repo = ai_get_default_repo_info();
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1070
	if (default_ips_repo == NULL) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1071
		auto_log_print(gettext("IPS default publisher is not "
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1072
		    "specified\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1073
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1074
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1075
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1076
	number = 1; /* For the default publisher */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1077
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1078
	 * Count the mirrors
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1079
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1080
	for (mptr = default_ips_repo ->mirror_repo; mptr != NULL;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1081
	    mptr = mptr->next_mirror) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1082
		number++;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1083
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1084
	addl_ips_repo = ai_get_additional_repo_info();
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1085
	if (addl_ips_repo == NULL) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1086
		auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1087
		    "No additional IPS publishers specified\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1088
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1089
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1090
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1091
	 * Count the number of additional repos and its mirrors
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1092
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1093
	for (rptr =  addl_ips_repo; rptr != NULL; rptr = rptr->next_repo) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1094
		number++;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1095
		for (mptr = rptr->mirror_repo; mptr != NULL;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1096
		    mptr = mptr->next_mirror) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1097
			number++;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1098
		}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1099
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1100
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1101
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1102
	 * Allocate enough pointer space for any possible TM initialization
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1103
	 * 	number of publishers and their mirrors
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1104
	 *	+ Packages to be installed
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1105
	 *	+ Packages to be removed
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1106
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1107
	transfer_attr = calloc(number+2, sizeof (nvlist_t *));
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1108
	if (transfer_attr == NULL) {
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1109
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1110
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1111
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1112
	ita = 0;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1113
	if (nvlist_alloc(&transfer_attr[ita], NV_UNIQUE_NAME, 0) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1114
		auto_debug_print(AUTO_DBGLVL_INFO,
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1115
		    "nvlist allocation failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1116
		goto error_ret;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1117
	}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1118
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1119
	 * Initialize the image pkg area and setup default publisher
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1120
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1121
	status = configure_ips_init_nv_list(
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1122
	    &transfer_attr[ita], default_ips_repo);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1123
	if (status != SUCCESS) {
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1124
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1125
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1126
301
34c427843a2c 4088 Transfer module fails in 'pkg image-create' in build 100
Jan Damborsky <jan.damborsky@sun.com>
parents: 272
diff changeset
  1127
	/*
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1128
	 * Setup the mirrors for the default publisher one at a time
301
34c427843a2c 4088 Transfer module fails in 'pkg image-create' in build 100
Jan Damborsky <jan.damborsky@sun.com>
parents: 272
diff changeset
  1129
	 */
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1130
	for (mptr = default_ips_repo->mirror_repo;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1131
	    mptr != NULL; mptr = mptr->next_mirror) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1132
		char    *publisher;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1133
		char    *mirror_url;
301
34c427843a2c 4088 Transfer module fails in 'pkg image-create' in build 100
Jan Damborsky <jan.damborsky@sun.com>
parents: 272
diff changeset
  1134
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1135
		ita++;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1136
		publisher = default_ips_repo->publisher;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1137
		mirror_url = mptr->mirror_url;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1138
		if (nvlist_alloc(&transfer_attr[ita], NV_UNIQUE_NAME, 0) != 0) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1139
			auto_debug_print(AUTO_DBGLVL_INFO,
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1140
			    "nvlist allocation failed\n");
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1141
			return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1142
		}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1143
		status = configure_ips_mirror_nv_list(&transfer_attr[ita],
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1144
		    publisher, mirror_url);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1145
		if (status != SUCCESS) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1146
			goto error_ret;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1147
		}
301
34c427843a2c 4088 Transfer module fails in 'pkg image-create' in build 100
Jan Damborsky <jan.damborsky@sun.com>
parents: 272
diff changeset
  1148
	}
34c427843a2c 4088 Transfer module fails in 'pkg image-create' in build 100
Jan Damborsky <jan.damborsky@sun.com>
parents: 272
diff changeset
  1149
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1150
	/*
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1151
	 * Configure the additional publisher(s)
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1152
	 */
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1153
	for (rptr = addl_ips_repo; rptr != NULL; rptr = rptr->next_repo) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1154
		ita++;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1155
		if (nvlist_alloc(&transfer_attr[ita],
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1156
		    NV_UNIQUE_NAME, 0) != 0) {
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1157
			auto_debug_print(AUTO_DBGLVL_INFO,
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1158
			    "nvlist allocation failed\n");
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1159
			goto error_ret;
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1160
		}
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1161
		status = configure_ips_addl_publisher_nv_list
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1162
		    (&transfer_attr[ita], rptr);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1163
		if (status != SUCCESS) {
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1164
			goto error_ret;
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1165
		}
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1166
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1167
		/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1168
		 * Setup mirrors (if any) for each additional publisher
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1169
		 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1170
		for (mptr = rptr->mirror_repo;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1171
		    mptr != NULL; mptr = mptr->next_mirror) {
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1172
			char    *publisher;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1173
			char    *mirror_url;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1174
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1175
			ita++;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1176
			publisher = rptr->publisher;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1177
			mirror_url = mptr->mirror_url;
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1178
			if (nvlist_alloc(&transfer_attr[ita],
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1179
			    NV_UNIQUE_NAME, 0) != 0) {
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1180
				auto_debug_print(AUTO_DBGLVL_INFO,
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1181
				    "nvlist allocation failed\n");
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1182
				return (-1);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1183
			}
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1184
			status = configure_ips_mirror_nv_list(
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1185
			    &transfer_attr[ita], publisher, mirror_url);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1186
			if (status != SUCCESS) {
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1187
				goto error_ret;
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1188
			}
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1189
		}
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1190
	}
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1191
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1192
	/*
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1193
	 * Get the list of packages and add it to the nv_list
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1194
	 */
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1195
	ita++;
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1196
	if (nvlist_alloc(&transfer_attr[ita], NV_UNIQUE_NAME, 0) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1197
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1198
		    "nvlist allocation failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1199
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1200
	}
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1201
	if (nvlist_add_uint32(transfer_attr[ita], TM_ATTR_MECHANISM,
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1202
	    TM_PERFORM_IPS) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1203
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1204
		    "Setting of TM_ATTR_MECHANISM failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1205
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1206
	}
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1207
	if (nvlist_add_uint32(transfer_attr[ita], TM_IPS_ACTION,
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1208
	    TM_IPS_RETRIEVE) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1209
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1210
		    "Setting of TMP_IPS_ACTION failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1211
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1212
	}
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1213
	if (nvlist_add_string(transfer_attr[ita], TM_IPS_INIT_MNTPT,
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1214
	    INSTALLED_ROOT_DIR) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1215
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1216
		    "Setting of TM_IPS_INIT_MNTPT failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1217
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1218
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1219
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1220
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1221
	 * list out the list of packages to be installed
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1222
	 * from the manifest and add it into a file
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1223
	 */
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1224
	if (create_package_list_file(B_FALSE, AI_PACKAGE_LIST_INSTALL,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1225
	    AUTO_INSTALL_PKG_LIST_FILE) != AUTO_INSTALL_SUCCESS) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1226
		auto_log_print(gettext("Failed to create a file with list "
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1227
		    "of packages to be installed\n"));
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1228
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1229
	}
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1230
	if (nvlist_add_string(transfer_attr[ita], TM_IPS_PKGS,
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1231
	    AUTO_INSTALL_PKG_LIST_FILE) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1232
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1233
		    "Setting of TM_IPS_PKGS failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1234
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1235
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1236
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1237
	/*
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1238
	 * if debug mode enabled, run 'pkg install' in verbose mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1239
	 */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1240
	if (is_debug_mode_enabled()) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1241
		if (nvlist_add_boolean_value(transfer_attr[ita],
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1242
		    TM_IPS_VERBOSE_MODE, B_TRUE) != 0) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1243
			auto_debug_print(AUTO_DBGLVL_ERR,
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1244
			    "Setting of TM_IPS_VERBOSE_MODE failed\n");
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1245
			goto error_ret;
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1246
		}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1247
	}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1248
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1249
	/*
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1250
	 * Since this operation is optional (list of packages
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1251
	 * to be removed might be empty), before we start to
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1252
	 * populate nv list with attributes, determine if there
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1253
	 * is anything to do.
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1254
	 */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1255
	ret = create_package_list_file(B_FALSE, AI_PACKAGE_LIST_REMOVE,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1256
	    AUTO_REMOVE_PKG_LIST_FILE);
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1257
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1258
	if (ret == AUTO_INSTALL_FAILURE) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1259
		auto_log_print(gettext("Failed to create a file with list "
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1260
		    "of packages to be removed\n"));
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1261
		goto error_ret;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1262
	} else if (ret == AUTO_INSTALL_EMPTY_LIST) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1263
		auto_log_print(gettext("No packages specified to be removed "
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1264
		    "from installed system\n"));
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1265
	} else {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1266
		/*
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1267
		 * allocate nv list
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1268
		 */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1269
		ita++;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1270
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1271
		if (nvlist_alloc(&transfer_attr[ita], NV_UNIQUE_NAME, 0) != 0) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1272
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1273
			    "nvlist allocation failed\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1274
			goto error_ret;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1275
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1276
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1277
		/* select IPS transfer mechanism */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1278
		if (nvlist_add_uint32(transfer_attr[ita], TM_ATTR_MECHANISM,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1279
		    TM_PERFORM_IPS) != 0) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1280
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1281
			    "Setting of TM_ATTR_MECHANISM failed\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1282
			goto error_ret;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1283
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1284
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1285
		/* specify 'uninstall' action */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1286
		if (nvlist_add_uint32(transfer_attr[ita], TM_IPS_ACTION,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1287
		    TM_IPS_UNINSTALL) != 0) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1288
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1289
			    "Setting of TMP_IPS_ACTION failed\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1290
			goto error_ret;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1291
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1292
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1293
		/*  set target mountpoint */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1294
		if (nvlist_add_string(transfer_attr[ita], TM_IPS_INIT_MNTPT,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1295
		    INSTALLED_ROOT_DIR) != 0) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1296
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1297
			    "Setting of TM_IPS_INIT_MNTPT failed\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1298
			goto error_ret;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1299
		}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1300
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1301
		/*  provide list of packages to be removed */
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1302
		if (nvlist_add_string(transfer_attr[ita], TM_IPS_PKGS,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1303
		    AUTO_REMOVE_PKG_LIST_FILE) != 0) {
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1304
			auto_debug_print(AUTO_DBGLVL_ERR,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1305
			    "Setting of TM_IPS_PKGS failed\n");
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1306
			goto error_ret;
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1307
		}
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1308
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1309
		/*
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1310
		 * if debug mode enabled, run 'pkg uninstall' in verbose mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1311
		 */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1312
		if (is_debug_mode_enabled()) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1313
			if (nvlist_add_boolean_value(transfer_attr[ita],
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1314
			    TM_IPS_VERBOSE_MODE, B_TRUE) != 0) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1315
				auto_debug_print(AUTO_DBGLVL_ERR,
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1316
				    "Setting of TM_IPS_VERBOSE_MODE failed\n");
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1317
				goto error_ret;
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1318
			}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1319
		}
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1320
	}
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1321
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1322
	if (nvlist_add_nvlist_array(install_attr, OM_ATTR_TRANSFER,
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1323
	    transfer_attr, ita + 1) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1324
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1325
		    "Setting of OM_ATTR_TRANSFER failed\n");
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1326
		goto error_ret;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1327
	}
789
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1328
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1329
	/* Add requested swap size */
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1330
	if (adsi.swap_size >= 0) {
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1331
		if (nvlist_add_int32(install_attr, OM_ATTR_SWAP_SIZE,
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1332
		    adsi.swap_size) != 0) {
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1333
			nvlist_free(install_attr);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1334
			auto_debug_print(AUTO_DBGLVL_INFO,
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1335
			    "Setting of OM_ATTR_SWAP_SIZE failed\n");
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1336
			return (AUTO_INSTALL_FAILURE);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1337
		}
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1338
	}
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1339
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1340
	/* Add requested dump device size */
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1341
	if (addi.dump_size >= 0) {
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1342
		if (nvlist_add_int32(install_attr, OM_ATTR_DUMP_SIZE,
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1343
		    addi.dump_size) != 0) {
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1344
			nvlist_free(install_attr);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1345
			auto_debug_print(AUTO_DBGLVL_INFO,
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1346
			    "Setting of OM_ATTR_DUMP_SIZE failed\n");
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1347
			return (AUTO_INSTALL_FAILURE);
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1348
		}
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1349
	}
282f473d34ee 10115 AI ignores desired swap listed in ai manifest
Matt Keenan <matt.keenan@sun.com>
parents: 698
diff changeset
  1350
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1351
	status = om_perform_install(install_attr, auto_update_progress);
449
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
  1352
	if (status == OM_FAILURE) { /* synchronous failure before threading */
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
  1353
		install_error = om_errno;
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
  1354
		install_failed = B_TRUE;
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
  1355
	}
30ec6432d941 6584 Automated Installer should allow creating non-Solaris partitions
William Schumann <william.schumann@sun.com>
parents: 447
diff changeset
  1356
	/* wait for thread to report final status */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1357
	while (!install_done && !install_failed)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1358
		sleep(10);
447
749da9554f27 backout 4629 Cannot set timezone in automated installation
William Schumann <william.schumann@sun.com>
parents: 446
diff changeset
  1359
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1360
	/*
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1361
	 * If the installation failed, report where or/and why the failure
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1362
	 * happened
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1363
	 */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1364
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1365
	if (install_failed) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1366
		/*
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1367
		 * Check if valid failure code was returned - if not, log only
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1368
		 * error code itself instead of descriptive strings
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1369
		 */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1370
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1371
		if (!om_is_valid_failure_code(install_error)) {
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1372
			auto_log_print(gettext("Automated Installation failed"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1373
			    " with unknown error code %d\n"), install_error);
633
e631367ff83d 12459 AI hangs if "Disk doesn't contain valid Solaris partition"
William Schumann <william.schumann@sun.com>
parents: 539
diff changeset
  1374
		} else {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1375
			char	*err_str;
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1376
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1377
			/* Where the failure happened */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1378
			if ((err_str =
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1379
			    om_get_failure_source(install_error)) != NULL)
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1380
				auto_log_print(gettext("Automated Installation"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1381
				    " failed in %s module\n"), err_str);
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1382
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1383
			/* Why the failure happened */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1384
			if ((err_str =
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1385
			    om_get_failure_reason(install_error)) != NULL)
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1386
				auto_log_print(gettext("%s\n"), err_str);
633
e631367ff83d 12459 AI hangs if "Disk doesn't contain valid Solaris partition"
William Schumann <william.schumann@sun.com>
parents: 539
diff changeset
  1387
		}
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1388
	} else {
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1389
		return_status = AUTO_INSTALL_SUCCESS;
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1390
	}
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1391
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1392
error_ret:	/* free all memory - may have jumped here upon error */
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1393
	if (proxy != NULL)
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1394
		free(proxy);
463
a5836655a011 7209 build of slim_install fails on Sparc due to undefined symbol
William Schumann <william.schumann@sun.com>
parents: 461
diff changeset
  1395
#ifndef	__sparc
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1396
	if (api != NULL)
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1397
		free(api);
463
a5836655a011 7209 build of slim_install fails on Sparc due to undefined symbol
William Schumann <william.schumann@sun.com>
parents: 461
diff changeset
  1398
#endif
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1399
	if (asi != NULL)
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1400
		free(asi);
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1401
	if (diskname != NULL)
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1402
		free(diskname);
664
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1403
	free_repo_info_list(default_ips_repo);
9a2107fc86ac 12659 AI only allows one "additional authority"
sundar.yamunachari@sun.com
parents: 660
diff changeset
  1404
	free_repo_info_list(addl_ips_repo);
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1405
	if (install_attr != NULL)
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1406
		nvlist_free(install_attr);
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1407
	if (transfer_attr != NULL) {
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1408
		int i;
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1409
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1410
		for (i = 0; i <= ita; i++)
460
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1411
			if (transfer_attr[i] != NULL)
22e95ec02b00 6610 AI does not recognize additional IPS repository
William Schumann <william.schumann@sun.com>
parents: 459
diff changeset
  1412
				nvlist_free(transfer_attr[i]);
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1413
		free(transfer_attr);
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1414
	}
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1415
	return (return_status);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1416
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1417
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1418
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1419
 * Install the target based on the specified diskname
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1420
 * or if no diskname is specified, install it based on
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1421
 * the criteria specified in ai.xml.
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1422
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1423
 * Returns
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1424
 *	AUTO_INSTALL_SUCCESS on a successful install
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1425
 *	AUTO_INSTALL_FAILURE on a failed install
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1426
 */
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1427
static int
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1428
auto_perform_install(char *diskname)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1429
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1430
	nvlist_t	*install_attr, *transfer_attr[2];
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1431
	int 		status;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1432
679
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1433
	/*
698
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1434
	 * No disk specified on command line
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1435
	 *  - perform installation based on manifest information instead
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1436
	 */
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1437
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1438
	if (*diskname == '\0')
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1439
		return (install_from_manifest());
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1440
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1441
	/*
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1442
	 * Install to disk specified on command line
9097fcc36b3f 13954 iSCSI boot parameters in AI manifest are ignored
William Schumann <william.schumann@sun.com>
parents: 695
diff changeset
  1443
	 *
679
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1444
	 * Initiate target discovery and wait until it is finished
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1445
	 */
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1446
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1447
	if (auto_target_discovery() != AUTO_TD_SUCCESS) {
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1448
		auto_log_print(gettext("Automated installation failed in "
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1449
		    "Target Discovery module\n"));
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1450
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1451
		auto_log_print(gettext("Please see previous messages for more "
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1452
		    "details\n"));
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1453
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1454
		return (AUTO_INSTALL_FAILURE);
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1455
	}
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1456
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1457
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1458
	 * We're installing on the specified diskname
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1459
	 * Since this is usually called from a test
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1460
	 * program, we hardcode the various system
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1461
	 * configuration parameters
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1462
	 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1463
679
2f04e6d1a235 5451 No way to permanently target specific disk in AI engine manifest
Jan Damborsky <jan.damborsky@sun.com>
parents: 667
diff changeset
  1464
	if (auto_select_install_target(&diskname, NULL) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1465
		auto_log_print(gettext("Error: Target disk name %s is "
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1466
		    "not valid\n"), diskname);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1467
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1468
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1469
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1470
	if (nvlist_alloc(&install_attr, NV_UNIQUE_NAME, 0) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1471
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1472
		    "nvlist allocation failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1473
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1474
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1475
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1476
	if (nvlist_add_uint8(install_attr, OM_ATTR_INSTALL_TYPE,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1477
	    OM_INITIAL_INSTALL) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1478
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1479
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1480
		    "Setting of OM_ATTR_INSTALL_TYPE failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1481
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1482
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1483
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1484
	if (nvlist_add_string(install_attr, OM_ATTR_DISK_NAME,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1485
	    diskname) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1486
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1487
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1488
		    "Setting of OM_ATTR_DISK_NAME failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1489
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1490
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1491
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1492
	if (nvlist_add_string(install_attr, OM_ATTR_ROOT_PASSWORD,
436
86bc65bc6cb6 4246 The user and root password are not encrypted in SC manifest
William Schumann <william.schumann@sun.com>
parents: 414
diff changeset
  1493
	    om_encrypt_passwd("opensolaris", "root")) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1494
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1495
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1496
		    "Setting of OM_ATTR_ROOT_PASSWORD failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1497
		return (AUTO_INSTALL_FAILURE);
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1498
	}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1499
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1500
	if (nvlist_add_string(install_attr, OM_ATTR_USER_NAME,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1501
	    "fool") != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1502
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1503
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1504
		    "Setting of OM_ATTR_USER_NAME failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1505
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1506
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1507
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1508
	if (nvlist_add_string(install_attr, OM_ATTR_USER_PASSWORD,
436
86bc65bc6cb6 4246 The user and root password are not encrypted in SC manifest
William Schumann <william.schumann@sun.com>
parents: 414
diff changeset
  1509
	    om_encrypt_passwd("ass", "fool")) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1510
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1511
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1512
		    "Setting of OM_ATTR_USER_PASSWORD failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1513
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1514
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1515
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1516
	if (nvlist_add_string(install_attr, OM_ATTR_LOGIN_NAME,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1517
	    "fool") != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1518
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1519
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1520
		    "Setting of OM_ATTR_LOGIN_NAME failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1521
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1522
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1523
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1524
	if (nvlist_add_string(install_attr, OM_ATTR_HOST_NAME,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1525
	    "opensolaris") != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1526
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1527
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1528
		    "Setting of OM_ATTR_HOST_NAME failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1529
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1530
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1531
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1532
	if (nvlist_add_string(install_attr, OM_ATTR_DEFAULT_LOCALE,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1533
	    "C") != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1534
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1535
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1536
		    "Setting of OM_ATTR_DEFAULT_LOCALE failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1537
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1538
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1539
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1540
	if (nvlist_alloc(&transfer_attr[0], NV_UNIQUE_NAME, 0) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1541
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1542
		    "nvlist allocation failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1543
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1544
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1545
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1546
	if (nvlist_add_uint32(transfer_attr[0], TM_ATTR_MECHANISM,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1547
	    TM_PERFORM_IPS) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1548
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1549
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1550
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1551
		    "Setting of TM_ATTR_MECHANISM failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1552
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1553
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1554
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1555
	if (nvlist_add_uint32(transfer_attr[0], TM_IPS_ACTION,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1556
	    TM_IPS_INIT) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1557
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1558
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1559
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1560
		    "Setting of TMP_IPS_ACTION failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1561
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1562
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1563
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1564
	if (nvlist_add_string(transfer_attr[0], TM_IPS_INIT_MNTPT,
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1565
	    INSTALLED_ROOT_DIR) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1566
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1567
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1568
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1569
		    "Setting of TM_IPS_INIT_MNTPT failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1570
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1571
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1572
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1573
	if (nvlist_add_string(transfer_attr[0], TM_IPS_PKG_URL,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1574
	    "http://ipkg.sfbay:10004") != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1575
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1576
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1577
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1578
		    "Setting of TM_IPS_PKG_URL failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1579
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1580
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1581
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1582
	if (nvlist_add_string(transfer_attr[0], TM_IPS_PKG_AUTH,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1583
	    "ipkg.sfbay") != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1584
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1585
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1586
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1587
		    "Setting of TM_IPS_PKG_AUTH failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1588
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1589
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1590
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1591
	if (nvlist_alloc(&transfer_attr[1], NV_UNIQUE_NAME, 0) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1592
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1593
		    "nvlist allocation failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1594
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1595
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1596
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1597
	if (nvlist_add_uint32(transfer_attr[1], TM_ATTR_MECHANISM,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1598
	    TM_PERFORM_IPS) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1599
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1600
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1601
		nvlist_free(transfer_attr[1]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1602
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1603
		    "Setting of TM_ATTR_MECHANISM failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1604
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1605
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1606
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1607
	if (nvlist_add_uint32(transfer_attr[1], TM_IPS_ACTION,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1608
	    TM_IPS_RETRIEVE) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1609
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1610
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1611
		nvlist_free(transfer_attr[1]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1612
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1613
		    "Setting of TMP_IPS_ACTION failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1614
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1615
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1616
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1617
	if (nvlist_add_string(transfer_attr[1], TM_IPS_INIT_MNTPT,
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1618
	    INSTALLED_ROOT_DIR) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1619
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1620
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1621
		nvlist_free(transfer_attr[1]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1622
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1623
		    "Setting of TM_IPS_INIT_MNTPT failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1624
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1625
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1626
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1627
	if (create_package_list_file(B_TRUE, AI_PACKAGE_LIST_INSTALL,
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1628
	    AUTO_INSTALL_PKG_LIST_FILE) != AUTO_INSTALL_SUCCESS) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1629
		auto_log_print(gettext("Failed to create a file with list "
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1630
		    "of packages to be installed\n"));
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1631
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1632
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1633
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1634
	if (nvlist_add_string(transfer_attr[1], TM_IPS_PKGS,
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1635
	    AUTO_INSTALL_PKG_LIST_FILE) != 0) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1636
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1637
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1638
		nvlist_free(transfer_attr[1]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1639
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1640
		    "Setting of TM_IPS_PKG_URL failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1641
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1642
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1643
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1644
	if (nvlist_add_nvlist_array(install_attr, OM_ATTR_TRANSFER,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1645
	    transfer_attr, 2) != 0) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1646
		nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1647
		nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1648
		nvlist_free(transfer_attr[1]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1649
		auto_debug_print(AUTO_DBGLVL_INFO,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1650
		    "Setting of OM_ATTR_TRANSFER failed\n");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1651
		return (AUTO_INSTALL_FAILURE);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1652
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1653
	status = om_perform_install(install_attr, auto_update_progress);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1654
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1655
	while (!install_done && !install_failed)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1656
		sleep(10);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1657
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1658
	nvlist_free(install_attr);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1659
	nvlist_free(transfer_attr[0]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1660
	nvlist_free(transfer_attr[1]);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1661
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1662
	if (install_failed || status != OM_SUCCESS)
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1663
		return (AUTO_INSTALL_FAILURE);
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1664
	else
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1665
		return (AUTO_INSTALL_SUCCESS);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1666
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1667
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1668
/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1669
 * Function:	auto_get_disk_name_from_slice
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1670
 * Description: Convert a conventional disk name into the internal canonical
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1671
 *		form. Remove the trailing index reference. The return status
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1672
 *		reflects whether or not the 'src' name is valid.
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1673
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1674
 *				src			 dst
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1675
 *			---------------------------------------
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1676
 *			[/dev/rdsk/]c0t0d0s0	->	c0t0d0
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1677
 *			[/dev/rdsk/]c0t0d0p0	->	c0t0d0
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1678
 *			[/dev/rdsk/]c0d0s0	->	c0d0
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1679
 *			[/dev/rdsk/]c0d0p0	->	c0d0
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1680
 *
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1681
 * Scope:	public
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1682
 * Parameters:	dst	- used to retrieve cannonical form of drive name
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1683
 *			  ("" if not valid)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1684
 *		src	- name of drive to be processed (see table above)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1685
 * Return:	 0	- valid disk name
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1686
 *		-1	- invalid disk name
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1687
 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1688
static void
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1689
auto_get_disk_name_from_slice(char *dst, char *src)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1690
{
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1691
	char		name[MAXPATHLEN];
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1692
	char		*cp;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1693
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1694
	*dst = '\0';
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1695
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1696
	(void) strcpy(name, src);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1697
	/*
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1698
	 * The slice could be like s2 or s10
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1699
	 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1700
	cp = name + strlen(name) - 3;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1701
	if (*cp) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1702
		if (*cp == 'p' || *cp == 's') {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1703
			*cp = '\0';
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1704
		} else {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1705
			cp++;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1706
			if (*cp == 'p' || *cp == 's') {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1707
				*cp = '\0';
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1708
			}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1709
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1710
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1711
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1712
	/* It could be full pathname like /dev/dsk/disk_name */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1713
	if ((cp = strrchr(name, '/')) != NULL) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1714
		cp++;
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1715
		(void) strcpy(dst, cp);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1716
	} else {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1717
		/* Just the disk name is provided, so return the name */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1718
		(void) strcpy(dst, name);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1719
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1720
}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1721
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1722
int
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1723
main(int argc, char **argv)
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1724
{
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1725
	int		opt;
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1726
	extern char 	*optarg;
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1727
	char		profile[MAXNAMELEN];
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1728
	char		diskname[MAXNAMELEN];
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1729
	char		slicename[MAXNAMELEN];
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1730
	int		num_du_pkgs_installed;
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1731
	boolean_t	auto_reboot_enabled = B_FALSE;
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1732
	nvlist_t	*ls_init_attr = NULL;
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1733
	boolean_t	auto_install_failed = B_FALSE;
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1734
	int		retries;
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1735
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1736
	(void) setlocale(LC_ALL, "");
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1737
	(void) textdomain(TEXT_DOMAIN);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1738
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1739
	profile[0] = '\0';
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1740
	slicename[0] = '\0';
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1741
	while ((opt = getopt(argc, argv, "vd:Iip:")) != -1) {
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1742
		switch (opt) {
459
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1743
		case 'd': /* target disk name for testing only */
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1744
			(void) strlcpy(slicename, optarg, sizeof (slicename));
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1745
			break;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1746
		case 'I': /* break after Target Instantiation for testing */
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1747
			om_set_breakpoint(OM_breakpoint_after_TI);
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1748
			break;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1749
		case 'i': /* break before Target Instantiation for testing */
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1750
			om_set_breakpoint(OM_breakpoint_before_TI);
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1751
			break;
56b6b042a167 5653 AI manifest should offer keyword to use max available space for partition/slice
William Schumann <william.schumann@sun.com>
parents: 457
diff changeset
  1752
		case 'p': /* profile is provided */
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1753
			(void) strlcpy(profile, optarg, sizeof (profile));
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1754
			break;
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1755
		case 'v': /* debug verbose mode enabled */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1756
			enable_debug_mode(B_TRUE);
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1757
			break;
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1758
		default:
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1759
			usage();
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1760
			exit(AI_EXIT_FAILURE);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1761
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1762
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1763
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1764
	if (profile[0] == '\0' && slicename[0] == '\0') {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1765
		usage();
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1766
		exit(AI_EXIT_FAILURE);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1767
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1768
514
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1769
	/*
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1770
	 * initialize logging service - increase verbosity level
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1771
	 * if installer was invoked in debug mode
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1772
	 * print error messages to stderr, since we don't have
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1773
	 * logging service available at this point
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1774
	 */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1775
	if (is_debug_mode_enabled()) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1776
		if (nvlist_alloc(&ls_init_attr, NV_UNIQUE_NAME, 0) != 0) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1777
			(void) fprintf(stderr,
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1778
			    "nvlist allocation failed for ls_init_attrs\n");
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1779
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1780
			exit(AI_EXIT_FAILURE);
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1781
		}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1782
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1783
		if (nvlist_add_int16(ls_init_attr, LS_ATTR_DBG_LVL,
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1784
		    LS_DBGLVL_INFO) != 0) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1785
			(void) fprintf(stderr,
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1786
			    "Setting LS_ATTR_DBG_LVL failed\n");
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1787
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1788
			nvlist_free(ls_init_attr);
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1789
			exit(AI_EXIT_FAILURE);
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1790
		}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1791
	}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1792
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1793
	if (ls_init(ls_init_attr) != LS_E_SUCCESS) {
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1794
		(void) fprintf(stderr,
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1795
		    "Couldn't initialize logging service\n");
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1796
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1797
		nvlist_free(ls_init_attr);
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1798
		exit(AI_EXIT_FAILURE);
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1799
	}
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1800
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1801
	/* release nvlist, since it is no longer needed */
517a34f61a54 4443 Automated Installer needs support for better observability
Jan Damborsky <jan.damborsky@sun.com>
parents: 503
diff changeset
  1802
	nvlist_free(ls_init_attr);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1803
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1804
	if (profile[0] != '\0') {
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1805
		char	*ai_auto_reboot;
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1806
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1807
		/*
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1808
		 * We are passed in an AI manifest with an embedded
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1809
		 * SC manifest, both in DTD format. We want to
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1810
		 * separate them.
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1811
		 */
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1812
		if (auto_split_manifests(profile, AI_MANIFEST_FILE,
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1813
		    SC_MANIFEST_FILE) != AUTO_VALID_MANIFEST) {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1814
			auto_log_print(gettext("Auto install failed. Invalid "
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1815
			    "manifest file %s specified\n"), profile);
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1816
			exit(AI_EXIT_FAILURE_AIM);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1817
		}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1818
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1819
		/*
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1820
		 * Validate the AI manifest. If it validates, set
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1821
		 * it up in an in-memory tree so searches can be
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1822
		 * done on it in the future to retrieve the values
315
78d36732cf38 4030 auto-install should select a default target if a user defined target is
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents: 311
diff changeset
  1823
		 */
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1824
		if (ai_create_manifest_image(AI_MANIFEST_FILE) ==
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1825
		    AUTO_VALID_MANIFEST) {
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1826
			auto_log_print(gettext("%s manifest created\n"),
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1827
			    profile);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1828
		} else {
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1829
			auto_log_print(gettext("Auto install failed. Error "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1830
			    "creating manifest %s\n"), profile);
495
a0961490f883 7415 'slim_install' is left on system when Automated Installer is used for the installation
Jan Damborsky <jan.damborsky@sun.com>
parents: 477
diff changeset
  1831
			exit(AI_EXIT_FAILURE_AIM);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1832
		}
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1833
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1834
		if (ai_setup_manifest_image() == AUTO_VALID_MANIFEST) {
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1835
			auto_log_print(gettext(
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1836
			    "%s manifest setup and validated\n"), profile);
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1837
		} else {
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1838
			char *setup_err = gettext("Auto install failed. Error "
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1839
			    "setting up and validating manifest %s\n");
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1840
			auto_log_print(setup_err, profile);
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1841
			(void) fprintf(stderr, setup_err, profile);
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1842
			exit(AI_EXIT_FAILURE_AIM);
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1843
		}
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1844
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1845
		/*
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1846
		 * Install any drivers required for installation, in the
862
e9f31f2f2f2d 16423 Updates to AI schema should be made
Sue Sohn <Susan.Sohn@Oracle.COM>
parents: 846
diff changeset
  1847
		 * booted environment.
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1848
		 */
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1849
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1850
		/*
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1851
		 * First boolean: do not honor noinstall flag.
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1852
		 * Second boolean: do not update the boot archive.
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1853
		 */
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1854
		num_du_pkgs_installed =
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1855
		    ai_du_get_and_install("/", B_FALSE, B_FALSE);
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1856
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1857
		/*
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1858
		 * Note: Print no messages if num_du_pkgs_installed = 0
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1859
		 * This means no packages and no errors, or no-op.
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1860
		 */
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1861
		if (num_du_pkgs_installed > 0) {
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1862
			auto_log_print(gettext("All additional "
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1863
			    "driver packages successfully installed "
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1864
			    "to booted installation environment.\n"));
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1865
		} else if (num_du_pkgs_installed < 0) {
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1866
			char *du_warning = gettext("Warning: some additional "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1867
			    "driver packages could not be installed\n"
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1868
			    "  to booted installation environment.\n"
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1869
			    "  These drivers may or may not be required for "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1870
			    "the installation to proceed.\n"
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1871
			    "  Will continue anyway...\n");
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1872
			auto_log_print(du_warning);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1873
			(void) fprintf(stderr, du_warning);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1874
		}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1875
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1876
		diskname[0] = '\0';
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1877
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1878
		/*
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1879
		 * Since valid manifest was provided, check if automated reboot
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1880
		 * feature is enabled.
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1881
		 */
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1882
471
5a23ff9e7f8c 7219 Automated Installer reports slice customization in manifest where none exist
William Schumann <william.schumann@sun.com>
parents: 464
diff changeset
  1883
		ai_auto_reboot = ai_get_manifest_element_value(AIM_AUTO_REBOOT);
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1884
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1885
		if (ai_auto_reboot != NULL) {
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1886
			if (strcasecmp(ai_auto_reboot, "true") == 0) {
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1887
				auto_log_print(
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1888
				    gettext("Auto reboot enabled\n"));
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1889
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1890
				auto_reboot_enabled = B_TRUE;
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1891
			} else {
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1892
				auto_log_print(
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1893
				    gettext("Auto reboot disabled\n"));
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1894
			}
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1895
		}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1896
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1897
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1898
	if (slicename[0] != '\0') {
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1899
		auto_get_disk_name_from_slice(diskname, slicename);
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1900
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1901
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1902
	if (auto_perform_install(diskname) != AUTO_INSTALL_SUCCESS) {
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1903
		(void) fprintf(stderr, "Automated Installation failed\n");
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1904
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1905
		auto_install_failed = B_TRUE;
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1906
	} else {
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1907
		/*
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1908
		 * Install additional drivers on target.
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1909
		 * First boolean: honor noinstall flag.
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1910
		 * Second boolean: update boot archive.
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1911
		 */
869
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1912
		num_du_pkgs_installed =
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1913
		    ai_du_install(INSTALLED_ROOT_DIR, B_TRUE, B_TRUE);
424db5e50fb5 GK: Backed out changeset cfbbedf29419 for build 147
Keith Mitchell <keith.mitchell@oracle.com>
parents: 867
diff changeset
  1914
		if (num_du_pkgs_installed < 0) {
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1915
			char *tgt_inst_err = gettext("Basic installation was "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1916
			    "successful.  However, there was an error\n");
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1917
			auto_log_print(tgt_inst_err, profile);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1918
			(void) fprintf(stderr, tgt_inst_err);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1919
			tgt_inst_err = gettext("installing at least one "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1920
			    "additional driver package on target.\n");
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1921
			auto_log_print(tgt_inst_err, profile);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1922
			(void) fprintf(stderr, tgt_inst_err);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1923
			tgt_inst_err = gettext("Please verify that all driver "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1924
			    "packages required for reboot are installed "
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1925
			    "before rebooting.\n");
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1926
			auto_log_print(tgt_inst_err, profile);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1927
			(void) fprintf(stderr, tgt_inst_err);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1928
			auto_install_failed = B_TRUE;
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1929
		}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1930
	}
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1931
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1932
	if (! auto_install_failed) {
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1933
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1934
		if (auto_reboot_enabled) {
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1935
			printf(gettext("Automated Installation succeeded."
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1936
			    " System will be rebooted now\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1937
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1938
			auto_log_print(gettext("Automated Installation"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1939
			    " succeeded. System will be rebooted now\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1940
		} else {
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1941
			printf(gettext("Automated Installation succeeded. You"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1942
			    " may wish to reboot the system at this time\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1943
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1944
			auto_log_print(gettext("Automated Installation"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1945
			    " succeeded. You may wish to reboot the system"
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1946
			    " at this time\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1947
		}
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1948
	}
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1949
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1950
	(void) ai_teardown_manifest_state();
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1951
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1952
	/*
834
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1953
	 * Transfer /tmp/install_log file now that it is complete.
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1954
	 * Subsequent messages are not captured in copy of log file
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1955
	 * tranfered to destination.
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1956
	 */
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1957
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1958
	if (access(INSTALLED_ROOT_DIR, F_OK) == 0) {
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1959
		if (ls_transfer("/", INSTALLED_ROOT_DIR) != LS_E_SUCCESS) {
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1960
			auto_log_print(gettext(
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1961
			    "Could not transfer log file to the target\n"));
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1962
		}
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1963
	}
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1964
ebc61df501b2 16088 DDU AI install did not copy install_log to system if DDU install fails.
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 822
diff changeset
  1965
	/*
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1966
	 * If the installation failed, abort now and let the user inspect
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1967
	 * the system
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1968
	 */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1969
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1970
	if (auto_install_failed)
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1971
		exit(AI_EXIT_FAILURE);
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1972
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1973
	/*
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1974
	 * Unmount installed boot environment
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1975
	 */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1976
	if (om_unmount_target_be() != OM_SUCCESS) {
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1977
		auto_log_print(gettext(
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1978
		    "Could not unmount target boot environment.\n"));
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1979
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1980
		auto_install_failed = B_TRUE;
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1981
	}
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1982
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1983
	/*
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1984
	 * Exit with return codes reflecting the result of the installation:
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1985
	 *  AI_EXIT_SUCCESS - installation succeeded, don't reboot automatically
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1986
	 *  AI_EXIT_AUTO_REBOOT - installation succeeded, reboot automatically
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1987
	 */
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1988
822
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1989
	if (auto_install_failed)
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1990
		exit(AI_EXIT_FAILURE);
2ba2b98f055e 10129 Blocker bug for Driver Update project
Jack Schwartz <Jack.A.Schwartz@Sun.COM>
parents: 810
diff changeset
  1991
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1992
	if (auto_reboot_enabled)
461
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1993
		exit(AI_EXIT_AUTO_REBOOT);
c51e3b699738 6556 AI should provide an option for automatic reboot after an install
Jan Damborsky <jan.damborsky@sun.com>
parents: 460
diff changeset
  1994
635
74823d433dc4 6651 autoinstall needs more useful error messages from Orchestrator module
Jan Damborsky <jan.damborsky@sun.com>
parents: 633
diff changeset
  1995
	exit(AI_EXIT_SUCCESS);
272
6ffbbcf6242a 3611 liborchestrator needs to be enhanced to support IPS based installs
Alok Aggarwal <Alok.Aggarwal@Sun.COM>
parents:
diff changeset
  1996
}