From 6303babdf76a1a5c0dabd335e2fda2f069c87948 Mon Sep 17 00:00:00 2001 From: harshilgajera-crest <69803385+harshilgajera-crest@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:28:24 +0530 Subject: [PATCH 1/3] feat: add dual stack support for sc4s ingestor (#925) Test runs: IPV4: https://github.com/splunk/splunk-add-on-for-symantec-endpoint-protection/actions/runs/18781386812 IPV6: https://cd.splunkdev.com/taautomation/ta-automation-compatibility-tests/-/pipelines/30981356 --------- Co-authored-by: mkolasinski-splunk <105011638+mkolasinski-splunk@users.noreply.github.com> Co-authored-by: dvarasani-crest <151819886+dvarasani-crest@users.noreply.github.com> Co-authored-by: Marcin Bruzda <94437843+mbruzda-splunk@users.noreply.github.com> Co-authored-by: srv-rr-github-token <94607705+srv-rr-github-token@users.noreply.github.com> --- NOTICE | 12 +-- pyproject.toml | 2 +- pytest_splunk_addon/__init__.py | 2 +- .../event_ingestors/sc4s_event_ingestor.py | 93 +++++++++++-------- .../test_sc4s_event_ingestor.py | 38 +++----- 5 files changed, 74 insertions(+), 73 deletions(-) diff --git a/NOTICE b/NOTICE index fd0684a86..00df1034c 100644 --- a/NOTICE +++ b/NOTICE @@ -7,9 +7,9 @@ The following 3rd-party software packages may be used by or distributed with pytest-splunk-addon. Any information relevant to third-party vendors listed below are collected using common, reasonable means. -Date generated: 2025-9-10 +Date generated: 2025-10-24 -Revision ID: 467ba9ffed5261c0cc829cc791e1640f51a03879 +Revision ID: e90eb69fe293864434062ac2fac28699acc0db3c ================================================================================ ================================================================================ @@ -2120,7 +2120,7 @@ BSD-3-Clause, MIT-CMU, GPL-1.0-only * BSD-3-Clause * -------------------------------------------------------------------------------- File matches: -examples/searchparser.py +examples/booleansearchparser.py -------------------------------------------------------------------------------- @@ -5903,10 +5903,10 @@ Copyright (c) 2016-2020 SISSA (International School for Advanced Studies). Copyright (c) 2021 SISSA (International School for Advanced Studies). -Copyright (c) 2018-2020 SISSA (International School for Advanced Studies). - Copyright (c) 2016-2021 SISSA (International School for Advanced Studies). +Copyright (c) 2018-2020 SISSA (International School for Advanced Studies). + Copyright (c) 2016-2022 SISSA (International School for Advanced Studies). Copyright (c) 2016-2023 SISSA (International School for Advanced Studies). @@ -6338,4 +6338,4 @@ This formulation of W3C's notice and license became active on August 14 1998 so -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -Report Generated by FOSSA on 2025-9-10 +Report Generated by FOSSA on 2025-10-24 diff --git a/pyproject.toml b/pyproject.toml index a648f5fa5..7ca319fa4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ [tool.poetry] name = "pytest-splunk-addon" -version = "6.1.1" +version = "6.2.0-beta.1" description = "A Dynamic test tool for Splunk Apps and Add-ons" authors = ["Splunk "] license = "APACHE-2.0" diff --git a/pytest_splunk_addon/__init__.py b/pytest_splunk_addon/__init__.py index 05f4781e5..5811a8671 100644 --- a/pytest_splunk_addon/__init__.py +++ b/pytest_splunk_addon/__init__.py @@ -18,4 +18,4 @@ __author__ = """Splunk Inc.""" __email__ = "addonfactory@splunk.com" -__version__ = "6.1.1" +__version__ = "6.2.0-beta.1" diff --git a/pytest_splunk_addon/event_ingestors/sc4s_event_ingestor.py b/pytest_splunk_addon/event_ingestors/sc4s_event_ingestor.py index 284dae8b8..3ff5e081f 100644 --- a/pytest_splunk_addon/event_ingestors/sc4s_event_ingestor.py +++ b/pytest_splunk_addon/event_ingestors/sc4s_event_ingestor.py @@ -15,76 +15,87 @@ # import socket from time import sleep -import os -import re -import concurrent.futures -from .base_event_ingestor import EventIngestor import logging +from typing import Dict + +from .base_event_ingestor import EventIngestor + LOGGER = logging.getLogger("pytest-splunk-addon") class SC4SEventIngestor(EventIngestor): """ - Class to Ingest Events via SC4S - - The format for required_configs is:: - - { - sc4s_host (str): Address of the Splunk Server. Do not provide http scheme in the host. - sc4s_port (int): Port number of the above host address - } + Class to ingest events via SC4S (supports both IPv4 and IPv6) Args: required_configs (dict): Dictionary containing splunk host and sc4s port """ - def __init__(self, required_configs): + def __init__(self, required_configs: Dict[str, str]) -> None: self.sc4s_host = required_configs["sc4s_host"] self.sc4s_port = required_configs["sc4s_port"] - self.server_address = ( - required_configs["sc4s_host"], - required_configs["sc4s_port"], - ) + + def _create_socket(self): + """Try all addresses (IPv4 and IPv6) and return a connected socket.""" + last_exc = None + for res in socket.getaddrinfo( + self.sc4s_host, self.sc4s_port, socket.AF_UNSPEC, socket.SOCK_STREAM + ): + af, socktype, proto, _, sa = res + try: + sock = socket.socket(af, socktype, proto) + if af == socket.AF_INET6: + # Attempt dual-stack if supported + try: + sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) + except (AttributeError, OSError): + pass + sock.connect(sa) + return sock + except Exception as e: + last_exc = e + LOGGER.debug(f"Failed to connect to {sa}: {e}") + try: + sock.close() + except Exception: + pass + continue + raise ConnectionError( + f"Could not connect to SC4S at {self.sc4s_host}:{self.sc4s_port} via IPv4 or IPv6" + ) from last_exc def ingest(self, events, thread_count): """ - Ingests events in the splunk via sc4s (Single/Batch of Events) + Ingests events in Splunk via SC4S (single/batch of events) Args: events (list): Events with newline character or LineBreaker as separator - """ - # This loop just checks for a viable remote connection + # Retry loop to establish connection tried = 0 - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) while True: try: - sock.connect(self.server_address) + sock = self._create_socket() break except Exception as e: tried += 1 - LOGGER.debug("Attempt {} to ingest data with SC4S".format(str(tried))) + LOGGER.debug(f"Attempt {tried} to ingest data with SC4S") if tried > 90: - LOGGER.error( - "Failed to ingest event with SC4S {} times".format(str(tried)) - ) + LOGGER.error(f"Failed to ingest event with SC4S {tried} times") raise e sleep(1) - finally: - sock.close() - raw_events = list() - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect(self.server_address) - for event in events: - # raw_events.extend() - for se in event.event.splitlines(): - try: - sock.sendall(str.encode(se + "\n")) - except Exception as e: - LOGGER.debug("Attempt ingest data with SC4S=".format(se)) - LOGGER.exception(e) - sleep(1) - sock.close() + # Send events + try: + for event in events: + for se in event.event.splitlines(): + try: + sock.sendall(str.encode(se + "\n")) + except Exception as e: + LOGGER.debug(f"Attempt ingest data with SC4S: {se}") + LOGGER.exception(e) + sleep(1) + finally: + sock.close() diff --git a/tests/unit/tests_standard_lib/test_event_ingestors/test_sc4s_event_ingestor.py b/tests/unit/tests_standard_lib/test_event_ingestors/test_sc4s_event_ingestor.py index 0e4246e1d..c69a961b8 100644 --- a/tests/unit/tests_standard_lib/test_event_ingestors/test_sc4s_event_ingestor.py +++ b/tests/unit/tests_standard_lib/test_event_ingestors/test_sc4s_event_ingestor.py @@ -25,14 +25,6 @@ def socket_mock(monkeypatch): "socket.socket", socket_mock, ) - monkeypatch.setattr( - "socket.AF_INET", - "AF_INET", - ) - monkeypatch.setattr( - "socket.SOCK_STREAM", - "SOCK_STREAM", - ) return socket_mock @@ -46,25 +38,22 @@ def sleep_mock(monkeypatch): def test_sc4s_data_can_be_ingested(socket_mock, sc4s_ingestor, sc4s_events): sc4s_ingestor.ingest(sc4s_events, 20) - assert socket_mock.call_count == 2 - socket_mock.assert_has_calls( - [call("AF_INET", "SOCK_STREAM"), call("AF_INET", "SOCK_STREAM")], any_order=True - ) - assert socket_mock.connect.call_count == 2 - socket_mock.connect.assert_has_calls( - [call(("127.0.0.1", 55730)), call(("127.0.0.1", 55730))] - ) - assert socket_mock.sendall.call_count == 2 - assert socket_mock.close.call_count == 2 + assert socket_mock.call_count == 1 # Socket created once + assert socket_mock.connect.call_count == 1 + socket_mock.connect.assert_called_with(("127.0.0.1", 55730)) + assert socket_mock.sendall.call_count == len(sc4s_events) + assert socket_mock.close.call_count == 1 def test_exception_raised_when_sc4s_socket_can_not_be_opened( socket_mock, sleep_mock, sc4s_ingestor, sc4s_events, caplog ): - socket_mock.connect.side_effect = Exception - pytest.raises(Exception, sc4s_ingestor.ingest, *(sc4s_events, 20)) - assert "Failed to ingest event with SC4S 91 times" in caplog.messages - assert socket_mock.connect.call_count == socket_mock.close.call_count == 91 + socket_mock.connect.side_effect = Exception("Connection failed") + with pytest.raises(ConnectionError): + sc4s_ingestor.ingest(sc4s_events, 20) + assert "Failed to ingest event with SC4S 91 times" in caplog.text + assert socket_mock.connect.call_count == 91 + assert socket_mock.close.call_count == 91 def test_exception_raised_when_sc4s_event_sent( @@ -72,5 +61,6 @@ def test_exception_raised_when_sc4s_event_sent( ): socket_mock.sendall.side_effect = Exception("Send data fail") sc4s_ingestor.ingest(sc4s_events, 20) - assert "Send data fail" in caplog.messages - assert socket_mock.connect.call_count == socket_mock.close.call_count == 2 + assert "Send data fail" in caplog.text + assert socket_mock.connect.call_count == 1 + assert socket_mock.close.call_count == 1 From 5b12b140044495c26f1524ece38c5629e3637b2e Mon Sep 17 00:00:00 2001 From: srv-rr-github-token <94607705+srv-rr-github-token@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:24:49 +0000 Subject: [PATCH 2/3] chore(release): 6.2.0 # [6.2.0](https://github.com/splunk/pytest-splunk-addon/compare/v6.1.1...v6.2.0) (2025-10-27) ### Features * add dual stack support for sc4s ingestor ([#925](https://github.com/splunk/pytest-splunk-addon/issues/925)) ([6303bab](https://github.com/splunk/pytest-splunk-addon/commit/6303babdf76a1a5c0dabd335e2fda2f069c87948)) --- NOTICE | 82 +++++++++++++++------------------ pyproject.toml | 2 +- pytest_splunk_addon/__init__.py | 2 +- 3 files changed, 40 insertions(+), 46 deletions(-) diff --git a/NOTICE b/NOTICE index 00df1034c..00677df9e 100644 --- a/NOTICE +++ b/NOTICE @@ -7,9 +7,9 @@ The following 3rd-party software packages may be used by or distributed with pytest-splunk-addon. Any information relevant to third-party vendors listed below are collected using common, reasonable means. -Date generated: 2025-10-24 +Date generated: 2025-10-27 -Revision ID: e90eb69fe293864434062ac2fac28699acc0db3c +Revision ID: 6303babdf76a1a5c0dabd335e2fda2f069c87948 ================================================================================ ================================================================================ @@ -54,7 +54,7 @@ No licenses found - defusedxml (0.7.1) [PSF-2.0] - deprecation (2.1.0) [Apache-2.0] - elementpath (4.1.5) [MIT] -- exceptiongroup (1.3.0) [MIT, Python-2.0] +- exceptiongroup (1.3.0) [Python-2.0, MIT] - execnet (2.0.2) [MIT] - Faker (18.13.0) [MIT] - filelock (3.12.2) [Unlicense] @@ -958,7 +958,37 @@ Package Depth: Transitive -------------------------------------------------------------------------------- * Declared Licenses * -MIT, Python-2.0 +Python-2.0, MIT + +* Python-2.0 * + +1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. + 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. + 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. + 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. + 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. + 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. + 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software"). + 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. + 3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. + 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. + 7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. + 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6, beta 1 software in source or binary form and its associated documentation, as released at the www.python.org Internet site on August 4, 2000 ("Python 1.6b1"). + 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6b1 alone or in any derivative version, provided, however, that CNRIs License Agreement is retained in Python 1.6b1, alone or in any derivative version prepared by Licensee. + Alternately, in lieu of CNRIs License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6, beta 1, is made available subject to the terms and conditions in CNRIs License Agreement. This Agreement may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1011. This Agreement may also be obtained from a proxy server on the Internet using the URL:http://hdl.handle.net/1895.22/1011". + 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6b1 or any part thereof, and wants to make the derivative work available to the public as provided herein, then Licensee hereby agrees to indicate in any such work the nature of the modifications made to Python 1.6b1. + 4. CNRI is making Python 1.6b1 available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6b1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING PYTHON 1.6b1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. + 7. This License Agreement shall be governed by and interpreted in all respects by the law of the State of Virginia, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. + 8. By clicking on the "ACCEPT" button where indicated, or by copying, installing or otherwise using Python 1.6b1, Licensee agrees to be bound by the terms and conditions of this License Agreement. +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. +Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * MIT * -------------------------------------------------------------------------------- @@ -1041,40 +1071,6 @@ agrees to be bound by the terms and conditions of this License Agreement. -* Python-2.0 * --------------------------------------------------------------------------------- -File matches: -LICENSE --------------------------------------------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. - 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. - 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. - 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. - 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. - 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. - 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. - 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software"). - 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. - 3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. - 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. - 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. - 7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. - 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6, beta 1 software in source or binary form and its associated documentation, as released at the www.python.org Internet site on August 4, 2000 ("Python 1.6b1"). - 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6b1 alone or in any derivative version, provided, however, that CNRIs License Agreement is retained in Python 1.6b1, alone or in any derivative version prepared by Licensee. - Alternately, in lieu of CNRIs License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6, beta 1, is made available subject to the terms and conditions in CNRIs License Agreement. This Agreement may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1011. This Agreement may also be obtained from a proxy server on the Internet using the URL:http://hdl.handle.net/1895.22/1011". - 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6b1 or any part thereof, and wants to make the derivative work available to the public as provided herein, then Licensee hereby agrees to indicate in any such work the nature of the modifications made to Python 1.6b1. - 4. CNRI is making Python 1.6b1 available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6b1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. - 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING PYTHON 1.6b1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. - 7. This License Agreement shall be governed by and interpreted in all respects by the law of the State of Virginia, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. - 8. By clicking on the "ACCEPT" button where indicated, or by copying, installing or otherwise using Python 1.6b1, Licensee agrees to be bound by the terms and conditions of this License Agreement. -Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. -Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. -STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -------------------------------------------------------------------------------- Package Title: execnet (2.0.2) @@ -2120,7 +2116,7 @@ BSD-3-Clause, MIT-CMU, GPL-1.0-only * BSD-3-Clause * -------------------------------------------------------------------------------- File matches: -examples/booleansearchparser.py +examples/searchparser.py -------------------------------------------------------------------------------- @@ -5865,10 +5861,10 @@ Copyright (c) 2006 Stefan Petre Copyright (c) 2008-2020 Andrey Petrov and contributors (see CONTRIBUTORS.txt) -Copyright (c) 2012 Senko Rasic - Copyright (c) 2010-2020 Benjamin Peterson +Copyright (c) 2012 Senko Rasic + Copyright (c) 2015-2016 Will Bond Copyright (c) 2021 Taneli Hukkinen @@ -6250,8 +6246,6 @@ Python License 2.0 Copyright (c) 2022 Alex Grönholm Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 - -Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. @@ -6338,4 +6332,4 @@ This formulation of W3C's notice and license became active on August 14 1998 so -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -Report Generated by FOSSA on 2025-10-24 +Report Generated by FOSSA on 2025-10-27 diff --git a/pyproject.toml b/pyproject.toml index 7ca319fa4..445292008 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ [tool.poetry] name = "pytest-splunk-addon" -version = "6.2.0-beta.1" +version = "6.2.0" description = "A Dynamic test tool for Splunk Apps and Add-ons" authors = ["Splunk "] license = "APACHE-2.0" diff --git a/pytest_splunk_addon/__init__.py b/pytest_splunk_addon/__init__.py index 5811a8671..0759e0c71 100644 --- a/pytest_splunk_addon/__init__.py +++ b/pytest_splunk_addon/__init__.py @@ -18,4 +18,4 @@ __author__ = """Splunk Inc.""" __email__ = "addonfactory@splunk.com" -__version__ = "6.2.0-beta.1" +__version__ = "6.2.0" From 0c2449fc805732a4ed4f5d0788ccbb25f433c12c Mon Sep 17 00:00:00 2001 From: mbruzda Date: Fri, 7 Nov 2025 15:47:21 +0100 Subject: [PATCH 3/3] fix: update .ignore_splunk_internal_errors to include additional failing services --- pytest_splunk_addon/.ignore_splunk_internal_errors | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pytest_splunk_addon/.ignore_splunk_internal_errors b/pytest_splunk_addon/.ignore_splunk_internal_errors index 1b0a4bb01..63061c43c 100644 --- a/pytest_splunk_addon/.ignore_splunk_internal_errors +++ b/pytest_splunk_addon/.ignore_splunk_internal_errors @@ -14,4 +14,6 @@ app="search" sid="*" message_key="" message=Failed to get latest bucketMap from ERROR SavedSplunker - savedsearch_id="nobody;cloud-monitoring-console-summarizer;splunk-svc", message="Error in 'eval' command: Failed to parse the provided arguments. Usage: eval dest_key = expression.". No actions executed SavedSplunker - savedsearch_id="nobody;splunk_instance_monitoring;SIM SS - Splunk Apps Manifest", message="Error in 'lookup' command: Could not construct lookup 'splunk_upgrade_prereq_es_installable_apps.csv, app, OUTPUT, es_managed'. See search.log for more details.". No actions executed ERROR SearchMessages - orig_component="SearchStatusEnforcer" app="search" sid="*" message_key="" message=Error in 'noah' command: operation='get_latest_bucket_map' failed with err='Failed Dependency' -Error reading SSG config from KV Store \ No newline at end of file +Error reading SSG config from KV Store +"service":"compsup" +"service":"ipc_broker" \ No newline at end of file