forked from mikeghen/python_api_samples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmirror_existing_groups.py
More file actions
38 lines (31 loc) · 1.45 KB
/
mirror_existing_groups.py
File metadata and controls
38 lines (31 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# -*- coding: UTF-8 -*-
import yaml ### install the pyyaml package
from lookerapi import LookerApi
from datetime import datetime
from pprint import pprint
from argparse import ArgumentParser
### ------- HERE ARE PARAMETERS TO CONFIGURE -------
parser = ArgumentParser()
parser.add_argument("-g", "--groups", dest="groups",help="comma separated list of groups you want to create mirror groups for")
args = parser.parse_args()
host = 'localhost'
### ------- OPEN THE CONFIG FILE and INSTANTIATE API -------
f = open('config.yml')
params = yaml.load(f)
f.close()
my_host = params['hosts'][host]['host']
my_secret = params['hosts'][host]['secret']
my_token = params['hosts'][host]['token']
looker = LookerApi(host=my_host,
token=my_token,
secret = my_secret)
if args.groups:
for source_group_id in args.groups.split(','):
source_group_info = looker.get_group(group_id=source_group_id,fields='id,name')
dest_group = looker.create_group(group_name=source_group_info['name'] + " " + "(Mirror)")
create = looker.create_group_in_group(parent_group_id=dest_group['id'],child_group_id=source_group_info['id'])
else:
all_groups = looker.get_all_groups(fields='id,name')
for source_group in all_groups:
dest_group = looker.create_group(group_name=source_group['name'] + " " + "(Mirror)",fields='id')
create = looker.create_group_in_group(parent_group_id=dest_group['id'],child_group_id=source_group['id'])