2 # -*- coding: utf-8 -*-
4 # ------------------------------------------------------------
7 # the opensecurityd as RESTful server
9 # Autor: Oliver Maurhart, <oliver.maurhart@ait.ac.at>
11 # Copyright (C) 2013 AIT Austrian Institute of Technology
12 # AIT Austrian Institute of Technology GmbH
13 # Donau-City-Strasse 1 | 1220 Vienna | Austria
14 # http://www.ait.ac.at
16 # This program is free software; you can redistribute it and/or
17 # modify it under the terms of the GNU General Public License
18 # as published by the Free Software Foundation version 2.
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
25 # You should have received a copy of the GNU General Public License
26 # along with this program; if not, write to the Free Software
27 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
28 # Boston, MA 02110-1301, USA.
29 # ------------------------------------------------------------
32 # ------------------------------------------------------------
40 from vmmanager.vmmanager import VMManager
43 from environment import Environment
46 # ------------------------------------------------------------
52 """All the URLs we know mapping to class handler"""
54 '/device_change', 'os_device_change', # http://localhost:8080/device_change GET
55 '/sdvms', 'os_sdvms', # http://localhost:8080/sdvms GET, PUT, DELETE
56 '/vms', 'os_vms', # http://localhost:8080/vms GET
57 '/vms/(.*)', 'os_vm', # http://localhost:8080/vms/[VMNAME] GET
58 '/', 'os_root' # http://localhost:8080/ GET
62 # ------------------------------------------------------------
65 # Global VMManager instance
69 # ------------------------------------------------------------
73 class os_device_change:
74 """OpenSecurity '/device_change' handler"""
77 gvm_mgr.cygwin_path = 'c:\\cygwin64\\bin\\'
78 gvm_mgr.handleDeviceChange()
79 return "os_device_change"
83 """OpenSecurity '/sdvms' handler"""
86 """get the list of SDVMs"""
87 return gvm_mgr.listSDVM()
90 """create a new SDVM"""
91 print("os_sdvms:PUT - 1")
94 if not "name" in args:
95 raise web.badrequest()
96 print("os_sdvms:PUT - 2")
98 return gvm_mgr.createVM(args.name)
101 """remove a new SDVM"""
104 if not "name" in args:
105 raise web.badrequest()
107 return gvm_mgr.removeVM(args.name)
110 """OpenSecurity '/vms/[VM]' handler"""
113 return gvm_mgr.getVMInfo(name)
117 """OpenSecurity '/vms' handler"""
120 return gvm_mgr.listVM()
124 """OpenSecurity '/' handler"""
127 res = "'os_server': { "
128 res += "'version': '" + __version__ + "', "
129 res += "'virtualbox_path': '" + gvm_mgr.vBoxPath + "', "
130 res += "'machine_folder': '" + gvm_mgr.getDefaultMachineFolder() + "' "
136 if __name__ == "__main__":
137 server = web.application(opensecurity_urls, globals())