gns3-gui 2.2.57__py3-none-any.whl
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.
- gns3/__init__.py +1 -0
- gns3/__main__.py +20 -0
- gns3/appliance_manager.py +93 -0
- gns3/application.py +57 -0
- gns3/base_node.py +342 -0
- gns3/compute.py +247 -0
- gns3/compute_manager.py +265 -0
- gns3/compute_summary_view.py +159 -0
- gns3/console_cmd.py +299 -0
- gns3/console_view.py +298 -0
- gns3/controller.py +505 -0
- gns3/crash_report.py +163 -0
- gns3/dialogs/__init__.py +0 -0
- gns3/dialogs/about_dialog.py +37 -0
- gns3/dialogs/appliance_wizard.py +828 -0
- gns3/dialogs/capture_dialog.py +75 -0
- gns3/dialogs/configuration_dialog.py +69 -0
- gns3/dialogs/console_command_dialog.py +138 -0
- gns3/dialogs/custom_adapters_configuration_dialog.py +205 -0
- gns3/dialogs/doctor_dialog.py +226 -0
- gns3/dialogs/edit_compute_dialog.py +124 -0
- gns3/dialogs/edit_project_dialog.py +118 -0
- gns3/dialogs/exec_command_dialog.py +60 -0
- gns3/dialogs/export_debug_dialog.py +143 -0
- gns3/dialogs/file_editor_dialog.py +72 -0
- gns3/dialogs/filter_dialog.py +178 -0
- gns3/dialogs/idlepc_dialog.py +94 -0
- gns3/dialogs/new_template_wizard.py +288 -0
- gns3/dialogs/node_info_dialog.py +56 -0
- gns3/dialogs/node_properties_dialog.py +314 -0
- gns3/dialogs/notif_dialog.py +190 -0
- gns3/dialogs/preferences_dialog.py +239 -0
- gns3/dialogs/profile_select.py +112 -0
- gns3/dialogs/project_dialog.py +318 -0
- gns3/dialogs/project_export_wizard.py +144 -0
- gns3/dialogs/project_welcome_dialog.py +87 -0
- gns3/dialogs/setup_wizard.py +439 -0
- gns3/dialogs/snapshots_dialog.py +159 -0
- gns3/dialogs/style_editor_dialog.py +162 -0
- gns3/dialogs/style_editor_dialog_link.py +123 -0
- gns3/dialogs/symbol_selection_dialog.py +216 -0
- gns3/dialogs/text_editor_dialog.py +120 -0
- gns3/dialogs/vm_with_images_wizard.py +188 -0
- gns3/dialogs/vm_wizard.py +160 -0
- gns3/graphics_view.py +1726 -0
- gns3/http_client.py +862 -0
- gns3/image_manager.py +191 -0
- gns3/image_upload_manager.py +90 -0
- gns3/items/__init__.py +0 -0
- gns3/items/drawing_item.py +311 -0
- gns3/items/ellipse_item.py +68 -0
- gns3/items/ethernet_link_item.py +208 -0
- gns3/items/image_item.py +78 -0
- gns3/items/label_item.py +254 -0
- gns3/items/line_item.py +216 -0
- gns3/items/link_item.py +592 -0
- gns3/items/logo_item.py +136 -0
- gns3/items/node_item.py +607 -0
- gns3/items/rectangle_item.py +99 -0
- gns3/items/serial_link_item.py +185 -0
- gns3/items/shape_item.py +205 -0
- gns3/items/text_item.py +203 -0
- gns3/items/utils.py +31 -0
- gns3/link.py +483 -0
- gns3/local_config.py +521 -0
- gns3/local_server.py +616 -0
- gns3/local_server_config.py +163 -0
- gns3/logger.py +128 -0
- gns3/main.py +320 -0
- gns3/main_window.py +1509 -0
- gns3/modules/__init__.py +30 -0
- gns3/modules/builtin/__init__.py +157 -0
- gns3/modules/builtin/atm_switch.py +145 -0
- gns3/modules/builtin/cloud.py +176 -0
- gns3/modules/builtin/dialogs/__init__.py +0 -0
- gns3/modules/builtin/dialogs/cloud_wizard.py +54 -0
- gns3/modules/builtin/dialogs/ethernet_hub_wizard.py +62 -0
- gns3/modules/builtin/dialogs/ethernet_switch_wizard.py +65 -0
- gns3/modules/builtin/ethernet_hub.py +101 -0
- gns3/modules/builtin/ethernet_switch.py +124 -0
- gns3/modules/builtin/frame_relay_switch.py +121 -0
- gns3/modules/builtin/nat.py +90 -0
- gns3/modules/builtin/pages/__init__.py +0 -0
- gns3/modules/builtin/pages/atm_switch_configuration_page.py +199 -0
- gns3/modules/builtin/pages/builtin_preferences_page.py +84 -0
- gns3/modules/builtin/pages/cloud_configuration_page.py +563 -0
- gns3/modules/builtin/pages/cloud_preferences_page.py +223 -0
- gns3/modules/builtin/pages/ethernet_hub_configuration_page.py +151 -0
- gns3/modules/builtin/pages/ethernet_hub_preferences_page.py +219 -0
- gns3/modules/builtin/pages/ethernet_switch_configuration_page.py +277 -0
- gns3/modules/builtin/pages/ethernet_switch_preferences_page.py +224 -0
- gns3/modules/builtin/pages/frame_relay_switch_configuration_page.py +175 -0
- gns3/modules/builtin/settings.py +65 -0
- gns3/modules/builtin/ui/__init__.py +0 -0
- gns3/modules/builtin/ui/atm_switch_configuration_page.ui +303 -0
- gns3/modules/builtin/ui/atm_switch_configuration_page_ui.py +188 -0
- gns3/modules/builtin/ui/builtin_preferences_page.ui +102 -0
- gns3/modules/builtin/ui/builtin_preferences_page_ui.py +53 -0
- gns3/modules/builtin/ui/cloud_configuration_page.ui +564 -0
- gns3/modules/builtin/ui/cloud_configuration_page_ui.py +338 -0
- gns3/modules/builtin/ui/cloud_preferences_page.ui +153 -0
- gns3/modules/builtin/ui/cloud_preferences_page_ui.py +79 -0
- gns3/modules/builtin/ui/cloud_wizard.ui +117 -0
- gns3/modules/builtin/ui/cloud_wizard_ui.py +82 -0
- gns3/modules/builtin/ui/ethernet_hub_configuration_page.ui +132 -0
- gns3/modules/builtin/ui/ethernet_hub_configuration_page_ui.py +88 -0
- gns3/modules/builtin/ui/ethernet_hub_preferences_page.ui +153 -0
- gns3/modules/builtin/ui/ethernet_hub_preferences_page_ui.py +79 -0
- gns3/modules/builtin/ui/ethernet_hub_wizard.ui +143 -0
- gns3/modules/builtin/ui/ethernet_hub_wizard_ui.py +97 -0
- gns3/modules/builtin/ui/ethernet_switch_configuration_page.ui +329 -0
- gns3/modules/builtin/ui/ethernet_switch_configuration_page_ui.py +187 -0
- gns3/modules/builtin/ui/ethernet_switch_preferences_page.ui +150 -0
- gns3/modules/builtin/ui/ethernet_switch_preferences_page_ui.py +78 -0
- gns3/modules/builtin/ui/ethernet_switch_wizard.ui +143 -0
- gns3/modules/builtin/ui/ethernet_switch_wizard_ui.py +97 -0
- gns3/modules/builtin/ui/frame_relay_switch_configuration_page.ui +241 -0
- gns3/modules/builtin/ui/frame_relay_switch_configuration_page_ui.py +151 -0
- gns3/modules/builtin/utils/__init__.py +0 -0
- gns3/modules/builtin/utils/tree_widget_item.py +36 -0
- gns3/modules/docker/__init__.py +152 -0
- gns3/modules/docker/dialogs/__init__.py +0 -0
- gns3/modules/docker/dialogs/docker_vm_wizard.py +143 -0
- gns3/modules/docker/docker_vm.py +160 -0
- gns3/modules/docker/pages/__init__.py +0 -0
- gns3/modules/docker/pages/docker_preferences_page.py +73 -0
- gns3/modules/docker/pages/docker_vm_configuration_page.py +248 -0
- gns3/modules/docker/pages/docker_vm_preferences_page.py +252 -0
- gns3/modules/docker/settings.py +49 -0
- gns3/modules/docker/ui/__init__.py +0 -0
- gns3/modules/docker/ui/docker_preferences_page.ui +95 -0
- gns3/modules/docker/ui/docker_preferences_page_ui.py +47 -0
- gns3/modules/docker/ui/docker_vm_configuration_page.ui +383 -0
- gns3/modules/docker/ui/docker_vm_configuration_page_ui.py +233 -0
- gns3/modules/docker/ui/docker_vm_preferences_page.ui +163 -0
- gns3/modules/docker/ui/docker_vm_preferences_page_ui.py +84 -0
- gns3/modules/docker/ui/docker_vm_wizard.ui +366 -0
- gns3/modules/docker/ui/docker_vm_wizard_ui.py +235 -0
- gns3/modules/dynamips/__init__.py +245 -0
- gns3/modules/dynamips/adapters.py +73 -0
- gns3/modules/dynamips/dialogs/__init__.py +0 -0
- gns3/modules/dynamips/dialogs/ios_router_wizard.py +434 -0
- gns3/modules/dynamips/nodes/__init__.py +0 -0
- gns3/modules/dynamips/nodes/c1700.py +56 -0
- gns3/modules/dynamips/nodes/c2600.py +65 -0
- gns3/modules/dynamips/nodes/c2691.py +50 -0
- gns3/modules/dynamips/nodes/c3600.py +54 -0
- gns3/modules/dynamips/nodes/c3725.py +50 -0
- gns3/modules/dynamips/nodes/c3745.py +50 -0
- gns3/modules/dynamips/nodes/c7200.py +58 -0
- gns3/modules/dynamips/nodes/etherswitch_router.py +72 -0
- gns3/modules/dynamips/nodes/router.py +336 -0
- gns3/modules/dynamips/pages/__init__.py +0 -0
- gns3/modules/dynamips/pages/dynamips_preferences_page.py +158 -0
- gns3/modules/dynamips/pages/ios_router_configuration_page.py +663 -0
- gns3/modules/dynamips/pages/ios_router_preferences_page.py +484 -0
- gns3/modules/dynamips/settings.py +222 -0
- gns3/modules/dynamips/ui/__init__.py +0 -0
- gns3/modules/dynamips/ui/dynamips_preferences_page.ui +211 -0
- gns3/modules/dynamips/ui/dynamips_preferences_page_ui.py +108 -0
- gns3/modules/dynamips/ui/ios_router_configuration_page.ui +1051 -0
- gns3/modules/dynamips/ui/ios_router_configuration_page_ui.py +642 -0
- gns3/modules/dynamips/ui/ios_router_preferences_page.ui +166 -0
- gns3/modules/dynamips/ui/ios_router_preferences_page_ui.py +87 -0
- gns3/modules/dynamips/ui/ios_router_wizard.ui +495 -0
- gns3/modules/dynamips/ui/ios_router_wizard_ui.py +332 -0
- gns3/modules/dynamips/utils/__init__.py +0 -0
- gns3/modules/dynamips/utils/decompress_ios.py +102 -0
- gns3/modules/dynamips/utils/decompress_ios_worker.py +75 -0
- gns3/modules/dynamips/wics.py +23 -0
- gns3/modules/iou/__init__.py +142 -0
- gns3/modules/iou/dialogs/__init__.py +0 -0
- gns3/modules/iou/dialogs/iou_device_wizard.py +137 -0
- gns3/modules/iou/iou_device.py +161 -0
- gns3/modules/iou/pages/__init__.py +0 -0
- gns3/modules/iou/pages/iou_device_configuration_page.py +334 -0
- gns3/modules/iou/pages/iou_device_preferences_page.py +334 -0
- gns3/modules/iou/pages/iou_preferences_page.py +148 -0
- gns3/modules/iou/settings.py +48 -0
- gns3/modules/iou/ui/__init__.py +0 -0
- gns3/modules/iou/ui/iou_device_configuration_page.ui +418 -0
- gns3/modules/iou/ui/iou_device_configuration_page_ui.py +250 -0
- gns3/modules/iou/ui/iou_device_preferences_page.ui +160 -0
- gns3/modules/iou/ui/iou_device_preferences_page_ui.py +83 -0
- gns3/modules/iou/ui/iou_device_wizard.ui +220 -0
- gns3/modules/iou/ui/iou_device_wizard_ui.py +138 -0
- gns3/modules/iou/ui/iou_preferences_page.ui +113 -0
- gns3/modules/iou/ui/iou_preferences_page_ui.py +56 -0
- gns3/modules/module.py +173 -0
- gns3/modules/module_error.py +37 -0
- gns3/modules/qemu/__init__.py +202 -0
- gns3/modules/qemu/dialogs/__init__.py +0 -0
- gns3/modules/qemu/dialogs/qemu_image_wizard.py +231 -0
- gns3/modules/qemu/dialogs/qemu_vm_wizard.py +197 -0
- gns3/modules/qemu/pages/__init__.py +0 -0
- gns3/modules/qemu/pages/qemu_preferences_page.py +86 -0
- gns3/modules/qemu/pages/qemu_vm_configuration_page.py +700 -0
- gns3/modules/qemu/pages/qemu_vm_preferences_page.py +313 -0
- gns3/modules/qemu/qemu_vm.py +204 -0
- gns3/modules/qemu/settings.py +74 -0
- gns3/modules/qemu/ui/__init__.py +0 -0
- gns3/modules/qemu/ui/qemu_image_wizard.ui +793 -0
- gns3/modules/qemu/ui/qemu_image_wizard_ui.py +397 -0
- gns3/modules/qemu/ui/qemu_preferences_page.ui +109 -0
- gns3/modules/qemu/ui/qemu_preferences_page_ui.py +55 -0
- gns3/modules/qemu/ui/qemu_vm_configuration_page.ui +959 -0
- gns3/modules/qemu/ui/qemu_vm_configuration_page_ui.py +570 -0
- gns3/modules/qemu/ui/qemu_vm_preferences_page.ui +160 -0
- gns3/modules/qemu/ui/qemu_vm_preferences_page_ui.py +83 -0
- gns3/modules/qemu/ui/qemu_vm_wizard.ui +433 -0
- gns3/modules/qemu/ui/qemu_vm_wizard_ui.py +257 -0
- gns3/modules/traceng/__init__.py +140 -0
- gns3/modules/traceng/dialogs/__init__.py +0 -0
- gns3/modules/traceng/dialogs/traceng_node_wizard.py +85 -0
- gns3/modules/traceng/pages/__init__.py +0 -0
- gns3/modules/traceng/pages/traceng_node_configuration_page.py +155 -0
- gns3/modules/traceng/pages/traceng_node_preferences_page.py +213 -0
- gns3/modules/traceng/pages/traceng_preferences_page.py +126 -0
- gns3/modules/traceng/settings.py +37 -0
- gns3/modules/traceng/traceng_node.py +140 -0
- gns3/modules/traceng/ui/__init__.py +0 -0
- gns3/modules/traceng/ui/traceng_node_configuration_page.ui +119 -0
- gns3/modules/traceng/ui/traceng_node_configuration_page_ui.py +87 -0
- gns3/modules/traceng/ui/traceng_node_preferences_page.ui +157 -0
- gns3/modules/traceng/ui/traceng_node_preferences_page_ui.py +83 -0
- gns3/modules/traceng/ui/traceng_node_wizard.ui +140 -0
- gns3/modules/traceng/ui/traceng_node_wizard_ui.py +93 -0
- gns3/modules/traceng/ui/traceng_preferences_page.ui +126 -0
- gns3/modules/traceng/ui/traceng_preferences_page_ui.py +67 -0
- gns3/modules/virtualbox/__init__.py +185 -0
- gns3/modules/virtualbox/dialogs/__init__.py +0 -0
- gns3/modules/virtualbox/dialogs/virtualbox_vm_wizard.py +101 -0
- gns3/modules/virtualbox/pages/__init__.py +0 -0
- gns3/modules/virtualbox/pages/virtualbox_preferences_page.py +127 -0
- gns3/modules/virtualbox/pages/virtualbox_vm_configuration_page.py +274 -0
- gns3/modules/virtualbox/pages/virtualbox_vm_preferences_page.py +226 -0
- gns3/modules/virtualbox/settings.py +50 -0
- gns3/modules/virtualbox/ui/__init__.py +0 -0
- gns3/modules/virtualbox/ui/virtualbox_preferences_page.ui +135 -0
- gns3/modules/virtualbox/ui/virtualbox_preferences_page_ui.py +67 -0
- gns3/modules/virtualbox/ui/virtualbox_vm_configuration_page.ui +333 -0
- gns3/modules/virtualbox/ui/virtualbox_vm_configuration_page_ui.py +208 -0
- gns3/modules/virtualbox/ui/virtualbox_vm_preferences_page.ui +150 -0
- gns3/modules/virtualbox/ui/virtualbox_vm_preferences_page_ui.py +78 -0
- gns3/modules/virtualbox/ui/virtualbox_vm_wizard.ui +127 -0
- gns3/modules/virtualbox/ui/virtualbox_vm_wizard_ui.py +88 -0
- gns3/modules/virtualbox/virtualbox_vm.py +144 -0
- gns3/modules/vmware/__init__.py +301 -0
- gns3/modules/vmware/dialogs/__init__.py +0 -0
- gns3/modules/vmware/dialogs/vmware_vm_wizard.py +103 -0
- gns3/modules/vmware/pages/__init__.py +0 -0
- gns3/modules/vmware/pages/vmware_preferences_page.py +176 -0
- gns3/modules/vmware/pages/vmware_vm_configuration_page.py +272 -0
- gns3/modules/vmware/pages/vmware_vm_preferences_page.py +234 -0
- gns3/modules/vmware/settings.py +58 -0
- gns3/modules/vmware/ui/__init__.py +0 -0
- gns3/modules/vmware/ui/vmware_preferences_page.ui +244 -0
- gns3/modules/vmware/ui/vmware_preferences_page_ui.py +123 -0
- gns3/modules/vmware/ui/vmware_vm_configuration_page.ui +296 -0
- gns3/modules/vmware/ui/vmware_vm_configuration_page_ui.py +183 -0
- gns3/modules/vmware/ui/vmware_vm_preferences_page.ui +150 -0
- gns3/modules/vmware/ui/vmware_vm_preferences_page_ui.py +78 -0
- gns3/modules/vmware/ui/vmware_vm_wizard.ui +127 -0
- gns3/modules/vmware/ui/vmware_vm_wizard_ui.py +88 -0
- gns3/modules/vmware/vmware_vm.py +176 -0
- gns3/modules/vpcs/__init__.py +160 -0
- gns3/modules/vpcs/dialogs/__init__.py +0 -0
- gns3/modules/vpcs/dialogs/vpcs_node_wizard.py +56 -0
- gns3/modules/vpcs/pages/__init__.py +0 -0
- gns3/modules/vpcs/pages/vpcs_node_configuration_page.py +185 -0
- gns3/modules/vpcs/pages/vpcs_node_preferences_page.py +216 -0
- gns3/modules/vpcs/pages/vpcs_preferences_page.py +126 -0
- gns3/modules/vpcs/settings.py +37 -0
- gns3/modules/vpcs/ui/__init__.py +0 -0
- gns3/modules/vpcs/ui/vpcs_node_configuration_page.ui +151 -0
- gns3/modules/vpcs/ui/vpcs_node_configuration_page_ui.py +100 -0
- gns3/modules/vpcs/ui/vpcs_node_preferences_page.ui +150 -0
- gns3/modules/vpcs/ui/vpcs_node_preferences_page_ui.py +78 -0
- gns3/modules/vpcs/ui/vpcs_node_wizard.ui +117 -0
- gns3/modules/vpcs/ui/vpcs_node_wizard_ui.py +82 -0
- gns3/modules/vpcs/ui/vpcs_preferences_page.ui +135 -0
- gns3/modules/vpcs/ui/vpcs_preferences_page_ui.py +67 -0
- gns3/modules/vpcs/vpcs_node.py +122 -0
- gns3/network_client.py +43 -0
- gns3/node.py +926 -0
- gns3/nodes_dock_widget.py +38 -0
- gns3/nodes_view.py +235 -0
- gns3/packet_capture.py +284 -0
- gns3/pages/__init__.py +0 -0
- gns3/pages/general_preferences_page.py +438 -0
- gns3/pages/gns3_vm_preferences_page.py +204 -0
- gns3/pages/packet_capture_preferences_page.py +102 -0
- gns3/pages/server_preferences_page.py +303 -0
- gns3/ports/__init__.py +0 -0
- gns3/ports/ethernet_port.py +31 -0
- gns3/ports/port.py +355 -0
- gns3/ports/port_name_factory.py +61 -0
- gns3/ports/serial_port.py +31 -0
- gns3/progress.py +267 -0
- gns3/project.py +734 -0
- gns3/pycutext.py +429 -0
- gns3/qt/__init__.py +275 -0
- gns3/qt/qimage_svg_renderer.py +139 -0
- gns3/registry/__init__.py +0 -0
- gns3/registry/appliance.py +257 -0
- gns3/registry/appliance_to_template.py +299 -0
- gns3/registry/config.py +95 -0
- gns3/registry/image.py +154 -0
- gns3/registry/registry.py +112 -0
- gns3/schemas/appliance.json +511 -0
- gns3/schemas/appliance_v8.json +908 -0
- gns3/settings.py +379 -0
- gns3/spice_console.py +80 -0
- gns3/static/.keep +0 -0
- gns3/status_bar.py +92 -0
- gns3/style.py +271 -0
- gns3/symbol.py +42 -0
- gns3/telnet_console.py +182 -0
- gns3/template.py +143 -0
- gns3/template_manager.py +249 -0
- gns3/topology.py +594 -0
- gns3/topology_summary_view.py +436 -0
- gns3/ui/__init__.py +0 -0
- gns3/ui/about_dialog.ui +4438 -0
- gns3/ui/about_dialog_ui.py +4333 -0
- gns3/ui/appliance_wizard.ui +368 -0
- gns3/ui/appliance_wizard_ui.py +209 -0
- gns3/ui/capture_dialog.ui +124 -0
- gns3/ui/capture_dialog_ui.py +74 -0
- gns3/ui/configuration_dialog.ui +112 -0
- gns3/ui/configuration_dialog_ui.py +68 -0
- gns3/ui/console_command_dialog.ui +137 -0
- gns3/ui/console_command_dialog_ui.py +71 -0
- gns3/ui/custom_adapters_configuration_dialog.ui +83 -0
- gns3/ui/custom_adapters_configuration_dialog_ui.py +37 -0
- gns3/ui/doctor_dialog.ui +98 -0
- gns3/ui/doctor_dialog_ui.py +59 -0
- gns3/ui/edit_compute_dialog.ui +230 -0
- gns3/ui/edit_compute_dialog_ui.py +118 -0
- gns3/ui/edit_project_dialog.ui +228 -0
- gns3/ui/edit_project_dialog_ui.py +119 -0
- gns3/ui/exec_command_dialog.ui +72 -0
- gns3/ui/exec_command_dialog_ui.py +35 -0
- gns3/ui/export_debug_dialog.ui +119 -0
- gns3/ui/export_debug_dialog_ui.py +62 -0
- gns3/ui/export_project_wizard.ui +134 -0
- gns3/ui/export_project_wizard_ui.py +90 -0
- gns3/ui/file_editor_dialog.ui +119 -0
- gns3/ui/file_editor_dialog_ui.py +57 -0
- gns3/ui/filter_dialog.ui +142 -0
- gns3/ui/filter_dialog_ui.py +70 -0
- gns3/ui/general_preferences_page.ui +1129 -0
- gns3/ui/general_preferences_page_ui.py +600 -0
- gns3/ui/gns3_vm_preferences_page.ui +274 -0
- gns3/ui/gns3_vm_preferences_page_ui.py +152 -0
- gns3/ui/idlepc_dialog.ui +72 -0
- gns3/ui/idlepc_dialog_ui.py +39 -0
- gns3/ui/main_window.ui +1396 -0
- gns3/ui/main_window_ui.py +741 -0
- gns3/ui/new_template_wizard.ui +104 -0
- gns3/ui/new_template_wizard_ui.py +64 -0
- gns3/ui/node_info_dialog.ui +103 -0
- gns3/ui/node_info_dialog_ui.py +62 -0
- gns3/ui/node_properties_dialog.ui +168 -0
- gns3/ui/node_properties_dialog_ui.py +86 -0
- gns3/ui/packet_capture_preferences_page.ui +138 -0
- gns3/ui/packet_capture_preferences_page_ui.py +84 -0
- gns3/ui/preferences_dialog.ui +161 -0
- gns3/ui/preferences_dialog_ui.py +90 -0
- gns3/ui/profile_select_dialog.ui +187 -0
- gns3/ui/profile_select_dialog_ui.py +88 -0
- gns3/ui/project_dialog.ui +359 -0
- gns3/ui/project_dialog_ui.py +165 -0
- gns3/ui/project_welcome_dialog.ui +99 -0
- gns3/ui/project_welcome_dialog_ui.py +59 -0
- gns3/ui/resources_rc.py +145039 -0
- gns3/ui/server_preferences_page.ui +613 -0
- gns3/ui/server_preferences_page_ui.py +318 -0
- gns3/ui/setup_wizard.ui +474 -0
- gns3/ui/setup_wizard_ui.py +273 -0
- gns3/ui/snapshots_dialog.ui +97 -0
- gns3/ui/snapshots_dialog_ui.py +49 -0
- gns3/ui/style_editor_dialog.ui +239 -0
- gns3/ui/style_editor_dialog_ui.py +120 -0
- gns3/ui/symbol_selection_dialog.ui +191 -0
- gns3/ui/symbol_selection_dialog_ui.py +91 -0
- gns3/ui/text_editor_dialog.ui +183 -0
- gns3/ui/text_editor_dialog_ui.py +89 -0
- gns3/update_manager.py +256 -0
- gns3/utils/__init__.py +123 -0
- gns3/utils/authorize_ubridge.py +38 -0
- gns3/utils/bring_to_front.py +94 -0
- gns3/utils/export_project_worker.py +73 -0
- gns3/utils/file_copy_worker.py +70 -0
- gns3/utils/get_icon.py +37 -0
- gns3/utils/get_resource.py +49 -0
- gns3/utils/import_project_worker.py +68 -0
- gns3/utils/interfaces.py +151 -0
- gns3/utils/macos_ubridge_setuid.py +64 -0
- gns3/utils/normalize_filename.py +37 -0
- gns3/utils/process_files_worker.py +151 -0
- gns3/utils/progress_dialog.py +195 -0
- gns3/utils/run_in_terminal.py +48 -0
- gns3/utils/server_select.py +70 -0
- gns3/utils/sudo.py +105 -0
- gns3/utils/wait_for_command_worker.py +85 -0
- gns3/utils/wait_for_connection_worker.py +95 -0
- gns3/utils/wait_for_lambda_worker.py +76 -0
- gns3/utils/wait_for_runas_worker.py +91 -0
- gns3/version.py +37 -0
- gns3/vnc_console.py +77 -0
- gns3_gui-2.2.57.data/data/share/applications/gns3.desktop +11 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/16x16/apps/gns3.png +0 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/32x32/apps/gns3.png +0 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/48x48/apps/gns3.png +0 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/48x48/mimetypes/application-x-gns3.png +0 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/48x48/mimetypes/application-x-gns3appliance.png +0 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/48x48/mimetypes/application-x-gns3project.png +0 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/scalable/apps/gns3.svg +85 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/scalable/mimetypes/application-x-gns3.svg +85 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/scalable/mimetypes/application-x-gns3appliance.svg +328 -0
- gns3_gui-2.2.57.data/data/share/icons/hicolor/scalable/mimetypes/application-x-gns3project.svg +95 -0
- gns3_gui-2.2.57.data/data/share/mime/packages/gns3-gui.xml +28 -0
- gns3_gui-2.2.57.dist-info/METADATA +114 -0
- gns3_gui-2.2.57.dist-info/RECORD +431 -0
- gns3_gui-2.2.57.dist-info/WHEEL +5 -0
- gns3_gui-2.2.57.dist-info/entry_points.txt +2 -0
- gns3_gui-2.2.57.dist-info/licenses/AUTHORS +2 -0
- gns3_gui-2.2.57.dist-info/licenses/COPYING +504 -0
- gns3_gui-2.2.57.dist-info/licenses/LICENSE +674 -0
- gns3_gui-2.2.57.dist-info/top_level.txt +1 -0
gns3/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .version import __version__
|
gns3/__main__.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2015 GNS3 Technologies Inc.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
from .main import main
|
|
19
|
+
|
|
20
|
+
main()
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2016 GNS3 Technologies Inc.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
from .qt import QtCore
|
|
19
|
+
from .controller import Controller
|
|
20
|
+
from .local_config import LocalConfig
|
|
21
|
+
from .settings import GENERAL_SETTINGS
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
import logging
|
|
25
|
+
log = logging.getLogger(__name__)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ApplianceManager(QtCore.QObject):
|
|
29
|
+
"""
|
|
30
|
+
Manager for appliances.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
appliances_changed_signal = QtCore.Signal()
|
|
34
|
+
|
|
35
|
+
def __init__(self):
|
|
36
|
+
|
|
37
|
+
super().__init__()
|
|
38
|
+
self._appliances = []
|
|
39
|
+
self._controller = Controller.instance()
|
|
40
|
+
self._controller.connected_signal.connect(self.refresh)
|
|
41
|
+
self._controller.disconnected_signal.connect(self._controllerDisconnectedSlot)
|
|
42
|
+
|
|
43
|
+
def refresh(self, update=False):
|
|
44
|
+
"""
|
|
45
|
+
Gets the appliances from the controller.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
if self._controller.connected():
|
|
49
|
+
settings = LocalConfig.instance().loadSectionSettings("MainWindow", GENERAL_SETTINGS)
|
|
50
|
+
symbol_theme = settings["symbol_theme"]
|
|
51
|
+
if update is True:
|
|
52
|
+
self._controller.get("/appliances?update=yes&symbol_theme={}".format(symbol_theme), self._listAppliancesCallback, progressText="Downloading appliances from online registry...")
|
|
53
|
+
else:
|
|
54
|
+
self._controller.get("/appliances?symbol_theme={}".format(symbol_theme), self._listAppliancesCallback)
|
|
55
|
+
|
|
56
|
+
def _controllerDisconnectedSlot(self):
|
|
57
|
+
"""
|
|
58
|
+
Called when the controller has been disconnected.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
self._appliances = []
|
|
62
|
+
self.appliances_changed_signal.emit()
|
|
63
|
+
|
|
64
|
+
def appliances(self):
|
|
65
|
+
"""
|
|
66
|
+
Returns the appliances.
|
|
67
|
+
|
|
68
|
+
:returns: array of appliances
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
return self._appliances
|
|
72
|
+
|
|
73
|
+
def _listAppliancesCallback(self, result, error=False, **kwargs):
|
|
74
|
+
"""
|
|
75
|
+
Callback to get the appliances.
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
if error is True:
|
|
79
|
+
log.error("Error while getting appliances list: {}".format(result.get("message", "unknown")))
|
|
80
|
+
return
|
|
81
|
+
self._appliances = result
|
|
82
|
+
self.appliances_changed_signal.emit()
|
|
83
|
+
|
|
84
|
+
@staticmethod
|
|
85
|
+
def instance():
|
|
86
|
+
"""
|
|
87
|
+
Singleton to return only on instance of ApplianceManager.
|
|
88
|
+
:returns: instance of ApplianceManager
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
if not hasattr(ApplianceManager, '_instance') or ApplianceManager._instance is None:
|
|
92
|
+
ApplianceManager._instance = ApplianceManager()
|
|
93
|
+
return ApplianceManager._instance
|
gns3/application.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2015 GNS3 Technologies Inc.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
import sys
|
|
20
|
+
|
|
21
|
+
from .qt import QtWidgets, QtGui, QtCore
|
|
22
|
+
from gns3.utils import parse_version
|
|
23
|
+
from .version import __version__
|
|
24
|
+
|
|
25
|
+
import logging
|
|
26
|
+
log = logging.getLogger(__name__)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class Application(QtWidgets.QApplication):
|
|
30
|
+
file_open_signal = QtCore.Signal(str)
|
|
31
|
+
|
|
32
|
+
def __init__(self, argv):
|
|
33
|
+
|
|
34
|
+
self.setStyle(QtWidgets.QStyleFactory.create("Fusion"))
|
|
35
|
+
super().__init__(argv)
|
|
36
|
+
|
|
37
|
+
# this is tell Wayland what is the name of the desktop file (gns3.desktop)
|
|
38
|
+
self.setDesktopFileName("gns3")
|
|
39
|
+
|
|
40
|
+
# this info is necessary for QSettings
|
|
41
|
+
self.setOrganizationName("GNS3")
|
|
42
|
+
self.setOrganizationDomain("gns3.net")
|
|
43
|
+
self.setApplicationName("GNS3")
|
|
44
|
+
self.setApplicationVersion(__version__)
|
|
45
|
+
|
|
46
|
+
# File path if we have received the path to
|
|
47
|
+
# a file on system via an OSX event
|
|
48
|
+
self.open_file_at_startup = None
|
|
49
|
+
|
|
50
|
+
def event(self, event):
|
|
51
|
+
# When you double click on a file, you receive an event
|
|
52
|
+
# and not the file as command line parameter
|
|
53
|
+
if sys.platform.startswith("darwin"):
|
|
54
|
+
if isinstance(event, QtGui.QFileOpenEvent):
|
|
55
|
+
self.open_file_at_startup = str(event.file())
|
|
56
|
+
self.file_open_signal.emit(str(event.file()))
|
|
57
|
+
return super().event(event)
|
gns3/base_node.py
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2014 GNS3 Technologies Inc.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
Base class for node classes.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
from .qt import QtCore
|
|
23
|
+
from .ports.port import Port
|
|
24
|
+
|
|
25
|
+
import logging
|
|
26
|
+
log = logging.getLogger(__name__)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class BaseNode(QtCore.QObject):
|
|
30
|
+
"""
|
|
31
|
+
BaseNode implementation.
|
|
32
|
+
|
|
33
|
+
:param module: Module instance
|
|
34
|
+
:param server: client connection to a server
|
|
35
|
+
:param project: Project instance
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
# signals used to let the GUI know about some events.
|
|
39
|
+
created_signal = QtCore.Signal(int)
|
|
40
|
+
started_signal = QtCore.Signal()
|
|
41
|
+
stopped_signal = QtCore.Signal()
|
|
42
|
+
suspended_signal = QtCore.Signal()
|
|
43
|
+
updated_signal = QtCore.Signal()
|
|
44
|
+
loaded_signal = QtCore.Signal()
|
|
45
|
+
deleted_signal = QtCore.Signal()
|
|
46
|
+
error_signal = QtCore.Signal(int, str)
|
|
47
|
+
server_error_signal = QtCore.Signal(int, str)
|
|
48
|
+
|
|
49
|
+
_instance_count = 1
|
|
50
|
+
|
|
51
|
+
# node statuses
|
|
52
|
+
stopped = 0
|
|
53
|
+
started = 1
|
|
54
|
+
suspended = 2
|
|
55
|
+
|
|
56
|
+
# node categories
|
|
57
|
+
routers = "router"
|
|
58
|
+
switches = "switch"
|
|
59
|
+
end_devices = "guest"
|
|
60
|
+
security_devices = "firewall"
|
|
61
|
+
|
|
62
|
+
def __init__(self, module, compute, project):
|
|
63
|
+
|
|
64
|
+
super().__init__()
|
|
65
|
+
|
|
66
|
+
# create an unique ID
|
|
67
|
+
self._id = BaseNode._instance_count
|
|
68
|
+
BaseNode._instance_count += 1
|
|
69
|
+
|
|
70
|
+
self._module = module
|
|
71
|
+
self._compute = compute
|
|
72
|
+
assert project is not None
|
|
73
|
+
self._project = project
|
|
74
|
+
self._initialized = False
|
|
75
|
+
self._loading = False
|
|
76
|
+
self._status = BaseNode.stopped
|
|
77
|
+
self._ports = []
|
|
78
|
+
self._links = set()
|
|
79
|
+
|
|
80
|
+
def links(self):
|
|
81
|
+
"""
|
|
82
|
+
Links connected to this node
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
return self._links
|
|
86
|
+
|
|
87
|
+
def addLink(self, link):
|
|
88
|
+
"""
|
|
89
|
+
Add a link connected to this node
|
|
90
|
+
|
|
91
|
+
:param link: link object
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
self._links.add(link)
|
|
95
|
+
|
|
96
|
+
def deleteLink(self, link):
|
|
97
|
+
"""
|
|
98
|
+
Delete a link connected to this node
|
|
99
|
+
|
|
100
|
+
:param link: link object
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
try:
|
|
104
|
+
self._links.remove(link)
|
|
105
|
+
except KeyError:
|
|
106
|
+
pass
|
|
107
|
+
|
|
108
|
+
def state(self):
|
|
109
|
+
"""
|
|
110
|
+
Returns a human readable status of this node.
|
|
111
|
+
|
|
112
|
+
:returns: string
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
status = self.status()
|
|
116
|
+
if status == self.started:
|
|
117
|
+
return "started"
|
|
118
|
+
elif status == self.stopped:
|
|
119
|
+
return "stopped"
|
|
120
|
+
elif status == self.suspended:
|
|
121
|
+
return "suspended"
|
|
122
|
+
return "unknown"
|
|
123
|
+
|
|
124
|
+
@classmethod
|
|
125
|
+
def reset(cls):
|
|
126
|
+
"""
|
|
127
|
+
Reset the instance count.
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
cls._instance_count = 1
|
|
131
|
+
|
|
132
|
+
def module(self):
|
|
133
|
+
"""
|
|
134
|
+
Returns this node module.
|
|
135
|
+
|
|
136
|
+
:returns: Module instance
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
return self._module
|
|
140
|
+
|
|
141
|
+
def compute(self):
|
|
142
|
+
"""
|
|
143
|
+
Returns this node compute.
|
|
144
|
+
|
|
145
|
+
:returns: Compute instance
|
|
146
|
+
"""
|
|
147
|
+
return self._compute
|
|
148
|
+
|
|
149
|
+
def project(self):
|
|
150
|
+
"""
|
|
151
|
+
Returns this node project.
|
|
152
|
+
|
|
153
|
+
:returns: Project instance
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
return self._project
|
|
157
|
+
|
|
158
|
+
def id(self):
|
|
159
|
+
"""
|
|
160
|
+
Returns this node identifier.
|
|
161
|
+
|
|
162
|
+
:returns: node identifier (integer)
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
return self._id
|
|
166
|
+
|
|
167
|
+
def setId(self, new_id):
|
|
168
|
+
"""
|
|
169
|
+
Sets an identifier for this node.
|
|
170
|
+
|
|
171
|
+
:param new_id: node identifier (integer)
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
self._id = new_id
|
|
175
|
+
|
|
176
|
+
# update the instance count to avoid conflicts
|
|
177
|
+
if new_id >= BaseNode._instance_count:
|
|
178
|
+
BaseNode._instance_count = new_id + 1
|
|
179
|
+
|
|
180
|
+
def status(self):
|
|
181
|
+
"""
|
|
182
|
+
Returns the status of this node.
|
|
183
|
+
0 = stopped, 1 = started, 2 = suspended.
|
|
184
|
+
|
|
185
|
+
:returns: node status (integer)
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
return self._status
|
|
189
|
+
|
|
190
|
+
def setStatus(self, status):
|
|
191
|
+
"""
|
|
192
|
+
Sets a status for this node.
|
|
193
|
+
0 = stopped, 1 = started, 2 = suspended.
|
|
194
|
+
|
|
195
|
+
:param status: node status (integer)
|
|
196
|
+
"""
|
|
197
|
+
|
|
198
|
+
if status == self._status:
|
|
199
|
+
return
|
|
200
|
+
self._status = status
|
|
201
|
+
if status == self.started:
|
|
202
|
+
for port in self._ports:
|
|
203
|
+
# set ports as started
|
|
204
|
+
port.setStatus(Port.started)
|
|
205
|
+
self.started_signal.emit()
|
|
206
|
+
elif status == self.stopped:
|
|
207
|
+
for port in self._ports:
|
|
208
|
+
# set ports as stopped
|
|
209
|
+
port.setStatus(Port.stopped)
|
|
210
|
+
self.stopped_signal.emit()
|
|
211
|
+
elif status == self.suspended:
|
|
212
|
+
for port in self._ports:
|
|
213
|
+
# set ports as suspended
|
|
214
|
+
port.setStatus(Port.suspended)
|
|
215
|
+
self.suspended_signal.emit()
|
|
216
|
+
|
|
217
|
+
def initialized(self):
|
|
218
|
+
"""
|
|
219
|
+
Returns if the node has been initialized
|
|
220
|
+
|
|
221
|
+
:returns: boolean
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
return self._initialized
|
|
225
|
+
|
|
226
|
+
def setInitialized(self, initialized):
|
|
227
|
+
"""
|
|
228
|
+
Sets if the node has been initialized
|
|
229
|
+
|
|
230
|
+
:param initialized: boolean
|
|
231
|
+
"""
|
|
232
|
+
|
|
233
|
+
self._initialized = initialized
|
|
234
|
+
|
|
235
|
+
def update(self, new_settings):
|
|
236
|
+
"""
|
|
237
|
+
Updates the settings for this node.
|
|
238
|
+
Must be overloaded.
|
|
239
|
+
|
|
240
|
+
:param new_settings: settings dictionary
|
|
241
|
+
"""
|
|
242
|
+
|
|
243
|
+
raise NotImplementedError()
|
|
244
|
+
|
|
245
|
+
def ports(self):
|
|
246
|
+
"""
|
|
247
|
+
Returns all the ports for this node.
|
|
248
|
+
|
|
249
|
+
:returns: list of Port instances
|
|
250
|
+
"""
|
|
251
|
+
|
|
252
|
+
return self._ports
|
|
253
|
+
|
|
254
|
+
def controllerHttpPost(self, path, callback, body={}, context={}, **kwargs):
|
|
255
|
+
"""
|
|
256
|
+
POST on current server / project
|
|
257
|
+
|
|
258
|
+
:param path: Remote path
|
|
259
|
+
:param callback: callback method to call when the server replies
|
|
260
|
+
:param body: params to send (dictionary)
|
|
261
|
+
:param context: Pass a context to the response callback
|
|
262
|
+
"""
|
|
263
|
+
|
|
264
|
+
self._project.post(path, callback, body=body, context=context, **kwargs)
|
|
265
|
+
|
|
266
|
+
def controllerHttpPut(self, path, callback, body={}, context={}, **kwargs):
|
|
267
|
+
"""
|
|
268
|
+
PUT on current server / project
|
|
269
|
+
|
|
270
|
+
:param path: Remote path
|
|
271
|
+
:param callback: callback method to call when the server replies
|
|
272
|
+
:param body: params to send (dictionary)
|
|
273
|
+
:param context: Pass a context to the response callback
|
|
274
|
+
"""
|
|
275
|
+
|
|
276
|
+
self._project.put(path, callback, body=body, context=context, **kwargs)
|
|
277
|
+
|
|
278
|
+
def controllerHttpGet(self, path, callback, context={}, **kwargs):
|
|
279
|
+
"""
|
|
280
|
+
Get on current server / project
|
|
281
|
+
|
|
282
|
+
:param path: Remote path
|
|
283
|
+
:param callback: callback method to call when the server replies
|
|
284
|
+
:param body: params to send (dictionary)
|
|
285
|
+
:param context: Pass a context to the response callback
|
|
286
|
+
"""
|
|
287
|
+
|
|
288
|
+
self._project.get(path, callback, context=context, **kwargs)
|
|
289
|
+
|
|
290
|
+
def controllerHttpDelete(self, path, callback, context={}, **kwargs):
|
|
291
|
+
"""
|
|
292
|
+
Delete on current server / project
|
|
293
|
+
|
|
294
|
+
:param path: Remote path
|
|
295
|
+
:param callback: callback method to call when the server replies
|
|
296
|
+
:param context: Pass a context to the response callback
|
|
297
|
+
"""
|
|
298
|
+
|
|
299
|
+
self._project.delete(path, callback, context=context, **kwargs)
|
|
300
|
+
|
|
301
|
+
@staticmethod
|
|
302
|
+
def defaultCategories():
|
|
303
|
+
"""
|
|
304
|
+
Returns the default categories.
|
|
305
|
+
|
|
306
|
+
:returns: dict
|
|
307
|
+
"""
|
|
308
|
+
|
|
309
|
+
categories = {"Routers": BaseNode.routers,
|
|
310
|
+
"Switches": BaseNode.switches,
|
|
311
|
+
"End devices": BaseNode.end_devices,
|
|
312
|
+
"Security devices": BaseNode.security_devices}
|
|
313
|
+
|
|
314
|
+
return categories
|
|
315
|
+
|
|
316
|
+
@staticmethod
|
|
317
|
+
def defaultSymbol():
|
|
318
|
+
"""
|
|
319
|
+
Returns the default symbol path for this node.
|
|
320
|
+
Must be overloaded.
|
|
321
|
+
|
|
322
|
+
:returns: symbol path (or resource).
|
|
323
|
+
"""
|
|
324
|
+
|
|
325
|
+
raise NotImplementedError()
|
|
326
|
+
|
|
327
|
+
@staticmethod
|
|
328
|
+
def categories(self):
|
|
329
|
+
"""
|
|
330
|
+
Returns the node categories the node is part of (used by the device panel).
|
|
331
|
+
|
|
332
|
+
:returns: list of node category (integer)
|
|
333
|
+
"""
|
|
334
|
+
|
|
335
|
+
raise NotImplementedError()
|
|
336
|
+
|
|
337
|
+
def __str__(self):
|
|
338
|
+
"""
|
|
339
|
+
Must be overloaded.
|
|
340
|
+
"""
|
|
341
|
+
|
|
342
|
+
raise NotImplementedError()
|