Wednesday, February 23, 2011

Alternatives to Flash version of My Oracle Support

I am sure you all know this but this is for those who do not! :)

For those who think that the flash version of MOS is slow (including yours truly), Oracle provides the html version of MOS.

For those who were accustomed to using the Metalink (when MOS was Metalink and George W Bush was the president of the US of A - not the father, I'm talking about the son) patch search and download page, do not fret. You can use the classic patches window to get the old page (and a lot of memories) back!

To open any MOS note id, you can use this link. Only substitute Note ID 221211.1 with the note id that you want to open.

WGET shell Script for downloading patches

What I have to offer this time is a script using which you can download patches using WGET from Meta.....oops, from My Oracle Support, I should say!


This script needs (or accepts) the following parameters:


1. Me...oops...MOS Username
2. MOS (I got it right this time!) password
3. Patch file name
4. ARU Number

You can get 3 and 4 in the following way:


Using MOS:

Query for the particular patch, click on the download link, click on WGET Options on the left side bottom corner and then copy the WGET script to clipboard. That script will have both the patch name and the ARU number.


Using HTML (supporthtml.oracle.com):

Query for the particular patch, click on the patch, then RIGHT CLICK on the patch zip file link and click on copy shortcut in IE (or copy link location in Mozilla Firefox). This link will have both the patch file name and the ARU number.

Using the classic patches window:

Query for the particular patch, then RIGHT CLICK on the DOWNLOAD button and click on copy shortcut in IE (or copy link location in Mozilla Firefox). This link will have both the patch file name and the ARU number.


I do understand that this is a roundabout process but I believe it is better than downloading the file to your desktop and then uploading to the server.

I am also working on a script to retrieve the aru number and the patch file name given the patch number. But I have had no success so far. If anyone has that script or any better script to download patches, please do not hesitate to share it.

WGET SCRIPT:

#!/bin/sh



# Start of user configurable variables

#



# SSO username and password

printf "\n\nEnter the SSO USERNAME for Metalink:\t"

read SSO_USERNAME

printf "\n\n\n\nEnter the SSO PASSWORD for Metalink:\t"

##SSO_PASSWORD="password"

stty -echo

read SSO_PASSWORD

stty echo



# E-Delivery token

EPD_TOKEN=







# Path to wget command

WGET=/usr/bin/wget



# Location of cookie file

COOKIE_FILE=/tmp/$$.cookies



# Log directory and file

LOGDIR=.

LOGFILE=$LOGDIR/wgetlog-`date +%d-%b-%y-%H-%M`.log



# Output directory and file

OUTPUT_DIR=.



## Added by Praveen B K, for customising the script.

printf "\n\nEnter the PATCH FILE NAME:\t"

read PATCH_FILE_NAME



printf "\n\nEnter the aru number:\t"

read ARU



#

# End of user configurable variable

#



if [ "$SSO_USERNAME " = " " ]

then

printf "\n\nSSO USERNAME cannot be null. Exiting............\n\n\n"

exit 1

fi



if [ "$SSO_PASSWORD " = " " ]

then

printf "\n\nSSO PASSWORD cannot be null. Exiting............\n\n\n"

exit 1

fi



if [ "$PATCH_FILE_NAME " = " " ]

then

printf "\n\nPATCH FILE NAME cannot be blank. Exiting............\n\n\n"

exit 1

fi



if [ "$ARU " = " " ]

then

printf "\n\naru number cannot be blank. Exiting............\n\n\n"

exit 1

fi



# Contact updates site so that we can get SSO Params for logging in

SSO_RESPONSE=$($WGET https://updates.oracle.com/Orion/Services/download 2>&1grep Location)



# Extract request parameters for SSO

SSO_TOKEN=`echo $SSO_RESPONSE cut -d '=' -f 2cut -d ' ' -f 1`

SSO_SERVER=`echo $SSO_RESPONSE cut -d ' ' -f 2cut -d 'p' -f 1,2`

SSO_AUTH_URL=sso/auth

AUTH_DATA="ssousername=$SSO_USERNAME&password=$SSO_PASSWORD&site2pstoretoken=$SSO_TOKEN"



# The following command to authenticate uses HTTPS. This will work only if the wget in the environment

# where this script will be executed was compiled with OpenSSL. Remove the --secure-protocol option

# if wget was not compiled with OpenSSL

# Depending on the preference, the other options are --secure-protocol= autoSSLv2SSLv3TLSv1

$WGET --secure-protocol=auto --post-data $AUTH_DATA --save-cookies=$COOKIE_FILE --keep-session-cookies $SSO_SERVER$SSO_AUTH_URL -O sso.out >> $LOGFILE 2>&1



rm -f sso.out



$WGET --load-cookies=$COOKIE_FILE --save-cookies=$COOKIE_FILE --keep-session-cookies "https://updates.oracle.com/Orion/Services/download/${PATCH_FILE_NAME}?aru=${ARU}&patch_file=${PATCH_FILE_NAME}" -O $OUTPUT_DIR/${PATCH_FILE_NAME} >> $LOGFILE 2>&1





# Cleanup

rm -f $COOKIE_FILE