Skip to content

Commit 5f6adfe

Browse files
committed
add pause resume
1 parent f40a653 commit 5f6adfe

2 files changed

Lines changed: 59 additions & 3 deletions

File tree

roboflow/adapters/deploymentapi.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ class DeploymentApiError(Exception):
99
pass
1010

1111

12-
def add_deployment(api_key, machine_type, duration, delete_on_expiration, deployment_name, inference_version):
12+
def add_deployment(api_key, creator_email, machine_type, duration, delete_on_expiration, deployment_name, inference_version):
1313
url = f"{DEDICATED_DEPLOYMENT_URL}/add"
1414
params = {
1515
"api_key": api_key,
16+
"creator_email": creator_email,
1617
# "security_level": security_level,
1718
"duration": duration,
1819
"delete_on_expiration": delete_on_expiration,
@@ -69,6 +70,22 @@ def get_deployment_usage(api_key, deployment_name, from_timestamp, to_timestamp)
6970
return response.status_code, response.json()
7071

7172

73+
def pause_deployment(api_key, deployment_name):
74+
url = f"{DEDICATED_DEPLOYMENT_URL}/pause"
75+
response = requests.post(url, json={"api_key": api_key, "deployment_name": deployment_name})
76+
if response.status_code != 200:
77+
return response.status_code, response.text
78+
return response.status_code, response.json()
79+
80+
81+
def resume_deployment(api_key, deployment_name):
82+
url = f"{DEDICATED_DEPLOYMENT_URL}/resume"
83+
response = requests.post(url, json={"api_key": api_key, "deployment_name": deployment_name})
84+
if response.status_code != 200:
85+
return response.status_code, response.text
86+
return response.status_code, response.json()
87+
88+
7289
def delete_deployment(api_key, deployment_name):
7390
url = f"{DEDICATED_DEPLOYMENT_URL}/delete"
7491
response = requests.post(url, json={"api_key": api_key, "deployment_name": deployment_name})

roboflow/deployment.py

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ def add_deployment_parser(subparsers):
6161
deployment_usage_deployment_parser = deployment_subparsers.add_parser(
6262
"usage_deployment", help="get usage of a specific dedicated deployments"
6363
)
64+
deployment_pause_parser = deployment_subparsers.add_parser("pause", help="pause a dedicated deployment")
65+
deployment_resume_parser = deployment_subparsers.add_parser("resume", help="resume a dedicated deployment")
6466
deployment_delete_parser = deployment_subparsers.add_parser("delete", help="delete a dedicated deployment")
6567
deployment_log_parser = deployment_subparsers.add_parser("log", help="show log info for a dedicated deployment")
6668

@@ -77,7 +79,11 @@ def add_deployment_parser(subparsers):
7779
# "-s", "--security_level", help="security level (protected)", default="protected"
7880
# )
7981
deployment_add_parser.add_argument(
80-
"-m", "--machine_type", help="machine type, run `roboflow deployment machine_type` to see available options"
82+
"-m", "--machine_type", help="machine type, run `roboflow deployment machine_type` to see available options",
83+
required=True
84+
)
85+
deployment_add_parser.add_argument(
86+
"-e", "--creator_email", help="your email address", required=True
8187
)
8288
deployment_add_parser.add_argument(
8389
"-t",
@@ -87,7 +93,7 @@ def add_deployment_parser(subparsers):
8793
default=3,
8894
)
8995
deployment_add_parser.add_argument(
90-
"-e", "--no_delete_on_expiration", help="keep when expired (default: False)", action="store_true"
96+
"-nodel", "--no_delete_on_expiration", help="keep when expired (default: False)", action="store_true"
9197
)
9298
deployment_add_parser.add_argument(
9399
"-v",
@@ -127,6 +133,14 @@ def add_deployment_parser(subparsers):
127133
deployment_usage_deployment_parser.add_argument(
128134
"-t", "--to_timestamp", help="end time stamp in ISO8601 format (YYYY-MM-DD HH:MM:SS)", default=None
129135
)
136+
137+
deployment_pause_parser.set_defaults(func=pause_deployment)
138+
deployment_pause_parser.add_argument("-a", "--api_key", help="api key")
139+
deployment_pause_parser.add_argument("deployment_name", help="deployment name")
140+
141+
deployment_resume_parser.set_defaults(func=resume_deployment)
142+
deployment_resume_parser.add_argument("-a", "--api_key", help="api key")
143+
deployment_resume_parser.add_argument("deployment_name", help="deployment name")
130144

131145
deployment_delete_parser.set_defaults(func=delete_deployment)
132146
deployment_delete_parser.add_argument("-a", "--api_key", help="api key")
@@ -163,6 +177,7 @@ def add_deployment(args):
163177
exit(1)
164178
status_code, msg = deploymentapi.add_deployment(
165179
api_key,
180+
args.creator_email,
166181
# args.security_level,
167182
args.machine_type,
168183
args.duration,
@@ -241,6 +256,30 @@ def get_deployment_usage(args):
241256
print(json.dumps(msg, indent=2))
242257

243258

259+
def pause_deployment(args):
260+
api_key = args.api_key or load_roboflow_api_key(None)
261+
if api_key is None:
262+
print("Please provide an api key")
263+
exit(1)
264+
status_code, msg = deploymentapi.pause_deployment(api_key, args.deployment_name)
265+
if status_code != 200:
266+
print(f"{status_code}: {msg}")
267+
exit(status_code)
268+
print(json.dumps(msg, indent=2))
269+
270+
271+
def resume_deployment(args):
272+
api_key = args.api_key or load_roboflow_api_key(None)
273+
if api_key is None:
274+
print("Please provide an api key")
275+
exit(1)
276+
status_code, msg = deploymentapi.resume_deployment(api_key, args.deployment_name)
277+
if status_code != 200:
278+
print(f"{status_code}: {msg}")
279+
exit(status_code)
280+
print(json.dumps(msg, indent=2))
281+
282+
244283
def delete_deployment(args):
245284
api_key = args.api_key or load_roboflow_api_key(None)
246285
if api_key is None:

0 commit comments

Comments
 (0)