Exemple #1
0
class StreamingAction(Action):
    def __init__(self, auth=None, streaming=None, url=DEFAULT_URL,
                 version=DEFAULT_VERSION, timeout=DEFAULT_TIMEOUT, io_loop=None):
        self.auth = auth or {}
        self._streaming = streaming
        self._jsonunpacker = JSONUnpacker()

        self._lasterr = None
        super(StreamingAction, self).__init__(url, version, timeout, io_loop)

    def _prepare_auth_header_value(self):
        username = self.auth.get('username', 'username')
        password = self.auth.get('password', 'password')
        return base64.b64encode('{0}:{1}'.format(username, password))

    def _handle_message(self, message):
        if "stream" in message:
            log.info(message["stream"].rstrip('\n'))
        elif "error" in message:
            error_msg = message["error"].rstrip('\n')
            self._lasterr = DockerException(error_msg)
            log.error(error_msg)

        if self._streaming is not None:
            self._streaming(message)

    def _on_body(self, data):
        self._jsonunpacker.feed(data)
        for i in self._jsonunpacker:
            self._handle_message(i)
Exemple #2
0
    def __init__(self, auth=None, streaming=None, url=DEFAULT_URL,
                 version=DEFAULT_VERSION, timeout=DEFAULT_TIMEOUT, io_loop=None):
        self.auth = auth or {}
        self._streaming = streaming
        self._jsonunpacker = JSONUnpacker()

        self._lasterr = None
        super(StreamingAction, self).__init__(url, version, timeout, io_loop)
Exemple #3
0
def test_json():
    j = JSONUnpacker()
    data = {"A": 1}
    js = json.dumps(data)
    j.feed(js)
    j.feed(js)
    j.feed("A")
    for i in j:
        assert i == data

    assert j.buff == "A"