lxc 0.0.3 → 0.0.4
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 +2 -1
- data/lib/lxc.rb +12 -10
- data/lib/lxc/container.rb +28 -8
- data/lib/lxc/version.rb +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
[](http://badge.fury.io/rb/lxc)
|
2
|
+
[](https://gemnasium.com/zpatten/lxc)
|
1
3
|
[](http://travis-ci.org/zpatten/lxc)
|
2
4
|
[](https://codeclimate.com/github/zpatten/lxc)
|
3
|
-
[](https://gemnasium.com/zpatten/lxc)
|
4
5
|
|
5
6
|
# LXC
|
6
7
|
|
data/lib/lxc.rb
CHANGED
@@ -85,7 +85,7 @@ class LXC
|
|
85
85
|
# @param [Array] args Additional command-line arguments.
|
86
86
|
# @return [Array<String>] A list of container names.
|
87
87
|
def ls(*args)
|
88
|
-
self.exec("ls", *args).split("\n").uniq
|
88
|
+
self.exec("lxc-ls", *args).split("\n").uniq
|
89
89
|
end
|
90
90
|
|
91
91
|
# Check if a container exists
|
@@ -106,7 +106,7 @@ class LXC
|
|
106
106
|
# @param [Array] args Additional command-line arguments.
|
107
107
|
# @return [Array<String>] Output text of the "lxc-ps" command.
|
108
108
|
def ps(*args)
|
109
|
-
self.exec("ps", *args).split("\n")
|
109
|
+
self.exec("lxc-ps", *args).split("\n")
|
110
110
|
end
|
111
111
|
|
112
112
|
# Linux container version
|
@@ -116,7 +116,7 @@ class LXC
|
|
116
116
|
# @param [Array] args Additional command-line arguments.
|
117
117
|
# @return [String] The installed version of LXC.
|
118
118
|
def version(*args)
|
119
|
-
result = self.exec("version", *args).scan(REGEX_VERSION)
|
119
|
+
result = self.exec("lxc-version", *args).scan(REGEX_VERSION)
|
120
120
|
result.flatten!.compact!
|
121
121
|
|
122
122
|
result.first.strip
|
@@ -129,7 +129,7 @@ class LXC
|
|
129
129
|
# @param [Array] args Additional command-line arguments.
|
130
130
|
# @return [Array<String>] Output text of the "lxc-checkconfig" command.
|
131
131
|
def checkconfig(*args)
|
132
|
-
self.exec("checkconfig", *args, " | #{SED_REMOVE_ANSI}").split("\n")
|
132
|
+
self.exec("lxc-checkconfig", *args, " | #{SED_REMOVE_ANSI}").split("\n")
|
133
133
|
end
|
134
134
|
|
135
135
|
# Linux container command execution wrapper
|
@@ -142,17 +142,15 @@ class LXC
|
|
142
142
|
# If use_ssh is non-nil then all commands will be execute via the assigned
|
143
143
|
# Net::SSH Session.
|
144
144
|
#
|
145
|
-
# No internal checking is performed against the object assigned to use_ssh as
|
146
|
-
# to avoid an un-necessary direct dependency on the net-ssh gems.
|
147
|
-
#
|
148
145
|
# @param [Array] args Additional command-line arguments.
|
149
146
|
# @return [Array<String>] Stripped output text of the executed command.
|
150
147
|
def exec(*args)
|
151
148
|
command = args.shift
|
152
149
|
|
153
150
|
arguments = Array.new
|
154
|
-
arguments <<
|
155
|
-
arguments << "
|
151
|
+
arguments << %(sudo) if (@use_sudo == true)
|
152
|
+
arguments << %(DEBIAN_FRONTEND="noninteractive")
|
153
|
+
arguments << command
|
156
154
|
arguments << args
|
157
155
|
arguments = arguments.flatten.compact.join(' ')
|
158
156
|
|
@@ -165,7 +163,11 @@ class LXC
|
|
165
163
|
end
|
166
164
|
end
|
167
165
|
else
|
168
|
-
|
166
|
+
if @use_ssh.respond_to?(:exec!)
|
167
|
+
output << @use_ssh.exec!(arguments)
|
168
|
+
else
|
169
|
+
raise Error, "The object you assigned to use_ssh does not respond to #exec!"
|
170
|
+
end
|
169
171
|
end
|
170
172
|
|
171
173
|
output.join.strip
|
data/lib/lxc/container.rb
CHANGED
@@ -70,6 +70,26 @@ class LXC
|
|
70
70
|
@name = name
|
71
71
|
end
|
72
72
|
|
73
|
+
# Create the container
|
74
|
+
#
|
75
|
+
# Runs the "lxc-create" command.
|
76
|
+
#
|
77
|
+
# @param [Array] args Additional command-line arguments.
|
78
|
+
def create(*args)
|
79
|
+
self.exec("lxc-create", *args)
|
80
|
+
self.state
|
81
|
+
end
|
82
|
+
|
83
|
+
# Destroy the container
|
84
|
+
#
|
85
|
+
# Stops the container, then runs the "lxc-destroy" command.
|
86
|
+
#
|
87
|
+
# @param [Array] args Additional command-line arguments.
|
88
|
+
def destroy(*args)
|
89
|
+
self.stop
|
90
|
+
self.exec("lxc-destroy", *args)
|
91
|
+
end
|
92
|
+
|
73
93
|
# Start the container
|
74
94
|
#
|
75
95
|
# Runs the "lxc-start" command with the "--daemon" flag.
|
@@ -77,7 +97,7 @@ class LXC
|
|
77
97
|
# @param [Array] args Additional command-line arguments.
|
78
98
|
# @return [Symbol] The state of the container.
|
79
99
|
def start(*args)
|
80
|
-
self.exec("start", "--daemon", *args)
|
100
|
+
self.exec("lxc-start", "--daemon", *args)
|
81
101
|
self.state
|
82
102
|
end
|
83
103
|
|
@@ -88,7 +108,7 @@ class LXC
|
|
88
108
|
# @param [Array] args Additional command-line arguments.
|
89
109
|
# @return [Symbol] The state of the container.
|
90
110
|
def stop(*args)
|
91
|
-
self.exec("stop", *args)
|
111
|
+
self.exec("lxc-stop", *args)
|
92
112
|
self.state
|
93
113
|
end
|
94
114
|
|
@@ -106,7 +126,7 @@ class LXC
|
|
106
126
|
# @param [Array] args Additional command-line arguments.
|
107
127
|
# @return [Symbol] The state of the container.
|
108
128
|
def freeze(*args)
|
109
|
-
self.exec("freeze", *args)
|
129
|
+
self.exec("lxc-freeze", *args)
|
110
130
|
self.state
|
111
131
|
end
|
112
132
|
|
@@ -117,7 +137,7 @@ class LXC
|
|
117
137
|
# @param [Array] args Additional command-line arguments.
|
118
138
|
# @return [Symbol] The state of the container.
|
119
139
|
def unfreeze(*args)
|
120
|
-
self.exec("unfreeze", *args)
|
140
|
+
self.exec("lxc-unfreeze", *args)
|
121
141
|
self.state
|
122
142
|
end
|
123
143
|
|
@@ -128,7 +148,7 @@ class LXC
|
|
128
148
|
# @param [Array] args Additional command-line arguments.
|
129
149
|
# @return [Array] Lines of output from the executed command.
|
130
150
|
def info(*args)
|
131
|
-
self.exec("info", *args).split("\n").uniq.flatten
|
151
|
+
self.exec("lxc-info", *args).split("\n").uniq.flatten
|
132
152
|
end
|
133
153
|
|
134
154
|
# State of the container
|
@@ -181,13 +201,13 @@ class LXC
|
|
181
201
|
|
182
202
|
begin
|
183
203
|
Timeout::timeout(timeout) do
|
184
|
-
self.exec("wait", "-s", %('#{state_arg}'))
|
204
|
+
self.exec("lxc-wait", "-s", %('#{state_arg}'))
|
185
205
|
end
|
186
206
|
rescue Timeout::Error => e
|
187
207
|
return false
|
188
208
|
end
|
189
209
|
|
190
|
-
|
210
|
+
true
|
191
211
|
end
|
192
212
|
|
193
213
|
# Linux container command execution wrapper
|
@@ -203,7 +223,7 @@ class LXC
|
|
203
223
|
def exec(*args)
|
204
224
|
arguments = Array.new
|
205
225
|
arguments << args.shift
|
206
|
-
arguments <<
|
226
|
+
arguments << %(--name=#{self.name})
|
207
227
|
arguments << args
|
208
228
|
arguments.flatten!.compact!
|
209
229
|
|
data/lib/lxc/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: lxc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Zachary Patten
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-04-
|
13
|
+
date: 2013-04-14 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ztk
|
@@ -148,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
149
149
|
- - ">="
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
hash:
|
151
|
+
hash: 4075966732520277240
|
152
152
|
segments:
|
153
153
|
- 0
|
154
154
|
version: "0"
|
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
157
|
requirements:
|
158
158
|
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
hash:
|
160
|
+
hash: 4075966732520277240
|
161
161
|
segments:
|
162
162
|
- 0
|
163
163
|
version: "0"
|