lxc-ruby 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -74,6 +74,7 @@ c.exists? # => true
74
74
 
75
75
  # Status helpers
76
76
  c.running? # => true
77
+ c.stopped? # => false
77
78
  c.frozen? # => false
78
79
 
79
80
  # Start and stop containers
data/lib/lxc/container.rb CHANGED
@@ -45,6 +45,12 @@ module LXC
45
45
  status[:state] == 'FROZEN'
46
46
  end
47
47
 
48
+ # Check if container is stopped?
49
+ # @return [Boolean]
50
+ def stopped?
51
+ exists? && status[:state] == 'STOPPED'
52
+ end
53
+
48
54
  # Start container
49
55
  # @return [Hash] container status hash
50
56
  def start
data/lib/lxc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module LXC
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end
@@ -13,15 +13,23 @@ describe LXC::Container do
13
13
  subject.pid.should be_nil
14
14
  end
15
15
 
16
- it 'should exist' do
17
- stub_lxc('ls') { "app\napp2" }
18
- subject.exists?.should be_true
16
+ describe '#exists?' do
17
+ context 'for existing container' do
18
+ it 'returns true' do
19
+ stub_lxc('ls') { "app\napp2" }
20
+ subject.exists?.should be_true
21
+ end
22
+ end
19
23
 
20
- stub_lxc('ls') { "app2\napp3" }
21
- subject.exists?.should be_false
24
+ context 'for non-existing container' do
25
+ it 'returns false' do
26
+ stub_lxc('ls') { "app2\napp3" }
27
+ subject.exists?.should be_false
28
+ end
29
+ end
22
30
  end
23
31
 
24
- context '.status' do
32
+ describe '#status' do
25
33
  it 'returns STOPPED' do
26
34
  stub_lxc('info', '-n', 'app') { fixture('lxc-info-stopped.txt') }
27
35
  subject.status.should eq({:state => 'STOPPED', :pid => '-1'})
@@ -33,7 +41,7 @@ describe LXC::Container do
33
41
  end
34
42
  end
35
43
 
36
- context '.destroy' do
44
+ describe '#destroy' do
37
45
  it 'raises error if container does not exist' do
38
46
  stub_lxc('ls') { "app2" }
39
47
  proc { subject.destroy }.
@@ -48,17 +56,21 @@ describe LXC::Container do
48
56
  end
49
57
  end
50
58
 
51
- it 'returns the amount of used memory' do
52
- stub_lxc('cgroup', '-n', 'app', 'memory.usage_in_bytes') { "3280896\n" }
53
- subject.memory_usage.should eq(3280896)
59
+ describe '#memory_usage' do
60
+ it 'returns the amount of used memory' do
61
+ stub_lxc('cgroup', '-n', 'app', 'memory.usage_in_bytes') { "3280896\n" }
62
+ subject.memory_usage.should eq(3280896)
63
+ end
54
64
  end
55
65
 
56
- it 'returns the memory limit' do
57
- stub_lxc('cgroup', '-n', 'app', 'memory.limit_in_bytes') { "268435456\n" }
58
- subject.memory_limit.should eq(268435456)
66
+ describe '#memory_limit' do
67
+ it 'returns the memory limit' do
68
+ stub_lxc('cgroup', '-n', 'app', 'memory.limit_in_bytes') { "268435456\n" }
69
+ subject.memory_limit.should eq(268435456)
70
+ end
59
71
  end
60
72
 
61
- context '.processes' do
73
+ describe '#processes' do
62
74
  it 'raises error if container is not running' do
63
75
  stub_lxc('info', '-n', 'app') { fixture('lxc-info-stopped.txt') }
64
76
 
@@ -83,4 +95,29 @@ describe LXC::Container do
83
95
  p.should have_key('args')
84
96
  end
85
97
  end
98
+
99
+ describe '#stopped?' do
100
+ context 'when container does not exist' do
101
+ it 'returns false' do
102
+ stub_lxc('ls') { "foo-app" }
103
+ subject.stopped?.should be_false
104
+ end
105
+ end
106
+
107
+ context 'when container exists' do
108
+ it 'returns true if stopped' do
109
+ stub_lxc('ls') { 'app' }
110
+ stub_lxc('info', '-n', 'app') { fixture('lxc-info-stopped.txt') }
111
+
112
+ subject.stopped?.should be_true
113
+ end
114
+
115
+ it 'returns false if running' do
116
+ stub_lxc('ls') { 'app' }
117
+ stub_lxc('info', '-n', 'app') { fixture('lxc-info-running.txt') }
118
+
119
+ subject.stopped?.should be_false
120
+ end
121
+ end
122
+ end
86
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lxc-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-20 00:00:00.000000000 Z
12
+ date: 2013-02-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  requirements: []
112
112
  rubyforge_project:
113
- rubygems_version: 1.8.23
113
+ rubygems_version: 1.8.24
114
114
  signing_key:
115
115
  specification_version: 3
116
116
  summary: Ruby wrapper to LXC
@@ -125,3 +125,4 @@ test_files:
125
125
  - spec/fixtures/lxc-version.txt
126
126
  - spec/lxc_spec.rb
127
127
  - spec/spec_helper.rb
128
+ has_rdoc: