Creation of workflow
Hi All,
i am new to this tool
can u please provide the link how to create work flows in oracle warehouse builder
Reg,
jell
You cannot create workflows using Oracle Warehouse Builder - you need Oracle Workflow Builder.
Pl use the search feature to find previous such discussions
http://forums.oracle.com/forums/search.jspa?threadID=&q=workflow+AND+builder&objID=c3&dateRange=all&userID=&numResults=15
HTH
Srini
Similar Messages
-
Customer Creation Approval Workflow
Hi Folks - Does R12 has a Customer creation approval workflow ? If not ,Can we create a custom workflow and hook it to Customer screen?
Any Ideas?
Thanks.SanDan wrote:
Hi Folks - Does R12 has a Customer creation approval workflow ? Please see (How Can We Have Customer Creation Approval Workflow [ID 883262.1]).
If not ,Can we create a custom workflow and hook it to Customer screen?
Any Ideas?Yes you can create a custom workflow.
Thanks,
Hussein -
Hello,
I'm trying to create sales order automatically using event triggered by user status changes. I need no user participation in this process. Can i use workflow for this purpose? As i see from documentation' examples user activity is needed...Do i understand correctly?
Please advise.
Thanks in advance!I still want to point out that you don't necessarily need a workflow. Maybe you could call the BAPI for creating the sales order at the same point when you change user status in this quotation (I don't know really what you mean by this, and how you do this). Maybe the workflow solution is the correct one, but it isn't always the case. You are in workflow forum and people are enthusiastic about using it for everything (including myself ;). But let's say you wanted to have a control about the sales order creation already in the user status change - for example if the sales order couldn't be created, you would like to issue an error message for the user doing the status change - in this kind of case the WF solution would not probably be the best one, because the workflow will execute the BAPI in the background.
But I am sure you will find the best solution for your requirement.
Regards,
Karri -
Creation of Workflow related to Invoice Posting
Hello,
I need to create a Workflow which gets triggered whenever an Invoice is posted and should be sending a mail to a specific agent two days before the clearing date, intimating him that the clearing date is nearing.
I have used the Event IncomingInvoice.Posted to trigger the Workflow, but I am confused as to how to send a mail two days prior to Clearing date. I thought I would create a Condition in which I will be using Posting date and Clearing Date and check when Posting date will be two days less than Clearing Date and send a mail. But I dont understand how exactly to write that.
Can someone Please give their suggestion as to what can be done or if it is even possible. Will be very grateful to you. Would REWARD heavily.
Thanks in Advance.
Edited by: Dagny on Jul 23, 2008 2:36 PM
Edited by: Dagny on Jul 23, 2008 2:38 PMHi,
There is already some of tables which keeps record of the t-codes executed by the user
by giving the login id you can fetch all the data, currently I don't remamber the table name but there is table, this will solve your problem.
Regards
Bikas -
Vendor Master Creation / Change workflow
How can we have facility of vendor master workflow. After the vendor master gets created, unless there is an approval, no transactions to be posted. How it can be achieved . Pl. send some details
thanks
amitPl. refer
Re: Vendor Master Workflow
It may help you. -
Material Creation using Workflow
This is my scenario .
Initially when a new Material created it will have only the Basic 1 & 2 views alone .
At the same time a workflow have to be triggered such that it have to send to a workitem to person who should define the MRP views only not other views of the material after it is finished another workitem to another person to define the account assignment views only not other views .Kindly help to proceed.
- David Boon.Hi Martina,
If you have done that then you are almost on the verge of completion!
Follow this binding procedure between the task container and the method container and get the results.
In the BO method, add an output parameter that would store the plant detail.
Now create a data element in the method code of the same type as plant detail type.
Then use swc_set_element to store the value of the plant detail in the output parameter.
In the workflow task, create an output parameter of the same type as the BO method output parameter.
In the binding between the task container and the method container fetch the value of plant details from method container to task container element.
Now pass this parameter to the workflow container and use in the send mail step in the mail text.
Make sure to save and generate the BO after doing all the changes.
Regards,
Saumya -
Article Creation Using workflow
Hi Experts,
i am new to workflow.
i have a requirement to Create a Article using workflow. i am using BO BUS1001006. and my requirement is to fill the data in mm01 with different agents.
Now my main problem is now how can we give a user only BASIC DATA screen of MM01 and 2nd user only MRP data screen and 3rd so on.... i.e BASIC DATA input guy should not have access to MRP and vice versa..hope u understood.
How to Achieve this requirement. can you please explain.You might want to talk to the MM and/or authorization guys - they should know this stuff. This is hardly a workflow issue (at least at this point). Do few searches here in SCN with key words "material master", "screen sequences", "authorization roles" or "restrict material master views" etc. and that should bring you to the right direction.
Kind regards,
Karri -
Bussiness Object creation for workflow
Hi Experts,
I am new in workflow and want to make the workflow for addition of two numbers.
Please can anyone guide me the steps which i have to follow.
I want to make my own BO , But there several options like supertype,object type ..etc.
Please explain the BO and other steps to follow .
Rgds,
PremrajHi,
U want to add two no. using BO.
For this u have to create 'z' Object .
Inside that create 'z'Method.
Now after that u can write ur functionality of adding two no. in that method.
this u can use in ur WF.
Or u can use delegation also.
Take selfitem as a supertype for BO.
Or there is one step-conatiner operation...
u can directly use that for addition of two numbers.
details:
Each business object has the following properties:
a. Object Type ID u2013 It is used for internal identification of the business object.
b. Object Name u2013 It is used for external identification of the business object.
Using this property external system can interact with SAP system.
c. Super Type u2013 It is the parent object from which all the components of the BO are inherited.
d. Name u2013 It is a descriptive name of the BO.
e. Description u2013 It is a brief description of the business object type.
f. Application - The application component to which the BO belongs to.
g. Program - Program that will contain the ABAP code of the BO.
hope it helps u!
Regards,
Mamta -
EBP PO creation - Approval workflow is ambiguous
Hi!
We have ECS scenario up and running. I try to create PO from PR that has come from ERP system, but when I check PO the following message is appeared:
"Approval workflow is ambiguous. Inform system administrator"
Could you please help me to fix this issue?
Thanks and Regards,
SiarheiMore than one WF is active which satisfies the same start condition. Please check if there are any WF's without start condition. This also contributes to this error.
Regards, IA -
Hi:
I am making a approve workflow. I have a problem in the Approval Activity, I choose the Agent Rule, (I create de Rule) and the workflow is not appearing in the web page.
I had another workflow that in the approval activity, in the agents I choose Expression -- &Agent_0001.Agents& and the workflow is appearing in the web page, Why do I have that problem?
Thanks and Best Regards
JessicaHello,
Yes approval preview is posssible only with adhoc agent because they can be instanciated independently from the workflow.
Check note 391674, it explains how creating adhoc agent for customer workflow.
Rgds,
Pierre -
New material creation with workflow approval
the scenario is when the new material master(mm01) is being created, the request will sent to manager for approval. so the manager can either approve or reject it. if it were rejected, is it possiable to resubmit this material master for approve after the amendement? any information on this config will be appreciated!
You can put your approval in a loop and loop till it is approved. In rejection branch put a dialog step for creator of material and give to person who is responsible to changeing and call MM02 or something from that step and yes also give an option here where creator of approver can choose to abondone the material totaly which will bring it out of loop and completes teh workflow, which will other wise complete only on approval.
Warm Regards,
Anuj Nagpal. -
Dynamic creation for Workflow Transitions
Hi,
I have a custom wf to deprovision and move users.
Depending on the entries in the list $userNames i want to create transitions for each user and do these activities parallel with an and-split
How can i do that?
Greetings,
RabbHi,
U want to add two no. using BO.
For this u have to create 'z' Object .
Inside that create 'z'Method.
Now after that u can write ur functionality of adding two no. in that method.
this u can use in ur WF.
Or u can use delegation also.
Take selfitem as a supertype for BO.
Or there is one step-conatiner operation...
u can directly use that for addition of two numbers.
details:
Each business object has the following properties:
a. Object Type ID u2013 It is used for internal identification of the business object.
b. Object Name u2013 It is used for external identification of the business object.
Using this property external system can interact with SAP system.
c. Super Type u2013 It is the parent object from which all the components of the BO are inherited.
d. Name u2013 It is a descriptive name of the BO.
e. Description u2013 It is a brief description of the business object type.
f. Application - The application component to which the BO belongs to.
g. Program - Program that will contain the ABAP code of the BO.
hope it helps u!
Regards,
Mamta -
Automatic Creation of PO by workflow once PR is released.
Hi All,
Can anybody explain the details steps for creation of workflow template if PR is released then automatic creation of PO needs to be created with reference to PR.?
Thanks,
RaviYou can take a look at standard Workflow WS20000075(PO). Regarding your requirement most probably you need to do some configuration. In SRM this is possible once a Shopping Cart is completed it can be converted to a PO.
Thanks
Arghadip -
Reg: How to deactive seeded workflow process(HZ User Creation API worflow)
Dear Friends,
I do have a question for deactivate the seeded worflow process. Which means the current process i am not going to use anywhere. I needed to create the new process for Seeded worflow why because this is the worflow having some standard Procedure. Those procedure only will meet my requirement. In such case i wanted to create new processes in that going to call seeded procedure.
Could you please help me out how to deacivate the seeded processes from Oracle Standard workflow ( Name of the workflow is HZ USER CREATION API Workflow) Now current they are created for Customer creation processes. I didn't find currently where they are calling. My requirement is need to Create the new process for User-Id creation.
I hope everybody will understand my requirement.
Thanks in advance.
Thanks,
Velu.
Edited by: Krishna Vamshi on Jul 14, 2009 1:29 AMHi,
IIRC (and I haven't got a Workflow system handy to check), the Workflow is launched by a business event - if you disable the seeded business event, then that will stop the workflow launching.
HTH,
Matt
WorkflowFAQ.com - the ONLY independent resource for Oracle Workflow development
Alpha review chapters from my book "Developing With Oracle Workflow" are available via my website http://www.workflowfaq.com
Have you read the blog at http://www.workflowfaq.com/blog ?
WorkflowFAQ support forum: http://forum.workflowfaq.com -
Trying to create a NetRestore image.
Used SuperDuper to repair peremissions and create DMG of Client Zero HD
Ran SIU. Log Follows. Seemed to be going OK but hung at this point, or was I too impatient to wait any longer? had been sitting there for 20+ minutes before I Quit SIU...
Any pointers, please?
Starting image creation.
Workflow Started (2011-03-17 08:47:57 +0000)
Mac OS X Server 10.6.6 (10J567), System Image Utility 10.6.5 (447)
Starting action: Define Image Source (1.2)
Finished running action: Define Image Source
Starting action: Create Image (1.5.3)
Starting image creation process...
Create NetInstall Image
Initiating NetInstall from Restore Media.
progressPrefix="_progress"
++ progressPrefix=_progress
scriptsDebugKey="DEBUG"
++ scriptsDebugKey=DEBUG
imageIsUDIFKey="1"
++ imageIsUDIFKey=1
mountPoint="/tmp/mnt.pde0nj"
++ mountPoint=/tmp/mnt.pde0nj
ownershipInfoKey="505:20"
++ ownershipInfoKey=505:20
mkextPathKey="/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mk ext"
++ mkextPathKey=/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mk ext
sourceVol="/Volumes/Macintosh HD 1"
++ sourceVol='/Volumes/Macintosh HD 1'
skipFileChecksumKey="0"
++ skipFileChecksumKey=0
dmgTarget="NetInstall"
++ dmgTarget=NetInstall
destPath="/image in here/NetRestore ofRolloutDMG"
++ destPath='/image in here/NetRestore ofRolloutDMG'
asrSource="ASRInstall.pkg"
++ asrSource=ASRInstall.pkg
blockCopyDeviceKey="0"
++ blockCopyDeviceKey=0
. "$1/createCommon.sh"
+ . /tmp/niutemp.laZrfc41/createCommon.sh
# createCommon.sh
# Common functionality for the Image creation process.
# sourced in by the various SIU scripts
# Copyright 2007 Apple Inc. All rights reserved.
# Using dscl, create a user account
AddLocalUser()
# $1 long name
# $2 short name
# $3 isAdminUser key
# $4 password hash
# $5 user picture path
# $6 Language string
local databasePath="/Local/Target/Users/${2}"
# Find a free UID between 501 and 599
for ((i=501; i<600; i++)); do
output=`/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -search /Local/Target/Users UniqueID $i`
# If there is already an account dscl returns it, so we're looking for an empty return value.
if [ "$output" == "" ]; then
break
fi
done
# Create the user record
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -create $databasePath || exit 1
# Add long name
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath RealName "${1}" || exit 1
# Add PrimaryGroupID
if [ "${3}" == 1 ]; then
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath PrimaryGroupID 80 || exit 1
else
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath PrimaryGroupID 20 || exit 1
fi
# Add UniqueID
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath UniqueID ${i} || exit 1
# Add Home Directory entry
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath dsAttrTypeNative:home /Users/${2} || exit 1
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath authentication_authority ";ShadowHash;" || exit 1
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath picture "${5}" || exit 1
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath passwd "*" || exit 1
# Add shell
/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -append $databasePath UserShell "/bin/bash" || exit 1
# lookup generated uid
genUID=`/usr/bin/dscl -f "${mountPoint}/var/db/dslocal/nodes/Default" localonly -read /Local/Target/Users/${2} GeneratedUID` || exit 1
genUID=${genUID:14:36}
# make sure the shadow/hash directory exists
if [ ! -e "${mountPoint}/var/db/shadow/hash" ] ; then
/bin/mkdir -p "${mountPoint}/var/db/shadow/hash" || exit 1
/bin/chmod -R 700 "${mountPoint}/var/db/shadow" || exit 1
fi
# to copy our password hash in there...
echo "${4}" > "${mountPoint}/var/db/shadow/hash/$genUID"
/bin/chmod 600 "${mountPoint}/var/db/shadow/hash/$genUID" || exit 1
# Create Home directory
if [ -e "/System/Library/User Template/${6}.lproj/" ]; then
/usr/bin/ditto "/System/Library/User Template/${6}.lproj/" "${mountPoint}/Users/${2}" || exit 1
else
/usr/bin/ditto "/System/Library/User Template/English.lproj/" "${mountPoint}/Users/${2}" || exit 1
fi
/usr/sbin/chown -R $i:$i "${mountPoint}/Users/${2}" || exit 1
# If they exist, apply any Append.bom changes
ApplyAppendBom()
local tempDir="$1"
local srcVol="$2"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
if [ -e "$tempDir/Append.bom" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Applying Append.bom additions from System Image Utility"
fi
/usr/bin/ditto $opt -bom "$tempDir/Append.bom" "$srcVol" "${mountPoint}" || exit 1
fi
if [ -e "$srcVol/Library/Application Support/Apple/System Image Utility/Append.bom" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Applying Append.bom additions from $srcVol"
fi
/usr/bin/ditto $opt -bom "$srcVol/Library/Application Support/Apple/System Image Utility/Append.bom" "$srcVol" "${mountPoint}" || exit 1
fi
# Copies a list of packages (full paths contained in the file at $1) from source to .../System/Installation/Packages/
CopyPackagesFromFile()
local theFile="$1"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
while read FILE
do
if [ -e "${FILE}" ]; then
local leafName=`basename "${FILE}"`
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Copying ${FILE}."
fi
/usr/bin/ditto $opt "${FILE}" "${mountPoint}/System/Installation/Packages/${leafName}" || exit 1
fi
done < "
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
while read FILE
do
if [ -e "${FILE}" ]; then
local leafName=`basename "${FILE}"`
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Copying ${FILE}."
fi
read SUB_PATH
/usr/bin/ditto $opt "${FILE}" "${mountPoint}/System/Installation/Packages/${SUB_PATH}${leafName}" || exit 1
fi
done < "${theFile}"
# Create the dyld shared cache files
CreateDyldCaches()
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Creating dyld shared cache files"
# This spews too much for verbose mode... only enable for debug
if [ "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-debug"
fi
fi
/usr/bin/updatedyld_sharedcache -root "${mountPoint}" -universal_boot -force $opt
# Validate or create the destination directory and mount point
CreateOrValidateDestination()
local destDir="$1"
if [ ! -d "$destDir" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Creating working path at $destDir"
fi
/bin/mkdir -p "$destDir" || exit 1
fi
# Create mount point
if [ ! -d "${mountPoint}" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Creating mountpoint for in $destDir"
fi
/bin/mkdir -p "${mountPoint}" || exit 1
fi
# If any exist, apply any user accounts
CreateUserAccounts()
local count="${#userFullName[*]}"
if [ $count -gt 0 ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Adding $count user account(s) to the image"
fi
for ((index=0; index<$count; index++)); do
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Adding user ${userFullName[$index]}"
fi
#lay down user here
AddLocalUser "${userFullName[$index]}" "${userUnixName[$index]}" "${userIsAdmin[$index]}" "${userPassHash[$index]}" "${userImagePath[$index]}" "${userLanguage[$index]}"
done
# "touch"
/usr/bin/touch "${mountPoint}/private/var/db/.AppleSetupDone"
/usr/bin/touch "${mountPoint}/Library/Receipts/.SetupRegComplete"
fi
# retry the hdiutil detach until we either time out or it succeeds
retryhdiutildetach()
local mount_point="${1}"
local tries=0
local forceAt=0
local limit=24
local opt=""
forceAt=$(($limit - 1))
while [ $tries -lt $limit ]; do
tries=$(( tries + 1 ))
/bin/sleep 5
echo "Attempting to detach the disk image again..."
/usr/bin/hdiutil detach "${mount_point}" $opt
if [ $? -ne 0 ]; then
# Dump a list of any still open files on the mountPoint
if [ "${scriptsDebugKey}" == "DEBUG" ]; then
/usr/sbin/lsof +fg "${mount_point}"
fi
if [ $tries -eq $forceAt ]; then
echo "Failed to detach disk image at '${mount_point}' normally, adding -force."
opt="-force"
fi
if [ $tries -eq $limit ]; then
echo "Failed to detach disk image at '${mount_point}'."
exit 1
fi
else
tries=$limit
fi
done
# Create the dyld shared cache files
DetachAndRemoveMount()
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Detaching disk image"
# Dump a list of any still open files on the mountPoint
if [ "${scriptsDebugKey}" == "DEBUG" ]; then
/usr/sbin/lsof +fg "${mountPoint}"
fi
fi
# Finally detach the image and dispose the mountPoint directory
/usr/bin/hdiutil detach "${mountPoint}" || retryhdiutildetach "${mountPoint}" || exit 1
/bin/rmdir "${mountPoint}" || exit 1
# If the pieces exist, enable remote access for the shell image
EnableRemoteAccess()
local srcVol="$1"
local opt=""
if [ -e "${srcVol}/usr/lib/pam/pam_serialnumber.so.2" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Enabling shell image remote access support"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
# install some things (again which aren't part of BaseSystem) needed for remote ASR installs
/usr/bin/ditto $opt "${srcVol}/usr/lib/pam/pam_serialnumber.so.2" "${mountPoint}/usr/lib/pam/pam_serialnumber.so.2" || exit 1
if [ -e "${srcVol}/usr/sbin/installer" ]; then
/usr/bin/ditto $opt "${srcVol}/usr/sbin/installer" "${mountPoint}/usr/sbin/installer" || exit 1
fi
# copy the sshd config and add our keys to the end of it
if [ -e "${srcVol}/etc/sshd_config" ]; then
/bin/cat "${srcVol}/etc/sshd_config" - > "${mountPoint}/etc/sshd_config" << END
HostKey /private/var/tmp/sshhostkey
HostKey /private/var/tmp/sshhost_rsakey
HostKey /private/var/tmp/sshhost_dsakey
END
fi
fi
# If it exists, install the sharing names and/or directory binding support to the install image
HandleNetBootClientHelper()
local tempDir="$1"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
if [ -e "$tempDir/bindingNames.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing Directory Service binding information"
fi
/usr/bin/ditto $opt "$tempDir/bindingNames.plist" "${mountPoint}/etc/bindingNames.plist" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/etc/bindingNames.plist"
/bin/chmod 644 "${mountPoint}/etc/bindingNames.plist"
fi
if [ -e "$tempDir/sharingNames.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing Sharing Names support"
fi
/usr/bin/ditto $opt "$tempDir/sharingNames.plist" "${mountPoint}/etc/sharingNames.plist" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/etc/sharingNames.plist"
/bin/chmod 644 "${mountPoint}/etc/sharingNames.plist"
fi
if [ -e "$tempDir/NetBootClientHelper" ]; then
/usr/bin/ditto $opt "$tempDir/NetBootClientHelper" "${mountPoint}/usr/sbin/NetBootClientHelper" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/usr/sbin/NetBootClientHelper"
/bin/chmod 555 "${mountPoint}/usr/sbin/NetBootClientHelper"
/usr/bin/ditto $opt "$tempDir/com.apple.NetBootClientHelper.plist" "${mountPoint}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist " || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist "
/bin/chmod 644 "${mountPoint}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist "
# finally, make sure it isn't disabled...
/usr/libexec/PlistBuddy -c "Delete :com.apple.NetBootClientHelper" "${mountPoint}/var/db/launchd.db/com.apple.launchd/overrides.plist" > /dev/null 2>&1
fi
# Create an installer package in /System/Installation/Packages/ wrapping the supplied script
InstallerPackageFromScript()
local tempDir="$1"
local scriptPath="$2"
local scriptName=`basename "${scriptPath}"`
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Create installer for script $scriptName"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
# shouldn't exist on entry...
if [ -e "${tempDir}/emptyDir" ]; then
/bin/rm -rf "${tempDir}/emptyDir"
fi
# make some directories to work in
/bin/mkdir $opt -p "${tempDir}/$scriptName.pkg/Contents/Resources"
/bin/mkdir $opt "${tempDir}/emptyDir" || exit 1
cd "${tempDir}/emptyDir"
# Create Archive.pax.gz
/bin/pax -w -x cpio -f "$tempDir/$scriptName.pkg/Contents/Archive.pax" .
/usr/bin/gzip "$tempDir/$scriptName.pkg/Contents/Archive.pax"
# Create the Archive.bom file
/usr/bin/mkbom "$tempDir/emptyDir/" "$tempDir/$scriptName.pkg/Contents/Archive.bom"
# Create the Info.plist
/bin/cat > "$tempDir/$scriptName.pkg/Contents/Info.plist" << END
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.server.SystemImageUtility.$scriptName</string>
<key>CFBundleShortVersionString</key>
<string>1</string>
<key>IFMajorVersion</key>
<integer>1</integer>
<key>IFMinorVersion</key>
<integer>0</integer>
<key>IFPkgFlagDefaultLocation</key>
<string>/tmp</string>
<key>IFPkgFlagInstallFat</key>
<false/>
<key>IFPkgFlagIsRequired</key>
<false/>
<key>IFPkgFormatVersion</key>
<real>0.10000000149011612</real>
</dict>
</plist>
END
echo "pkmkrpkg1" > "$tempDir/$scriptName.pkg/Contents/PkgInfo"
echo "major: 1\nminor: 0" > "$tempDir/$scriptName.pkg/Contents/Resources/package_version"
# Copy the script
/bin/cp "$scriptPath" "$tempDir/$scriptName.pkg/Contents/Resources/postflight"
# copy the package to the Packages directory
/usr/bin/ditto $opt "$tempDir/$scriptName.pkg" "${mountPoint}/System/Installation/Packages/$scriptName.pkg" || exit 1
# clean up
/bin/rm -r "$tempDir/emptyDir"
/bin/rm -r "$tempDir/$scriptName.pkg"
# If it exists, install the PowerManagement.plist onto the install image
InstallPowerManagementPlist()
local tempDir="$1"
local opt=""
if [ -e "$tempDir/com.apple.PowerManagement.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing PowerManagement plist to install image"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
/usr/bin/ditto $opt "$tempDir/com.apple.PowerManagement.plist" "${mountPoint}/Library/Preferences/SystemConfiguration/com.apple.PowerManagemen t.plist" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/Library/Preferences/SystemConfiguration/com.apple.PowerManagemen t.plist"
/bin/chmod 644 "${mountPoint}/Library/Preferences/SystemConfiguration/com.apple.PowerManagemen t.plist"
fi
# If it exists, install the InstallerStatusNotifications.bundle and progress emitter onto the install image
InstallProgressPieces()
local tempDir="$1"
local opt=""
if [ -e "$tempDir/InstallerStatusNotifications.bundle" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing progress announcer to install image"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
/usr/bin/ditto $opt "$tempDir/InstallerStatusNotifications.bundle" "${mountPoint}/System/Library/CoreServices/InstallerStatusNotifications.bundle" || exit 1
/usr/sbin/chown -R root:wheel "${mountPoint}/System/Library/CoreServices/InstallerStatusNotifications.bundle"
/bin/chmod 755 "${mountPoint}/System/Library/CoreServices/InstallerStatusNotifications.bundle"
fi
if [ -e "$tempDir/com.apple.ProgressEmitter.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing status emitter to image"
fi
/usr/bin/ditto $opt "$tempDir/progress_emitter" "${mountPoint}/usr/sbin/progress_emitter" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/usr/sbin/progress_emitter"
/bin/chmod 555 "${mountPoint}/usr/sbin/progress_emitter"
/usr/bin/ditto $opt "$tempDir/com.apple.ProgressEmitter.plist" "${mountPoint}/System/Library/LaunchDaemons/com.apple.ProgressEmitter.plist" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/System/Library/LaunchDaemons/com.apple.ProgressEmitter.plist"
/bin/chmod 644 "${mountPoint}/System/Library/LaunchDaemons/com.apple.ProgressEmitter.plist"
fi
# Converts a list of scripts (full paths contained in the file at $1) into packages in .../System/Installation/Packages/
InstallScriptsFromFile()
local tempDir="$1"
local theFile="$2"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Converting scripts into install packages"
fi
while read FILE
do
if [ -e "${FILE}" ]; then
# make an installer package out of the script
InstallerPackageFromScript "$tempDir" "${FILE}"
fi
done < "
local destDir="$2"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Performing post install cleanup"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
opt="-v"
fi
fi
# delete the DS indices to force reindexing...
if [ -e "${mountPoint}/var/db/dslocal/indices/Default/index" ]; then
/bin/rm $opt "${mountPoint}/var/db/dslocal/indices/Default/index"
fi
# detach the disk and remove the mount folder
DetachAndRemoveMount || exit 1
# copy the NBImageInfo.plist file
/usr/bin/ditto $opt "$tempDir/NBImageInfo.plist" "$destDir/NBImageInfo.plist" || exit 1
echo "Correcting permissions. ${ownershipInfoKey} $destDir"
/usr/sbin/chown -R "${ownershipInfoKey}" "$destDir"
# rename the folder to .nbi
if [ ! -e "$destDir.nbi" ]; then
/bin/mv $opt "$destDir" "$destDir.nbi" || exit 1
else
local parentDir=`dirname "${destDir}"`
local targetName=`basename "${destDir}"`
for ((i=2; i<1000; i++)); do
if [ ! -e "${parentDir}/${targetName}_$i.nbi" ]; then
/bin/mv $opt "$destDir" "${parentDir}/${targetName}_$i.nbi" || exit 1
break
fi
done
fi
# Prepare the source by deleting stuff we don't want to copy if sourcing a volume
PreCleanSource()
local srcVol="$1"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
opt="-v"
fi
fi
if [ -e "$srcVol/private/var/vm/swapfile*" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Removing swapfiles on $1"
fi
/bin/rm $opt "$srcVol/private/var/vm/swapfile*"
fi
if [ -d "$srcVol/private/tmp" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Cleaning out /private/tmp on $1"
fi
/bin/rm -r $opt "$srcVol/private/tmp/*"
fi
if [ -d "$srcVol/private/var/tmp" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Cleaning out /private/var/tmp on $1"
fi
/bin/rm -r $opt "$srcVol/private/var/tmp/*"
fi
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Cleaning out devices and volumes on $1"
fi
if [ -d "$srcVol/Volumes" ]; then
/bin/rm -r $opt "$srcVol/Volumes/*"
fi
if [ -d "$srcVol/dev" ]; then
/bin/rm $opt "$srcVol/dev/*"
fi
if [ -d "$srcVol/private/var/run" ]; then
/bin/rm -r $opt "$srcVol/private/var/run/*"
fi
# Copy kernel and build the kext cache on the boot image
PrepareKernelAndKextCache()
local destDir="$1"
local opt=""
local archx8664=`/usr/bin/file -b "${mountPoint}/mach_kernel" | /usr/bin/sed -ne 's/.(x86_64)):./\1/p'`
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Preparing the kernel and kext cache for the boot image"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
# Insure the kext cache on our source volume (the boot shell) is up to date
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Updating kext cache on source volume"
fi
/usr/sbin/kextcache -update-volume "${mountPoint}" || exit 1
# Copy the i386 and, if it exists, the x86_64 architecture
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Preparing Intel architecture"
fi
# Prepare the kernel
/bin/mkdir $opt "$destDir/i386" || exit 1
/usr/bin/lipo -extract i386 "${mountPoint}/mach_kernel" -output "$destDir/i386/mach.macosx" || exit 1
# Build kext cache
/usr/sbin/kextcache -a i386 -s -l -n -z -mkext2 "$destDir/i386/mach.macosx.mkext" "${mountPoint}/System/Library/Extensions" || exit 1
# If the x86_64 architecture exists, copy it
if [ "${archx8664}" = "x86_64" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Preparing x86_64 architecture"
fi
# Prepare the kernel
/bin/mkdir $opt "$destDir/i386/x86_64" || exit 1
/usr/bin/lipo -extract x86_64 "${mountPoint}/mach_kernel" -output "$destDir/i386/x86_64/mach.macosx" || exit 1
# Build kext cache
/usr/sbin/kextcache -a x86_64 -s -l -n -z -mkext2 "$destDir/i386/x86_64/mach.macosx.mkext" "${mountPoint}/System/Library/Extensions" || exit 1
fi
# Create the i386 and x86_64 boot loaders on the boot image
PrepareBootLoader()
local srcVol="$1"
local destDir="$2"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Preparing boot loader"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
# Copy the i386 and, by default, the x86_64 architecture
if [ -e "${mountPoint}/usr/standalone/i386/boot.efi" ]; then
/usr/bin/ditto $opt "${mountPoint}/usr/standalone/i386/boot.efi" "$destDir/i386/booter" || exit 1
else
/usr/bin/ditto $opt "$srcVol/usr/standalone/i386/boot.efi" "$destDir/i386/booter" || exit 1
fi
# If it exists, install the partitioning application and data onto the install image
ProcessAutoPartition()
local tempDir="$1"
local opt=""
if [ -e "$tempDir/PartitionInfo.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing Partitioning application and data to install image"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
/usr/bin/ditto $opt "$tempDir/PartitionInfo.plist" "${mountPoint}/System/Installation/PartitionInfo.plist" || exit 1
/usr/bin/ditto $opt "$tempDir/AutoPartition.app" "${mountPoint}/System/Installation/AutoPartition.app" || exit 1
# Tell the installer to run the Partitioning application
/bin/echo "#!/bin/sh
/System/Installation/AutoPartition.app/Contents/MacOS/AutoPartition" > "${mountPoint}/private/etc/rc.cdrom.postWS"
# Due to the way rc.install sources the script, it needs to be executable
/usr/sbin/chown root:wheel "${mountPoint}/private/etc/rc.cdrom.postWS"
/bin/chmod 755 "${mountPoint}/private/etc/rc.cdrom.postWS"
fi
# If it exists, install the InstallPreferences.plist onto the install image
ProcessInstallPreferences()
local tempDir="$1"
local opt=""
if [ -e "$tempDir/InstallPreferences.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing InstallPreferences.plist to install image"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
/usr/bin/ditto $opt "$tempDir/InstallPreferences.plist" "${mountPoint}/System/Installation/Packages/InstallPreferences.plist" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/System/Installation/Packages/InstallPreferences.plist"
/bin/chmod 644 "${mountPoint}/System/Installation/Packages/InstallPreferences.plist"
fi
# If it exists, install the minstallconfig.xml onto the install image
ProcessMinInstall()
local tempDir="$1"
local opt=""
if [ -e "$tempDir/minstallconfig.xml" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing minstallconfig.xml to install image"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
/usr/bin/ditto $opt "$tempDir/minstallconfig.xml" "${mountPoint}/etc/minstallconfig.xml" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/etc/minstallconfig.xml"
/bin/chmod 644 "${mountPoint}/etc/minstallconfig.xml"
fi
# untar the OSInstall.mpkg so it can be modified
untarOSInstallMpkg()
local tempDir="$1"
local opt=""
# we might have already done this, so check for it first
if [ ! -d "${tempDir}/OSInstall_pkg" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "uncompressing OSInstall.mpkg"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
fi
/bin/mkdir "${tempDir}/OSInstall_pkg"
cd "${tempDir}/OSInstall_pkg"
/usr/bin/xar $opt -xf "${mountPoint}/System/Installation/Packages/OSInstall.mpkg"
# make Distribution writeable
/bin/chmod 777 "${tempDir}/OSInstall_pkg"
/bin/chmod 666 "${tempDir}/OSInstall_pkg/Distribution"
fi
handler ()
echo "Terminated. Cleaning up. Unmounting $destPath"
# detach the disk and remove the mount folder
DetachAndRemoveMount
# Remove the items we created
/bin/rm -r "$destPath/i386"
/bin/rm "$destPath/$dmgTarget.dmg"
/bin/rm "$destPath/System.dmg"
# Finally, remove the directory IF empty
/bin/rmdir "$destPath"
exit 1
InstallNetBootClientHelper()
local tempDir="$1"
local destDir="${mountPoint}/System/Installation/Packages/SIUExtras"
local opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
opt="-v"
fi
if [ -e "${tempDir}/bindingNames.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing Directory Service binding information"
fi
/usr/bin/ditto $opt "${tempDir}/bindingNames.plist" "${destDir}/bindingNames.plist" || exit 1
/usr/sbin/chown root:wheel "${destDir}/bindingNames.plist"
/bin/chmod 644 "${destDir}/bindingNames.plist"
fi
if [ -e "${tempDir}/sharingNames.plist" ]; then
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
echo "Installing Sharing Names support"
fi
/usr/bin/ditto $opt "${tempDir}/sharingNames.plist" "${destDir}/sharingNames.plist" || exit 1
/usr/sbin/chown root:wheel "${destDir}/sharingNames.plist"
/bin/chmod 644 "${destDir}/sharingNames.plist"
fi
# This is required, make sure it's here
/usr/bin/ditto $opt "${tempDir}/NetBootClientHelper" "${destDir}/NetBootClientHelper" || exit 1
/usr/sbin/chown root:wheel "${destDir}/NetBootClientHelper"
/bin/chmod 555 "${destDir}/NetBootClientHelper"
/usr/bin/ditto $opt "${tempDir}/com.apple.NetBootClientHelper.plist" "${destDir}/com.apple.NetBootClientHelper.plist" || exit 1
/usr/sbin/chown root:wheel "${destDir}/com.apple.NetBootClientHelper.plist"
/bin/chmod 644 "${destDir}/com.apple.NetBootClientHelper.plist"
/usr/bin/ditto $opt "${tempDir}/installClientHelper.sh" "${mountPoint}/var/tmp/niu/postinstall/installClientHelper.sh" || exit 1
/usr/sbin/chown root:wheel "${mountPoint}/var/tmp/niu/postinstall/installClientHelper.sh"
/bin/chmod 555 "${mountPoint}/var/tmp/niu/postinstall/installClientHelper.sh"
trap "handler" TERM INT
+ trap handler TERM INT
# Set up for script debugging
debug_opt=""
+ debug_opt=
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
debug_opt="-v"
fi
+ '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
+ debug_opt=-v
# See if the source volume was overridden (NetRestore from install media workflow)
isRestoreFromInstallMedia="NO"
+ isRestoreFromInstallMedia=NO
if [ ! -z "${3:-}" ]; then
sourceVol="${3}"
isRestoreFromInstallMedia="YES"
fi
+ '[' '!' -z '' ']'
# Prepare the destination
CreateOrValidateDestination "$destPath"
+ CreateOrValidateDestination '/image in here/NetRestore ofRolloutDMG'
+ local 'destDir=/image in here/NetRestore ofRolloutDMG'
+ '[' '!' -d '/image in here/NetRestore ofRolloutDMG' ']'
+ '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
+ echo 'Creating working path at /image in here/NetRestore ofRolloutDMG'
Creating working path at /image in here/NetRestore ofRolloutDMG
+ /bin/mkdir -p '/image in here/NetRestore ofRolloutDMG'
+ '[' '!' -d /tmp/mnt.pde0nj ']'
# If the sourceVol is the boot drive we have an asr:// type source
if [ "$sourceVol" == "/" ]; then
# Create an empty image to skip the ASR volume creation
/usr/bin/touch "${destPath}/System.dmg"
fi
+ '[' '/Volumes/Macintosh HD 1' == / ']'
# Look for an existing System.dmg
if [ ! -e "$destPath/System.dmg" ]; then
# update progress information
echo "${progressPrefix}imagingSource"
# Create an image of the source volume
# /usr/bin/hdiutil create "$destPath/System" -srcfolder "$sourceVol" -format UDBZ -uid 0 -gid 80 -mode 1775 -ov -puppetstrings || exit 1
if [ "${blockCopyDeviceKey}" == 1 ] ; then
theDevice=`/usr/sbin/diskutil info "$sourceVol" | grep "Device Identifier:" | awk '{print $3}'`
/usr/sbin/diskutil umount "${theDevice}"
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
echo "Creating block-level image of $theDevice"
fi
/usr/bin/hdiutil create "$destPath/System" -srcdevice "${theDevice}" -uid 0 -gid 80 -mode 1775 -ov -puppetstrings || exit 1
/usr/sbin/diskutil mount "${theDevice}"
else
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
echo "Creating image of $sourceVol"
fi
/usr/bin/hdiutil create "$destPath/System" -srcfolder "${sourceVol}" -fsargs "-c a=16384,c=8192,e=1280" -uid 0 -gid 80 -mode 1775 -ov -puppetstrings || exit 1
fi
# update progress information
echo "${progressPrefix}preparingASR"
# "Scan the image for restore"
asr_opt="--filechecksum"
if [ "${skipFileChecksumKey}" == 1 ] ; then
asr_opt=""
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
echo "Preparing image for restore without file checksums"
fi
else
if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
echo "Preparing image for restore"
fi
fi
/usr/sbin/asr imagescan --source "$destPath/System.dmg" $asr_opt || exit 1
fi
+ '[' '!' -e '/image in here/NetRestore ofRolloutDMG/System.dmg' ']'
+ echo progress_imagingSource
+ '[' 0 == 1 ']'
+ '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
+ echo 'Creating image of /Volumes/Macintosh HD 1'
Creating image of /Volumes/Macintosh HD 1
+ /usr/bin/hdiutil create '/image in here/NetRestore ofRolloutDMG/System' -srcfolder '/Volumes/Macintosh HD 1' -fsargs '-c a=16384,c=8192,e=1280' -uid 0 -gid 80 -mode 1775 -ov -puppetstrings
PERCENT:0.000000
PERCENT:0.433633
PERCENT:87.806953
PERCENT:-1.000000
Finalizing disk image.
detachTempimageFile: synchronous unmount /dev/disk1 returned 49153
lsof: status error on /Volumes/Macintosh: No such file or directory
lsof: status error on HD: No such file or directory
lsof 4.82
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhlnNoOPRtUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]
[-F [f]] [-g [s]] [-i ] [+|-L [l]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ``-h'' option to get more help information.
retrying unmount (#1)...
detachTempImageFile: synchronous retry (#1) unmount /Volumes/Macintosh HD (/dev/disk1) returned 0
Workflow Stopped (2011-03-17 10:01:33 +0000)
Workflow Stopped (2011-03-17 10:01:34 +0000)
Stopping image creation.
Terminating script!Thanks for your input...I did wonder if I was being impatient...
subsequently ran it again and was taken out of the office for a few hours, lo and behold on return all was well....
Now however, netboot service won't start, netboot folder is not being created within library...another posting to follow
Message was edited by: DaiVernon
Maybe you are looking for
-
Purchase record with Fixed Overhead
Hi friends, Is there is a a report that can help us to identify any purchase orders which should have fixed ohd condition types Thanks, Raju
-
HT1491 purchase could not be completed
i would like to perchase on candy crush app. but some reasion purchase could not be completed. i changed my payment option from paypal to card. still does't work. any solution.....?
-
How to create a project in Solman with PSCD content
Hi All, I am looking for any potential article on creating a u2018projectu2019 in Solman, we are looking into creating an project in solman with the PCSD and Grantor content but we donu2019t know where we can find this info. Can some one please tell
-
Pixel shift in PDF after flattening
Hi, I made this post some time ago in the Illustrator forum, but it's most likely an Acrobat issue. Here's the link. Perhaps it can be picked up or moved here by admins. http://forums.adobe.com/thread/1383150?tstart=0 Thanks.
-
CJR2-The plan data transfer is locked
Hi, I am planning costs by CJR2 on a WBS element for a certain period and version by cost element.When I execute CJR2,it allows me to enter the values against periods but when I try to save ,system gives error message-The plan data transfer is locked