Exemple #1
0
    def __init__(self, cmd, capturestderr=0, bufsize=-1):
        """The parameter 'cmd' is the shell command to execute in a
        sub-process.  Can be either a sequence of executable
        and arguments, or a shell command.
        The 'capturestderr' flag, if true, specifies that
        the object should capture standard error output of the child process.
        The default is false.  If the 'bufsize' parameter is specified, it
        specifies the size of the I/O buffers to/from the child process.
        """
        self.process = shellexecute(cmd)
        self._tochild = self.process.getOutputStream()
        self._fromchild = self.process.getInputStream()
        if capturestderr:
            self._childerr = self.process.getErrorStream()
        else:
            self._childerr = None
        import threading
        self.childWaiterLock = threading.Lock()

        if bufsize > 0:
            self._tochild = BufferedOutputStream(self._tochild, bufsize)
            self._fromchild = BufferedInputStream(self._fromchild, bufsize)
            if self._childerr:
                self._childerr = BufferedInputStream(self._childerr, bufsize)

        self.tochild = PyFile(self._tochild)
        self.fromchild = PyFile(self._fromchild)
        if self._childerr:
            self.childerr = PyFile(self._childerr)
Exemple #2
0
    def write(self, archive, path, dest):
        archive.putArchiveEntry(ZipArchiveEntry(dest))

        input = BufferedInputStream(FileInputStream(path))

        IOUtils.copy(input, archive)
        input.close()
        archive.closeArchiveEntry()
Exemple #3
0
 def _load_certificates(self, f):
     cf = CertificateFactory.getInstance("X.509")
     try:
         for cert in cf.generateCertificates(BufferedInputStream(f)):
             self._trust_store.setCertificateEntry(str(uuid.uuid4()), cert)
     except CertificateParsingException:
         log.debug("Failed to parse certificate", exc_info=True)
         raise
Exemple #4
0
            def __init__(self, conn):
                self.conn = conn
                self.url = conn.getURL().toExternalForm()

                fields = self.conn.getHeaderFields()
                self.headers = Headers()
                for key in fields:
                    if key != None:
                        self.headers[key.lower()] = conn.getHeaderField(key)
                self.bs = BufferedInputStream(self.conn.getInputStream())
Exemple #5
0
def _get_ca_certs_trust_manager(ca_certs):
    trust_store = KeyStore.getInstance(KeyStore.getDefaultType())
    trust_store.load(None, None)
    with open(ca_certs) as f:
        cf = CertificateFactory.getInstance("X.509")
        for cert in cf.generateCertificates(BufferedInputStream(f)):
            trust_store.setCertificateEntry(str(uuid.uuid4()), cert)

    tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
    tmf.init(trust_store)
    return tmf
Exemple #6
0
    def reset(self):
        self.close()

        self._fed = PipedOutputStream()
        self._feeder = BufferedInputStream(PipedInputStream(self._fed))
        self._fed.write('<?xml version="1.0" encoding="%s"?>' % self._encoding)

        ipf = XMLInputFactory.newInstance()
        ipf.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, True)
        self._sr = ipf.createXMLStreamReader(self._feeder)
        self._er = ipf.createXMLEventReader(self._sr)
Exemple #7
0
    def fetchData(self, place):

        url = URL("https://www.yr.no/place/" + place + "/forecast.xml")
        connection = CAST(url.openConnection(), HttpURLConnection)
        connection.setInstanceFollowRedirects(True)

        try:
            stream = BufferedInputStream(connection.getInputStream())
        except:
            return None

        return stream
Exemple #8
0
def _get_ca_certs_trust_manager(ca_certs=None):
    trust_store = KeyStore.getInstance(KeyStore.getDefaultType())
    trust_store.load(None, None)
    num_certs_installed = 0
    if ca_certs is not None:
        with open(ca_certs) as f:
            cf = CertificateFactory.getInstance("X.509")
            for cert in cf.generateCertificates(BufferedInputStream(f)):
                trust_store.setCertificateEntry(str(uuid.uuid4()), cert)
                num_certs_installed += 1
    tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
    tmf.init(trust_store)
    log.debug("Installed %s certificates", num_certs_installed, extra={"sock": "*"})
    return tmf
Exemple #9
0
def copy_zip_file(path, output_jar):
    try:
        with open(path) as f:
            with closing(BufferedInputStream(f)) as bis:
                if not skip_zip_header(bis):
                    return False
                with closing(ZipInputStream(bis)) as input_zip:
                    try:
                        output_jar.copy_zip_input_stream(input_zip, "Lib")
                        return True
                    except ZipException:
                        return False
    except IOError:
        return False
Exemple #10
0
    def __init__(self, encoding=ENCODING):
        self._depth = 0
        self._buffer = ''
        self.handler = IncrementalHandler()

        self._encoding = encoding

        self._fed = PipedOutputStream()
        self._feeder = BufferedInputStream(PipedInputStream(self._fed))
        self._fed.write('<?xml version="1.0" encoding="%s"?>' % encoding)

        ipf = XMLInputFactory.newInstance()
        ipf.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, True)
        self._sr = ipf.createXMLStreamReader(self._feeder)
        self._er = ipf.createXMLEventReader(self._sr)
