I am trying to create a LimaCharlie Adapter of type "JSON > Events received throgh LimaCharlie webhooks" with Python.
This is my code:
import limacharlie
# My variables
lc_oid = "123"
lc_api_key = "456"
adapter_name = "fw-cisco-meraki-tromso"
adapter_secret = "vo8oW2KPwabUZL"
# Create LC Manager
manager = limacharlie.Manager(oid=lc_oid, secret_api_key=lc_api_key)
# Create a Hive
hive = limacharlie.Hive(manager, "cloud_sensor")
# Create adapter
try:
# Create LC Adapter
hive.set(limacharlie.HiveRecord(
recordName=adapter_name,
data={
"tags": ["firewalls"],
"secret": adapter_secret
}
))
except Exception as e:
# Failed to create adapter
print(f"Error could not create adapter {adapter_name}: {e}")
I get this error:
Api failure (400): {'error': 'missing data'}
When I try to read the documentation at .py#L90 I see that the HiveRecord
object takes in
recordName
and data
. Why does it give me error when I am sending in both?
From the documentation:
class HiveRecord( object ):
def __init__( self, recordName, data, api = None ):
self._api = api
self.name = recordName
self.arl = None
self.data = data.get( 'data', None )
if self.data is not None and not isinstance( self.data, dict ):
self.data = json.loads( self.data )
self.expiry = data.get( 'usr_mtd', {} ).get( 'expiry', None )
self.enabled = data.get( 'usr_mtd', {} ).get( 'enabled', None )
self.tags = data.get( 'usr_mtd', {} ).get( 'tags', None )
selfment = data.get( 'usr_mtd', {} ).get( 'comment', None )
self.etag = data.get( 'sys_mtd', {} ).get( 'etag', None )
self.createdAt = data.get( 'sys_mtd', {} ).get( 'created_at', None )
self.createdBy = data.get( 'sys_mtd', {} ).get( 'created_by', None )
self.guid = data.get( 'sys_mtd', {} ).get( 'guid', None )
self.lastAuthor = data.get( 'sys_mtd', {} ).get( 'last_author', None )
self.lastModified = data.get( 'sys_mtd', {} ).get( 'last_mod', None )
self.lastError = data.get( 'sys_mtd', {} ).get( 'last_error', None )
self.lastErrorTime = data.get( 'sys_mtd', {} ).get( 'last_error_ts', None )
If this helps anyone (and not make more confusion) here is the GUI version of LimaCharlie when I create new adapters manually: