Merge pull request #186940 from NickCao/stratis-cli

stratis-cli: init at 3.2.0
This commit is contained in:
Jonas Heinrich 2022-09-16 13:40:17 +02:00 committed by GitHub
commit 22c17bd5f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 249 additions and 0 deletions

View file

@ -1266,6 +1266,7 @@
./tasks/network-interfaces-scripted.nix ./tasks/network-interfaces-scripted.nix
./tasks/scsi-link-power-management.nix ./tasks/scsi-link-power-management.nix
./tasks/snapraid.nix ./tasks/snapraid.nix
./tasks/stratis.nix
./tasks/swraid.nix ./tasks/swraid.nix
./tasks/trackpoint.nix ./tasks/trackpoint.nix
./tasks/powertop.nix ./tasks/powertop.nix

View file

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.stratis;
in
{
options.services.stratis = {
enable = lib.mkEnableOption (lib.mdDoc "Stratis Storage - Easy to use local storage management for Linux");
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ pkgs.stratis-cli ];
systemd.packages = [ pkgs.stratisd ];
services.dbus.packages = [ pkgs.stratisd ];
services.udev.packages = [ pkgs.stratisd ];
systemd.services.stratisd.wantedBy = [ "sysinit.target" ];
};
}

View file

@ -533,6 +533,7 @@ in {
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {}; sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
starship = handleTest ./starship.nix {}; starship = handleTest ./starship.nix {};
step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {}; step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
stratis = handleTest ./stratis {};
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {}; strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
stunnel = handleTest ./stunnel.nix {}; stunnel = handleTest ./stunnel.nix {};
sudo = handleTest ./sudo.nix {}; sudo = handleTest ./sudo.nix {};

View file

@ -0,0 +1,7 @@
{ system ? builtins.currentSystem
, pkgs ? import ../../.. { inherit system; }
}:
{
simple = import ./simple.nix { inherit system pkgs; };
}

View file

@ -0,0 +1,39 @@
import ../make-test-python.nix ({ pkgs, ... }:
{
name = "stratis";
meta = with pkgs.lib.maintainers; {
maintainers = [ nickcao ];
};
nodes.machine = { pkgs, ... }: {
services.stratis.enable = true;
virtualisation.emptyDiskImages = [ 1024 1024 1024 1024 ];
};
testScript = ''
machine.wait_for_unit("stratisd")
# test pool creation
machine.succeed("stratis pool create testpool /dev/vdb")
machine.succeed("stratis pool add-data testpool /dev/vdc")
machine.succeed("stratis pool init-cache testpool /dev/vdd")
machine.succeed("stratis pool add-cache testpool /dev/vde")
# test filesystem creation and rename
machine.succeed("stratis filesystem create testpool testfs0")
machine.succeed("stratis filesystem rename testpool testfs0 testfs1")
# test snapshot
machine.succeed("mkdir -p /mnt/testfs1 /mnt/testfs2")
machine.wait_for_file("/dev/stratis/testpool/testfs1")
machine.succeed("mount /dev/stratis/testpool/testfs1 /mnt/testfs1")
machine.succeed("echo test0 > /mnt/testfs1/test0")
machine.succeed("echo test1 > /mnt/testfs1/test1")
machine.succeed("stratis filesystem snapshot testpool testfs1 testfs2")
machine.succeed("echo test2 > /mnt/testfs1/test1")
machine.wait_for_file("/dev/stratis/testpool/testfs2")
machine.succeed("mount /dev/stratis/testpool/testfs2 /mnt/testfs2")
assert "test0" in machine.succeed("cat /mnt/testfs1/test0")
assert "test0" in machine.succeed("cat /mnt/testfs2/test0")
assert "test2" in machine.succeed("cat /mnt/testfs1/test1")
assert "test1" in machine.succeed("cat /mnt/testfs2/test1")
'';
})

View file

@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, into-dbus-python
, dbus-python
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "dbus-python-client-gen";
version = "0.8";
src = fetchFromGitHub {
owner = "stratis-storage";
repo = pname;
rev = "v${version}";
hash = "sha256-nSzxT65WHBVct5pGHmIAHJXftd0tKZeK/argN+V9xcs=";
};
propagatedBuildInputs = [
into-dbus-python
dbus-python
];
checkInputs = [
pytestCheckHook
];
meta = with lib; {
description = "A Python library for generating dbus-python client code";
homepage = "https://github.com/stratis-storage/dbus-python-client-gen";
license = licenses.mpl20;
maintainers = with maintainers; [ nickcao ];
};
}

View file

@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pyparsing
, pytestCheckHook
, hypothesis
, hs-dbus-signature
}:
buildPythonPackage rec {
pname = "dbus-signature-pyparsing";
version = "0.04";
src = fetchFromGitHub {
owner = "stratis-storage";
repo = pname;
rev = "v${version}";
hash = "sha256-IXyepfq7pLTRkTolKWsKGrYDoxukVC9JTrxS9xV7s2I=";
};
propagatedBuildInputs = [ pyparsing ];
checkInputs = [
pytestCheckHook
hypothesis
hs-dbus-signature
];
meta = with lib; {
description = "A Parser for a D-Bus Signature";
homepage = "https://github.com/stratis-storage/dbus-signature-pyparsing";
license = licenses.asl20;
maintainers = with maintainers; [ nickcao ];
};
}

