susi-qemu 0.0.6 → 0.0.8

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.
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