susi-qemu 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bc88655a9b5207f858886dacd6c466036b42747a3d382d2ea76b2feb0803d82
4
- data.tar.gz: 98c59659a0aca9366eab87caef03a5cabcf756b9492905da41bcb6e288b6aec7
3
+ metadata.gz: bcd6b80ed80898c41c3ca6365ff62561c8dd6f6959e2bf0082ff2d30b30c0c49
4
+ data.tar.gz: 69b8b5eea4153430e9af7540fafd5a4b6a46ffb60bb2ec39e54aeae5a1bb5d19
5
5
  SHA512:
6
- metadata.gz: 3d9101294ba6ac775992dc889c4fe3b39591ddcb78d13665ab7368fcc3f9c7a8abd0a4b9753cae44feb76b204535cdd4df067f42289638835da032935c73e686
7
- data.tar.gz: 65716f78fe4b5b4fa5a55aeaef70c7b2e462800d6c0f204c59e866e5ccf15224a42e0af96299e9392ade4d35e223625e05b6abe5e5678a608fd2b012c92a1450
6
+ metadata.gz: bcc80bdf535557fbc66257725635857521084b4574f2a58938c647bdfd3cdd79966235ce98373e163424b70120ba5c812651b007dabfbf94351b27bdb4fee9a4
7
+ data.tar.gz: e63022c2205e0405749e9c5339098d2818c270a0d783de626f076a57e4ab1e47f286cef7519c91b1e10240b016e3b307544b83b40bec21b2d88b968c09914fcf
data/lib/output.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Susi
2
- DEBUG = false
2
+ DEBUG = true
3
3
 
4
4
  def self.debug(msg)
5
5
  puts msg if DEBUG
data/lib/ssh.rb CHANGED
@@ -13,8 +13,9 @@ module Susi
13
13
  def self.set_hostname(name)
14
14
  vm = VM.new(name)
15
15
  Net::SSH.start(vm.ip, 'dabo', port: vm.ssh_port, keys: [File.expand_path('~/.ssh/id_ed25519')]) do |ssh|
16
- Susi::debug "setting up VM..."
16
+ Susi::debug "Setting up VM..."
17
17
  ssh.exec!("sudo hostnamectl set-hostname #{name}")
18
+ ssh.exec!("sudo sed -i 's/susi/#{name}/' /etc/hosts")
18
19
  end
19
20
  end
20
21
  end
data/lib/susi.rb CHANGED
@@ -50,6 +50,7 @@ YAML
50
50
  config = YAML.load_file(CONFIG_FILE)
51
51
  id = config['id']
52
52
  name = config['name'] || Dir.pwd.split('/').last
53
+ usb = config['usb']
53
54
  disk_template = "#{TEMPLATE_DIR}/#{config['template']}"
54
55
 
55
56
  # check if vm is already running
@@ -63,12 +64,12 @@ YAML
63
64
  Susi::debug "Disk not found, cloning..."
64
65
  Disk.clone(disk_template, disk_name)
65
66
 
66
- VM.start(name, disk_name)
67
+ VM.start(name, disk_name, usb: usb)
67
68
 
68
69
  # SSH into VM and set hostname
69
70
  SSH.set_hostname(name)
70
71
  else
71
- VM.start(name, disk_name)
72
+ VM.start(name, disk_name, usb: usb)
72
73
  end
73
74
  end
74
75
 
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Susi
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.8'
3
3
  end
data/lib/vm.rb CHANGED
@@ -122,7 +122,7 @@ module Susi
122
122
  raise "No free port found in range #{start_port}..#{end_port}"
123
123
  end
124
124
 
125
- def self.start(name, disk, cdrom: nil)
125
+ def self.start(name, disk, cdrom: nil, usb: nil)
126
126
  qmp_port = self.get_free_port(4000, 4099)
127
127
  ssh_port = self.get_free_port(2000, 2099)
128
128
  vnc_port = self.get_free_port(5900, 5999)
@@ -133,12 +133,13 @@ module Susi
133
133
 
134
134
  cmd = []
135
135
 
136
- cmd << "qemu-system-x86_64"
136
+ cmd << "sudo"
137
+ cmd << `which qemu-system-x86_64`.strip
137
138
 
138
139
  # general setup
139
140
  cmd << "-name #{name}"
140
141
  cmd << "-m 2048"
141
- cmd << "-hda #{disk}.qcow2"
142
+ cmd << "-hda #{File.expand_path(disk)}.qcow2"
142
143
  cmd << "-daemonize"
143
144
  cmd << "-enable-kvm"
144
145
 
@@ -154,6 +155,14 @@ module Susi
154
155
  cmd << "-cdrom #{cdrom}"
155
156
  end
156
157
 
158
+ if usb
159
+ cmd << "-device qemu-xhci"
160
+ usb.each do |usbstr|
161
+ vendor, product = usbstr.split(':')
162
+ cmd << "-device usb-host,vendorid=0x#{vendor},productid=0x#{product}"
163
+ end
164
+ end
165
+
157
166
  cmd = cmd.join(" ")
158
167
  Susi::debug cmd
159
168
  system(cmd)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: susi-qemu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Bovensiepen