View file

@ -0,0 +1,28 @@
{ lib
, buildPythonPackage
, fetchPypi
, pytestCheckHook
, hypothesis
}:
buildPythonPackage rec {
pname = "hs-dbus-signature";
version = "0.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-NNnTcSX+K8zU+sj1QBd13h7aEXN9VqltJMNWCuhgZ6I=";
};
checkInputs = [
pytestCheckHook
hypothesis
];
meta = with lib; {
description = "A Hypothesis Strategy for Generating Arbitrary DBus Signatures";
homepage = "https://github.com/stratis-storage/hs-dbus-signature";
license = licenses.mpl20;
maintainers = with maintainers; [ nickcao ];
};
}

View file

@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, dbus-signature-pyparsing
, dbus-python
, pytestCheckHook
, hypothesis
, hs-dbus-signature
}:
buildPythonPackage rec {
pname = "into-dbus-python";
version = "0.08";
src = fetchFromGitHub {
owner = "stratis-storage";
repo = pname;
rev = "v${version}";
hash = "sha256-Z8e6oAvRMIisMjG4HcS5jSH1znGVc7pGpMITo5fXYVs=";
};
propagatedBuildInputs = [
dbus-signature-pyparsing
dbus-python
];
checkInputs = [
pytestCheckHook
hypothesis
hs-dbus-signature
];
meta = with lib; {
description = "A transformer to dbus-python types";
homepage = "https://github.com/stratis-storage/into-dbus-python";
license = licenses.asl20;
maintainers = with maintainers; [ nickcao ];
};
}

View file

@ -0,0 +1,36 @@
{ lib
, python3Packages
, fetchFromGitHub
, nixosTests
}:
python3Packages.buildPythonApplication rec {
pname = "stratis-cli";
version = "3.2.0";
src = fetchFromGitHub {
owner = "stratis-storage";
repo = pname;
rev = "v${version}";
hash = "sha256-JQXTzvm4l/pl2T4djZ3HEdDQJdFE+I9doe8Iv5q34kw=";
};
propagatedBuildInputs = with python3Packages; [
psutil
python-dateutil
wcwidth
justbytes
dbus-client-gen
dbus-python-client-gen
packaging
];
passthru.tests = nixosTests.stratis;
meta = with lib; {
description = "CLI for the Stratis project";
homepage = "https://stratis-storage.github.io";
license = licenses.asl20;
maintainers = with maintainers; [ nickcao ];
};
}

View file

@ -18,6 +18,7 @@
, tpm2-tools , tpm2-tools
, coreutils , coreutils
, clevisSupport ? false , clevisSupport ? false
, nixosTests
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -95,6 +96,8 @@ stdenv.mkDerivation rec {
rm -r "$out/lib/systemd/system-generators" rm -r "$out/lib/systemd/system-generators"
''; '';
passthru.tests = nixosTests.stratis;
meta = with lib; { meta = with lib; {
description = "Easy to use local storage management for Linux"; description = "Easy to use local storage management for Linux";
homepage = "https://stratis-storage.github.io"; homepage = "https://stratis-storage.github.io";

View file

@ -5940,6 +5940,8 @@ with pkgs;
stratisd = callPackage ../tools/filesystems/stratisd { }; stratisd = callPackage ../tools/filesystems/stratisd { };
stratis-cli = callPackage ../tools/filesystems/stratis-cli { };
strawberry = libsForQt5.callPackage ../applications/audio/strawberry { }; strawberry = libsForQt5.callPackage ../applications/audio/strawberry { };
schildichat-desktop = callPackage ../applications/networking/instant-messengers/schildichat/schildichat-desktop.nix { schildichat-desktop = callPackage ../applications/networking/instant-messengers/schildichat/schildichat-desktop.nix {

View file

@ -2302,6 +2302,10 @@ in {
inherit (pkgs) dbus; inherit (pkgs) dbus;
}; };
dbus-python-client-gen = callPackage ../development/python-modules/dbus-python-client-gen { };
dbus-signature-pyparsing = callPackage ../development/python-modules/dbus-signature-pyparsing { };
dbutils = callPackage ../development/python-modules/dbutils { }; dbutils = callPackage ../development/python-modules/dbutils { };
db-dtypes = callPackage ../development/python-modules/db-dtypes { }; db-dtypes = callPackage ../development/python-modules/db-dtypes { };
@ -4235,6 +4239,8 @@ in {
hpccm = callPackage ../development/python-modules/hpccm { }; hpccm = callPackage ../development/python-modules/hpccm { };
hs-dbus-signature = callPackage ../development/python-modules/hs-dbus-signature { };
hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { }; hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
hsluv = callPackage ../development/python-modules/hsluv { }; hsluv = callPackage ../development/python-modules/hsluv { };
@ -4523,6 +4529,8 @@ in {
intervaltree = callPackage ../development/python-modules/intervaltree { }; intervaltree = callPackage ../development/python-modules/intervaltree { };
into-dbus-python = callPackage ../development/python-modules/into-dbus-python { };
intreehooks = callPackage ../development/python-modules/intreehooks { }; intreehooks = callPackage ../development/python-modules/intreehooks { };
invocations = callPackage ../development/python-modules/invocations { }; invocations = callPackage ../development/python-modules/invocations { };