summaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
2016-10-25Disable colored output for tests, when not ttyPeter Ginchev1-5/+14
2016-10-25Add generated python bindings to .gitignoreMarek Gradzki1-0/+5
2016-10-25Fix LISP src/dst based policyFilip Tehlar4-13/+259
2016-10-24Fix VXLAN tunnel delete crashJohn Lo1-2/+2
2016-10-24Fix jvpp coverity issues #2Marek Gradzki12-277/+250
2016-10-24vppinfra: clib_memcpy optimizationDamjan Marion3-14/+11
2016-10-23Dual Loop Lookup and Adj-midchainNeale Ranns2-145/+534
2016-10-22VPP-504: Permissions Error on Centos Vagrant VPP VMBilly McFall1-1/+1
2016-10-21Fix Coverity Errors in FIB. This is mainly consolidating the vnet_link_t and ...Neale Ranns20-156/+122
2016-10-21Quad-loop ip4_lookup_inline, add _x4 validate buffer enqueueDave Barach2-65/+201
2016-10-21Pretty-print vl_api_api_get_first_msg_id_t msgsDave Barach1-1/+12
2016-10-21Java api generation for ioam trace pluginShwetha9-8/+321
2016-10-21Candidate fix for race condition in building jvpp_common and jvpp_registryEd Warnicke1-0/+1
2016-10-20vppinfra: add 256-bit vector typedefsDamjan Marion1-0/+15
2016-10-19improve java build processKlement Sekera1-34/+24
2016-10-19Fix coverity issues in jvpp (newlines + CompletableDumpFuture.ctxId)Marek Gradzki11-31/+31
2016-10-18Deprecate MPLSoGRE tunnels (VPP-502)Neale Ranns18-2219/+903
2016-10-18DO_NOT_MERGE: Update CSIT tests 161002 -> 161017pmikus1-1/+1
2016-10-18Fix test target buildPeter Ginchev1-6/+10
2016-10-18Update tx and output node runtime when recycling interfacePierre Pfister1-0/+18
2016-10-18Load-balancing in IP4 dual loop typos. (VPP-501)Neale Ranns1-2/+2
2016-10-18LoadBal: Use intrinsics and use protocol numberPierre Pfister3-209/+307
2016-10-17VPP-491: Update CLI Command documentation for "show ip fib" and "show ip6 fib".Billy McFall4-108/+331
2016-10-17Support MPLSoGRE with the new FIB 2.0John Lo3-127/+50
2016-10-17oam: fix compilation with gcc6Damjan Marion1-5/+6
2016-10-17style: fix VLIB_NODE_FUNCTION_MULTIARCH indentDamjan Marion3-15/+26
2016-10-17VPP-492: Fix ability to change mac address of the interfacePavel Kotucek1-2/+5
2016-10-15VPP-488: Fix build errors, which uncovered IPv6 load balance lookup bug.Billy McFall12-35/+74
2016-10-14VPP-490: vpp crash in show ip6 neighborBilly McFall1-8/+11
2016-10-14VPP-489: CLI Command "test lookup" crashes with invalid fib-index.Billy McFall1-1/+8
2016-10-14FIB2.0: Adjacency complete pull model (VPP-487)Neale Ranns54-1525/+1971
2016-10-14Add macro for sending large data structures to API clientsFlorin Coras1-3/+18
2016-10-13add xxx_or_null(...) message buffer allocation variantsDave Barach2-6/+39
2016-10-13feature: rename vnet_ip_feature_* to vnet_feature_*Damjan Marion8-54/+54
2016-10-13Add clib_mem_alloc_or_null(...)Dave Barach4-12/+36
2016-10-13VPP-286: Add CLI Command documentation via doxygen comments for vnet/vnet/ip.Billy McFall14-164/+1105
2016-10-13vhost-user: Add reconnect supportDamjan Marion1-0/+1
2016-10-13VPP-446: 1:1 SNAT Inside overlapping interfacesMatus Fabian4-18/+32
2016-10-13VPP-453: SNAT delete and dump addressesMatus Fabian3-26/+243
2016-10-13VPP-483: Fixed IPSec tunnel interfaceMatus Fabian1-1/+10
2016-10-13vpp_lite: add cpu pinning support (VPP-467)Pavel Kotucek8-38/+86
2016-10-12Fix coverity warnings, VPP-486Dave Barach4-4/+11
2016-10-12VPP-213: vnet classifier does not work for l3 ip4 rulesOle Troan1-26/+34
2016-10-12Coverity warnings in new FIB code (VPP-484)Neale Ranns9-7/+27
2016-10-12VPP-362 Implement dumping of LISP adjacenciesFilip Tehlar10-5/+364
2016-10-11Rename ip_feature_init_cast(...) to vnet_feature_arc_init(...), VPP-481Dave Barach9-306/+341
2016-10-11VPP-474 Revert "FIX sysctl configuration directory"Miroslav Miklus2-4/+4
2016-10-11vppinfra: use crc32q instruction instead of xxhash in bihash_8_8Damjan Marion2-0/+11
2016-10-11Rebind kernel drivers on VPP uninstallPeter Ginchev2-1/+46
2016-10-10Test: Add test case for Load Balancer pluginPierre Pfister3-3/+223
an> spec.environment["urls"]["URL[JENKINS,HC]"] else: raise PresentationError("No url defined for the job '{}'.". format(job)) file_name = spec.input["file-name"] full_name = spec.input["download-path"].\ format(job=job, build=build["build"], filename=file_name) url = "{0}/{1}".format(url, full_name) new_name = join( spec.environment["paths"]["DIR[WORKING,DATA]"], "{job}{sep}{build}{sep}{name}".format(job=job, sep=SEPARATOR, build=build["build"], name=file_name)) logging.info( "Downloading the file '{0}' to '{1}' ...".format(url, new_name)) status = "failed" try: response = get(url, stream=True) code = response.status_code if code != codes["OK"]: logging.warning( "Jenkins: {0}: {1}.".format(code, responses[code])) logging.info("Trying to download from Nexus:") spec.set_input_state(job, build["build"], "not found") if code == codes["not_found"]: release = re.search(REGEX_RELEASE, job).group(2) nexus_file_name = "{job}{sep}{build}{sep}{name}".\ format(job=job, sep=SEPARATOR, build=build["build"], name=file_name) try: release = "rls{0}".format(int(release)) except ValueError: pass url = "{url}/{release}/{dir}/{file}".\ format(url=spec.environment["urls"]["URL[NEXUS]"], release=release, dir=spec.environment["urls"]["DIR[NEXUS]"], file=nexus_file_name) logging.info("Downloading the file '{0}' to '{1}' ...". format(url, new_name)) response = get(url, stream=True) code = response.status_code if code != codes["OK"]: logging.error( "Nexus: {0}: {1}".format(code, responses[code])) spec.set_input_state( job, build["build"], "not found") continue file_handle = open(new_name, "wb") for chunk in response.iter_content(chunk_size=CHUNK_SIZE): if chunk: file_handle.write(chunk) file_handle.close() if spec.input["file-name"].endswith(".zip"): expected_length = None try: expected_length = int(response. headers["Content-Length"]) logging.debug(" Expected file size: {0}B". format(expected_length)) except KeyError: logging.debug(" No information about expected size.") real_length = getsize(new_name) logging.debug(" Downloaded size: {0}B".format(real_length)) if expected_length: if real_length == expected_length: status = "downloaded" logging.info("{0}: {1}".format(code, responses[code])) else: logging.error("The file size differs from the " "expected size.") else: status = "downloaded" logging.info("{0}: {1}".format(code, responses[code])) elif spec.input["file-name"].endswith(".gz"): if "docs.fd.io" in url: execute_command("gzip --decompress --keep --force {0}". format(new_name)) else: rename(new_name, new_name[:-3]) execute_command("gzip --keep {0}".format(new_name[:-3])) new_name = new_name[:-3] status = "downloaded" logging.info("{0}: {1}".format(code, responses[code])) except ConnectionError as err: logging.error("Not possible to connect to '{0}'.".format(url)) logging.debug(err) except HTTPError as err: logging.error("Invalid HTTP response from '{0}'.".format(url)) logging.debug(err) except TooManyRedirects as err: logging.error("Request exceeded the configured number " "of maximum re-directions.") logging.debug(err) except Timeout as err: logging.error("Request timed out.") logging.debug(err) except RequestException as err: logging.error("Unexpected HTTP request exception.") logging.debug(err) except (IOError, ValueError, KeyError) as err: logging.error("Download failed.") logging.debug("Reason: {0}".format(err)) spec.set_input_state(job, build["build"], status) spec.set_input_file_name(job, build["build"], new_name) if status == "failed": logging.info("Removing the file '{0}'".format(new_name)) try: remove(new_name) except OSError as err: logging.warning(str(err)) spec.set_input_file_name(job, build["build"], None) unzip_files(spec) def unzip_files(spec): """Unzip downloaded zip files :param spec: Specification. :type spec: Specification :raises: PresentationError if the zip file does not exist or it is not a zip file. """ if spec.is_debug: data_file = spec.debug["extract"] else: data_file = spec.input["extract"] for job, builds in spec.builds.items(): for build in builds: if build["status"] == "failed" or build["status"] == "not found": continue try: status = "failed" directory = spec.environment["paths"]["DIR[WORKING,DATA]"] file_name = join(build["file-name"]) if build["status"] == "downloaded": logging.info("Unziping: '{0}' from '{1}'.". format(data_file, file_name)) new_name = "{0}{1}{2}".format(file_name.rsplit('.')[-2], SEPARATOR, data_file.split("/")[-1]) try: if is_zipfile(file_name): with ZipFile(file_name, 'r') as zip_file: zip_file.extract(data_file, directory) logging.info("Moving {0} to {1} ...". format(join(directory, data_file), directory)) move(join(directory, data_file), directory) logging.info("Renaming the file '{0}' to '{1}'". format(join(directory, data_file.split("/")[-1]), new_name)) rename(join(directory, data_file.split("/")[-1]), new_name) spec.set_input_file_name(job, build["build"], new_name) status = "unzipped" spec.set_input_state(job, build["build"], status) except (BadZipfile, RuntimeError) as err: logging.error("Failed to unzip the file '{0}': {1}.". format(file_name, str(err))) except OSError as err: logging.error("Failed to rename the file '{0}': {1}.". format(data_file, str(err))) finally: if status == "failed": spec.set_input_file_name(job, build["build"], None) else: raise PresentationError("The file '{0}' does not exist or " "it is not a zip file". format(file_name)) spec.set_input_state(job, build["build"], status) except KeyError: pass