77from elasticsearch import Elasticsearch
88import ssl
99
10- def new_client_basic_auth (host , auth_user , auth_pass , ca_certs , verify_certs ) -> Elasticsearch :
11- ctx = ssl .create_default_context (cafile = ca_certs )
12- ctx .check_hostname = False
13- ctx .verify_mode = False
14- return Elasticsearch (hosts = [host ], basic_auth = (auth_user , auth_pass ), ssl_context = ctx , verify_certs = verify_certs )
15-
16-
17- class Role ():
18- def __init__ (self , result , role_name , cluster , indicies , state , host , auth_user , auth_pass , verify_certs , ca_certs ):
19- self .role_name = role_name
20- self .cluster = cluster
21- self .indicies = indicies
22- self .state = state
23- self .result = result
24-
25- self .client = new_client_basic_auth (host = host , auth_user = auth_user , auth_pass = auth_pass , verify_certs = verify_certs , ca_certs = ca_certs )
26-
27- self .handle ()
28-
29-
30- def return_result (self ) -> dict :
31- return self .result
32-
33-
34- def handle (self ):
35- all_roles = self .get_all ()
36-
37- if self .state == 'absent' :
38- if self .role_name in all_roles :
39- res = self .delete ()
40- if res ['found' ] == True :
41- self .result ['changed' ] = True
42- self .result ['msg' ] = self .role_name + " has been deleted"
43- return
44-
45- elif self .state == 'present' :
46- if self .role_name in all_roles .raw :
47- pre_role = self .get ()
48- else :
49- pre_role = None
50-
51- res = self .put ()
52-
53- if res .raw ['role' ]['created' ] == True :
54- self .result ['changed' ] = True
55- self .result ['msg' ] = self .role_name + " has been created"
56- return
57-
58- if pre_role != None :
59- if pre_role .raw != self .get ().raw :
60- self .result ['changed' ] = True
61- self .result ['msg' ] = self .role_name + " has been updated"
62- return
63-
64- return
65-
66-
67- def get_all (self ):
68- return self .client .security .get_role ()
69-
70-
71- def get (self ):
72- return self .client .security .get_role (name = self .role_name )
73-
74-
75- def put (self ):
76- return self .client .security .put_role (name = self .role_name , cluster = self .cluster , indices = self .indicies )
77-
78-
79- def delete (self ):
80- return self .client .security .delete_role (name = self .role_name )
81-
82-
83- class User ():
84- def __init__ (self , result , user_name , full_name , password , email , roles , enabled , state , host , auth_user , auth_pass , verify_certs , ca_certs ):
85- self .user_name = user_name
86- self .full_name = full_name
87- self .password = password
88- self .email = email
89- self .roles = roles
90- self .enabled = enabled
91- self .state = state
92- self .result = result
93-
94- self .client = new_client_basic_auth (host = host , auth_user = auth_user , auth_pass = auth_pass , ca_certs = ca_certs , verify_certs = verify_certs )
95-
96- self .handle ()
97-
98-
99- def return_result (self ) -> dict :
100- return self .result
101-
102-
103- def handle (self ):
104- all_users = self .get_all ()
105-
106- if self .state == 'absent' :
107- if self .user_name in all_users :
108- res = self .delete ()
109- if res ['found' ] == True :
110- self .result ['changed' ] = True
111- self .result ['msg' ] = self .user_name + " has been deleted"
112- return
113-
114- elif self .state == 'present' :
115- if self .user_name in all_users .raw :
116- pre_user = self .get ()
117- else :
118- pre_user = None
119-
120- res = self .put ()
121-
122- if res .raw ['created' ] == True :
123- self .result ['changed' ] = True
124- self .result ['msg' ] = self .user_name + " has been created"
125- return
126-
127- if pre_user != None :
128- if pre_user .raw != self .get ().raw :
129- self .result ['changed' ] = True
130- self .result ['msg' ] = self .user_name + " has beed updated"
131- return
132-
133- return
134-
135-
136- def get_all (self ):
137- return self .client .security .get_user ()
138-
139-
140- def get (self ):
141- return self .client .security .get_user (username = self .user_name )
142-
143-
144- def put (self ):
145- return self .client .security .put_user (username = self .user_name , password = self .password , email = self .email , full_name = self .full_name , enabled = self .enabled , roles = self .roles )
146-
147-
148- def delete (self ):
149- return self .client .security .delete_user (username = self .user_name )
10+ class Api ():
11+ def new_client_basic_auth (host , auth_user , auth_pass , ca_certs , verify_certs ) -> Elasticsearch :
12+ ctx = ssl .create_default_context (cafile = ca_certs )
13+ ctx .check_hostname = False
14+ ctx .verify_mode = False
15+ return Elasticsearch (hosts = [host ], basic_auth = (auth_user , auth_pass ), ssl_context = ctx , verify_certs = verify_certs )
0 commit comments