Unverified Commit 859e55c0 authored by Rémi NICOLE's avatar Rémi NICOLE Committed by GitHub
Browse files

NetBox: 4.2.7 -> 4.2.9 + cleanup (#401110)

parents 5120f962 59e547ab
Loading
Loading
Loading
Loading
+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";
@@ -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
          '';
@@ -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")
+3 −0
Original line number Diff line number Diff line
@@ -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
+4 −2
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
  python3,
  plugins ? _ps: [ ],
  nixosTests,
  nix-update-script,
}:
let
  py = python3.override {
@@ -14,7 +15,7 @@ let
in
py.pkgs.buildPythonApplication rec {
  pname = "netbox";
  version = "4.2.7";
  version = "4.2.9";

  format = "other";

@@ -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 = [
@@ -112,6 +113,7 @@ py.pkgs.buildPythonApplication rec {
      netbox = nixosTests.netbox_4_2;
      inherit (nixosTests) netbox-upgrade;
    };
    updateScript = nix-update-script { };
  };

  meta = {
+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,
+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