Skip to content

Commit 0d55b72

Browse files
committed
add api for continuous activities
1 parent 8567ff6 commit 0d55b72

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import time
2+
import sys
3+
from dataikuapi.utils import DataikuException
4+
5+
class DSSContinuousActivity(object):
6+
"""
7+
A continuous activity on the DSS instance
8+
"""
9+
def __init__(self, client, project_key, recipe_id):
10+
self.client = client
11+
self.recipe_id = recipe_id
12+
self.project_key = project_key
13+
14+
def start(self, loop_params={}):
15+
"""
16+
Start the activity
17+
"""
18+
return self.client._perform_json(
19+
"POST", "/projects/%s/continuous-activities/%s/start" % (self.project_key, self.recipe_id), body=loop_params)
20+
21+
def stop(self):
22+
"""
23+
Stop the activity
24+
"""
25+
self.client._perform_empty(
26+
"POST", "/projects/%s/continuous-activities/%s/stop" % (self.project_key, self.recipe_id))
27+
28+
def get_status(self):
29+
"""
30+
Get the current status of the continuous activity
31+
32+
Returns:
33+
the state of the continuous activity, as a JSON object
34+
"""
35+
return self.client._perform_json(
36+
"GET", "/projects/%s/continuous-activities/%s/" % (self.project_key, self.recipe_id))
37+
38+
def get_recipe(self):
39+
"""
40+
Return a handle on the associated recipe
41+
"""
42+
from .recipe import DSSRecipe
43+
return DSSRecipe(self.client, self.project_key, self.recipe_id)

dataikuapi/dss/project.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .managedfolder import DSSManagedFolder
77
from .savedmodel import DSSSavedModel
88
from .job import DSSJob, DSSJobWaiter
9+
from .continuousactivity import DSSContinuousActivity
910
from .scenario import DSSScenario
1011
from .apiservice import DSSAPIService
1112
from .future import DSSFuture
@@ -727,6 +728,32 @@ def new_job_definition_builder(self, job_type='NON_RECURSIVE_FORCED_BUILD'):
727728
warnings.warn("new_job_definition_builder is deprecated, please use new_job", DeprecationWarning)
728729
return JobDefinitionBuilder(self, job_type)
729730

731+
########################################################
732+
# Continuous activities
733+
########################################################
734+
735+
def list_continuous_activities(self, as_objects=True):
736+
"""
737+
List the continuous activities in this project
738+
739+
Returns:
740+
a list of the continuous activities, each one as a JSON object, containing both the definition and the state
741+
"""
742+
list = self.client._perform_json("GET", "/projects/%s/continuous-activities/" % self.project_key)
743+
if as_objects:
744+
return [DSSContinuousActivity(self.client, a['projectKey'], a['recipeId']) for a in list]
745+
else:
746+
return list
747+
748+
def get_continuous_activity(self, recipe_id):
749+
"""
750+
Get a handler to interact with a specific continuous activities
751+
752+
Returns:
753+
A :class:`dataikuapi.dss.continuousactivity.DSSContinuousActivity` job handle
754+
"""
755+
return DSSContinuousActivity(self.client, self.project_key, recipe_id)
756+
730757
########################################################
731758
# Variables
732759
########################################################

dataikuapi/dss/recipe.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,12 @@ def get_object_discussions(self):
190190
"""
191191
return DSSObjectDiscussions(self.client, self.project_key, "RECIPE", self.recipe_name)
192192

193+
def get_continuous_activity(self):
194+
"""
195+
Return a handle on the associated recipe
196+
"""
197+
from .continuousactivity import DSSContinuousActivity
198+
return DSSContinuousActivity(self.client, self.project_key, self.recipe_name)
193199

194200
class DSSRecipeStatus(object):
195201
"""Status of a recipce.

0 commit comments

Comments
 (0)