1 个不稳定版本

使用旧的Rust 2015

0.0.1 2018年1月12日

553#storage

每月24次下载

MIT许可

135KB
2.5K SLoC

Rust的LibStorageMgmt绑定

LibStorageMgmt提供了一组API,以供应商中立的方式编程管理存储硬件,支持以下操作

  • 列出存储池、卷、访问组或文件系统。

  • 创建和删除卷、访问组、文件系统或NFS导出。

  • 授予和移除对卷、访问组或启动器的访问权限。

  • 使用快照、克隆和复制复制卷。

  • 创建和删除访问组,并编辑组成员。

  • 列出Linux本地SCSI/ATA/NVMe磁盘。

  • 通过SES(SCSI Enclosure Service)控制本地磁盘的IDENT/FAULT LED。

要使用LibStorageMgmt的rust绑定,您需要

使用模拟插件示例代码

extern crate lsm;
use lsm::{Client, LsmError};
fn main() {
    let mut c: Client = match Client::new("sim://", None, None) {
        Ok(i) => i,
        Err(e) => {
            match e {
                // Error handling goes here
                LsmError::DaemonNotRunning(_) =>
                    panic!("Please start the libstoragemgmt daemon"),
                _ => panic!(e)
            };
        },
    };
    let syss = match c.systems() {
        Ok(i) => i,
        Err(e) => panic!(e)         // Please use error handling as above.
    };
    for s in syss {
        let cap = match c.capabilities(&s) {
            Ok(i) => i,
            Err(e) => panic!(e)     // Please use error handling as above.
        };
        if cap.is_supported(lsm::Capability::Volumes) {
            let vols = match c.volumes() {
                Ok(i) => i,
                Err(e) => panic!(e) // Please use error handling as above.
            };
            for vol in vols {
                println!("Got volume: {} {}", vol.name, vol.id);
            }
        }
    }
}

依赖关系

~7MB
~174K SLoC