Class: Microsandbox::Volume
- Inherits:
-
Object
- Object
- Microsandbox::Volume
- Defined in:
- lib/microsandbox/volume.rb
Overview
Management of named persistent volumes. Mount them into a sandbox via ‘Sandbox.create(…, volumes: { “/data” => { named: “my-vol” } })`.
Class Method Summary collapse
-
.create(name, kind: "dir", size_mib: nil, quota_mib: nil, labels: nil) ⇒ VolumeInfo
Create a named volume.
-
.get(name) ⇒ VolumeInfo
Metadata for a volume.
-
.list ⇒ Array<VolumeInfo>
All volumes.
-
.remove(name) ⇒ nil
Remove a volume.
Class Method Details
.create(name, kind: "dir", size_mib: nil, quota_mib: nil, labels: nil) ⇒ VolumeInfo
Create a named volume.
51 52 53 54 55 56 57 |
# File 'lib/microsandbox/volume.rb', line 51 def create(name, kind: "dir", size_mib: nil, quota_mib: nil, labels: nil) opts = { "kind" => kind.to_s } opts["size_mib"] = Integer(size_mib) if size_mib opts["quota_mib"] = Integer(quota_mib) if quota_mib opts["labels"] = labels.each_with_object({}) { |(k, v), a| a[k.to_s] = v.to_s } if labels VolumeInfo.new(Native::Volume.create(name.to_s, opts)) end |
.get(name) ⇒ VolumeInfo
Metadata for a volume.
61 62 63 |
# File 'lib/microsandbox/volume.rb', line 61 def get(name) VolumeInfo.new(Native::Volume.get(name.to_s)) end |
.list ⇒ Array<VolumeInfo>
All volumes.
67 68 69 |
# File 'lib/microsandbox/volume.rb', line 67 def list Native::Volume.list.map { |info| VolumeInfo.new(info) } end |
.remove(name) ⇒ nil
Remove a volume.
73 74 75 76 |
# File 'lib/microsandbox/volume.rb', line 73 def remove(name) Native::Volume.remove(name.to_s) nil end |