Skip to content

Commit 409d3de

Browse files
committed
Backport: option to drop nvram & disk files for IOS routers in order to save disk space.
1 parent cec6fcf commit 409d3de

File tree

7 files changed

+22
-3
lines changed

7 files changed

+22
-3
lines changed

gns3/modules/dynamips/dialogs/ios_router_wizard.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,8 @@ def getSettings(self):
484484
settings["hover_symbol"] = ":/symbols/multilayer_switch.selected.svg"
485485
settings["disk0"] = 1 # adds 1MB disk to store vlan.dat
486486
settings["category"] = Node.switches
487+
else:
488+
settings["auto_delete_disks"] = True
487489

488490
image_file = os.path.basename(image)
489491
if image_file.lower().startswith("c7200p"):

gns3/modules/dynamips/nodes/router.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ def __init__(self, module, server, project, platform="c7200"):
7171
"exec_area": 64,
7272
"disk0": 0,
7373
"disk1": 0,
74+
"auto_delete_disks": False,
7475
"console": None,
7576
"aux": None,
7677
"mac_addr": None,

gns3/modules/dynamips/pages/ios_router_configuration_page.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,7 @@ def loadSettings(self, settings, node=None, group=False):
338338
self.uiNvramSpinBox.setValue(settings["nvram"])
339339
self.uiDisk0SpinBox.setValue(settings["disk0"])
340340
self.uiDisk1SpinBox.setValue(settings["disk1"])
341+
self.uiAutoDeleteCheckBox.setChecked(settings["auto_delete_disks"])
341342

342343
# load all the slots with configured adapters
343344
self._loadAdapterConfig(platform, chassis, settings)
@@ -533,6 +534,7 @@ def saveSettings(self, settings, node=None, group=False):
533534
settings["nvram"] = self.uiNvramSpinBox.value()
534535
settings["disk0"] = self.uiDisk0SpinBox.value()
535536
settings["disk1"] = self.uiDisk1SpinBox.value()
537+
settings["auto_delete_disks"] = self.uiAutoDeleteCheckBox.isChecked()
536538

537539
# save the system ID (processor board ID in IOS) setting
538540
settings["system_id"] = self.uiSystemIdLineEdit.text()

gns3/modules/dynamips/pages/ios_router_preferences_page.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ def _refreshInfo(self, ios_router):
400400
QtGui.QTreeWidgetItem(section_item, ["I/O memory:", "{}%".format(ios_router["iomem"])])
401401
QtGui.QTreeWidgetItem(section_item, ["PCMCIA disk0:", "{} MiB".format(ios_router["disk0"])])
402402
QtGui.QTreeWidgetItem(section_item, ["PCMCIA disk1:", "{} MiB".format(ios_router["disk1"])])
403+
QtGui.QTreeWidgetItem(section_item, ["Auto delete:", "{}".format(ios_router["auto_delete_disks"])])
403404

404405
# fill out the Adapters section
405406
section_item = self._createSectionItem("Adapters")

gns3/modules/dynamips/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
"mac_addr": "",
6161
"disk0": 0,
6262
"disk1": 0,
63+
"auto_delete_disks": False,
6364
"system_id": "FTX0945W0MY",
6465
"server": "local"
6566
}
@@ -85,6 +86,7 @@
8586
"mac_addr": str,
8687
"disk0": int,
8788
"disk1": int,
89+
"auto_delete_disks": bool,
8890
"system_id": str,
8991
"server": str
9092
}

gns3/modules/dynamips/ui/ios_router_configuration_page.ui

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>449</width>
10-
<height>491</height>
10+
<height>510</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -388,6 +388,13 @@
388388
</layout>
389389
</widget>
390390
</item>
391+
<item>
392+
<widget class="QCheckBox" name="uiAutoDeleteCheckBox">
393+
<property name="text">
394+
<string>Automatically delete NVRAM and disk files</string>
395+
</property>
396+
</widget>
397+
</item>
391398
<item>
392399
<spacer>
393400
<property name="orientation">

gns3/modules/dynamips/ui/ios_router_configuration_page_ui.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/dynamips/ui/ios_router_configuration_page.ui'
44
#
5-
# Created: Sat Mar 14 16:29:27 2015
5+
# Created: Wed Jul 22 15:59:21 2015
66
# by: PyQt4 UI code generator 4.10.4
77
#
88
# WARNING! All changes made in this file will be lost!
@@ -26,7 +26,7 @@ def _translate(context, text, disambig):
2626
class Ui_iosRouterConfigPageWidget(object):
2727
def setupUi(self, iosRouterConfigPageWidget):
2828
iosRouterConfigPageWidget.setObjectName(_fromUtf8("iosRouterConfigPageWidget"))
29-
iosRouterConfigPageWidget.resize(449, 491)
29+
iosRouterConfigPageWidget.resize(449, 510)
3030
self.vboxlayout = QtGui.QVBoxLayout(iosRouterConfigPageWidget)
3131
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
3232
self.uiTabWidget = QtGui.QTabWidget(iosRouterConfigPageWidget)
@@ -220,6 +220,9 @@ def setupUi(self, iosRouterConfigPageWidget):
220220
self.uiDisk1SpinBox.setObjectName(_fromUtf8("uiDisk1SpinBox"))
221221
self.gridlayout.addWidget(self.uiDisk1SpinBox, 1, 1, 1, 1)
222222
self.verticalLayout_2.addWidget(self.uiDisksGroupBox)
223+
self.uiAutoDeleteCheckBox = QtGui.QCheckBox(self.uiMemoriesPageWidget)
224+
self.uiAutoDeleteCheckBox.setObjectName(_fromUtf8("uiAutoDeleteCheckBox"))
225+
self.verticalLayout_2.addWidget(self.uiAutoDeleteCheckBox)
223226
spacerItem1 = QtGui.QSpacerItem(20, 21, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
224227
self.verticalLayout_2.addItem(spacerItem1)
225228
self.uiTabWidget.addTab(self.uiMemoriesPageWidget, _fromUtf8(""))
@@ -577,6 +580,7 @@ def retranslateUi(self, iosRouterConfigPageWidget):
577580
self.uiDisk0SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB", None))
578581
self.uiDisk1Label.setText(_translate("iosRouterConfigPageWidget", "PCMCIA disk1 size:", None))
579582
self.uiDisk1SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB", None))
583+
self.uiAutoDeleteCheckBox.setText(_translate("iosRouterConfigPageWidget", "Automatically delete NVRAM and disk files", None))
580584
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiMemoriesPageWidget), _translate("iosRouterConfigPageWidget", "Memories and disks", None))
581585
self.uiAdaptersGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Adapters", None))
582586
self.uiSlot0Label.setText(_translate("iosRouterConfigPageWidget", "slot 0:", None))

0 commit comments

Comments
 (0)