Пример #1
0
    def run(self):
        builder = self.data.builder
        cache_dir = self.sandbox.tmp_cache_dir

        skip = False
        if os.path.isfile(os.path.join(
                cache_dir, builder.filename)) and os.path.isfile(
                    os.path.join(cache_dir, builder.filename + ".sha1")):
            with open(os.path.join(cache_dir, builder.filename + ".sha1"),
                      "rb") as f:
                checksum = f.read(1024).decode()
            skip = checksum == hash.sha1(
                os.path.join(cache_dir, builder.filename))

        if skip:
            self.run_status = ReturnValue.skip
        else:
            if builder.url.startswith("https://") or builder.url.startswith(
                    "http://"):

                if os.path.isfile(os.path.join(cache_dir, builder.filename)):
                    rm(os.path.join(cache_dir, builder.filename))
                if os.path.isfile(
                        os.path.join(cache_dir, builder.filename + ".sha1")):
                    rm(os.path.join(cache_dir, builder.filename + ".sha1"))

                s = HTTPSession(base_urls=[builder.base_url])
                result = s.download_file(url=builder.filename,
                                         dest=cache_dir,
                                         filename=builder.name)
                if result is None:
                    rm(os.path.join(cache_dir, builder.filename))
                    self.run_status = ReturnValue.failure
                else:
                    self.run_status = ReturnValue.success
                    with open(
                            os.path.join(cache_dir,
                                         builder.filename + ".sha1"),
                            "w") as f:
                        f.write(
                            hash.sha1(os.path.join(cache_dir,
                                                   builder.filename)))
            else:
                cp(
                    os.path.join(self.sandbox.specs_dir, "patches",
                                 builder.url),
                    cache_dir,
                )
                self.run_status = ReturnValue.success
Пример #2
0
 def func(server, base_url):
     with HTTPSession() as session:
         result = session.download_file(base_url + 'dummy', dest='.')
         with open(result, 'rb') as fd:
             content = fd.read()
         assert content == b'Dummy!'
         assert os.path.basename(result) == 'dummy.txt'
Пример #3
0
 def func(server, base_url):
     with HTTPSession() as session:
         result = session.download_file(base_url + "dummy", dest=".")
         with open(result, "rb") as fd:
             content = fd.read()
         assert content == b"Dummy!"
         assert os.path.basename(result) == "dummy.txt"
Пример #4
0
 def func(server, base_url):
     with HTTPSession() as session:
         session.set_max_retries(base_url, connect=5)
         result = session.download_file(base_url + 'dummy', dest='.')
         with open(result, 'rb') as fd:
             content = fd.read()
         assert content == b'OK'
         assert server.tries == 2
Пример #5
0
 def inner_func(server2, base_url2):
     logging.info("servers: %s, %s" % (base_url, base_url2))
     with HTTPSession(base_urls=[base_url, base_url2]) as session:
         session.set_max_retries(connect=4)
         result = session.download_file(base_url + "dummy", dest=".")
         assert result is not None
         assert server.calls == 1
         assert server2.tries == 2
Пример #6
0
 def func(server, base_url):
     with HTTPSession() as session:
         session.set_max_retries(base_url, connect=5)
         result = session.download_file(base_url + "dummy", dest=".")
         with open(result, "rb") as fd:
             content = fd.read()
         assert content == b"OK"
         assert server.tries == 2
Пример #7
0
 def inner_func(server2, base_url2):
     logging.info(f"servers: {base_url}, {base_url2}")
     with HTTPSession(base_urls=[base_url, base_url2]) as session:
         session.DEFAULT_TIMEOUT = (10.0, 0.2)
         session.set_max_retries(connect=4)
         result = session.download_file("dummy", dest=".")
         assert result is None
         assert server.calls == 1
         assert server2.tries == 1
Пример #8
0
 def inner_func(server2, base_url2):
     logging.info('servers: %s, %s' % (base_url, base_url2))
     with HTTPSession(base_urls=[base_url, base_url2]) as session:
         session.DEFAULT_TIMEOUT = (10.0, 0.2)
         session.set_max_retries(connect=4)
         result = session.download_file('dummy',
                                        dest='.')
         assert result is None
         assert server.calls == 1
         assert server2.tries == 1
Пример #9
0
 def func(server, url):
     with HTTPSession(base_urls=[nok_url, url]) as session:
         session.DEFAULT_TIMEOUT = (3.0, 3.0)
         with open('./data.txt', 'wb') as fd:
             fd.write(b'Hello!')
         with open('./data.txt', 'rb') as fd:
             session.request(
                 'POST', 'dummy',
                 data_streams={'data.txt': fd,
                               'str_metadata': 'string',
                               'metadata': {'key1': 'val1'}})
     assert server.test_payloads['metadata'] == '{"key1": "val1"}'
     assert server.test_payloads['data.txt'] == 'Hello!'
     assert server.test_payloads['str_metadata'] == 'string'
Пример #10
0
    def download_resource_content(self, metadata, dest):
        """Download a resource.

        :param metadata: metadata associated with the resource to download
        :type metadata: HTTPSimpleStoreResourceInfo
        :param dest:
        :type dest: str
        :return: the path to the downloaded resource
        :rtype: str
        """
        with HTTPSession() as http:
            return http.download_file(metadata.url,
                                      dest,
                                      validate=metadata.verify)
Пример #11
0
    def download_resource_content(self, metadata: ResourceInfo,
                                  dest: str) -> Optional[str]:
        """Download a resource.

        :param metadata: metadata associated with the resource to download
        :param dest: where to download the resource
        :return: the path to the downloaded resource
        """
        if TYPE_CHECKING:
            assert isinstance(metadata, HTTPSimpleStoreResourceInfo)
        with HTTPSession() as http:
            return http.download_file(metadata.url,
                                      dest,
                                      validate=metadata.verify)
Пример #12
0
 def func(server, url):
     with HTTPSession(base_urls=[nok_url, url]) as session:
         session.DEFAULT_TIMEOUT = (3.0, 3.0)
         with open("./data.txt", "wb") as fd:
             fd.write(b"Hello!")
         with open("./data.txt", "rb") as fd:
             session.request(
                 "POST",
                 "dummy",
                 data_streams={
                     "data.txt": fd,
                     "str_metadata": "string",
                     "metadata": {"key1": "val1"},
                 },
             )
     assert server.test_payloads["metadata"] == '{"key1": "val1"}'
     assert server.test_payloads["data.txt"] == "Hello!"
     assert server.test_payloads["str_metadata"] == "string"
Пример #13
0
 def func(server, base_url):
     with HTTPSession() as session:
         result = session.download_file(base_url + 'dummy', dest='.')
         assert result is None
Пример #14
0
 def test_session(self):
     """Create a session in a context."""
     with HTTPSession():
         pass
Пример #15
0
 def func(server, base_url):
     with HTTPSession() as session:
         result = session.download_file(
             base_url + "dummy", dest=".", validate=validate
         )
         assert result is None