Skip to content

Commit

Permalink
Issue #8: Commit widget for adding floppy drives on a Virtual Machine
Browse files Browse the repository at this point in the history
  • Loading branch information
dnaeon committed Apr 16, 2015
1 parent 5e9f747 commit 340df24
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 1 deletion.
67 changes: 66 additions & 1 deletion src/pvc/widget/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@
import pvc.widget.menu
import pvc.widget.radiolist

__all__ = ['BaseDeviceWidget', 'AddCdromDeviceWidget',]
__all__ = [
'BaseDeviceWidget', 'AddCdromDeviceWidget',
'AddFloppyDeviceWidget',
]


class BaseDeviceWidget(object):
Expand Down Expand Up @@ -223,3 +226,65 @@ def select_backing(self):
)

return backing_info


class AddFloppyDeviceWidget(BaseDeviceWidget):
"""
Widget for adding new floppy drives
Extends:
BaseDeviceWidget class
Overrides:
display() method
"""
def display(self):
controller = self.choose_controller(
controller=pyVmomi.vim.VirtualSIOController
)

if not controller:
return

unit_number = self.next_unit_number(
controller=controller
)

backing_info = pyVmomi.vim.VirtualFloppyRemoteDeviceBackingInfo(
deviceName='',
useAutoDetect=False
)

connect_info = pyVmomi.vim.VirtualDeviceConnectInfo(
allowGuestControl=True,
connected=False,
startConnected=False
)

device = pyVmomi.vim.VirtualFloppy(
backing=backing_info,
connectable=connect_info,
controllerKey=controller.key,
key=-1,
unitNumber=unit_number
)

device_change = pyVmomi.vim.VirtualDeviceConfigSpec(
device=device,
operation=pyVmomi.vim.VirtualDeviceConfigSpecOperation.add
)

spec = pyVmomi.vim.VirtualMachineConfigSpec(
deviceChange=[device_change]
)

task = self.obj.ReconfigVM_Task(spec=spec)
gauge = pvc.widget.gauge.TaskGauge(
dialog=self.dialog,
task=task,
title=self.title,
text='Adding floppy drive ...'
)

gauge.display()
2 changes: 2 additions & 0 deletions src/pvc/widget/virtualmachine.py
Original file line number Diff line number Diff line change
Expand Up @@ -1351,6 +1351,8 @@ def display(self):
pvc.widget.menu.MenuItem(
tag='Floppy Drive',
description='Add floppy drive',
on_select=pvc.widget.device.AddFloppyDeviceWidget,
on_select_args=(self.agent, self.dialog, self.obj)
),
pvc.widget.menu.MenuItem(
tag='CD/DVD Drive',
Expand Down

0 comments on commit 340df24

Please sign in to comment.