42 #define AI_EXIT_SUCCESS 0 /* success - control passed to user */ |
42 #define AI_EXIT_SUCCESS 0 /* success - control passed to user */ |
43 #define AI_EXIT_AUTO_REBOOT 64 /* success - auto reboot enabled */ |
43 #define AI_EXIT_AUTO_REBOOT 64 /* success - auto reboot enabled */ |
44 #define AI_EXIT_FAILURE 1 /* general failure */ |
44 #define AI_EXIT_FAILURE 1 /* general failure */ |
45 #define AI_EXIT_FAILURE_AIM 2 /* failure-invalid manifest provided */ |
45 #define AI_EXIT_FAILURE_AIM 2 /* failure-invalid manifest provided */ |
46 |
46 |
47 #define AUTO_INSTALL_SUCCESS 0 |
47 #define AUTO_INSTALL_SUCCESS 0 |
48 #define AUTO_INSTALL_EMPTY_LIST 1 /* list of packages is empty */ |
48 #define AUTO_INSTALL_EMPTY_LIST 1 /* list of packages is empty */ |
49 #define AUTO_INSTALL_PKG_NOT_FND 2 |
49 #define AUTO_INSTALL_FAILURE -1 |
50 #define AUTO_INSTALL_FAILURE -1 |
50 #define AUTO_TD_SUCCESS 0 |
51 #define AUTO_TD_SUCCESS 0 |
51 #define AUTO_TD_FAILURE -1 |
52 #define AUTO_TD_FAILURE -1 |
|
53 |
52 |
54 #define INSTALLED_ROOT_DIR "/a" |
53 #define INSTALLED_ROOT_DIR "/a" |
55 #define AUTO_UNKNOWN_STRING "unknown" |
54 #define AUTO_UNKNOWN_STRING "unknown" |
56 #define AUTO_DBGLVL_INFO LS_DBGLVL_INFO |
55 #define AUTO_DBGLVL_INFO LS_DBGLVL_INFO |
57 #define AUTO_DBGLVL_WARN LS_DBGLVL_WARN |
56 #define AUTO_DBGLVL_WARN LS_DBGLVL_WARN |
97 ((units) == AI_SIZE_UNITS_GIGABYTES ? "gigabytes": \ |
96 ((units) == AI_SIZE_UNITS_GIGABYTES ? "gigabytes": \ |
98 ((units) == AI_SIZE_UNITS_TERABYTES ? "terabytes": \ |
97 ((units) == AI_SIZE_UNITS_TERABYTES ? "terabytes": \ |
99 ((units) == AI_SIZE_UNITS_SECTORS ? "sectors": \ |
98 ((units) == AI_SIZE_UNITS_SECTORS ? "sectors": \ |
100 "(unknown)")))) |
99 "(unknown)")))) |
101 |
100 |
102 #define MB_TO_SECTORS ((uint64_t)2048) |
101 #define MB_TO_SECTORS ((uint64_t)2048) |
103 #define GB_TO_MB ((uint64_t)1024) |
102 #define GB_TO_MB ((uint64_t)1024) |
104 #define TB_TO_GB ((uint64_t)1024) |
103 #define TB_TO_GB ((uint64_t)1024) |
105 |
104 |
106 |
105 |
107 /* |
106 /* |
108 * DTD schema nodepaths - see ai.dtd |
107 * DTD schema nodepaths - see ai.dtd |
109 */ |
108 */ |
110 #define AIM_TARGET_DISK_KEYWORD "auto_install/ai_instance/" \ |
109 #define AIM_TARGET_DISK_KEYWORD "auto_install/ai_instance/target/target_device/disk/disk_keyword/key" |
111 "target/target_device/disk/disk_keyword/key" |
110 #define AIM_TARGET_DEVICE_NAME "auto_install/ai_instance/target/target_device/disk/disk_name[name_type='ctd']/name" |
112 #define AIM_TARGET_DEVICE_NAME "auto_install/ai_instance/" \ |
|
113 "target/target_device/disk/disk_name[name_type='ctd']/name" |
|
114 #define AIM_TARGET_DEVICE_BOOT_DISK "boot_disk" |
111 #define AIM_TARGET_DEVICE_BOOT_DISK "boot_disk" |
115 #define AIM_TARGET_DEVICE_SELECT_VOLUME_NAME \ |
112 #define AIM_TARGET_DEVICE_SELECT_VOLUME_NAME \ |
116 "auto_install/ai_instance/target/target_device/" \ |
113 "auto_install/ai_instance/target/target_device/disk/disk_name[name_type='volid']/name" |
117 "disk/disk_name[name_type='volid']/name" |
|
118 #define AIM_TARGET_DEVICE_SELECT_DEVICE_ID \ |
114 #define AIM_TARGET_DEVICE_SELECT_DEVICE_ID \ |
119 "auto_install/ai_instance/target/target_device/" \ |
115 "auto_install/ai_instance/target/target_device/disk/disk_name[name_type='devid']/name" |
120 "disk/disk_name[name_type='devid']/name" |
|
121 #define AIM_TARGET_DEVICE_SELECT_DEVICE_PATH \ |
116 #define AIM_TARGET_DEVICE_SELECT_DEVICE_PATH \ |
122 "auto_install/ai_instance/target/target_device/" \ |
117 "auto_install/ai_instance/target/target_device/disk/disk_name[name_type='devpath']/name" |
123 "disk/disk_name[name_type='devpath']/name" |
118 #define AIM_TARGET_DEVICE_TYPE "auto_install/ai_instance/target/target_device/disk/disk_prop/dev_type" |
124 #define AIM_TARGET_DEVICE_TYPE "auto_install/ai_instance/" \ |
|
125 "target/target_device/disk/disk_prop/dev_type" |
|
126 #define AIM_TARGET_DEVICE_SIZE \ |
119 #define AIM_TARGET_DEVICE_SIZE \ |
127 "auto_install/ai_instance/target/target_device/" \ |
120 "auto_install/ai_instance/target/target_device/disk/disk_prop/dev_size" |
128 "disk/disk_prop/dev_size" |
121 #define AIM_TARGET_DEVICE_VENDOR \ |
129 #define AIM_TARGET_DEVICE_VENDOR "auto_install/ai_instance/target/" \ |
122 "auto_install/ai_instance/target/target_device/disk/disk_prop/dev_vendor" |
130 "target_device/disk/disk_prop/dev_vendor" |
|
131 #define AIM_TARGET_DEVICE_USE_SOLARIS_PARTITION \ |
123 #define AIM_TARGET_DEVICE_USE_SOLARIS_PARTITION \ |
132 "auto_install/ai_instance/target/target_device/disk/" \ |
124 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/action" |
133 "partition[action='use_existing']/action" |
|
134 #define AIM_TARGET_DEVICE_INSTALL_SLICE_NUMBER \ |
125 #define AIM_TARGET_DEVICE_INSTALL_SLICE_NUMBER \ |
135 "auto_install/ai_instance/target/target_device/disk/" \ |
126 "auto_install/ai_instance/target/target_device/disk/slice[is_root='true']/name" |
136 "slice[is_root='true']/name" |
|
137 #define AIM_TARGET_DEVICE_ISCSI_TARGET_NAME \ |
127 #define AIM_TARGET_DEVICE_ISCSI_TARGET_NAME \ |
138 "auto_install/ai_instance/target/target_device/disk/iscsi/name" |
128 "auto_install/ai_instance/target/target_device/disk/iscsi/name" |
139 #define AIM_TARGET_DEVICE_ISCSI_TARGET_IP \ |
129 #define AIM_TARGET_DEVICE_ISCSI_TARGET_IP \ |
140 "auto_install/ai_instance/target/target_device/disk/iscsi/ip" |
130 "auto_install/ai_instance/target/target_device/disk/iscsi/ip" |
141 #define AIM_TARGET_DEVICE_ISCSI_TARGET_LUN \ |
131 #define AIM_TARGET_DEVICE_ISCSI_TARGET_LUN \ |
152 #define AIM_PARTITION_ACTIONS \ |
142 #define AIM_PARTITION_ACTIONS \ |
153 "auto_install/ai_instance/target/target_device/disk/partition/action" |
143 "auto_install/ai_instance/target/target_device/disk/partition/action" |
154 #define AIM_NUMBERED_PARTITIONS \ |
144 #define AIM_NUMBERED_PARTITIONS \ |
155 "auto_install/ai_instance/target/target_device/disk/partition/name" |
145 "auto_install/ai_instance/target/target_device/disk/partition/name" |
156 #define AIM_NUMBERED_PARTITION_NUMBER \ |
146 #define AIM_NUMBERED_PARTITION_NUMBER \ |
157 "auto_install/ai_instance/target/target_device/disk/" \ |
147 "auto_install/ai_instance/target/target_device/disk/partition[name=\"%s\":action=\"%s\"]/name" |
158 "partition[name=\"%s\":action=\"%s\"]/name" |
|
159 #define AIM_NUMBERED_PARTITION_ACTION \ |
148 #define AIM_NUMBERED_PARTITION_ACTION \ |
160 "auto_install/ai_instance/target/target_device/disk/" \ |
149 "auto_install/ai_instance/target/target_device/disk/partition[name=\"%s\":action=\"%s\"]/action" |
161 "partition[name=\"%s\":action=\"%s\"]/action" |
|
162 #define AIM_NUMBERED_PARTITION_START_SECTOR \ |
150 #define AIM_NUMBERED_PARTITION_START_SECTOR \ |
163 "auto_install/ai_instance/target/target_device/disk/" \ |
151 "auto_install/ai_instance/target/target_device/disk/partition[name=\"%s\":action=\"%s\"]/size/start_sector" |
164 "partition[name=\"%s\":action=\"%s\"]/size/start_sector" |
|
165 #define AIM_NUMBERED_PARTITION_SIZE \ |
152 #define AIM_NUMBERED_PARTITION_SIZE \ |
166 "auto_install/ai_instance/target/target_device/disk/" \ |
153 "auto_install/ai_instance/target/target_device/disk/partition[name=\"%s\":action=\"%s\"]/size/val" |
167 "partition[name=\"%s\":action=\"%s\"]/size/val" |
|
168 #define AIM_NUMBERED_PARTITION_TYPE \ |
154 #define AIM_NUMBERED_PARTITION_TYPE \ |
169 "auto_install/ai_instance/target/target_device/disk/" \ |
155 "auto_install/ai_instance/target/target_device/disk/partition[name=\"%s\":action=\"%s\"]/part_type" |
170 "partition[name=\"%s\":action=\"%s\"]/part_type" |
|
171 |
156 |
172 #define AIM_USE_EXISTING_PARTITIONS \ |
157 #define AIM_USE_EXISTING_PARTITIONS \ |
173 "auto_install/ai_instance/target/target_device/disk/" \ |
158 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/action" |
174 "partition[action='use_existing']/action" |
|
175 #define AIM_UNNUMBERED_PARTITION_NUMBER \ |
159 #define AIM_UNNUMBERED_PARTITION_NUMBER \ |
176 "auto_install/ai_instance/target/target_device/disk/" \ |
160 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/name" |
177 "partition[action='use_existing']/name" |
|
178 #define AIM_UNNUMBERED_PARTITION_ACTION \ |
161 #define AIM_UNNUMBERED_PARTITION_ACTION \ |
179 "auto_install/ai_instance/target/target_device/disk/" \ |
162 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/action" |
180 "partition[action='use_existing']/action" |
|
181 #define AIM_UNNUMBERED_PARTITION_START_SECTOR \ |
163 #define AIM_UNNUMBERED_PARTITION_START_SECTOR \ |
182 "auto_install/ai_instance/target/target_device/disk/" \ |
164 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/size/start_sector" |
183 "partition[action='use_existing']/size/start_sector" |
|
184 #define AIM_UNNUMBERED_PARTITION_SIZE \ |
165 #define AIM_UNNUMBERED_PARTITION_SIZE \ |
185 "auto_install/ai_instance/target/target_device/disk/" \ |
166 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/size/val" |
186 "partition[action='use_existing']/size/val" |
|
187 #define AIM_UNNUMBERED_PARTITION_TYPE \ |
167 #define AIM_UNNUMBERED_PARTITION_TYPE \ |
188 "auto_install/ai_instance/target/target_device/disk/" \ |
168 "auto_install/ai_instance/target/target_device/disk/partition[action='use_existing']/part_type" |
189 "partition[action='use_existing']/part_type" |
169 |
190 |
170 #define AIM_SLICE_NUMBER "auto_install/ai_instance/target/target_device/disk/slice/name" |
191 #define AIM_SLICE_NUMBER "auto_install/ai_instance/target/" \ |
171 #define AIM_SLICE_ACTION "auto_install/ai_instance/target/target_device/disk/slice/action" |
192 "target_device/disk/slice/name" |
172 #define AIM_SLICE_SIZE "auto_install/ai_instance/target/target_device/disk/slice[name=\"%s\":action=\"%s\"]/size/val" |
193 #define AIM_SLICE_ACTION "auto_install/ai_instance/target/" \ |
173 #define AIM_SLICE_ON_EXISTING \ |
194 "target_device/disk/slice/action" |
174 "auto_install/ai_instance/target/target_device/disk/slice[name=\"%s\":action=\"%s\"]/force" |
195 #define AIM_SLICE_SIZE "auto_install/ai_instance/target/" \ |
|
196 "target_device/disk/slice[name=\"%s\":action=\"%s\"]/size/val" |
|
197 #define AIM_SLICE_ON_EXISTING "auto_install/ai_instance/target/" \ |
|
198 "target_device/disk/slice[name=\"%s\":action=\"%s\"]/force" |
|
199 #define AIM_AUTO_REBOOT "auto_install/ai_instance/auto_reboot" |
175 #define AIM_AUTO_REBOOT "auto_install/ai_instance/auto_reboot" |
200 |
176 |
201 #define AIM_PROXY_URL "auto_install/ai_instance/http_proxy" |
177 #define AIM_PROXY_URL "auto_install/ai_instance/http_proxy" |
202 |
178 |
203 #define AIM_PACKAGE_INSTALL_NAME "auto_install/ai_instance/software/" \ |
179 #define AIM_PACKAGE_INSTALL_NAME "auto_install/ai_instance/software/software_data[action='install']/name" |
204 "software_data[action='install']/name" |
180 |
205 |
181 #define AIM_PACKAGE_REMOVE_NAME "auto_install/ai_instance/software/software_data[action='uninstall']/name" |
206 #define AIM_PACKAGE_REMOVE_NAME "auto_install/ai_instance/software/" \ |
|
207 "software_data[action='uninstall']/name" |
|
208 |
182 |
209 /* |
183 /* |
210 * Primary and secondary publishers |
184 * Primary and secondary publishers |
211 */ |
185 */ |
212 #define AIM_IPS_PUBLISHER_URL \ |
186 #define AIM_IPS_PUBLISHER_URL \ |
367 void ai_destroy_manifestserv(PyObject *server_obj); |
341 void ai_destroy_manifestserv(PyObject *server_obj); |
368 char **ai_lookup_manifest_values(PyObject *server_obj, char *path, int *len); |
342 char **ai_lookup_manifest_values(PyObject *server_obj, char *path, int *len); |
369 void ai_free_manifest_value_list(char **value_list); |
343 void ai_free_manifest_value_list(char **value_list); |
370 |
344 |
371 int ai_du_get_and_install(char *install_root, boolean_t honor_noinstall, |
345 int ai_du_get_and_install(char *install_root, boolean_t honor_noinstall, |
372 boolean_t update_boot_archive, int *num_installed_pkgs_p); |
346 boolean_t update_boot_archive); |
373 int ai_du_install(char *install_root, boolean_t honor_noinstall, |
347 int ai_du_install(char *install_root, boolean_t honor_noinstall, |
374 boolean_t update_boot_archive, int *num_installed_pkgs_p); |
348 boolean_t update_boot_archive); |
375 |
349 |
376 int mount_iscsi_target_if_requested(auto_disk_info *, char *, int); |
350 int mount_iscsi_target_if_requested(auto_disk_info *, char *, int); |
377 |
351 |
378 #ifdef __cplusplus |
352 #ifdef __cplusplus |
379 } |
353 } |