nix: Remove ugly toJSON hack
We now evaluate with --strict.
This commit is contained in:
parent
eebded1786
commit
31fc98cfa7
2 changed files with 6 additions and 10 deletions
|
@ -455,10 +455,10 @@ let
|
||||||
|
|
||||||
toplevel = lib.mapAttrs (name: eval: eval.config.system.build.toplevel) nodes;
|
toplevel = lib.mapAttrs (name: eval: eval.config.system.build.toplevel) nodes;
|
||||||
|
|
||||||
deploymentConfigJson = toJSON (lib.mapAttrs (name: eval: eval.config.deployment) nodes);
|
deploymentConfig = lib.mapAttrs (name: eval: eval.config.deployment) nodes;
|
||||||
|
|
||||||
deploymentConfigJsonSelected = names: toJSON
|
deploymentConfigSelected = names:
|
||||||
(listToAttrs (map (name: { inherit name; value = nodes.${name}.config.deployment; }) names));
|
listToAttrs (map (name: { inherit name; value = nodes.${name}.config.deployment; }) names);
|
||||||
|
|
||||||
evalAll = evalSelected nodeNames;
|
evalAll = evalSelected nodeNames;
|
||||||
evalSelected = names: let
|
evalSelected = names: let
|
||||||
|
@ -472,7 +472,7 @@ let
|
||||||
in {
|
in {
|
||||||
inherit
|
inherit
|
||||||
nodes toplevel
|
nodes toplevel
|
||||||
deploymentConfigJson deploymentConfigJsonSelected
|
deploymentConfig deploymentConfigSelected
|
||||||
evalAll evalSelected introspect;
|
evalAll evalSelected introspect;
|
||||||
|
|
||||||
meta = hive.meta;
|
meta = hive.meta;
|
||||||
|
|
|
@ -202,11 +202,9 @@ impl Hive {
|
||||||
|
|
||||||
/// Retrieve deployment info for all nodes.
|
/// Retrieve deployment info for all nodes.
|
||||||
pub async fn deployment_info(&self) -> NixResult<HashMap<NodeName, NodeConfig>> {
|
pub async fn deployment_info(&self) -> NixResult<HashMap<NodeName, NodeConfig>> {
|
||||||
// FIXME: Really ugly :(
|
let configs: HashMap<NodeName, NodeConfig> = self.nix_instantiate("hive.deploymentConfig").eval_with_builders().await?
|
||||||
let s: String = self.nix_instantiate("hive.deploymentConfigJson").eval_with_builders().await?
|
|
||||||
.capture_json().await?;
|
.capture_json().await?;
|
||||||
|
|
||||||
let configs: HashMap<NodeName, NodeConfig> = serde_json::from_str(&s).unwrap();
|
|
||||||
for config in configs.values() {
|
for config in configs.values() {
|
||||||
config.validate()?;
|
config.validate()?;
|
||||||
for key in config.keys.values() {
|
for key in config.keys.values() {
|
||||||
|
@ -229,12 +227,10 @@ impl Hive {
|
||||||
pub async fn deployment_info_selected(&self, nodes: &[NodeName]) -> NixResult<HashMap<NodeName, NodeConfig>> {
|
pub async fn deployment_info_selected(&self, nodes: &[NodeName]) -> NixResult<HashMap<NodeName, NodeConfig>> {
|
||||||
let nodes_expr = SerializedNixExpresssion::new(nodes)?;
|
let nodes_expr = SerializedNixExpresssion::new(nodes)?;
|
||||||
|
|
||||||
// FIXME: Really ugly :(
|
let configs: HashMap<NodeName, NodeConfig> = self.nix_instantiate(&format!("hive.deploymentConfigSelected {}", nodes_expr.expression()))
|
||||||
let s: String = self.nix_instantiate(&format!("hive.deploymentConfigJsonSelected {}", nodes_expr.expression()))
|
|
||||||
.eval_with_builders().await?
|
.eval_with_builders().await?
|
||||||
.capture_json().await?;
|
.capture_json().await?;
|
||||||
|
|
||||||
let configs: HashMap<NodeName, NodeConfig> = serde_json::from_str(&s).unwrap();
|
|
||||||
for config in configs.values() {
|
for config in configs.values() {
|
||||||
config.validate()?;
|
config.validate()?;
|
||||||
for key in config.keys.values() {
|
for key in config.keys.values() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue