You can use the Application Programmable Interface (API) on the Management Center (MC) to push a policy object using curl. For reference every MC contains a guide located at https://YourMC_IP_or_FQDN:8082/help/api. There are three methods supported - GET, PUT and POST
You can first use GET to find out the UUID of the object you wish to update as well as the contents and json syntax of the object.
NOTE: All the object accessible via API on MC are in json format.curl -k -H "X-Auth-Token: YOUR_API_TOKEN
yourMC:"
-X GET https://8082/api/policies
NOTE: You can use BasicAuth providing your username and password but the API is more secure option. Should you wish to use the credentials in plain text use the "-u"
switch instead of the " -H "X-Auth-Token: {VALUE.EN_US} "
switch
The output of this command is all the policy objects on the MC. You can restrict access to only a single policy object via "Roles" applied to the user that has the API key.
}, {
"uuid" : "2AD0B755-9920-48A0-AD60-CD7FA9065FF3",
"name" : "Untitled",
"contentType" : "cpl",
"description" : "",
"referenceId" : "Untitled",
"tenant" : null,
"author" : "admin",
"shared" : false,
"replaceVariables" : true
To update the content of the policy object use the below syntax and save this file on any machine that can run curl.
{ "content" : {
"sections" : [ {
"name" : "Untitled",
"purpose" : "CustomSolution",
"defaultPolicy" : "I used an API token with no user to update the policy. This is where the policy goes",
"overridePolicy" : null,
"mandatoryPolicy" : null
} ],
"editMode" : "SECTIONED",
"referenceDeviceUuid" : null
},
"schemaVersion" : "1.0",
"contentType" : "cpl",
"changeDescription" : "This is where you put a comment about the change"
}
}
The curl command to push the change with the above syntax is:curl -k -H "X-Auth-Token:
{YOURTOKEN.EN_US}" -d "@/path/path/policy-file.txt" -H "Content-Type: application/json" -X POST https://
yourMC:8082/api/policies/{
YourUUID}content
If executed succesfully the command will return the new content of the new policy. Otherwise you get a HTTP status code (eg 404, 500, 401)