申请试用

使用 curl 访问 REST API 调用


IBM Spectrum LSF Application Center 为应用程序提交,数据管理,作业信息查询,作业操作等提供标准 RESTful Web 服务。 LSF Applicationn Center Web Service API 可与多种语言和方法集成。 此示例显示如何使用 curl访问 LSF Application Center REST API 调用。


准备工作

(1)要从终端访问 LSF Application Center REST API ,需要建立 SSH 连接:

  1. ssh -L 8080:localhost:8080 -J root@{FLOATING_IP_ADDRESS}
     lsfadmin@{MANAGEMENT_NODE_IP_ADDRESS}


其中, MANAGEMENT_NODE_IP_ADDRESS 需要替换为与-management-host-0关联的管理节点 IP 地址, FLOATING_IP_ADDRESS 需要替换为登录节点浮动 IP 地址。 要查找管理和登录节点 IP ,请参阅 收集 IP 地址的指示信息。 缺省用户为 lsfadmin。


使用 curl 连接到 LSF Application Center

(1)从本地设备打开新终端并运行以下命令:


a.对集群执行 ping 操作:

curl -k -X POST -H "Accept: application/json" 
http://localhost:8080/platform/ws/ping


b.登录到集群:

curl -k -X POST -H "Accept: application/json" -H 
"Content-Type: application/xml" -d "<User>
<name>lsfadmin</name> <pass>YourPassword</pass> </User>" 
http://localhost:8080/platform/ws/logon

    

    请注意:此命令的输出包含运行其他命令所需的令牌。 令牌仅在特定时间范围内有效。


示例输出:

{"csrftoken":"dbf6208a-0c01-4cb3-b6e1-9f75390311e5",
"token":"lsfadmin\"2022-05-25T20:53:12Z\"
cn8FS6/FIXiVZc5vMpfPdoob9bosjk85u3lEPseqrWdX
+DyWMPYkYgPOC5UJ+a4m87zyjHDq1DhjIZyYx1X47SFGRS4MRzeah94l
+EpNBazKilXsG8cVuYyUgtz9M0J6\"PBNNTKLPN3JlyOpnCqI7cg=="}


c.收到令牌后,需要对其进行两次更改。 首先,在令牌开头添加 "platform_token=" ,其次,将 \" 替换为 #quote#。 请参阅以下已更新令牌的示例:


export
MYTOKEN=platform_token=lsfadmin#quote#2022-05-25T20:53:12Z
#quote#cn8FS6/FIXiVZc5vMpfPdoob9bosjk85u3lEPseqrWdX
+DyWMPYkYgPOC5UJ+a4m87zyjHDq1DhjIZyYx1X47SFGRS4MRzeah94l
+EpNBazKilXsG8cVuYyUgtz9M0J6#quote#PBNNTKLPN3JlyOpnCqI7cg==


d.获取集群信息:

curl -k -X GET -H 'Content-Type: application/xml' -H 
"Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixe
d' -H 'Accept-Language:en-us'  http://localhost:8080/platform/ws/clusters/local


e.(可选) 获取 Platform Application Center 版本:

curl -k -X GET -H 'Content-Type: application/xml' -H 
"Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixe
d' -H 'Accept-Language:en-us'  
http://localhost:8080/platform/ws/version


f.(可选) 列出用户:

curl -k -X GET -H 'Content-Type: application/xml' -H 
"Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixe
d' -H 'Accept-Language:en-us'   
http://localhost:8080/platform/ws/users


g.(可选) 列出组:

curl -k -X GET -H 'Content-Type: application/xml' -H 
"Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixe
d' -H 'Accept-Language:en-us'   
http://localhost:8080/platform/ws/usergroups


h.(可选) 列出主机详细信息:

curl -k -X GET -H 'Content-Type: application/xml' -H 
"Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixe
d' -H 'Accept-Language:en-us'   
http://localhost:8080/platform/ws/hosts


i.列出现有作业:

curl -k -X GET -H 'Content-Type: application/xml' -H "
Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixe
d' -H 'Accept-Language:en-us'   
http://localhost:8080/platform/ws/pacclient/jobs


j.(可选) 按作业标识获取详细作业信息 (GET):

curl -k -X GET -H 'Content-Type: application/xml' -H
 "Cookie: $MYTOKEN" -H 
 'Accept:text/plain,application/xml,text/xml,multipart/mixed' 
 -H 'Accept-Language:en-us'   
 http://localhost:8080/platform/ws/jobs/<job ID>


k.(可选) 按作业属性获取详细作业信息 (GET):

curl -k -X GET -H 'Content-Type: application/xml' -H 
"Cookie: $MYTOKEN" -H 
'Accept:text/plain,application/xml,text/xml,multipart/mixed'
 -H 'Accept-Language:en-us'   
 http://localhost:8080/platform/ws/jobs/fullinfo


(2)提交作业:

curl -k -X POST -H 'Content-Type: multipart/mixed; 
boundary=bqJky99mlBWa-ZuqjC53mG6EzbmlxB' -H 
'Accept:text/xml,application/xml' -H "Cookie:$MYTOKEN" -H 
'Accept-Language:en-us' -d '--bqJky99mlBWa-ZuqjC53mG6EzbmlxB
Content-Disposition: form-data; name="AppName"
Content-ID: <AppName>

generic
--bqJky99mlBWa-ZuqjC53mG6EzbmlxB
Content-Disposition: form-data; name="data"
Content-Type: multipart/mixed; boundary=_Part_1_701508.1145579811786
Accept-Language:en-us
Content-ID: <data>

--_Part_1_701508.1145579811786
Content-Disposition: form-data; name="COMMANDTORUN"
Content-Type: application/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Accept-Language:en-us

<AppParam><id>COMMANDTORUN</id><value>sleep 99</value><type>
</type></AppParam>
--bqJky99mlBWa-ZuqjC53mG6EzbmlxB--
--_Part_1_701508.1145579811786--
' http://localhost:8080/platform/webservice/pacclient/submitapp