Skip to content
This repository has been archived by the owner on Mar 30, 2023. It is now read-only.

Commit

Permalink
fix(modules): throw better error if module with some name does not exist
Browse files Browse the repository at this point in the history
  • Loading branch information
offlinehacker committed Jun 28, 2018
1 parent 1b39f6d commit 1c4c66e
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions modules.nix
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,11 @@ let
type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified);
default = [];
}) config.kubernetes.moduleDefinitions;

getModuleDefinition = name:
if hasAttr name config.kubernetes.moduleDefinitions
then config.kubernetes.moduleDefinitions.${name}
else throw ''requested kubernetes moduleDefinition with name "${name}" does not exist'';
in {
options.kubernetes.moduleDefinitions = mkOption {
description = "Attribute set of module definitions";
Expand Down Expand Up @@ -171,10 +176,7 @@ in {
configuration = mkOption {
description = "Module configuration";
type = submodule {
imports =
if hasAttr config.module globalConfig.kubernetes.moduleDefinitions
then mkModuleOptions globalConfig.kubernetes.moduleDefinitions.${config.module} config
else throw ''Kubernetes moduleDefinition "${config.module}" does not exist'';
imports = mkModuleOptions (getModuleDefinition config.module) config;
};
default = {};
};
Expand All @@ -191,7 +193,7 @@ in {
config = {
kubernetes.resources = mkMerge (
mapAttrsToList (name: module: let
moduleDefinition = config.kubernetes.moduleDefinitions."${module.module}";
moduleDefinition = getModuleDefinition module.module;
moduleConfig =
if moduleDefinition.prefixResources
then prefixResources (moduleToAttrs module.configuration.kubernetes.resources) module.name
Expand All @@ -205,9 +207,9 @@ in {

kubernetes.customResources = mkMerge (
mapAttrsToList (name: module: let
moduleDefinition = config.kubernetes.moduleDefinitions."${module.module}";
moduleDefinition = getModuleDefinition module.module;
moduleConfig =
if config.kubernetes.moduleDefinitions."${module.module}".prefixResources
if moduleDefinition.prefixResources
then prefixGroupResources (moduleToAttrs module.configuration.kubernetes.customResources) module.name
else moduleToAttrs module.configuration.kubernetes.customResources;
in
Expand Down

0 comments on commit 1c4c66e

Please sign in to comment.