Skip to content

Commit ccafa69

Browse files
authored
Merge pull request #45 from mindsdb/del-ds-cascade
Delete datasource cascade
2 parents 49f1ab4 + ac987b5 commit ccafa69

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

minds/datasources/datasources.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def create(self, ds_config: DatabaseConfig, replace=False):
3838
if replace:
3939
try:
4040
self.get(name)
41-
self.drop(name)
41+
self.drop(name, force=True)
4242
except exc.ObjectNotFound:
4343
...
4444

@@ -76,11 +76,15 @@ def get(self, name: str) -> Datasource:
7676
raise exc.ObjectNotSupported(f'Wrong type of datasource: {name}')
7777
return Datasource(**data)
7878

79-
def drop(self, name: str):
79+
def drop(self, name: str, force=False):
8080
"""
8181
Drop datasource by name
8282
8383
:param name: name of datasource
84+
:param force: if True - remove from all minds, default: False
8485
"""
86+
data = None
87+
if force:
88+
data = {'cascade': True}
8589

86-
self.api.delete(f'/datasources/{name}')
90+
self.api.delete(f'/datasources/{name}', data=data)

minds/rest_api.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,12 @@ def get(self, url):
3737
_raise_for_status(resp)
3838
return resp
3939

40-
def delete(self, url):
41-
resp = requests.delete(self.base_url + url, headers=self._headers())
40+
def delete(self, url, data=None):
41+
resp = requests.delete(
42+
self.base_url + url,
43+
headers=self._headers(),
44+
json=data
45+
)
4246

4347
_raise_for_status(resp)
4448
return resp

tests/integration/test_base_flow.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def test_datasources():
3131

3232
# remove previous object
3333
try:
34-
client.datasources.drop(example_ds.name)
34+
client.datasources.drop(example_ds.name, force=True)
3535
except ObjectNotFound:
3636
...
3737

0 commit comments

Comments
 (0)