Skip to content

Commit 5780a0e

Browse files
authored
Merge pull request #643 from DarthMax/support_session_sizing
Forward memory for dedicated sessions
2 parents a9a8629 + 17ff489 commit 5780a0e

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

graphdatascience/session/aura_api.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ def extract_id(uri: str) -> str:
6262

6363
return host.split(".")[0].split("-")[0]
6464

65-
def create_session(self, name: str, dbid: str, pwd: str) -> SessionDetails:
65+
def create_session(self, name: str, dbid: str, pwd: str, memory: str) -> SessionDetails:
6666
response = req.post(
6767
f"{self._base_uri}/v1beta5/data-science/sessions",
6868
headers=self._build_header(),
69-
json={"name": name, "instance_id": dbid, "password": pwd},
69+
json={"name": name, "instance_id": dbid, "password": pwd, "memory": memory},
7070
)
7171

7272
response.raise_for_status()

graphdatascience/session/dedicated_sessions.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def get_or_create(
5252
if existing_session:
5353
session_id = existing_session.id
5454
else:
55-
create_details = self._create_session(session_name, dbid, db_connection.uri, password)
55+
create_details = self._create_session(session_name, dbid, db_connection.uri, password, memory)
5656
session_id = create_details.id
5757

5858
wait_result = self._aura_api.wait_for_session_running(session_id, dbid)
@@ -105,7 +105,9 @@ def _find_existing_session(self, session_name: str, dbid: str) -> Optional[Sessi
105105

106106
return matched_sessions[0]
107107

108-
def _create_session(self, session_name: str, dbid: str, dburi: str, pwd: str) -> SessionDetails:
108+
def _create_session(
109+
self, session_name: str, dbid: str, dburi: str, pwd: str, memory: SessionMemory
110+
) -> SessionDetails:
109111
db_instance = self._aura_api.list_instance(dbid)
110112
if not db_instance:
111113
raise ValueError(f"Could not find AuraDB instance with the uri `{dburi}`")
@@ -114,6 +116,7 @@ def _create_session(self, session_name: str, dbid: str, dburi: str, pwd: str) ->
114116
name=session_name,
115117
dbid=dbid,
116118
pwd=pwd,
119+
memory=memory.value,
117120
)
118121
return create_details
119122

graphdatascience/tests/unit/test_aura_api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def test_create_session(requests_mock: Mocker) -> None:
3737
},
3838
)
3939

40-
result = api.create_session("name-0", "dbid-1", "pwd-2")
40+
result = api.create_session("name-0", "dbid-1", "pwd-2", "4G")
4141

4242
assert result == SessionDetails(
4343
id="id0",

graphdatascience/tests/unit/test_dedicated_sessions.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ def __init__(
4343
self._status_after_creating = status_after_creating
4444
self._size_estimation = size_estimation or EstimationDetails("1GB", "8GB", False)
4545

46-
def create_session(self, name: str, dbid: str, pwd: str) -> SessionDetails:
46+
def create_session(self, name: str, dbid: str, pwd: str, memory: str) -> SessionDetails:
4747
details = SessionDetails(
4848
id=f"{dbid}-ffff{self.id_counter}",
4949
name=name,
5050
instance_id=dbid,
51-
memory="2GB",
51+
memory=memory,
5252
status="Creating",
5353
created_at=datetime.fromisoformat("2021-01-01T00:00:00+00:00"),
5454
host="foo.bar",
@@ -148,7 +148,7 @@ def aura_api() -> AuraApi:
148148
def test_list_session(aura_api: AuraApi) -> None:
149149
_setup_db_instance(aura_api)
150150
session = aura_api.create_session(
151-
name="gds-session-my-session-name", dbid=aura_api.list_instances()[0].id, pwd="some_pwd"
151+
name="gds-session-my-session-name", dbid=aura_api.list_instances()[0].id, pwd="some_pwd", memory="8GB"
152152
)
153153
sessions = DedicatedSessions(aura_api)
154154

@@ -214,8 +214,8 @@ def test_get_or_create(mocker: MockerFixture, aura_api: AuraApi) -> None:
214214

215215
def test_get_or_create_duplicate_session(aura_api: AuraApi) -> None:
216216
db = _setup_db_instance(aura_api)
217-
aura_api.create_session("one", db.id, "1234")
218-
aura_api.create_session("one", db.id, "12345")
217+
aura_api.create_session("one", db.id, "1234", memory="1GB")
218+
aura_api.create_session("one", db.id, "12345", memory="1GB")
219219

220220
sessions = DedicatedSessions(aura_api)
221221

@@ -226,8 +226,8 @@ def test_get_or_create_duplicate_session(aura_api: AuraApi) -> None:
226226
def test_delete_session(aura_api: AuraApi) -> None:
227227
db1 = aura_api.create_instance("db1", "1GB", "aura", "leipzig").id
228228
db2 = aura_api.create_instance("db2", "1GB", "aura", "dresden").id
229-
aura_api.create_session("one", db1, "12345")
230-
aura_api.create_session("other", db2, "123123")
229+
aura_api.create_session("one", db1, "12345", memory="8GB")
230+
aura_api.create_session("other", db2, "123123", memory="8GB")
231231

232232
sessions = DedicatedSessions(aura_api)
233233

@@ -237,7 +237,7 @@ def test_delete_session(aura_api: AuraApi) -> None:
237237

238238
def test_delete_nonexisting_session(aura_api: AuraApi) -> None:
239239
db1 = aura_api.create_instance("db1", "1gb", "aura", "leipzig").id
240-
aura_api.create_session("one", db1, "12345")
240+
aura_api.create_session("one", db1, "12345", memory="8GB")
241241
sessions = DedicatedSessions(aura_api)
242242

243243
assert sessions.delete("other") is False
@@ -246,8 +246,8 @@ def test_delete_nonexisting_session(aura_api: AuraApi) -> None:
246246

247247
def test_delete_nonunique_session(aura_api: AuraApi) -> None:
248248
db1 = aura_api.create_instance("db1", "1GB", "aura", "leipzig").id
249-
aura_api.create_session("one", db1, "12345")
250-
aura_api.create_session("one", db1, "12345")
249+
aura_api.create_session("one", db1, "12345", memory="8GB")
250+
aura_api.create_session("one", db1, "12345", memory="8GB")
251251
sessions = DedicatedSessions(aura_api)
252252

253253
with pytest.raises(

0 commit comments

Comments
 (0)