This is an automated email from the ASF dual-hosted git repository.
liuxun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git
The following commit(s) were added to refs/heads/master by this push:
new d0b3a83 SUBMARINE-471. [SDK] Delete a job by pysubamrine
d0b3a83 is described below
commit d0b3a8391b126f9a341779876239702086a4dae2
Author: pingsutw <[email protected]>
AuthorDate: Wed Apr 15 18:08:21 2020 +0800
SUBMARINE-471. [SDK] Delete a job by pysubamrine
### What is this PR for?
delete Submarine server job by pysubmarine
### What type of PR is it?
[Improvement]
### Todos
* [ ] - Task
### What is the Jira issue?
https://issues.apache.org/jira/projects/SUBMARINE/issues/SUBMARINE-471
### How should this be tested?
https://github.com/pingsutw/hadoop-submarine/runs/588588940
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: pingsutw <[email protected]>
Closes #267 from pingsutw/SUBMARINE-471 and squashes the following commits:
bf64149 [pingsutw] SUBMARINE-471. [SDK] Delete a job by pysubamrine
---
submarine-sdk/pysubmarine/example/client/README.md | 10 +++++++---
submarine-sdk/pysubmarine/submarine/job/__init__.py | 4 ++--
.../pysubmarine/submarine/job/submarine_job_client.py | 13 ++++++++++++-
submarine-sdk/pysubmarine/tests/client/test_client.py | 12 ++++++++++--
4 files changed, 31 insertions(+), 8 deletions(-)
diff --git a/submarine-sdk/pysubmarine/example/client/README.md
b/submarine-sdk/pysubmarine/example/client/README.md
index 4095a7c..bdd5d7b 100644
--- a/submarine-sdk/pysubmarine/example/client/README.md
+++ b/submarine-sdk/pysubmarine/example/client/README.md
@@ -18,15 +18,19 @@ manage submarine tasks
- [Deploy Submarine Server on
Kubernetes](https://github.com/apache/submarine/blob/master/docs/submarine-server/setup-kubernetes.md)
- [Deploy Tensorflow Operator on
Kubernetes](https://github.com/apache/submarine/blob/master/docs/submarine-server/ml-frameworks/tensorflow.md)
-## Submit Job
+#### Submit Job
1. Create a job description for submarine client.
e.g.[mnist.json](./mnist.json)
2. Create Submarine job client
```python
-from submarine.job import SubmarineJOBClient
-client = SubmarineJOBClient('localhost', 8080)
+from submarine.job import SubmarineJobClient
+client = SubmarineJobClient('localhost', 8080)
```
3. Submit job
```python
response = client.submit_job('mnist.json')
```
+#### Delete job
+```python
+response = client.delete_job('job_1586791302310_0005')
+```
diff --git a/submarine-sdk/pysubmarine/submarine/job/__init__.py
b/submarine-sdk/pysubmarine/submarine/job/__init__.py
index 3eba92f..c959729 100644
--- a/submarine-sdk/pysubmarine/submarine/job/__init__.py
+++ b/submarine-sdk/pysubmarine/submarine/job/__init__.py
@@ -13,6 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from submarine.job.submarine_job_client import SubmarineJOBClient
+from submarine.job.submarine_job_client import SubmarineJobClient
-__all__ = ['SubmarineJOBClient']
+__all__ = ['SubmarineJobClient']
diff --git a/submarine-sdk/pysubmarine/submarine/job/submarine_job_client.py
b/submarine-sdk/pysubmarine/submarine/job/submarine_job_client.py
index 6534ae2..6aead7d 100644
--- a/submarine-sdk/pysubmarine/submarine/job/submarine_job_client.py
+++ b/submarine-sdk/pysubmarine/submarine/job/submarine_job_client.py
@@ -23,7 +23,7 @@ _PATH_PREFIX = "/api/v1/"
JOBS = 'jobs'
-class SubmarineJOBClient:
+class SubmarineJobClient:
def __init__(self, hostname, port):
self.base_url = 'http://' + hostname + ':' + str(port)
@@ -39,3 +39,14 @@ class SubmarineJOBClient:
response = http_request(self.base_url, endpoint=endpoint,
method='POST', json_body=json_body)
return response
+
+ def delete_job(self, job_id):
+ """
+ delete a submarine job
+ :param job_id: submarine job ID
+ :return: requests.Response: the detailed info about deleted job
+ """
+ endpoint = _PATH_PREFIX + JOBS + '/' + job_id
+ response = http_request(self.base_url, endpoint=endpoint,
+ method='DELETE', json_body=None)
+ return response
diff --git a/submarine-sdk/pysubmarine/tests/client/test_client.py
b/submarine-sdk/pysubmarine/tests/client/test_client.py
index 0f4c9c2..2ae59ca 100644
--- a/submarine-sdk/pysubmarine/tests/client/test_client.py
+++ b/submarine-sdk/pysubmarine/tests/client/test_client.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from submarine.job import SubmarineJOBClient
+from submarine.job import SubmarineJobClient
import mock
import pytest
import json
@@ -31,7 +31,7 @@ def output_json_filepath():
@mock.patch('submarine.job.submarine_job_client.http_request')
class TestSubmarineJobClient:
def test_submit_job(self, mock_http_request, output_json_filepath):
- client = SubmarineJOBClient('submarine', 8080)
+ client = SubmarineJobClient('submarine', 8080)
mock_http_request.return_value = {'jobId': 'job_1582524742595_0040',
'name': 'submarine', 'identifier':
'test'}
response = client.submit_job(output_json_filepath)
@@ -46,3 +46,11 @@ class TestSubmarineJobClient:
assert response['jobId'] == 'job_1582524742595_0040'
assert response['name'] == 'submarine'
assert response['identifier'] == 'test'
+
+ def test_delete_job(self, mock_http_request):
+ client = SubmarineJobClient('submarine', 8080)
+ client.delete_job('job_1582524742595_004')
+ mock_http_request.assert_called_with('http://submarine:8080',
+ json_body=None,
+
endpoint='/api/v1/jobs/job_1582524742595_004',
+ method='DELETE')
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]