Dashboards & Visualizations

REST API for Splunk Dashboard update giving error for complex XML

shirlal
Engager

I have a complex Splunk Dashboard that needs to be updated through REST API.
The Dashboard was created manually, so the Dashboard XML is very large with many graphs,charts and complex search queries.

I am able to do a GET of the dashboard contents.

But when I try to update dashboard via POST and pass entire XML as eai:data, I get  the error:
Unparsable URI-encoded request data .

shirlal_0-1624869620763.png

 

When I try to pass the xml as file (request.xml) for Curl  :
curl -ku username:pwd -X POST -H "Content-Type:text/xml"  -d 'name=testdashboard' -d 'eai:data=@request.xml' https://my_splunk_url:8089/servicesNS/username/appspace/data/ui/views

<?xml version="1.0" encoding="UTF-8"?>
<response>
<messages>
<msg type="ERROR">Error parsing XML on line 1: Start tag expected, '&lt;' not found
</msg>
</messages>
</response>

In the request.xml have tried to replace <form> with &lt;form&gt;  still no luck.

Can someone please advise how to update large complex XML through REST API?

Labels (3)
Tags (2)
0 Karma
1 Solution

kamlesh_vaghela
SplunkTrust
SplunkTrust

@shirlal 

After many experiments in this week I think this shell script will help you.

#!/bin/sh
data=`cat request.xml`
param=`echo "eai:data=$data"`

res=`curl -ku admin:admin123 https://localhost:8089/servicesNS/admin/search/data/ui/views/ -d 'name=testdashboard' --data-urlencode "$param"`
echo $res

 

Thanks
KV
▄︻̷̿┻̿═━一

If any of my reply helps you to solve the problem Or gain knowledge, an upvote would be appreciated.

View solution in original post

kamlesh_vaghela
SplunkTrust
SplunkTrust

@shirlal 

After many experiments in this week I think this shell script will help you.

#!/bin/sh
data=`cat request.xml`
param=`echo "eai:data=$data"`

res=`curl -ku admin:admin123 https://localhost:8089/servicesNS/admin/search/data/ui/views/ -d 'name=testdashboard' --data-urlencode "$param"`
echo $res

 

Thanks
KV
▄︻̷̿┻̿═━一

If any of my reply helps you to solve the problem Or gain knowledge, an upvote would be appreciated.

shirlal
Engager

@kamlesh_vaghela 

Thank you this solution worked perfectly !

Tags (1)
0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...

Modernize your Splunk Apps – Introducing Python 3.13 in Splunk

We are excited to announce that the upcoming releases of Splunk Enterprise 10.2.x and Splunk Cloud Platform ...

Step into “Hunt the Insider: An Splunk ES Premier Mystery” to catch a cybercriminal ...

After a whole week of being on call, you fell asleep on your keyboard, and you hit a sequence of buttons that ...