Skip to content

Commit 50742a6

Browse files
add create_session method
1 parent 8cc3d4e commit 50742a6

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/sasctl/_services/cas_management.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,41 @@ class CASManagement(Service):
2525

2626
list_servers, get_server, _, _ = Service._crud_funcs("/servers", "server")
2727

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+
2863
@classmethod
2964
def list_caslibs(cls, server:Union[str,dict], filter_:str=None):
3065
"""List caslibs available on a server.

0 commit comments

Comments
 (0)