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]

Reply via email to