Loading nixos/tests/web-apps/netbox-upgrade.nix +19 −16 Original line number Diff line number Diff line import ../make-test-python.nix ( { lib, pkgs, ... }: let oldNetbox = pkgs.netbox_3_7; newNetbox = pkgs.netbox_4_1; oldNetbox = "netbox_4_1"; newNetbox = "netbox_4_2"; apiVersion = version: lib.pipe version [ (lib.splitString ".") (lib.take 2) (lib.concatStringsSep ".") ]; oldApiVersion = apiVersion pkgs."${oldNetbox}".version; newApiVersion = apiVersion pkgs."${newNetbox}".version; in { name = "netbox-upgrade"; Loading @@ -15,12 +25,14 @@ import ../make-test-python.nix ( }; nodes.machine = { config, ... }: { config, pkgs, ... }: { virtualisation.memorySize = 2048; services.netbox = { enable = true; package = oldNetbox; # Pick the NetBox package from this config's "pkgs" argument, # so that `nixpkgs.config.permittedInsecurePackages` works package = pkgs."${oldNetbox}"; secretKeyFile = pkgs.writeText "secret" '' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ''; Loading @@ -42,22 +54,13 @@ import ../make-test-python.nix ( networking.firewall.allowedTCPPorts = [ 80 ]; specialisation.upgrade.configuration.services.netbox.package = lib.mkForce newNetbox; nixpkgs.config.permittedInsecurePackages = [ pkgs."${oldNetbox}".name ]; specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs."${newNetbox}"; }; testScript = { nodes, ... }: let apiVersion = version: lib.pipe version [ (lib.splitString ".") (lib.take 2) (lib.concatStringsSep ".") ]; oldApiVersion = apiVersion oldNetbox.version; newApiVersion = apiVersion newNetbox.version; in '' start_all() machine.wait_for_unit("netbox.target") Loading pkgs/by-name/ne/netbox_4_1/package.nix +3 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,9 @@ py.pkgs.buildPythonApplication rec { description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool"; mainProgram = "netbox"; license = lib.licenses.asl20; knownVulnerabilities = [ "Netbox version ${version} is EOL; please upgrade by following the current release notes instructions." ]; maintainers = with lib.maintainers; [ minijackson raitobezarius Loading pkgs/by-name/ne/netbox_4_2/package.nix +4 −2 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ python3, plugins ? _ps: [ ], nixosTests, nix-update-script, }: let py = python3.override { Loading @@ -14,7 +15,7 @@ let in py.pkgs.buildPythonApplication rec { pname = "netbox"; version = "4.2.7"; version = "4.2.9"; format = "other"; Loading @@ -22,7 +23,7 @@ py.pkgs.buildPythonApplication rec { owner = "netbox-community"; repo = "netbox"; tag = "v${version}"; hash = "sha256-SZES80hdoP+k6o5ablMnwaFrsVGE8Baew44eX2ZCk/Y="; hash = "sha256-uVe4YTZoxRMBfvItFa9SMHu4AaVvygfAg9GDB115TFc="; }; patches = [ Loading Loading @@ -112,6 +113,7 @@ py.pkgs.buildPythonApplication rec { netbox = nixosTests.netbox_4_2; inherit (nixosTests) netbox-upgrade; }; updateScript = nix-update-script { }; }; meta = { Loading pkgs/servers/web-apps/netbox/config.patchdeleted 100644 → 0 +0 −50 Original line number Diff line number Diff line diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 2de06dd10..00406af48 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -236,6 +236,7 @@ TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0) TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False) TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False) TASKS_REDIS_CA_CERT_PATH = TASKS_REDIS.get('CA_CERT_PATH', False) +TASKS_REDIS_URL = TASKS_REDIS.get('URL') # Caching if 'caching' not in REDIS: @@ -253,11 +254,12 @@ CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'defau CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis' CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False) CACHING_REDIS_CA_CERT_PATH = REDIS['caching'].get('CA_CERT_PATH', False) +CACHING_REDIS_URL = REDIS['caching'].get('URL', f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}') CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', - 'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_USERNAME_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}', + 'LOCATION': CACHING_REDIS_URL, 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': CACHING_REDIS_PASSWORD, @@ -410,7 +412,7 @@ USE_X_FORWARDED_HOST = True X_FRAME_OPTIONS = 'SAMEORIGIN' # Static files (CSS, JavaScript, Images) -STATIC_ROOT = BASE_DIR + '/static' +STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(BASE_DIR, 'static')).rstrip('/') STATIC_URL = f'/{BASE_PATH}static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'project-static', 'dist'), @@ -640,6 +642,14 @@ if TASKS_REDIS_USING_SENTINEL: 'socket_connect_timeout': TASKS_REDIS_SENTINEL_TIMEOUT }, } +elif TASKS_REDIS_URL: + RQ_PARAMS = { + 'URL': TASKS_REDIS_URL, + 'PASSWORD': TASKS_REDIS_PASSWORD, + 'SSL': TASKS_REDIS_SSL, + 'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required', + 'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT, + } else: RQ_PARAMS = { 'HOST': TASKS_REDIS_HOST, pkgs/servers/web-apps/netbox/default.nixdeleted 100644 → 0 +0 −25 Original line number Diff line number Diff line { lib, nixosTests, callPackage, }: let generic = import ./generic.nix; in { netbox_3_7 = callPackage generic { version = "3.7.8"; hash = "sha256-61pJbMWXNFnvWI0z9yWvsutdCAP4VydeceANNw0nKsk="; extraPatches = [ # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL ./config.patch ]; tests.netbox = nixosTests.netbox_3_7; maintainers = with lib.maintainers; [ minijackson raitobezarius ]; eol = true; }; } Loading
nixos/tests/web-apps/netbox-upgrade.nix +19 −16 Original line number Diff line number Diff line import ../make-test-python.nix ( { lib, pkgs, ... }: let oldNetbox = pkgs.netbox_3_7; newNetbox = pkgs.netbox_4_1; oldNetbox = "netbox_4_1"; newNetbox = "netbox_4_2"; apiVersion = version: lib.pipe version [ (lib.splitString ".") (lib.take 2) (lib.concatStringsSep ".") ]; oldApiVersion = apiVersion pkgs."${oldNetbox}".version; newApiVersion = apiVersion pkgs."${newNetbox}".version; in { name = "netbox-upgrade"; Loading @@ -15,12 +25,14 @@ import ../make-test-python.nix ( }; nodes.machine = { config, ... }: { config, pkgs, ... }: { virtualisation.memorySize = 2048; services.netbox = { enable = true; package = oldNetbox; # Pick the NetBox package from this config's "pkgs" argument, # so that `nixpkgs.config.permittedInsecurePackages` works package = pkgs."${oldNetbox}"; secretKeyFile = pkgs.writeText "secret" '' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ''; Loading @@ -42,22 +54,13 @@ import ../make-test-python.nix ( networking.firewall.allowedTCPPorts = [ 80 ]; specialisation.upgrade.configuration.services.netbox.package = lib.mkForce newNetbox; nixpkgs.config.permittedInsecurePackages = [ pkgs."${oldNetbox}".name ]; specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs."${newNetbox}"; }; testScript = { nodes, ... }: let apiVersion = version: lib.pipe version [ (lib.splitString ".") (lib.take 2) (lib.concatStringsSep ".") ]; oldApiVersion = apiVersion oldNetbox.version; newApiVersion = apiVersion newNetbox.version; in '' start_all() machine.wait_for_unit("netbox.target") Loading
pkgs/by-name/ne/netbox_4_1/package.nix +3 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,9 @@ py.pkgs.buildPythonApplication rec { description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool"; mainProgram = "netbox"; license = lib.licenses.asl20; knownVulnerabilities = [ "Netbox version ${version} is EOL; please upgrade by following the current release notes instructions." ]; maintainers = with lib.maintainers; [ minijackson raitobezarius Loading
pkgs/by-name/ne/netbox_4_2/package.nix +4 −2 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ python3, plugins ? _ps: [ ], nixosTests, nix-update-script, }: let py = python3.override { Loading @@ -14,7 +15,7 @@ let in py.pkgs.buildPythonApplication rec { pname = "netbox"; version = "4.2.7"; version = "4.2.9"; format = "other"; Loading @@ -22,7 +23,7 @@ py.pkgs.buildPythonApplication rec { owner = "netbox-community"; repo = "netbox"; tag = "v${version}"; hash = "sha256-SZES80hdoP+k6o5ablMnwaFrsVGE8Baew44eX2ZCk/Y="; hash = "sha256-uVe4YTZoxRMBfvItFa9SMHu4AaVvygfAg9GDB115TFc="; }; patches = [ Loading Loading @@ -112,6 +113,7 @@ py.pkgs.buildPythonApplication rec { netbox = nixosTests.netbox_4_2; inherit (nixosTests) netbox-upgrade; }; updateScript = nix-update-script { }; }; meta = { Loading
pkgs/servers/web-apps/netbox/config.patchdeleted 100644 → 0 +0 −50 Original line number Diff line number Diff line diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 2de06dd10..00406af48 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -236,6 +236,7 @@ TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0) TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False) TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False) TASKS_REDIS_CA_CERT_PATH = TASKS_REDIS.get('CA_CERT_PATH', False) +TASKS_REDIS_URL = TASKS_REDIS.get('URL') # Caching if 'caching' not in REDIS: @@ -253,11 +254,12 @@ CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'defau CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis' CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False) CACHING_REDIS_CA_CERT_PATH = REDIS['caching'].get('CA_CERT_PATH', False) +CACHING_REDIS_URL = REDIS['caching'].get('URL', f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}') CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', - 'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_USERNAME_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}', + 'LOCATION': CACHING_REDIS_URL, 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': CACHING_REDIS_PASSWORD, @@ -410,7 +412,7 @@ USE_X_FORWARDED_HOST = True X_FRAME_OPTIONS = 'SAMEORIGIN' # Static files (CSS, JavaScript, Images) -STATIC_ROOT = BASE_DIR + '/static' +STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(BASE_DIR, 'static')).rstrip('/') STATIC_URL = f'/{BASE_PATH}static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'project-static', 'dist'), @@ -640,6 +642,14 @@ if TASKS_REDIS_USING_SENTINEL: 'socket_connect_timeout': TASKS_REDIS_SENTINEL_TIMEOUT }, } +elif TASKS_REDIS_URL: + RQ_PARAMS = { + 'URL': TASKS_REDIS_URL, + 'PASSWORD': TASKS_REDIS_PASSWORD, + 'SSL': TASKS_REDIS_SSL, + 'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required', + 'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT, + } else: RQ_PARAMS = { 'HOST': TASKS_REDIS_HOST,
pkgs/servers/web-apps/netbox/default.nixdeleted 100644 → 0 +0 −25 Original line number Diff line number Diff line { lib, nixosTests, callPackage, }: let generic = import ./generic.nix; in { netbox_3_7 = callPackage generic { version = "3.7.8"; hash = "sha256-61pJbMWXNFnvWI0z9yWvsutdCAP4VydeceANNw0nKsk="; extraPatches = [ # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL ./config.patch ]; tests.netbox = nixosTests.netbox_3_7; maintainers = with lib.maintainers; [ minijackson raitobezarius ]; eol = true; }; }