Not that i'm aware of. You could pretty easily write a property source to do this though. This property source does something similar, it takes the snmp obtained sysName and makes it the display name:
/*******************************************************************************
* © 2007-2019 - LogicMonitor, Inc. All rights reserved.
******************************************************************************/
import com.santaba.agent.groovyapi.snmp.Snmp
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import org.apache.commons.codec.binary.Hex
import org.apache.http.client.methods.*
import org.apache.http.entity.ContentType
import org.apache.http.entity.StringEntity
import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClients
import org.apache.http.util.EntityUtils
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
lm_id = hostProps.get("weenig.displayName.lmaccess.id")
lm_key = hostProps.get("weenig.displayName.lmaccess.key")
lm_account = hostProps.get("weenig.displayName.lmaccount")
if (!(lm_id) || !(lm_key) || !(lm_account)){
println("Missing API credentials.")
return 3
}
device_id = hostProps.get("system.deviceId")
curr_name = hostProps.get("system.displayName")
try {
sysname = hostProps.get("system.sysname")
} catch (Exception ex) {return 2}
def LMAPI(String _verb, _accessId, _accessKey, _account, GString _resourcePath, String _queryParameters, String _data){
responseDict = [:]
url = 'https://' + _account + '.logicmonitor.com' + '/santaba/rest' + _resourcePath + _queryParameters
StringEntity params = new StringEntity(_data, ContentType.APPLICATION_JSON)
epoch = System.currentTimeMillis()
requestVars = _verb + epoch + _data + _resourcePath
hmac = Mac.getInstance('HmacSHA256')
secret = new SecretKeySpec(_accessKey.getBytes(), 'HmacSHA256')
hmac.init(secret)
hmac_signed = Hex.encodeHexString(hmac.doFinal(requestVars.getBytes()))
signature = hmac_signed.bytes.encodeBase64()
if (_verb == 'PATCH'){
CloseableHttpClient httpclient = HttpClients.createDefault()
http_request = new HttpPatch(url)
http_request.addHeader("Authorization", "LMv1 " + _accessId + ":" + signature + ":" + epoch)
http_request.setHeader("Accept", "application/json")
http_request.setHeader("Content-type", "application/json")
http_request.setHeader("X-Version", "2")
http_request.setEntity(params)
response = httpclient.execute(http_request)
responseBody = EntityUtils.toString(response.getEntity())
code = response.getStatusLine().getStatusCode()
}
responseDict['code'] = code ?: null
responseDict['body'] = responseBody ?: null
return responseDict
}
if (curr_name != sysname) {
resourcePath = "/device/devices/${device_id}"
queryParameters = "?patchFields=displayName"
data = JsonOutput.toJson([displayName: sysname])
result = LMAPI("PATCH", lm_id, lm_key, lm_account, resourcePath, queryParameters, data)
println("displayName.from=system.sysname")
if (result.code.toString() != '200')
{
errorMessage = new JsonSlurper().parseText(result.body)['errorMessage']
println("Error THX-1138 occurred. See http://bitly.com/98K8eH for more details.\nFailed to update/set \"displayName\" (http.${result.code.toString()}): ${errorMessage}")
return 1
}
}
return 0