Exemple #11
0
    def loadProperties(self, source):
        """ Load a Java properties file into a Dictionary. """
        result = {}

        # name provided, use file
        if type(source) == type(''):
            source = FileInputStream(source)

        bis = BufferedInputStream(source)
        props = jProperties()
        props.load(bis)
        bis.close()
        for key in props.keySet().iterator():
            result[key] = props.get(key)
        return result
Exemple #12
0
 def copy_file(self, relpath, path):
     path_parts = tuple(os.path.split(relpath)[0].split(os.sep))
     self.create_ancestry(path_parts)
     chunk = jarray.zeros(8192, "b")
     with open(path) as f:
         with closing(BufferedInputStream(f)) as bis:
             output_entry = JarEntry(relpath)
             output_entry.time = os.path.getmtime(path) * 1000
             self.jar.putNextEntry(output_entry)
             while True:
                 read = bis.read(chunk, 0, 8192)
                 if read == -1:
                     break
                 self.jar.write(chunk, 0, read)
     self.jar.closeEntry()
Exemple #13
0
def _extract_certs_from_keystore_file(f, password):
    keystore = KeyStore.getInstance(KeyStore.getDefaultType())
    if password is None:  # default java keystore password is changeit
        password = '******'
    elif not isinstance(password, str):
        password = []

    keystore.load(BufferedInputStream(f), password)
    certs = []

    alias_iter = keystore.aliases()
    while alias_iter.hasMoreElements():
        alias = alias_iter.nextElement()
        certs.append(keystore.getCertificate(alias))

    return certs
Exemple #14
0
 def read_entry():
     is_ = None
     try:
         is_ = BufferedInputStream(zip_file.getInputStream(entry))
         size = entry.getSize()
         data = jarray.zeros(size, 'b')
         nread_tot = 0
         while nread_tot < size:
             nread = is_.read(data, nread_tot, size - nread_tot)
             if nread <= 0:
                 raise java.io.IOException('Read ended prematurely')
             nread_tot += nread
         return data
     finally:
         if not is_ is None:
             is_.close()
    def trustSpecificCertificate(self, pemCertificateFile,
                                 pemCertificateAlias):
        from java.io import BufferedInputStream, FileInputStream
        from java.security import KeyStore
        from java.security.cert import CertificateFactory, X509Certificate
        from javax.net.ssl import SSLContext, TrustManagerFactory

        fis = FileInputStream(pemCertificateFile)
        bis = BufferedInputStream(fis)
        ca = CertificateFactory.getInstance("X.509").generateCertificate(bis)
        ks = KeyStore.getInstance(KeyStore.getDefaultType())
        ks.load(None, None)
        ks.setCertificateEntry(pemCertificateAlias, ca)
        tmf = TrustManagerFactory.getInstance(
            TrustManagerFactory.getDefaultAlgorithm())
        tmf.init(ks)
        context = SSLContext.getInstance("SSL")
        context.init(None, tmf.getTrustManagers(), None)
        SSLContext.setDefault(context)
Exemple #16
0
 def copy_file(self, relpath, path):
     path_parts = tuple(os.path.split(relpath)[0].split(os.sep))
     self.create_ancestry(path_parts)
     chunk = jarray.zeros(8192, "b")
     with open(path) as f:
         with closing(BufferedInputStream(f)) as bis:
             output_entry = JarEntry(relpath)
             output_entry.time = os.path.getmtime(path) * 1000
             try:
                 self.jar.putNextEntry(output_entry)
                 while True:
                     read = bis.read(chunk, 0, 8192)
                     if read == -1:
                         break
                     self.jar.write(chunk, 0, read)
                 self.jar.closeEntry()
             except ZipException, e:
                 if not "duplicate entry" in str(e):
                     log.error("Problem in creating entry %r", entry, exc_info=True)
                     raise
Exemple #17
0
        def processResponse(self, response):

            #threadContext = HTTPPluginControl.getThreadHTTPClientContext()
            #threadContext.resumeClock()

            # We just want to read data flow - so we can scale
            bodyLength = 0
            bin = BufferedInputStream(response.getInputStream())
            buf = jarray.zeros(8192, 'b')
            lenBuf = 0
            while lenBuf != -1:
                lenBuf = bin.read(buf)
                bodyLength += lenBuf
            bin.close()
            grinder.getLogger().output("INFO: Download of %d bytes finished" %
                                       (bodyLength))

            #threadContext.pauseClock();

            # Update statistics with body size
            testStatistics = grinder.getStatistics()
            if (testStatistics.isTestInProgress()):
                testStatistics.getForCurrentTest().addLong(
                    "httpplugin.responseLength", bodyLength)
 def __init__(self, socketpath):
     self.sock = AFUNIXSocket.newInstance()
     self.sock.connect(AFUNIXSocketAddress(File(socketpath)))
     self._in_buf = BufferedInputStream(self.sock.getInputStream())
     self._out_buf = BufferedOutputStream(self.sock.getOutputStream())
 def __init__(self, java_socket, keyfile=None):
     self.java_ssl_socket = self._nycs_socket(java_socket, keyfile)
     self._in_buf = BufferedInputStream(
         self.java_ssl_socket.getInputStream())
     self._out_buf = BufferedOutputStream(
         self.java_ssl_socket.getOutputStream())