Commit generated code otherwise CI cannot check types
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -9,7 +9,6 @@ democlan
|
||||
example_clan
|
||||
result*
|
||||
/pkgs/clan-cli/clan_cli/nixpkgs
|
||||
/pkgs/clan-cli/clan_cli/inventory/classes.py
|
||||
/pkgs/clan-cli/clan_cli/webui/assets
|
||||
nixos.qcow2
|
||||
**/*.glade~
|
||||
|
||||
176
pkgs/clan-cli/clan_cli/inventory/classes.py
Normal file
176
pkgs/clan-cli/clan_cli/inventory/classes.py
Normal file
@@ -0,0 +1,176 @@
|
||||
# DON NOT EDIT THIS FILE MANUALLY. IT IS GENERATED.
|
||||
#
|
||||
# ruff: noqa: N815
|
||||
# ruff: noqa: N806
|
||||
# ruff: noqa: F401
|
||||
# fmt: off
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any
|
||||
|
||||
|
||||
@dataclass
|
||||
class MachineDeploy:
|
||||
targetHost: str | None = field(default=None )
|
||||
|
||||
|
||||
@dataclass
|
||||
class Machine:
|
||||
deploy: MachineDeploy
|
||||
name: str
|
||||
description: str | None = field(default=None )
|
||||
icon: str | None = field(default=None )
|
||||
system: str | None = field(default=None )
|
||||
tags: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class Meta:
|
||||
name: str
|
||||
description: str | None = field(default=None )
|
||||
icon: str | None = field(default=None )
|
||||
|
||||
|
||||
@dataclass
|
||||
class BorgbackupConfigDestination:
|
||||
repo: str
|
||||
name: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class BorgbackupConfig:
|
||||
destinations: dict[str, BorgbackupConfigDestination] = field(default_factory=dict )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackupMachine:
|
||||
config: BorgbackupConfig = field(default_factory=BorgbackupConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackupMeta:
|
||||
name: str
|
||||
description: str | None = field(default=None )
|
||||
icon: str | None = field(default=None )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackupRoleClient:
|
||||
config: BorgbackupConfig = field(default_factory=BorgbackupConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
machines: list[str] = field(default_factory=list )
|
||||
tags: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackupRoleServer:
|
||||
config: BorgbackupConfig = field(default_factory=BorgbackupConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
machines: list[str] = field(default_factory=list )
|
||||
tags: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackupRole:
|
||||
client: ServiceBorgbackupRoleClient
|
||||
server: ServiceBorgbackupRoleServer
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackup:
|
||||
meta: ServiceBorgbackupMeta
|
||||
roles: ServiceBorgbackupRole
|
||||
config: BorgbackupConfig = field(default_factory=BorgbackupConfig )
|
||||
machines: dict[str, ServiceBorgbackupMachine] = field(default_factory=dict )
|
||||
|
||||
|
||||
@dataclass
|
||||
class PackagesConfig:
|
||||
packages: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServicePackageMachine:
|
||||
config: PackagesConfig = field(default_factory=PackagesConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServicePackageMeta:
|
||||
name: str
|
||||
description: str | None = field(default=None )
|
||||
icon: str | None = field(default=None )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServicePackageRoleDefault:
|
||||
config: PackagesConfig = field(default_factory=PackagesConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
machines: list[str] = field(default_factory=list )
|
||||
tags: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServicePackageRole:
|
||||
default: ServicePackageRoleDefault
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServicePackage:
|
||||
meta: ServicePackageMeta
|
||||
roles: ServicePackageRole
|
||||
config: PackagesConfig = field(default_factory=PackagesConfig )
|
||||
machines: dict[str, ServicePackageMachine] = field(default_factory=dict )
|
||||
|
||||
|
||||
@dataclass
|
||||
class SingleDiskConfig:
|
||||
device: str | None = field(default=None )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceSingleDiskMachine:
|
||||
config: SingleDiskConfig = field(default_factory=SingleDiskConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceSingleDiskMeta:
|
||||
name: str
|
||||
description: str | None = field(default=None )
|
||||
icon: str | None = field(default=None )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceSingleDiskRoleDefault:
|
||||
config: SingleDiskConfig = field(default_factory=SingleDiskConfig )
|
||||
imports: list[str] = field(default_factory=list )
|
||||
machines: list[str] = field(default_factory=list )
|
||||
tags: list[str] = field(default_factory=list )
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceSingleDiskRole:
|
||||
default: ServiceSingleDiskRoleDefault
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceSingleDisk:
|
||||
meta: ServiceSingleDiskMeta
|
||||
roles: ServiceSingleDiskRole
|
||||
config: SingleDiskConfig = field(default_factory=SingleDiskConfig )
|
||||
machines: dict[str, ServiceSingleDiskMachine] = field(default_factory=dict )
|
||||
|
||||
|
||||
@dataclass
|
||||
class Service:
|
||||
borgbackup: dict[str, ServiceBorgbackup] = field(default_factory=dict )
|
||||
packages: dict[str, ServicePackage] = field(default_factory=dict )
|
||||
single_disk: dict[str, ServiceSingleDisk] = field(default_factory=dict , metadata={"original_name": "single-disk"})
|
||||
|
||||
|
||||
@dataclass
|
||||
class Inventory:
|
||||
meta: Meta
|
||||
services: Service
|
||||
machines: dict[str, Machine] = field(default_factory=dict )
|
||||
@@ -89,6 +89,35 @@
|
||||
default = self'.packages.clan-cli;
|
||||
};
|
||||
|
||||
checks = self'.packages.clan-cli.tests;
|
||||
checks = self'.packages.clan-cli.tests // {
|
||||
inventory-classes-up-to-date = pkgs.stdenv.mkDerivation {
|
||||
name = "inventory-classes-up-to-date";
|
||||
src = ./clan_cli/inventory;
|
||||
|
||||
env = {
|
||||
classFile = "classes.py";
|
||||
};
|
||||
installPhase = ''
|
||||
${self'.packages.classgen}/bin/classgen ${self'.packages.inventory-schema}/schema.json b_classes.py
|
||||
file1=$classFile
|
||||
file2=b_classes.py
|
||||
|
||||
echo "Comparing $file1 and $file2"
|
||||
if cmp -s "$file1" "$file2"; then
|
||||
echo "Files are identical"
|
||||
echo "Classes file is up to date"
|
||||
else
|
||||
echo "Classes file is out of date or has been modified"
|
||||
echo "run ./update.sh in the inventory directory to update the classes file"
|
||||
echo "--------------------------------\n"
|
||||
diff "$file1" "$file2"
|
||||
echo "--------------------------------\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -179,11 +179,12 @@ def run_gen(args: argparse.Namespace) -> None:
|
||||
|
||||
with open(args.output, "w") as f:
|
||||
f.write(
|
||||
"""
|
||||
# DON NOT EDIT THIS FILE MANUALLY. IT IS GENERATED.
|
||||
# UPDATE
|
||||
"""# DON NOT EDIT THIS FILE MANUALLY. IT IS GENERATED.
|
||||
#
|
||||
# ruff: noqa: N815
|
||||
# ruff: noqa: N806
|
||||
# ruff: noqa: F401
|
||||
# fmt: off
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any\n\n
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user