Skip to content

Commit

Permalink
feat: support kibana space id for backup
Browse files Browse the repository at this point in the history
  • Loading branch information
selivan committed Jun 22, 2020
1 parent 1a225b7 commit 9bdb94c
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions kibana-backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,13 @@
'visualization', 'search', 'dashboard', 'url')


def backup(kibana_url, user, password):
def backup(kibana_url, space_id, user, password):
"""Return string with newline-delimitered json containing Kibana saved objects"""
saved_objects = {}
url = kibana_url + '/api/saved_objects/_export'
if len(space_id):
url = kibana_url + '/s/' + space_id + '/api/saved_objects/_export'
else:
url = kibana_url + '/api/saved_objects/_export'
for obj_type in saved_objects_types:
# print(obj_type)
r = requests.post(
Expand All @@ -33,10 +36,13 @@ def backup(kibana_url, user, password):
return '\n'.join(saved_objects.values())


def restore(kibana_url, user, password, text):
def restore(kibana_url, space_id, user, password, text):
"""Restore given newline-delimitered json containing saved objects to Kibana"""

url = kibana_url + '/api/saved_objects/_import?overwrite=true'
if len(space_id):
url = kibana_url + '/s/' + space_id + '/api/saved_objects/_import?overwrite=true'
else:
url = kibana_url + '/api/saved_objects/_import?overwrite=true'
print('POST ' + url)
r = requests.post(
url,
Expand All @@ -55,11 +61,13 @@ def restore(kibana_url, user, password, text):
)
args_parser.add_argument('action', choices=['backup', 'restore'])
args_parser.add_argument('--kibana-url', default='http://127.0.0.1:5601', help='URL to access Kibana API')
args_parser.add_argument('--space-id', default='',
help='Kibana space id. If not set the default space will be used.')
args_parser.add_argument('--user', default='', help='Kibana user')
args_parser.add_argument('--password', default='', help='Kibana password')
args = args_parser.parse_args()

if args.action == 'backup':
print(backup(args.kibana_url, args.user, args.password))
print(backup(args.kibana_url, args.space_id, args.user, args.password))
elif args.action == 'restore':
restore(args.kibana_url, args.user, args.password, ''.join(sys.stdin.readlines()))
restore(args.kibana_url, args.space_id, args.user, args.password, ''.join(sys.stdin.readlines()))

0 comments on commit 9bdb94c

Please sign in to comment.