@@ -25,6 +25,41 @@ class CASManagement(Service):
25
25
26
26
list_servers , get_server , _ , _ = Service ._crud_funcs ("/servers" , "server" )
27
27
28
+ @classmethod
29
+ def create_session (cls , properties : dict , server : str ):
30
+ """
31
+ Creates a new session on the CAS server.
32
+
33
+ Params
34
+ ------
35
+ properties : dict
36
+ Properties of the session.
37
+ Valid keys are `authenticationType` (required),
38
+ `locale`, `name`, `nodeCount`, `timeOut`.
39
+ server : str
40
+ Name of the CAS server. Defaults to `cas-shared-default`.
41
+
42
+ Returns
43
+ -------
44
+ RestObj
45
+ """
46
+ server = server or DEFAULT_SERVER
47
+
48
+ allowedBodyKeys = ["authenticationType" , "locale" , "name" ,
49
+ "nodeCount" , "replace" , "timeOut" ]
50
+
51
+ if not all (key in allowedBodyKeys for key in properties .keys ()) :
52
+ raise ValueError ("The only acceptable properties are %s." % (allowedBodyKeys ))
53
+
54
+ if "authenticationType" not in properties .keys ():
55
+ raise ValueError ("The property 'authenticationType' is required." )
56
+
57
+ sess = cls .post (
58
+ "/servers/%s/sessions" % (server ),
59
+ json = properties
60
+ )
61
+ return sess
62
+
28
63
@classmethod
29
64
def list_caslibs (cls , server :Union [str ,dict ], filter_ :str = None ):
30
65
"""List caslibs available on a server.
0 commit comments