summaryrefslogtreecommitdiffstats
path: root/contrib/ruby/examples/create_system.rb
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ruby/examples/create_system.rb')
-rwxr-xr-xcontrib/ruby/examples/create_system.rb50
1 files changed, 29 insertions, 21 deletions
diff --git a/contrib/ruby/examples/create_system.rb b/contrib/ruby/examples/create_system.rb
index dd938fe1..b2d2138a 100755
--- a/contrib/ruby/examples/create_system.rb
+++ b/contrib/ruby/examples/create_system.rb
@@ -1,14 +1,14 @@
-#!/usr/bin/ruby -w
+#!/usr/bin/ruby -w
#
# create_system.rb - example of using rubygem-cobbler to create a system.
-#
+#
# Copyright (C) 2008 Red Hat, Inc.
# Written by Darryl L. Pierce <dpierce@redhat.com>
#
# This file is part of rubygem-cobbler.
#
# rubygem-cobbleris free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published
+# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 2.1 of the License, or
# (at your option) any later version.
#
@@ -20,7 +20,7 @@
# You should have received a copy of the GNU General Public License
# along with rubygem-cobbler. If not, see <http://www.gnu.org/licenses/>.
#
-
+
base = File.expand_path(File.join(File.dirname(__FILE__), ".."))
$LOAD_PATH << File.join(base, "lib")
$LOAD_PATH << File.join(base, "examples")
@@ -31,41 +31,49 @@ require 'cobbler'
include Cobbler
-opts = GetoptLong.new(
- ['--hostname', '-s', GetoptLong::REQUIRED_ARGUMENT ],
- ['--name', '-n', GetoptLong::REQUIRED_ARGUMENT ],
- ['--profile', '-f', GetoptLong::REQUIRED_ARGUMENT ],
- ['--username', '-u', GetoptLong::REQUIRED_ARGUMENT ],
- ['--password', '-p', GetoptLong::REQUIRED_ARGUMENT ],
- ['--help', '-h', GetoptLong::NO_ARGUMENT]
-)
+opts = GetoptLong.new(['--hostname', '-s', GetoptLong::REQUIRED_ARGUMENT ],
+ ['--name', '-n', GetoptLong::REQUIRED_ARGUMENT ],
+ ['--profile', '-f', GetoptLong::REQUIRED_ARGUMENT ],
+ ['--image', '-i', GetoptLong::REQUIRED_ARGUMENT ],
+ ['--username', '-u', GetoptLong::REQUIRED_ARGUMENT ],
+ ['--password', '-p', GetoptLong::REQUIRED_ARGUMENT ],
+ ['--help', '-h', GetoptLong::NO_ARGUMENT],
+ ['--debug', '-d', GetoptLong::NO_ARGUMENT])
-name = profile = hostname = username = password = nil
+name = profile = image = hostname = username = password = debug = nil
def usage
- puts "Usage: #{$0} --name system-name --profile profile-name [--hostname hostname] [--username username] [--password password]\n"
+ puts "Usage: #{$0} --name system-name [--profile profile-name | --image image-name ] [--hostname hostname] [--username username] [--password password]\n"
exit
end
-
+
opts.each do |opt, arg|
case opt
when '--hostname' then hostname = arg
when '--name' then name = arg
when '--profile' then profile = arg
+ when '--image' then image = arg
when '--username' then username = arg
when '--password' then password = arg
when '--help' then usage
+ when '--debug' then debug = true
end
end
-if name && profile
-
+if (profile && image)
+ puts "\nYou must specify either a profile or an image, but not both.\n\n"
+ usage
+end
+
+if name && (profile || image)
System.hostname = hostname if hostname
System.username = username if username
System.password = password if password
-
- system = System.new('name' => name,'profile' => profile)
-
+ System.debug = true if debug
+
+ system = System.new('name' => name,'profile' => profile) if profile
+ system = System.new('name' => name,'image' => image) if image
+
system.interfaces=[NetworkInterface.new({'mac_address' => '00:11:22:33:44:55:66:77'})]
puts "Saving a new system with name #{system.name} based on the profile #{system.profile}."
@@ -78,4 +86,4 @@ if name && profile
end
else
usage
-end \ No newline at end of file
+end