Skip to content

Create fcctl-core crate with VmManager and SnapshotManager #664

@AlexMikhalev

Description

@AlexMikhalev

Summary

PR #426 (feat(rlm): RLM orchestration with MCP tools) is blocked because the external dependency fcctl-core is missing.

The terraphim_rlm crate imports fcctl_core::vm::VmManager and fcctl_core::snapshot::SnapshotManager from a local path ../../../firecracker-rust/fcctl-core, but this directory does not exist.

Requirements

The fcctl-core crate should provide:

  1. fcctl_core::vm::VmManager trait/struct with methods:
    • new(firecracker_bin, socket_base_path, ...) -> Result<Self>
    • get_vm_client(&vm_id) -> Result<VmClient>
    • get_vm_ip(&vm_id) -> Option<String>
  2. fcctl_core::snapshot::SnapshotManager trait/struct with methods:
    • new(snapshots_dir, ...) -> Result<Self>
    • create_snapshot(vm_client, vm_id, name, snapshot_type, ...) -> Result<String>
    • restore_snapshot(vm_client, snapshot_id) -> Result<()>
    • list_snapshots(vm_id_option) -> Result<Vec<SnapshotInfo>>
    • delete_snapshot(snapshot_id, force) -> Result<()>
  3. fcctl_core::firecracker::models::SnapshotType enum

Related Issues

This crate should implement the following features (tracked in separate issues):

Location

The crate should be created in a new repository terraphim/firecracker-rust or within the current repository under crates/fcctl-core.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions