24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/mist/handlers/lxc.rb', line 24
def create(args)
Mist.logger.debug "create: args=#{args}"
hostname = Socket.gethostname
distro = args['distro'] || @config.default_distro
release = args['release'] || @config.default_release
name = args['name'] || create_name
begin
Mist.logger.info "creating container #{name} with #{distro}-#{release}"
container = Mist::LXCContainer.new(name, distro, release)
raise "container with the name #{name} already exists!" if container.exists?
startup_script = File.join(@config.startup_script_path, 'lxc', distro)
container.create(@config, startup_script)
ip = container.ips.first
rescue StandardError => ex
Mist.logger.error "Create request failed: #{ex}"
return { status: false, server: hostname, message: "create request failed: #{ex}" }
end
return { status: true,
server: hostname,
message: 'created new container',
name: name,
ip: ip,
username: @config.username }
end
|