mirror of https://github.com/MISP/PyMISP
feature: Adds new methods to add new servers in MISP
parent
0f6d7907c2
commit
f0038d4be3
|
@ -1327,3 +1327,65 @@ class PyMISP(object):
|
|||
url = urljoin(self.root_url, 'admin/organisations/delete/{}'.format(org_id))
|
||||
response = session.post(url)
|
||||
return self._check_response(response)
|
||||
|
||||
# ############## Servers ##################
|
||||
|
||||
def _set_server_organisation(self, server, organisation):
|
||||
if organisation is not None and 'type' in organisation:
|
||||
organisation_type = organisation['type']
|
||||
if organisation_type < 2:
|
||||
if 'id' in organisation:
|
||||
server['organisation_type'] = organisation_type
|
||||
server['json'] = json.dump({'id': organisation['id']})
|
||||
else:
|
||||
if 'name' in organisation and 'uuid' in organisation:
|
||||
server['organisation_type'] = organisation_type
|
||||
server['json'] = json.dumps({'name': organisation['name'], 'uuid': organisation['uuid']})
|
||||
return server
|
||||
|
||||
def _set_server_parameters(self, url, name, authkey, organisation, internal,
|
||||
push, pull, self_signed, push_rules, pull_rules,
|
||||
submitted_cert, submitted_client_cert):
|
||||
server = {}
|
||||
self._set_server_organisation(server, organisation)
|
||||
if url is not None:
|
||||
server['url'] = url
|
||||
if name is not None:
|
||||
server['name'] = name
|
||||
if authkey is not None:
|
||||
server['authkey'] = authkey
|
||||
if internal is not None:
|
||||
server['internal'] = internal
|
||||
if push is not None:
|
||||
server['push'] = push
|
||||
if pull is not None:
|
||||
server['pull'] = pull
|
||||
if self_signed is not None:
|
||||
server['self_signed'] = self_signed
|
||||
if push_rules is not None:
|
||||
server['push_rules'] = push_rules
|
||||
if pull_rules is not None:
|
||||
server['pull_rules'] = pull_rules
|
||||
if submitted_cert is not None:
|
||||
server['submitted_cert'] = submitted_cert
|
||||
if submitted_client_cert is not None:
|
||||
server['submitted_client_cert'] = submitted_client_cert
|
||||
return server
|
||||
|
||||
def add_server(self, url, name, authkey, organisation, internal=None, push=None,
|
||||
pull=None, self_signed=None, push_rules=None, pull_rules=None,
|
||||
submitted_cert=None, submitted_client_cert=None):
|
||||
new_server = self._set_server_parameters(url, name, authkey, organisation, internal,
|
||||
push, pull, self_signed, push_rules, pull_rules, submitted_cert,
|
||||
submitted_client_cert)
|
||||
session = self.__prepare_session()
|
||||
url = urljoin(self.root_url, 'servers/add')
|
||||
response = session.post(url, data=json.dumps(new_server))
|
||||
return self._check_response(response)
|
||||
|
||||
def add_server_json(self, json_file):
|
||||
session = self.__prepare_session()
|
||||
jdata = json.load(open(json_file))
|
||||
url = urljoin(self.root_url, 'servers/add')
|
||||
response = session.post(url, data=json.dumps(jdata))
|
||||
return self._check_response(response)
|
||||
|
|
Loading…
Reference in New Issue