Skip to content
This repository has been archived by the owner on Mar 13, 2022. It is now read-only.

Commit

Permalink
Add property returncode to WSClient
Browse files Browse the repository at this point in the history
This will be familiar for Python users as subprocess.Popen has
the same attribute. Also, the behavior is such the returncode returns
a None value if the process was not run yet.

Other than that, when the process exists with a numerical code this will
be the value of the return code. If the command executed successfully
the return value will be 0.
  • Loading branch information
Oz Tiram committed Sep 17, 2019
1 parent 4c1ab55 commit 69570ac
Showing 1 changed file with 23 additions and 4 deletions.
27 changes: 23 additions & 4 deletions stream/ws_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,19 @@

from kubernetes.client.rest import ApiException

import select
import certifi
import time
import collections
from websocket import WebSocket, ABNF, enableTrace
import six
import select
import ssl
import time

import six
import yaml

from six.moves.urllib.parse import urlencode, quote_plus, urlparse, urlunparse

from websocket import WebSocket, ABNF, enableTrace

STDIN_CHANNEL = 0
STDOUT_CHANNEL = 1
STDERR_CHANNEL = 2
Expand Down Expand Up @@ -203,6 +207,21 @@ def run_forever(self, timeout=None):
else:
while self.is_open():
self.update(timeout=None)
@property
def returncode(self):
"""
The return code, A None value indicates that the process hasn't
terminated yet.
"""
if self.is_open():
return None
else:
err = self.read_channel(ERROR_CHANNEL)
err = yaml.safe_load(err)
if err['status'] == "Success":
return 0
return int(err['details']['causes'][0]['message'])


def close(self, **kwargs):
"""
Expand Down

0 comments on commit 69570ac

Please sign in to comment.