diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml index 1e6b46fcdf4..550dddfaf35 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml @@ -257,6 +257,16 @@ maintainer to update the package. + + + The services.graphite.api and + services.graphite.beacon NixOS options, and + the python3.pkgs.graphite_api, + python3.pkgs.graphite_beacon and + python3.pkgs.influxgraph packages, have + been removed due to lack of upstream maintenance. + + (Neo)Vim can not be configured with diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index c4740866220..b652419bcf1 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -99,6 +99,11 @@ In addition to numerous new and upgraded packages, this release has the followin - riak package removed along with `services.riak` module, due to lack of maintainer to update the package. +- The `services.graphite.api` and `services.graphite.beacon` NixOS options, and + the `python3.pkgs.graphite_api`, `python3.pkgs.graphite_beacon` and + `python3.pkgs.influxgraph` packages, have been removed due to lack of upstream + maintenance. + - (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden. Use `configure.packages` instead. diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix index baa943302a0..1dc2cee479a 100644 --- a/nixos/modules/services/monitoring/graphite.nix +++ b/nixos/modules/services/monitoring/graphite.nix @@ -24,16 +24,6 @@ let + cfg.web.extraConfig ); - graphiteApiConfig = pkgs.writeText "graphite-api.yaml" '' - search_index: ${dataDir}/index - ${optionalString (config.time.timeZone != null) "time_zone: ${config.time.timeZone}"} - ${optionalString (cfg.api.finders != []) "finders:"} - ${concatMapStringsSep "\n" (f: " - " + f.moduleName) cfg.api.finders} - ${optionalString (cfg.api.functions != []) "functions:"} - ${concatMapStringsSep "\n" (f: " - " + f) cfg.api.functions} - ${cfg.api.extraConfig} - ''; - seyrenConfig = { SEYREN_URL = cfg.seyren.seyrenUrl; MONGO_URL = cfg.seyren.mongoUrl; @@ -72,6 +62,8 @@ let in { imports = [ + (mkRemovedOptionModule ["services" "graphite" "api"] "") + (mkRemovedOptionModule ["services" "graphite" "beacon"] "") (mkRemovedOptionModule ["services" "graphite" "pager"] "") ]; @@ -115,88 +107,6 @@ in { }; }; - api = { - enable = mkOption { - description = '' - Whether to enable graphite api. Graphite api is lightweight alternative - to graphite web, with api and without dashboard. It's advised to use - grafana as alternative dashboard and influxdb as alternative to - graphite carbon. - - For more information visit - - ''; - default = false; - type = types.bool; - }; - - finders = mkOption { - description = "List of finder plugins to load."; - default = []; - example = literalExpression "[ pkgs.python3Packages.influxgraph ]"; - type = types.listOf types.package; - }; - - functions = mkOption { - description = "List of functions to load."; - default = [ - "graphite_api.functions.SeriesFunctions" - "graphite_api.functions.PieFunctions" - ]; - type = types.listOf types.str; - }; - - listenAddress = mkOption { - description = "Graphite web service listen address."; - default = "127.0.0.1"; - type = types.str; - }; - - port = mkOption { - description = "Graphite api service port."; - default = 8080; - type = types.int; - }; - - package = mkOption { - description = "Package to use for graphite api."; - default = pkgs.python3Packages.graphite_api; - defaultText = literalExpression "pkgs.python3Packages.graphite_api"; - type = types.package; - }; - - extraConfig = mkOption { - description = "Extra configuration for graphite api."; - default = '' - whisper: - directories: - - ${dataDir}/whisper - ''; - defaultText = literalExpression '' - ''' - whisper: - directories: - - ''${config.${opt.dataDir}}/whisper - ''' - ''; - example = '' - allowed_origins: - - dashboard.example.com - cheat_times: true - influxdb: - host: localhost - port: 8086 - user: influxdb - pass: influxdb - db: metrics - cache: - CACHE_TYPE: 'filesystem' - CACHE_DIR: '/tmp/graphite-api-cache' - ''; - type = types.lines; - }; - }; - carbon = { config = mkOption { description = "Content of carbon configuration file."; @@ -354,16 +264,6 @@ in { ''; }; }; - - beacon = { - enable = mkEnableOption "graphite beacon"; - - config = mkOption { - description = "Graphite beacon configuration."; - default = {}; - type = types.attrs; - }; - }; }; ###### implementation @@ -489,44 +389,6 @@ in { environment.systemPackages = [ pkgs.python3Packages.graphite-web ]; })) - (mkIf cfg.api.enable { - systemd.services.graphiteApi = { - description = "Graphite Api Interface"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - environment = { - PYTHONPATH = let - aenv = pkgs.python3.buildEnv.override { - extraLibs = [ cfg.api.package pkgs.cairo pkgs.python3Packages.cffi ] ++ cfg.api.finders; - }; - in "${aenv}/${pkgs.python3.sitePackages}"; - GRAPHITE_API_CONFIG = graphiteApiConfig; - LD_LIBRARY_PATH = "${pkgs.cairo.out}/lib"; - }; - serviceConfig = { - ExecStart = '' - ${pkgs.python3Packages.waitress}/bin/waitress-serve \ - --host=${cfg.api.listenAddress} --port=${toString cfg.api.port} \ - graphite_api.app:app - ''; - User = "graphite"; - Group = "graphite"; - PermissionsStartOnly = true; - }; - preStart = '' - if ! test -e ${dataDir}/db-created; then - mkdir -p ${dataDir}/cache/ - chmod 0700 ${dataDir}/cache/ - - chown graphite:graphite ${cfg.dataDir} - chown -R graphite:graphite ${cfg.dataDir}/cache - - touch ${dataDir}/db-created - fi - ''; - }; - }) - (mkIf cfg.seyren.enable { systemd.services.seyren = { description = "Graphite Alerting Dashboard"; @@ -550,25 +412,9 @@ in { services.mongodb.enable = mkDefault true; }) - (mkIf cfg.beacon.enable { - systemd.services.graphite-beacon = { - description = "Grpahite Beacon Alerting Daemon"; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = '' - ${pkgs.python3Packages.graphite_beacon}/bin/graphite-beacon \ - --config=${pkgs.writeText "graphite-beacon.json" (builtins.toJSON cfg.beacon.config)} - ''; - User = "graphite"; - Group = "graphite"; - }; - }; - }) - (mkIf ( cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay || - cfg.web.enable || cfg.api.enable || - cfg.seyren.enable || cfg.beacon.enable + cfg.web.enable || cfg.seyren.enable ) { users.users.graphite = { uid = config.ids.uids.graphite; diff --git a/nixos/tests/graphite.nix b/nixos/tests/graphite.nix index 496f16846ea..c534d45428e 100644 --- a/nixos/tests/graphite.nix +++ b/nixos/tests/graphite.nix @@ -12,14 +12,8 @@ import ./make-test-python.nix ({ pkgs, ... } : SECRET_KEY = "abcd"; ''; }; - api = { - enable = true; - port = 8082; - finders = [ ]; - }; carbon.enableCache = true; seyren.enable = false; # Implicitely requires openssl-1.0.2u which is marked insecure - beacon.enable = true; }; }; }; @@ -28,21 +22,15 @@ import ./make-test-python.nix ({ pkgs, ... } : start_all() one.wait_for_unit("default.target") one.wait_for_unit("graphiteWeb.service") - one.wait_for_unit("graphiteApi.service") - one.wait_for_unit("graphite-beacon.service") one.wait_for_unit("carbonCache.service") # The services above are of type "simple". systemd considers them active immediately # even if they're still in preStart (which takes quite long for graphiteWeb). # Wait for ports to open so we're sure the services are up and listening. one.wait_for_open_port(8080) - one.wait_for_open_port(8082) one.wait_for_open_port(2003) one.succeed('echo "foo 1 `date +%s`" | nc -N localhost 2003') one.wait_until_succeeds( "curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2" ) - one.wait_until_succeeds( - "curl 'http://localhost:8082/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2" - ) ''; }) diff --git a/pkgs/development/python-modules/graphite-api/default.nix b/pkgs/development/python-modules/graphite-api/default.nix deleted file mode 100644 index 34b8c271d93..00000000000 --- a/pkgs/development/python-modules/graphite-api/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv, buildPythonPackage, fetchFromGitHub, lib, flask, flask-caching, cairocffi, pyparsing, pytz, pyyaml -, raven, six, structlog, tzlocal, nose, mock, cairo, isPyPy -}: - -buildPythonPackage rec { - pname = "graphite-api"; - version = "1.1.3"; - - disabled = isPyPy; - - src = fetchFromGitHub { - owner = "brutasse"; - repo = "graphite-api"; - rev = version; - sha256 = "0sz3kav2024ms2z4q03pigcf080gsr5v774z9bp3zw29k2p47ass"; - }; - - # https://github.com/brutasse/graphite-api/pull/239 rebased onto 1.1.3 - patches = [ ./flask-caching-rebased.patch ]; - - checkPhase = "nosetests"; - - propagatedBuildInputs = [ - flask - flask-caching - cairocffi - pyparsing - pytz - pyyaml - raven - six - structlog - tzlocal - ]; - - checkInputs = [ nose mock ]; - - LD_LIBRARY_PATH = "${cairo.out}/lib"; - - meta = with lib; { - broken = stdenv.isDarwin; - description = "Graphite-web, without the interface. Just the rendering HTTP API"; - homepage = "https://github.com/brutasse/graphite-api"; - license = licenses.asl20; - }; -} diff --git a/pkgs/development/python-modules/graphite-api/flask-caching-rebased.patch b/pkgs/development/python-modules/graphite-api/flask-caching-rebased.patch deleted file mode 100644 index 2d4a2f29bc4..00000000000 --- a/pkgs/development/python-modules/graphite-api/flask-caching-rebased.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/graphite_api/config.py b/graphite_api/config.py -index 5e1e382..dc033a8 100644 ---- a/graphite_api/config.py -+++ b/graphite_api/config.py -@@ -112,11 +112,11 @@ def configure(app): - app.cache = None - if 'cache' in config: - try: -- from flask.ext.cache import Cache -+ from flask_caching import Cache - except ImportError: - warnings.warn("'cache' is provided in the configuration but " -- "Flask-Cache is not installed. Please `pip install " -- "Flask-Cache`.") -+ "flask-caching is not installed. Please `pip " -+ "install flask-caching`.") - else: - cache_conf = {'CACHE_DEFAULT_TIMEOUT': 60, - 'CACHE_KEY_PREFIX': 'graphite-api:'} -diff --git a/requirements.txt b/requirements.txt -index c68b446..7826b0c 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -1,5 +1,5 @@ - Flask --Flask-Cache -+Flask-Caching - cairocffi - pyparsing>=1.5.7 - pytz -diff --git a/setup.py b/setup.py -index 0337cbe..df07989 100644 ---- a/setup.py -+++ b/setup.py -@@ -38,7 +38,7 @@ setup( - extras_require={ - 'sentry': ['raven[flask]'], - 'cyanite': ['cyanite'], -- 'cache': ['Flask-Cache'], -+ 'cache': ['Flask-Caching'], - 'statsd': ['statsd'], - }, - zip_safe=False, -diff --git a/tests/test_render.py b/tests/test_render.py -index be5609d..a0e7190 100644 ---- a/tests/test_render.py -+++ b/tests/test_render.py -@@ -8,7 +8,7 @@ from graphite_api._vendor import whisper - from . import TestCase, WHISPER_DIR - - try: -- from flask.ext.cache import Cache -+ from flask_caching import Cache - except ImportError: - Cache = None - -diff --git a/tox.ini b/tox.ini -index 85a0abb..c820393 100644 ---- a/tox.ini -+++ b/tox.ini -@@ -47,7 +47,7 @@ basepython = python2.7 - deps = - {[testenv]deps} - Flask -- Flask-Cache -+ Flask-Caching - pyparsing - mock - -@@ -56,7 +56,7 @@ basepython = python3.3 - deps = - {[testenv]deps} - Flask -- Flask-Cache -+ Flask-Caching - pyparsing - - [testenv:py34] -@@ -66,7 +66,7 @@ commands = - deps = - {[testenv]deps} - Flask -- Flask-Cache -+ Flask-Caching - pyparsing - - [testenv:py35] -@@ -76,7 +76,7 @@ commands = - deps = - {[testenv]deps} - Flask -- Flask-Cache -+ Flask-Caching - pyparsing - - [testenv:pyparsing1] -@@ -84,7 +84,7 @@ basepython = python2.7 - deps = - {[testenv]deps} - Flask -- Flask-Cache -+ Flask-Caching - pyparsing==1.5.7 - mock - -@@ -93,7 +93,7 @@ basepython = pypy - deps = - {[testenv]deps} - Flask -- Flask-Cache -+ Flask-Caching - pyparsing - mock - -@@ -102,7 +102,7 @@ basepython = python2.7 - deps = - {[testenv]deps} - Flask<0.9 -- Flask-Cache -+ Flask-Caching - pyparsing - mock - -@@ -111,7 +111,7 @@ basepython = python2.7 - deps = - {[testenv]deps} - Flask<0.10 -- Flask-Cache -+ Flask-Caching - pyparsing - mock - diff --git a/pkgs/development/python-modules/graphite_beacon/default.nix b/pkgs/development/python-modules/graphite_beacon/default.nix deleted file mode 100644 index 20522d28304..00000000000 --- a/pkgs/development/python-modules/graphite_beacon/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi -, tornado_5, pyyaml, funcparserlib -, nixosTests -}: - -buildPythonPackage rec { - pname = "graphite_beacon"; - version = "0.27.0"; - - src = fetchPypi { - inherit pname version; - sha256 = "03bp4wyfn3xhcqyvs5hnk1n87m4smsmm1p7qp459m7j8hwpbq2ks"; - }; - - propagatedBuildInputs = [ tornado_5 pyyaml funcparserlib ]; - - postPatch = '' - substituteInPlace requirements.txt --replace "==" ">=" - ''; - - pythonImportsCheck = [ "graphite_beacon" ]; - - passthru.tests = { - nixos = nixosTests.graphite; - }; - - meta = with lib; { - description = "A simple alerting application for Graphite metrics"; - homepage = "https://github.com/klen/graphite-beacon"; - maintainers = [ maintainers.offline ]; - license = licenses.mit; - }; -} diff --git a/pkgs/development/python-modules/influxgraph/default.nix b/pkgs/development/python-modules/influxgraph/default.nix deleted file mode 100644 index 7f24e1fd87e..00000000000 --- a/pkgs/development/python-modules/influxgraph/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, isPy3k -, influxdb, graphite_api, python-memcached -}: - -buildPythonPackage rec { - pname = "influxgraph"; - version = "1.5.0"; - - src = fetchPypi { - inherit pname version; - sha256 = "0l33sfwdh4bfprmzp2kx0d9098g6yxbnhyyx9qr3kzczpm0jg9vy"; - }; - - propagatedBuildInputs = [ influxdb graphite_api python-memcached ]; - - passthru.moduleName = "influxgraph.InfluxDBFinder"; - - meta = with lib; { - description = "InfluxDB storage plugin for Graphite-API"; - homepage = "https://github.com/InfluxGraph/influxgraph"; - license = licenses.asl20; - maintainers = with maintainers; [ basvandijk ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index c1e4d27d3ff..087417c9fb3 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -79,6 +79,8 @@ mapAliases ({ glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28 google_api_python_client = google-api-python-client; # added 2021-03-19 googleapis_common_protos = googleapis-common-protos; # added 2021-03-19 + graphite_api = throw "graphite_api was removed, because it is no longer maintained"; # added 2022-07-10 + graphite_beacon = throw "graphite_beacon was removed, because it is no longer maintained"; # added 2022-07-09 grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21 ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06 HAP-python = hap-python; # added 2021-06-01 @@ -87,6 +89,7 @@ mapAliases ({ hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29 IMAPClient = imapclient; # added 2021-10-28 ipaddress = throw "ipaddress has been removed because it is no longer required since python 2.7."; # added 2022-05-30 + influxgraph = throw "influxgraph has been removed because it is no longer maintained"; # added 2022-07-10 jupyter_client = jupyter-client; # added 2021-10-15 Keras = keras; # added 2021-11-25 lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index dfc9daa0894..34cced4ec22 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3759,10 +3759,6 @@ in { grapheme = callPackage ../development/python-modules/grapheme { }; - graphite_api = callPackage ../development/python-modules/graphite-api { }; - - graphite_beacon = callPackage ../development/python-modules/graphite_beacon { }; - graphite-web = callPackage ../development/python-modules/graphite-web { }; graphene = callPackage ../development/python-modules/graphene { }; @@ -4284,8 +4280,6 @@ in { influxdb-client = callPackage ../development/python-modules/influxdb-client { }; - influxgraph = callPackage ../development/python-modules/influxgraph { }; - inform = callPackage ../development/python-modules/inform { }; iniconfig = callPackage ../development/python-modules/iniconfig { }; @@ -10666,7 +10660,7 @@ in { # Used by circus and grab-site, 2020-08-29 tornado_4 = callPackage ../development/python-modules/tornado/4.nix { }; - # Used by streamlit, graphite_beacon, 2021-01-29 + # Used by streamlit, 2021-01-29 tornado_5 = callPackage ../development/python-modules/tornado/5.nix { }; torrequest = callPackage ../development/python-modules/torrequest { };