Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

cURL GET WI - RTC 4.0.3

 Hello

I am trying to perform a GET call using cURL. Below is the script. However below does not create wi-53.xml. Need help to figure this out.

set COOKIES="C:\RTC\OSLC\cookies.txt"
set USER=xxxx
set PASSWORD=xxxx
set URL="http://ccm-host/ccm/oslc/workitems/53"
set host="http://jts-host"

curl -k -c %cookies% "%host%/jts/authenticated/identity"

curl -k -L -b %COOKIES% -c %COOKIES% -d j_username=%USER% -d j_password=%PASSWORD% "%host%/jts/authenticated/j_security_check"

curl -D - -k -b %COOKIES% -o "wi-53.xml" -H "Accept: application/x-oslc-cm-change-request+xml" %URL%

***********************************************************************************************************************************


cookies.txt :

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

jts-host FALSE / FALSE 786297600 WASReqURL ""
jts-host FALSE / FALSE 0 LtpaToken2 A1DKJYhHcw4po2eeUP2Wx6TVy4D7FB640pIrxiN9RXHoRwz5IS67o8ggEt+Re0dG+big6xs/1hlolfsJAZgF/PUH24Tt4Ugc2dgA2rGyXb3enupjOfg6EzTmJnRsJp6CVIATvTrlo050Cf6SJvwqBDKZOl5cQAuGT5rHt0HaVq6rYIGGlz4MWK6LsLi5urTlfMXBMUuzTYPxkc2JdkpnZ24CAMYM/+KSV20rX5pq14OU6YEzqYIRbQAmnhADfPl5qoIXqDPwFNNL5e7FLTaRkIGWxU9MZnsEqJcFrLSSi1Tl/Z4eebdyakBASNphI1Y4MaB5HR4ayjFlVjT6BZ21iGFFhldhNbtJ5MTd2QxvVY7QRvCR3AHkz/f/V423AYGGptckkQpjbKhhdx4U6xNUZgKp4chYUuFyeATP3hab0+4aDStpUn0QG6W/szQq1fg4jUQy211rnJ4i0ePXE8cX0qP/UVsbByYPN9eIPosQj4N/nYc/yUppcZHdkVrhfigasp5/TwfbNSO1kbPl4Q8QmraB407OY3Th4XU1USsqGaJL4ovnvi0Tp8tjyPGi7kHTW49AcykkUVr9c8UNqa4w2OKs3AFS1s1wpd1awXRdkQLoOCLIzty5Oq38S3ELNyFBgwV/4n0INByqLog4gCVxZKrmUC1ofyqzh0xfx1bZ18KlK3Iwej8s8p5unDbx/73RryvdXlNq3q5lm8HcdZglVg==
jts-host FALSE / FALSE 0 JSESSIONID 00005zrv-9vFaCxCJnYtQqIsquM:-1
jts-host FALSE /jts/authenticated/ FALSE 0 X-com-ibm-team-foundation-auth-loop-avoidance false

0 votes


Accepted answer

Permanent link
Hi Kartik,

Try adding "?oslc_cm.properties=dc:description" to your URL to say that you want the description of the work item.
Add the verbose flag to cURL also helps to understand what is happening

This worked for me:

# Update this line with the name of server
HOST="https://<your hostname>/ccm"
USER=xxxx@yyy.zzz.com
PASSWORD=mypassword

# Comment this line when it works
VERBOSE=-v

COOKIES=./cookies.txt
rm $COOKIES
URL="$HOST/resource/itemName/com.ibm.team.workitem.WorkItem/26416"
OUTPUT="wi_26416.xml"

# Perform Form based authentication using curl
curl -k -c $COOKIES -o tmp.html "$HOST/authenticated/identity"
curl -k -L -b $COOKIES -c $COOKIES -o tmp.html -d j_username=$USER -d j_password=$PASSWORD "$HOST/authenticated/j_security_check"

# Add which bit of the work item we want to extract
URL=$URL?oslc_cm.properties=dc:description

# Get the work item in XML format
curl -D header.txt -X GET $VERBOSE -k -b $COOKIES -o $OUTPUT -H "Accept: application/x-oslc-cm-change-request+xml" $URL

Simon
Kartik Manchanda selected this answer as the correct answer

3 votes

Comments

Thank You SImon..Finally seems to be heading in the right direction. Much appreciated. 

Another QQ : In order to get a state of a particular WI, it this correct?

 set URL=%URL%?oslc_cm.properties=rtc_cm:state


One other answer

Permanent link
Hi Kartik,
If you use

%URL%?oslc_cm.properties=rtc_cm:state

Then you will get
<?xml version="1.0" encoding="UTF-8"?>
<oslc_cm:ChangeRequest xmlns:rtc_cm="http://jazz.net/xmlns/prod/jazz/rtc/cm/1.0/" xmlns:oslc_cm="http://open-services.net/xmlns/cm/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="https://$HOST/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/26416">
<rtc_cm:state rdf:resource="https://$HOST/ccm/oslc/workflows/_Zu67at-uEeCFsdAYmU6XKQ/states/bugzillaWorkflow/3"/>
</oslc_cm:ChangeRequest>

So the state is enclosed in a <oslc_cm:ChangeRequest> tag and the value is a reference to the resource that describes the state. If you follow the link to the resource then you will get the information about the id and a title that is human readable. Like this:

<rtc_cm:Status rdf:about="https://$HOST/ccm/oslc/workflows/_Zu67at-uEeCFsdAYmU6XKQ/states/bugzillaWorkflow/3">
<dc:identifier>3</dc:identifier>
<dc:title>Resolved</dc:title>
<rtc_cm:iconUrl>https://$HOST/ccm/service/com.ibm.team.workitem.common.internal.model.IImageContentService/processattachment/_Zu67at-uEeCFsdAYmU6XKQ/workflow/resolve.gif</rtc_cm:iconUrl>
<rtc_cm:group>closed</rtc_cm:group>
</rtc_cm:Status>

Enjoy,
Simon

0 votes

Comments

Simon

Could you look @ https://jazz.net/forum/questions/141514/curl-put-wi-rtc-403-state-transition
I am sure..you would have done it in past.

Once again thanks

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,935
× 515
× 62

Question asked: Feb 03 '14, 3:57 p.m.

Question was seen: 6,848 times

Last updated: Feb 07 '14, 3:20 p.m.

Confirmation Cancel Confirm