1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-25 09:48:09 +00:00
Commit Graph

1174 Commits

Author SHA1 Message Date
Julien Duponchelle
bf618d321c Max 100 thread executor 2015-04-22 10:39:43 +02:00
Julien Duponchelle
8b879c0614 Support wireshark remote capture 2015-04-20 19:27:07 +02:00
Julien Duponchelle
cf0adf56a8 Merge branch 'master' into unstable 2015-04-20 19:26:27 +02:00
Julien Duponchelle
531e95463c Add qemu-kvm to the list of binary 2015-04-20 10:12:17 +02:00
Julien Duponchelle
3926390d30 Fix tests broken by a previous commit 2015-04-18 09:22:37 +02:00
grossmj
343e007809 Ignore the "OSError: [WinError 0] The operation completed successfully" exception in Windows. 2015-04-16 20:17:06 -06:00
grossmj
c6dbf296cf Merge remote-tracking branch 'origin/master' 2015-04-16 13:24:48 -06:00
Julien Duponchelle
dfdc18b20c Merge branch 'master' into unstable 2015-04-16 18:38:59 +02:00
Julien Duponchelle
bca90bc563 API in order to get the list of IOU, Dynamips, Qemu images 2015-04-16 18:32:12 +02:00
Julien Duponchelle
b5e01f7560 Fix IOU licence check flag 2015-04-16 09:51:02 +02:00
grossmj
4136c29b0f Config paths are not used when updating Dynamips or IOU VM settings. 2015-04-15 19:50:40 -06:00
grossmj
aeab9780d8 Fixes initial-configs that were not restored when opening a project containing IOU VMs. 2015-04-15 19:49:40 -06:00
Julien Duponchelle
789e24795e Merge branch 'master' into unstable 2015-04-15 16:29:54 +02:00
Julien Duponchelle
26a7f83db2 Remove the workaround for dynamips OSX 2015-04-15 15:58:31 +02:00
Julien Duponchelle
def453c116 Restore "iourc_path" until I speak with jeremy about it 2015-04-15 15:50:34 +02:00
Julien Duponchelle
997f7cbd6f Fix noise in logs 2015-04-15 15:40:07 +02:00
grossmj
aab4a7243b Merge remote-tracking branch 'origin/master' 2015-04-14 18:21:42 -06:00
Julien Duponchelle
aa2472fb30 Rewrote image search
This code is more generic and support all cases. Previously
we had bug where the user lost his image path if the image
was not located in image directory.
2015-04-14 18:46:55 +02:00
Julien Duponchelle
e51a129216 Prevent parallel execution of VBox commands
In theory it should not be a problem.
But It's create issues like this one:

Fix: https://github.com/GNS3/gns3-gui/issues/261
2015-04-14 15:00:45 +02:00
Julien Duponchelle
55fed02299 Fix a crash when in some cases you can't access to VBOX state
Fix #137
2015-04-14 14:35:48 +02:00
Julien Duponchelle
45ca995dea Fix crash if VirtualBox doesn't return API version
Fix #136
2015-04-14 14:32:44 +02:00
Julien Duponchelle
af942dc419 Fix a crash in VirtualBox vm creation
Fix #138
2015-04-14 14:24:13 +02:00
Julien Duponchelle
1d5dc2ecf0 1.4.0 dev1 2015-04-13 10:48:14 +02:00
grossmj
443842e9b8 Allocate random names for Dynamips NIOs. 2015-04-12 18:14:45 -06:00
grossmj
78bc6e29a8 Explicitly delete Dynamips NIOs and unmap VCs for ATM and Frame-Relay switches. 2015-04-12 18:09:53 -06:00
grossmj
de5e8f852d Cleaner and generic way to set Qemu & IOU VM settings. 2015-04-12 15:09:37 -06:00
Julien Duponchelle
c99998d73c Fix version 2015-04-12 11:08:30 +02:00
Julien Duponchelle
c4963abcba 1.3.2 dev1 2015-04-11 13:59:22 +02:00
Julien Duponchelle
1ba9a2fcfa Prepare 1.3.1 2015-04-11 09:34:20 +02:00
Julien Duponchelle
eac751948e Prepare RC4 2015-04-09 10:57:25 +02:00
Julien Duponchelle
b2e53a94d4 Initial config file content can be empty 2015-04-09 10:53:18 +02:00
Julien Duponchelle
2d507fd17a Fix crash if IOU initial config is emtpy
Fix #147
2015-04-09 10:27:50 +02:00
Julien Duponchelle
202032f334 Fix error messages in JSON schema 2015-04-09 10:24:11 +02:00
Julien Duponchelle
1d997d9da5 Return more informations about bad requests for crash reports 2015-04-09 10:22:25 +02:00
Julien Duponchelle
9b79cce488 Dev4 version 2015-04-09 09:22:04 +02:00
grossmj
7e8b0a48ab Merge remote-tracking branch 'origin/master' 2015-04-08 11:17:49 -06:00
grossmj
7d7972afb3 Some spring cleaning. 2015-04-08 11:17:34 -06:00
Julien Duponchelle
f799fc1ab7 Prepare 1.3.1rc3 2015-04-07 16:16:19 +02:00
Julien Duponchelle
3b4a060ae9 Fix missing IOU documentation
Fix #143
2015-04-07 16:09:27 +02:00
Julien Duponchelle
1c4a059982 Look in old IOU images location in order to smooth transition
Fix #141
2015-04-07 15:25:53 +02:00
Julien Duponchelle
4189089e1b Prepare 1.3.1rc2 2015-04-06 21:34:32 +02:00
Julien Duponchelle
7efb7c2978 Do not overwrite initial-config IOU if client send an empty
Fix #140
2015-04-06 21:30:57 +02:00
Julien Duponchelle
e3239b7e36 Prepare 1.3.1rc1 2015-04-05 11:47:56 +02:00
grossmj
1c4202187a Fixes TAP interface use with VPCS. 2015-04-03 19:11:28 -06:00
grossmj
631d7a1e25 Avoid disconnecting valid VirtualBox VM adapter backends. 2015-04-03 19:08:29 -06:00
Jeremy Grossmann
19c5fdb1fd Merge pull request #135 from GNS3/fix_virtualbox_adapters
Fixes missing adapters in VBox Virtual Machines.
2015-04-04 00:13:58 +00:00
Julien Duponchelle
b46e2cf013 Fix issues with macos X dynamips not freeing UDP port
Fix #133
2015-04-03 13:32:07 +02:00
Julien Duponchelle
1acc9398d5 Fix encoding error when saving dynamips configuration
Fix #134
2015-04-03 12:13:07 +02:00
Julien Duponchelle
8fc256da6d Fix missing adapters in VBox Virtual Machines
If you have 4 network adapter and attach only ethernet 1 and 4.
You will see eth0, eth1, eth2 and eth3 with eth0 and eth3 attached.

https://github.com/GNS3/gns3-gui/issues/255
2015-04-03 12:08:18 +02:00
Julien Duponchelle
b330b2c157 The upload web page return a 200 in case of error
Otherwise IE doesn't display error messages...

Fix #132
2015-04-01 21:46:23 +02:00
Julien Duponchelle
990f243f15 Do not crash if dynamips config contain non ascii chars
But I don't know why user can want to do that.

Fix #123
2015-04-01 19:55:11 +02:00
Julien Duponchelle
a3c8201bcc Do not crash if no console port is available for VBox
I don't know how user manage to fall in this situation.

Fix #127
2015-04-01 17:59:58 +02:00
Julien Duponchelle
90d55fcb8a Raise a DynamipsError if we can't access to VM status
Fix #129
2015-04-01 17:39:37 +02:00
Julien Duponchelle
4cd5ec5613 Check name of the VBoxManage executable
Fix #118
2015-04-01 17:36:22 +02:00
Julien Duponchelle
026fe3df9b Catch error when qemu additional options are invalid
Fix #119
2015-03-31 22:14:08 +02:00
Julien Duponchelle
220d585dcc Fix ClientDisconnectedError
Fix #124
2015-03-31 22:05:50 +02:00
Julien Duponchelle
93344e9427 Fix crash when NIO doesn't exist
Fix #122
2015-03-31 22:00:05 +02:00
Julien Duponchelle
6d6cfacdc8 Turn off crash report if raven not available
Fix #121
2015-03-31 21:52:00 +02:00
Julien Duponchelle
36f5fd2865 Fix crash when IOU script file is incorrect
Fix #125
2015-03-31 21:50:47 +02:00
Jeremy
47ffdbd4ed Bump version to 1.3.1.dev1 2015-03-30 13:09:05 -06:00
Jeremy
ddf0194e8e 1.3.0 release 2015-03-30 10:10:03 -06:00
Julien Duponchelle
420a1c2da2 Fix rare crash in tests for travis and fix coverage 2015-03-30 17:03:49 +02:00
grossmj
ee8362d89a Fixes issue when asyncio read is cancelled and data is still sent by Dynamips hypervisor. Fixes #113. 2015-03-28 19:23:01 -06:00
grossmj
056ff14437 Fixes unicode decode error when saving IOS router configs. Fixes #115. 2015-03-28 18:09:53 -06:00
Julien Duponchelle
3c917c59fb Fix error when missing adapter
Fix #112
2015-03-27 16:20:31 +01:00
Julien Duponchelle
533ce78b90 Fix crash if we call stop on dynamips on non started process
Fix #111
2015-03-27 10:08:03 +01:00
Julien Duponchelle
be199b77a5 Homepage cleanup 2015-03-27 10:04:16 +01:00
Julien Duponchelle
bff164afcb Merge pull request #106 from aka001/homepage_added
Added homepage
2015-03-27 09:46:42 +01:00
Jeremy
81ce86a8a7 Fixes use_default_iou_values param was not set. 2015-03-26 16:47:55 -06:00
Jeremy
1df8f61035 Merge remote-tracking branch 'origin/master' 2015-03-26 15:11:41 -06:00
Jeremy
c7034c25ef Fixes issue when IOURC environment variable is set to None. 2015-03-26 15:11:36 -06:00
Julien Duponchelle
2e72bc2d3a Fix tests 2015-03-26 17:43:00 +01:00
Julien Duponchelle
64152c1af8 Fix a crash in CI, making log impossible to read 2015-03-26 15:49:51 +01:00
Jeremy
879ed9e4e6 Fixes issue when exporting IOS router configs. 2015-03-25 14:58:04 -06:00
Jeremy
ec6a761e04 Fixes check if VPCS process is running. 2015-03-25 14:43:51 -06:00
grossmj
588088ca93 Fixes bug when remove_nio() is not a coroutine for ATM and FR switches. 2015-03-24 22:15:49 -06:00
grossmj
07067d6765 Fixes how to test if iou and iouyap are running. 2015-03-24 22:04:48 -06:00
grossmj
980e63e667 Allocate a random port for Qemu monitor. Fixes issue with pre 1.3 projects. 2015-03-23 22:52:02 -06:00
grossmj
7b1a707967 Bump version to 1.3.0.dev3 2015-03-23 21:22:10 -06:00
grossmj
73310105a8 Fixes default chassis bug. 2015-03-23 21:13:22 -06:00
Jeremy
51659b6087 Bump version to 1.3.0rc2 2015-03-23 15:41:10 -06:00
Akash Agrawall
a25b17fe95 Removed merge conflict 2015-03-24 02:42:38 +05:30
Jeremy
b5aabd4cc5 Fixes initial-config not loading for IOU L2. 2015-03-23 12:30:27 -06:00
Julien Duponchelle
f4c7212e33 Update sentry key for the RC2
This allow to revoke crash report for old releases
2015-03-23 15:24:57 +01:00
grossmj
f451ed144e Prevent error when suspend/resume is not supported in QEMU VM. 2015-03-22 20:40:19 -06:00
grossmj
a77023d1ee Bump version to 1.3.0.dev2 2015-03-21 22:47:12 -06:00
grossmj
24300b2502 Adds project id when requesting UDP port. 2015-03-21 22:27:40 -06:00
grossmj
153914bf97 Make sure used ports in a project are cleaned up when closing it. 2015-03-21 17:19:12 -06:00
grossmj
2d6d153262 Save configs when project is committed. 2015-03-21 14:52:17 -06:00
grossmj
628dfef0d3 Initialize chassis when creating an IOS router. Fixes #107. 2015-03-21 13:58:52 -06:00
Jeremy
17d5b3a7bc Remove unnecessary locks. 2015-03-20 19:19:49 -06:00
Akash Agrawall
257735255c Added homepage 2015-03-20 17:09:53 +05:30
Julien Duponchelle
01bcbe2fd9 Lock the dynamips reader an writer
Fix #103
2015-03-20 10:21:40 +01:00
grossmj
7473dec5ad Bump version to 1.3.0.dev1 2015-03-19 19:56:31 -06:00
Julien Duponchelle
533baf0445 1.3.0rc1 2015-03-19 17:46:03 +01:00
Julien Duponchelle
ddb8a9f06e Fix an issue in IOU relative path looking 2015-03-19 15:36:06 +01:00
Jeremy
f31071d510 Bump version to 1.3.0rc1.dev3 2015-03-18 15:40:02 -06:00
Jeremy
8415117d2d Save IOS router configs when saving the project (done right this time). 2015-03-18 15:34:31 -06:00
Jeremy
f6b122cdfa Look in legacy IOU images dir when looking for relative IOU image path. 2015-03-17 19:28:43 -06:00
Jeremy
44c8396997 Bump version to 1.3.0rc1.dev2 2015-03-17 19:08:18 -06:00
Jeremy
fb0490d8e3 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-17 18:53:36 -06:00
Jeremy
163d1e375d Save IOS configs when a project is committed. 2015-03-17 18:53:24 -06:00
Julien Duponchelle
6330e99ff1 More robust IOUVM support 2015-03-17 22:18:55 +01:00
Julien Duponchelle
386b311755 Fix iou key verification for large hostid 2015-03-17 20:15:01 +01:00
Julien Duponchelle
4a9f578784 Support IOURC update 2015-03-17 19:00:14 +01:00
Julien Duponchelle
8ca9c2121a Do not crash if iourc file is missing 2015-03-17 18:34:23 +01:00
Julien Duponchelle
66cdf39ea2 Support uploading iourc 2015-03-17 16:31:45 +01:00
Julien Duponchelle
964ea0f577 Fix random behavior in tests 2015-03-17 15:40:58 +01:00
Julien Duponchelle
bb7eda63af Support more all QEMU status
Fix #98
2015-03-17 11:02:14 +01:00
Julien Duponchelle
54bccb0628 Restore configuration live reload
Closes #94
2015-03-17 10:22:18 +01:00
Jeremy
2de817214f Do not hide non-executable file in the UploadHandler. 2015-03-16 19:16:15 -06:00
Jeremy
93a5f4be79 Temporarily deactivate IOS router saveconfigs. 2015-03-16 17:36:23 -06:00
Jeremy
46fe973a96 Save IOS router configs when the user saves a project. 2015-03-16 16:33:37 -06:00
Jeremy
cc9b575b77 Bind UDP tunnels to the correct source address. Fixes #96. 2015-03-16 12:45:21 -06:00
Julien Duponchelle
bcb1ce02ab Refactor config management in tests 2015-03-16 15:03:41 +01:00
Julien Duponchelle
cf247a9301 Fix iou tests and add tests 2015-03-16 11:52:22 +01:00
Julien Duponchelle
3a6a04b8e5 Fix version test 2015-03-16 10:18:37 +01:00
grossmj
21587fda5a Removes confreg setting for IOS routers. 2015-03-14 16:31:15 -06:00
grossmj
30ed89847b Adds netifaces module in the setup dependencies. 2015-03-14 15:40:00 -06:00
grossmj
6d56da03e5 Fixes tests. 2015-03-14 13:16:27 -06:00
grossmj
25b778aec0 Bump version to 1.3.0rc1.dev1 2015-03-13 22:42:25 -06:00
grossmj
a90805135d Bump version to 1.3.0beta2 2015-03-13 22:02:28 -06:00
Jeremy
cf92bfe81e Alternative local server shutdown (mostly intended for Windows). 2015-03-13 18:57:27 -06:00
Jeremy
4ccca5dc99 Support RAM setting for VirtualBox VMs. 2015-03-13 17:13:36 -06:00
Jeremy
a81d2274cd Adds info either the server is started as a local server in VersionHandler response. 2015-03-13 15:15:27 -06:00
Jeremy
221befa73e Option to record curl requests into a file (to replay them later). 2015-03-13 14:43:39 -06:00
Jeremy
db69b93100 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-13 11:46:03 -06:00
Jeremy
81420c60c7 Changes words in upload template. 2015-03-13 11:46:02 -06:00
Jeremy
f7d3af4a59 Fixes hostid retrieval. 2015-03-13 11:45:38 -06:00
grossmj
c596147b59 List the iourc file in upload handler. 2015-03-12 20:56:10 -06:00
Jeremy
5637b7be86 Bump version to 1.3.0beta2.dev1 2015-03-12 18:51:22 -06:00
Jeremy
500b7112f5 Assert host and port are not None when creating the Server instance. 2015-03-12 18:50:38 -06:00
Jeremy
36daa3627e Ignore exception in asyncio loop on Windows when the local server gets a signal. 2015-03-12 18:48:07 -06:00
Jeremy
03796ca729 Server handler to shutdown a local server. 2015-03-12 18:44:05 -06:00
Jeremy
6d901e8295 Fixes issue when VBoxManage returns an error. 2015-03-12 16:53:22 -06:00
grossmj
4f7b896a6a Fixes tests. 2015-03-11 23:09:01 -06:00
grossmj
34c4649d0b Bump version to 1.3beta1 2015-03-11 22:09:43 -06:00
Jeremy
54c2d34185 Optional IOU license key check. 2015-03-11 18:59:57 -06:00
Jeremy
aebcd9f08b Relative path support of IOU, IOS and Qemu images. 2015-03-11 15:04:11 -06:00
Jeremy
c41bec0516 Do not give attachment warning for generic attachments in VirtualBox. 2015-03-11 12:05:22 -06:00
Jeremy
223f3ee705 Should fix ProcessLookupError exceptions. 2015-03-11 10:53:09 -06:00
grossmj
1610067eee Support for HDC and HDD disk images in Qemu. 2015-03-10 11:50:30 -06:00
grossmj
062e5a5986 Fixes bug when starting a packet capture in VirtualBox with the project path containing spaces. 2015-03-10 11:05:52 -06:00
grossmj
4c68fd0d52 Renames server.conf and server.ini to gns3_server.conf and gns3_server.ini respectively. 2015-03-10 11:00:32 -06:00
grossmj
03dfd177f9 Use TCP instead of Telnet to communicate with Qemu monitor. 2015-03-10 00:34:57 -06:00
grossmj
5910b4b0be Have the server look in the right place for relative image paths. 2015-03-09 21:57:21 -06:00
grossmj
ad5548f70b Convert more that IOU pre 1.3 projects but also other modules on remote servers. 2015-03-09 21:46:23 -06:00
grossmj
5ca65093e4 Fixes bugs when checking if this is a local project. 2015-03-09 12:45:02 -06:00
grossmj
4f1674f50c Bump version to 1.3.0beta1.dev2 2015-03-09 11:38:02 -06:00
grossmj
95766fa30d Let the server know about the project name and convert old IOU projects on remote servers. 2015-03-08 19:13:01 -06:00
grossmj
2934232afb Convert legacy IOU directories on remote servers. 2015-03-08 17:45:29 -06:00
grossmj
b1eccc0ace Properly restore configs for Dynamips routers. 2015-03-08 14:13:19 -06:00
grossmj
c3014632a4 Fixes rename bug for linked clones in VirtualBox. 2015-03-08 12:32:36 -06:00
grossmj
0d379f428e Makes absolute path checks work on Windows. 2015-03-07 18:16:46 -07:00
Julien Duponchelle
be1e0fa1f2 Upload IOURC file via the web interface 2015-03-07 14:38:38 +01:00
Julien Duponchelle
ed2e4e43f2 Support the options use_default_iou_values
Fix #92
2015-03-07 14:27:09 +01:00
Julien Duponchelle
d126db1fe9 The upload interfaces allow user to choose an image type 2015-03-07 13:52:40 +01:00
Julien Duponchelle
1b68a54234 Look for qemu images in ~/GNS3/images 2015-03-07 11:56:51 +01:00
Jeremy
ee578d3c12 Fixes Qemu networking. 2015-03-06 20:08:00 -07:00
Jeremy
d87ebb3ed2 Fixes suspend and resume for Qemu. 2015-03-06 15:16:19 -07:00
Jeremy
f188bc43e1 Includes SSL cacert file path in the warnings. 2015-03-06 11:25:25 -07:00
Jeremy
053fd9cc0c Adds warnings if the cacert.pem file cannot be found. 2015-03-06 11:20:28 -07:00
Jeremy
b58f9e10f9 Bump version to 1.3.0beta1.dev1 2015-03-06 10:34:02 -07:00
Julien Duponchelle
e37392c482 Correctly recover id when closing VMS
Fixes #91
2015-03-06 15:48:16 +01:00
Julien Duponchelle
d657f94c18 Fix crash when you start capture on a non running IOU 2015-03-06 14:48:46 +01:00
grossmj
18f3859e87 Fixes Telnet server initialization issue in VirtualBox. Fixes #88. 2015-03-05 21:20:02 -07:00
Jeremy
a64dfdd694 Disconnect network cable if adapter is not attached in VirtualBox vNIC. 2015-03-05 19:11:33 -07:00
Jeremy
2bae814eb1 Remove redundant code for Dynamips hypervisor connections. 2015-03-05 18:00:17 -07:00
Jeremy
c012e8ddb3 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-05 16:11:50 -07:00
Jeremy
b5e8aaf682 Support for Raven to send crash report from a frozen state. 2015-03-05 16:11:43 -07:00
Julien Duponchelle
2679c03fe2 Drop cloud from config 2015-03-05 23:15:06 +01:00
Julien Duponchelle
01ab91722b Proper format of crash report 2015-03-05 20:12:56 +01:00
Julien Duponchelle
a4da6c6a74 Add more informations in crash reports 2015-03-05 20:05:46 +01:00
Julien Duponchelle
1d0ffe4b2e Add more informations to crash reports 2015-03-05 17:44:01 +01:00
Julien Duponchelle
3407ba802e Rename vlan dat file for IOU 2015-03-05 17:00:25 +01:00
Jeremy
7a6136ed14 Fixes adapter bug with VirtualBox. 2015-03-04 18:24:15 -07:00
Jeremy
94bcd1cf11 Bump to version 1.3.0alpha1 2015-03-03 10:47:02 -07:00
Jeremy
69f8b7de6a Bump to version 1.3alpha1 2015-03-03 10:43:44 -07:00
Julien Duponchelle
80fd857658 Fix tests 2015-03-03 14:37:34 +01:00
Julien Duponchelle
10296f4f19 Do not send garbage to console in case of sentry not available 2015-03-03 13:05:10 +01:00
Julien Duponchelle
16dc0d1a8a Send crash report synchronous to avoid lost of events 2015-03-03 12:41:30 +01:00
Jeremy
6208cb997d Fixes Qemu adapters support. 2015-03-02 19:59:44 -07:00
Jeremy
6e89f2c7c7 Remove console_host from IOU and Qemu handlers. 2015-03-02 19:17:13 -07:00
Jeremy
3472f19519 Use console_host from the PortManager. 2015-03-02 18:19:11 -07:00
Jeremy
a6869379c3 Fixes console restoration when loading a VirtualBox project. 2015-03-02 17:28:28 -07:00
Jeremy
f269ec9527 Fixes Qemu networking. 2015-03-02 16:34:28 -07:00
Jeremy
7ace6fc7e9 Fixes old projects loading issue with Qemu. 2015-03-02 14:37:48 -07:00
Jeremy
466c6142af Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-02 13:04:35 -07:00
Jeremy
b673b898a8 Fixes problem when trying to convert VirtualBox projects without cloned VMs. 2015-03-02 13:04:30 -07:00
Julien Duponchelle
91ccd6167c API for reloading server config 2015-03-02 20:46:05 +01:00
Julien Duponchelle
a9afaa028c Garbage collect VM when closing a project 2015-03-02 17:17:28 +01:00
Julien Duponchelle
66860655b9 If a VM is already loaded, we return a VM instead of creating it twice
Partial fix for #81
2015-03-02 15:35:36 +01:00
Julien Duponchelle
16f6fe9d3b Send criticals errors to Sentry
Fixes #77
2015-03-02 09:05:32 +01:00
grossmj
46b0ead329 Close connections for auto-reload. 2015-03-01 21:13:51 -07:00
grossmj
c48ca212bd Stop Dynamips hypervisors used by devices before the project is closed.
This is to avoid locked files by hypervisors preventing temporary project working directories to be deleted.
2015-03-01 19:20:33 -07:00
grossmj
3ef529fb0e Temporally fixes Dynamips console listening issues. 2015-03-01 18:53:03 -07:00
grossmj
518b037d54 Fixes connect call failed for Dynamips hypervisor #78. 2015-03-01 14:25:09 -07:00
grossmj
7223005acd Restore device IDs and fixes race condition when converting an old project. 2015-03-01 13:05:51 -07:00
grossmj
5ae8728ee6 Fixes ATM switch. 2015-03-01 10:41:27 -07:00
grossmj
0c767e1c0e Bump to version 1.3.dev3 2015-02-28 21:39:52 -07:00
grossmj
dfce18a48f Fixes migration issues for pre-1.3 projects. 2015-02-28 18:55:53 -07:00
grossmj
0f10d25c0b Optional AUX console port allocation for Dynamips VMs. 2015-02-28 16:20:27 -07:00
grossmj
7fe2d6c367 Support to deactivate sparsemem or mmap globally for Dynamips VMs. 2015-02-28 15:53:21 -07:00
grossmj
d762c43314 Include the images directory when converting an old project. 2015-02-28 15:00:00 -07:00
grossmj
708f66b608 Fixes asyncio Lock instantiation issues on Windows.
Because the event loop is essentially a global variable, asyncio Lock objects that get instantiated early could grab a reference to the wrong loop (Selector instead of Proactor).
2015-02-27 22:12:43 -07:00
grossmj
666064f1ae Revert commit: Remove lock for Ghost IOS (problem on Windows). 2015-02-27 22:01:37 -07:00
Jeremy
70d5dea256 Remove lock for Ghost IOS (problem on Windows). 2015-02-27 19:36:45 -07:00
Jeremy
ba95567886 Some info message and fixes ghost IOS activation/deactivation. 2015-02-27 19:35:31 -07:00
Jeremy
84870bf736 Some changes with config files on Windows. 2015-02-27 18:08:34 -07:00
Jeremy
0e8b8fa66f Update hypervisors working dir when the project is moved. 2015-02-27 16:51:17 -07:00
Jeremy
b55719186e Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-27 13:27:40 -07:00
Jeremy
1d6d2a39f0 Allow signals to be processed on Windows. 2015-02-27 12:51:39 -07:00
Julien Duponchelle
d0c386860e Fix curl sample generation in the documentation 2015-02-27 18:47:08 +01:00
Julien Duponchelle
ae7bf828cd Fix tests on MacOS 2015-02-27 18:30:22 +01:00
Julien Duponchelle
f6448bb05d Turn off collored log output on windows 2015-02-27 15:27:13 +01:00
Julien Duponchelle
ebb865d973 Export vpcs config path 2015-02-27 13:38:57 +01:00
Jeremy
985c23a40e Explicitly import handlers so freezing application can find and include the right modules.
Do not import IOU on Windows to avoid importing unknown modules like fcntl on that platform.
2015-02-26 19:31:18 -07:00
Jeremy
58d92f1584 Fixes Dynamips console/aux ports restoration when loading a project. 2015-02-26 16:15:44 -07:00
Julien Duponchelle
62afef06af After an iou reload you can write on the console 2015-02-26 15:47:47 +01:00
Julien Duponchelle
5e59145948 If you type reload inside iou you are no longer disconnected 2015-02-26 15:09:15 +01:00
Julien Duponchelle
29e8d91745 Do not output debug for ioucon standard telnet commands 2015-02-26 13:07:26 +01:00
Julien Duponchelle
5a58f6efc8 Fix a crash with Python 3.4 when you stop IOU
http://bugs.python.org/issue23140
2015-02-26 11:29:57 +01:00
Julien Duponchelle
c07b8c746e Drop poll from Qemu 2015-02-26 10:18:52 +01:00
Jeremy
0eaad579c2 IOU + VirtualBox conversion of old projects. 2015-02-25 18:55:35 -07:00
Jeremy
85518a3cd6 Fixes race condition when generating an ghost IOS file. 2015-02-25 17:38:55 -07:00
Jeremy
9dc713f31d Fixes race condition when deleting empty legacy project files dir. 2015-02-25 17:38:36 -07:00
Jeremy
473eb0280e Support for relative path in Dynamips. 2015-02-25 17:19:37 -07:00
Jeremy
de1be0961f Do not return an error when creating the same project multiple times (for now). 2015-02-25 17:19:12 -07:00
Jeremy
54fc873be5 Prevent multiple projects with the same ID to be created. 2015-02-25 16:05:57 -07:00
Jeremy
349d9d4540 Fixes small issues when deleting Dynamips devices. 2015-02-25 11:52:52 -07:00
Julien Duponchelle
f12d3f07f7 Drop the old -files in the project 2015-02-25 18:23:41 +01:00
Julien Duponchelle
8434a286b6 Fix IOU old project import
Fixes #69
2015-02-25 16:35:13 +01:00
Julien Duponchelle
818676ce5e Support relative path in iou 2015-02-25 16:26:17 +01:00
Julien Duponchelle
47f8ac00c0 Remove debug 2015-02-25 16:04:18 +01:00
Julien Duponchelle
4ea25739e5 Correctly check if qemu is running
Fixes #71
Related to #70
2015-02-25 15:46:05 +01:00
Julien Duponchelle
0713724a97 Properly handle when client cancel's query 2015-02-25 11:42:02 +01:00
Julien Duponchelle
7c2329d870 Garbage collect the lock 2015-02-25 11:19:16 +01:00
grossmj
3528efb1e0 Fixes packet capture for devices when spaces are present in the output file. 2015-02-24 23:12:09 -07:00
grossmj
550cc7f508 Rename vms_lock to vm_locks. 2015-02-24 21:02:37 -07:00
Jeremy
6bb7ab20b3 Fixes vm concurrency and support for devices. 2015-02-24 15:26:03 -07:00
Julien Duponchelle
46b348e46a VM concurrency 2015-02-24 21:53:38 +01:00
Julien Duponchelle
9153b42b9d Fix crash in crash report 2015-02-24 20:22:10 +01:00
Julien Duponchelle
250bb38d7c Crash report with Sentry 2015-02-24 17:40:01 +01:00
Julien Duponchelle
67be24a412 Fix doc generation 2015-02-24 11:39:17 +01:00
Julien Duponchelle
1ca445d5f5 Fix dynampis resume API 2015-02-24 10:02:06 +01:00
Jeremy Grossmann
e910167a85 Quick change warning -> debug 2015-02-23 22:19:03 -07:00
Jeremy
49f3c9295f Some debug messages to help with port allocation debugging. 2015-02-23 19:59:19 -07:00
Jeremy
42c07cee1a Properly release UDP ports when closing a project or deleting a link. 2015-02-23 19:00:34 -07:00
Jeremy
3d3300e83a Rename console methods in port manager to use the generic tcp term in the name.
Fixes bug when a console port is allocated to a Ghost VM instance and not released.
Warnings at exit when TCP/UDP ports are still allocated.
2015-02-23 17:42:55 -07:00
Jeremy
182d2e465e Use projects_path & images_path. 2015-02-23 17:08:34 -07:00
Jeremy
fb9f5d3c14 List only executable files in upload handler. 2015-02-23 15:56:40 -07:00
Jeremy
8b19029d97 List only executable files in upload handler. 2015-02-23 15:56:10 -07:00
Jeremy
0e8c184987 Recursive listing of the images directory & fixes bug when uploading no files. 2015-02-23 15:49:05 -07:00
Julien Duponchelle
4d1f08c96e Turn off Qemu graphics if no display is available
Fixes #66
2015-02-23 20:21:00 +01:00
Julien Duponchelle
cad708f4ab Add warning unstable at the beginning of the API 2015-02-23 18:00:59 +01:00
Julien Duponchelle
4ffb2c8c20 Fix tests 2015-02-23 17:32:55 +01:00
Julien Duponchelle
89b7d62ec6 Some code cleanup 2015-02-23 17:28:17 +01:00
Julien Duponchelle
c9314ec509 autopep8 et upload files 2015-02-23 17:21:39 +01:00
Julien Duponchelle
259f6249e2 Fix tests 2015-02-23 16:09:52 +01:00
Julien Duponchelle
f7cd09d5fb Display an upload form (upload is not yet ready) 2015-02-23 11:28:33 +01:00
Jeremy
210aa6f12a Bit of cleaning. 2015-02-22 19:56:52 -07:00
Jeremy
da11343647 Fixes aiohttp.errors.ClientDisconnectedError errors when SIGINT is received. 2015-02-22 12:36:44 -07:00
Jeremy
565a7b35a6 Default NVRAM and Idle-PC for some IOS images. 2015-02-21 17:24:39 -07:00
Jeremy
9a745ed3f4 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-20 16:53:57 -07:00
Jeremy
af700e9bcb Idle-PC and auto idle-pc for Dynamips. 2015-02-20 16:53:51 -07:00
Julien Duponchelle
cecf2f5014 Async qemu monitor reading 2015-02-21 00:15:56 +01:00
Julien Duponchelle
45a48cfcc1 Embeded debugging shell 2015-02-20 22:40:20 +01:00
Julien Duponchelle
a0f4c6d021 Repare live reload 2015-02-20 22:23:09 +01:00
Julien Duponchelle
47be57dca7 Fix qemu close 2015-02-20 17:31:02 +01:00
Julien Duponchelle
15036837bb No project for qemu binaries list 2015-02-20 16:54:23 +01:00
Julien Duponchelle
8aa5514890 Qemu binary list 2015-02-20 14:39:13 +01:00
Jeremy
90f71e7581 Idle-PC proposals for Dynamips. 2015-02-19 19:14:30 -07:00
Jeremy
b393948b67 Fixes iouyap shutdown. 2015-02-19 16:58:44 -07:00
Jeremy
8d02f464c5 Dynamips import/export configs. 2015-02-19 16:04:15 -07:00
Julien Duponchelle
48f5c7c8b3 All params for qemu 2015-02-19 20:22:30 +01:00
Julien Duponchelle
d0244824bf Get a working Qemu handler. Next step add all parameters 2015-02-19 19:43:45 +01:00
Julien Duponchelle
b03b9226ff So we have running code for a qemu module
Now the handlers. The telnet code is not yet async
2015-02-19 16:46:57 +01:00
Julien Duponchelle
25bcbfb073 Allocation of console port in base vm 2015-02-19 11:45:43 +01:00
Jeremy
4a3e6632c1 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-18 18:40:16 -07:00
Jeremy
380c4d8211 Fixes capture directory path. 2015-02-18 18:40:01 -07:00
grossmj
3d1363150e Fixes ghost file path. 2015-02-18 18:24:35 -07:00
grossmj
610dee957d Use HTTP error 409 instead of 500 for VMError. 2015-02-18 17:48:02 -07:00
Julien Duponchelle
d65617657c Fix old project directories renames 2015-02-18 16:13:09 +01:00
Julien Duponchelle
3cb7213427 Fix crash in VPCS 2015-02-18 15:18:18 +01:00
Julien Duponchelle
03b6563864 Initial config path for IOU 2015-02-17 18:12:43 +01:00
Julien Duponchelle
dd1833c4f0 iourc_path is set from server settings file 2015-02-17 16:40:45 +01:00
Julien Duponchelle
0e98497a99 Add an endpoint for exporting the initial config file 2015-02-17 14:52:51 +01:00
Julien Duponchelle
57348d0508 Better organisation of the API documentation 2015-02-17 10:37:09 +01:00
Julien Duponchelle
5170428913 Fix a capture crash 2015-02-17 10:01:15 +01:00
grossmj
dc4df68c7a Keep Dynamips logs. 2015-02-16 21:30:31 -07:00
Jeremy
e6fd471dd5 Save Dynamips VM configs when closing a project. 2015-02-16 18:21:10 -07:00
Jeremy
516b882122 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-16 16:53:56 -07:00
Jeremy
3e95bb9748 Adapter settings and configs for Dynamips VMs. 2015-02-16 16:53:50 -07:00
Julien Duponchelle
6c3a926ce3 Capture is OK on server side 2015-02-16 20:08:04 +01:00
Julien Duponchelle
018e3c1451 Fix IOU closing 2015-02-16 17:40:13 +01:00
Julien Duponchelle
15f89776d3 All current iou code is async 2015-02-16 17:20:07 +01:00
Julien Duponchelle
d323234520 Harmonisation of slot, adapter notion 2015-02-16 10:19:50 +01:00
Julien Duponchelle
3ceb43fa62 Fix tests 2015-02-16 10:11:46 +01:00
Julien Duponchelle
605afa1d33 Fix bad execption name in IOU 2015-02-16 10:05:54 +01:00
grossmj
78ffe313fd Dynamips VM & device deletion and ghost support. 2015-02-15 22:13:24 -07:00
grossmj
26f7195288 Dynamips devices packet capture. 2015-02-15 17:45:53 -07:00
grossmj
f99e834c37 Dynamips devices support (packet capture to complete). 2015-02-15 12:18:12 -07:00
Jeremy
4f38d96522 Dynamips devices. 2015-02-13 20:01:18 -07:00
Jeremy
094339304c Packet capture for Dynamips VMs. 2015-02-13 15:41:56 -07:00
Jeremy
6ac6c7d796 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-13 15:11:19 -07:00
Jeremy
a5ac7c5481 Dynamips NIO connections. 2015-02-13 15:11:14 -07:00
Julien Duponchelle
e082cd8b1a Update the remote IOU initial config 2015-02-13 22:16:43 +01:00
Julien Duponchelle
83edc649d2 Rename NVRAM to the correct application id before start the server 2015-02-13 20:57:20 +01:00
Julien Duponchelle
a9a3bb1c38 Pep8 2015-02-13 20:57:09 +01:00
Julien Duponchelle
49f012cf4c Turn off documentation sidebar because it's broken 2015-02-13 18:27:08 +01:00
Julien Duponchelle
2cab5293c7 Add the notion of adapters and slot in the api 2015-02-13 18:09:50 +01:00
Julien Duponchelle
821eb5e92b Repare config file loading 2015-02-13 17:34:22 +01:00
Julien Duponchelle
ee019caa37 Support l1_keepalives in IOU 2015-02-13 16:57:35 +01:00
Julien Duponchelle
1550ca01e6 IOU support nio ethernet 2015-02-13 16:41:18 +01:00
Julien Duponchelle
3e1875b069 Set console host from port manager 2015-02-13 14:46:00 +01:00
Julien Duponchelle
68427eaddf Auto PEP8 cleanup 2015-02-13 14:43:28 +01:00
Julien Duponchelle
a4669689e7 Fix tests due to test reading the local config file 2015-02-13 11:15:11 +01:00
grossmj
0a5aaedc7c Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-12 19:15:47 -07:00
grossmj
8f089c45f5 Fixes a few problems in Dynamips implementation. 2015-02-12 19:15:35 -07:00
Julien Duponchelle
f99d825346 Support network for IOU 2015-02-12 22:29:34 +01:00
Julien Duponchelle
9160d3caf4 Remove old directories to avoid editing them by mistake... 2015-02-12 22:29:34 +01:00
Julien Duponchelle
3471b03ef9 Clarify JSON schema validation errors 2015-02-12 22:29:33 +01:00
Julien Duponchelle
8b61aa9ae7 Set ram, ethernet adapters, serial adapters 2015-02-12 22:29:33 +01:00
Julien Duponchelle
05df7001a3 Successfully create an iou device from the GUI via HTTP 2015-02-12 22:29:33 +01:00
Julien Duponchelle
4689024b50 Add a --live options to control livereload
Because the livereload bug due to timezone issues with Vagrant
2015-02-12 22:29:33 +01:00
Julien Duponchelle
ebc214d6fa Fix tests and rename path to iou_path 2015-02-12 22:29:33 +01:00
Julien Duponchelle
fb69c693f6 Start iouyap 2015-02-12 22:29:33 +01:00
Julien Duponchelle
faa7472670 IOUCON start when vm start 2015-02-12 22:29:33 +01:00
Julien Duponchelle
986c63f344 HTTP api start iou process
Now we need to start ioucon
2015-02-12 22:29:32 +01:00
Julien Duponchelle
2e99ef69a9 Modules support start iou process (not ioucon and iouyap) 2015-02-12 22:29:32 +01:00
Jeremy
79a57ca420 New Dynamips integration part 3 2015-02-11 19:21:34 -07:00
grossmj
37945585b9 New Dynamips integration part 2 2015-02-10 21:50:02 -07:00
Jeremy
46cbcd6132 New Dynamips integration part 1 2015-02-09 18:24:13 -07:00
Jeremy
648850c411 Server listen to 0.0.0.0 by default. 2015-02-09 13:42:50 -07:00
Jeremy
30c452e938 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-09 13:41:36 -07:00
Jeremy
98586b93ee Add timeout on stopping a VPCS just in case. 2015-02-09 13:41:31 -07:00
Julien Duponchelle
2f85d71f32 Correctly override the config from command line
The tests was long write but allow me to found some typos
bugs.
2015-02-09 21:30:22 +01:00
Julien Duponchelle
b31af0abcd Sub directory project-files 2015-02-09 11:26:42 +01:00
grossmj
0d7d0a05c3 Handle old projects. 2015-02-08 18:10:04 -07:00
grossmj
2a3b37a3bd VirtualBox packet capture. 2015-02-08 14:44:56 -07:00
grossmj
d499402491 VirtualBox implementation complete. 2015-02-06 17:31:13 -07:00
Julien Duponchelle
e81dcd4bba Add /projects before /project 2015-02-06 17:42:25 +01:00
Julien Duponchelle
571044b3e8 Fix server close tests 2015-02-06 11:31:54 +01:00
Jeremy
8118d7762f Parallel execution when closing VMs. 2015-02-05 14:24:06 -07:00
Jeremy
f2ff933b20 Fixes console and close in VirtualBox VM. 2015-02-05 11:58:10 -07:00
Julien Duponchelle
ab122d969e Allow empty project directory 2015-02-05 17:57:51 +01:00
Julien Duponchelle
5a0c224292 Allow user to change project path on local server 2015-02-05 17:52:37 +01:00
Julien Duponchelle
9f7b8574c8 Useless print 2015-02-05 17:15:40 +01:00
Julien Duponchelle
30f10a559e Fix crash in debug log 2015-02-05 16:34:18 +01:00
Julien Duponchelle
0abf2e82d6 Improve server debug logging 2015-02-05 15:35:52 +01:00
Julien Duponchelle
41a8872819 Refactor VPCS script file loading
This allow to support moving the project on disk
2015-02-05 14:20:01 +01:00
Julien Duponchelle
869405738e Code cleanup 2015-02-05 13:55:53 +01:00
Julien Duponchelle
b92e065add Fix binary location change for VPCS 2015-02-05 12:00:34 +01:00
Julien Duponchelle
dae48b2de4 Update temporary status if project change location
This avoid race condition during file move.
2015-02-05 11:44:51 +01:00
Julien Duponchelle
8367a9eb30 Remove unused files (we can restore them later via git history) 2015-02-05 11:00:42 +01:00
Jeremy
291fac7084 Add project_id in all VM calls. 2015-02-04 17:13:35 -07:00
Jeremy
b680138073 Merge remote-tracking branch 'origin/asyncio' into asyncio
Conflicts:
	gns3server/modules/project.py
	tests/modules/test_project.py
2015-02-04 13:52:46 -07:00
Jeremy
1bea78194c Explicit ID names, remove {uuid} from URLs and add vms in URLs for VMs. 2015-02-04 13:48:29 -07:00
Julien Duponchelle
c5c219ffe1 Allow modification of path from the client 2015-02-04 21:17:00 +01:00
Julien Duponchelle
2ace014a3c Cleanup old temporary project at startup 2015-02-04 17:18:53 +01:00
Julien Duponchelle
ca354ae7f2 Doc API V1 2015-02-04 10:31:31 +01:00
Julien Duponchelle
08158884a4 Add api versionning 2015-02-04 10:24:59 +01:00
Jeremy
119bebee25 Documentation. 2015-02-03 18:44:04 -07:00
Jeremy
59c82e26df Use project_id instead of project_uuid for the API. 2015-02-03 18:40:13 -07:00
Jeremy
d2699f051d Change URL for projects: /project becomes /projects and project_id is used instead of uuid. 2015-02-03 18:23:11 -07:00
Julien Duponchelle
aeb83a7945 Support %h in VPCS config file 2015-02-03 21:48:20 +01:00
Julien Duponchelle
f572f3fc95 You can't modify startup script remotely 2015-02-03 20:29:28 +01:00
Julien Duponchelle
0ce344b1d2 PEP8 2015-02-03 10:49:21 +01:00
Jeremy
81f9252554 Fixes nasty bug when close a cloned VirtualBox VM. 2015-02-02 18:56:13 -07:00
Jeremy
66569f26a4 Make sure to wait for the unload coroutine to finish when the server is shutting down. 2015-02-02 17:01:25 -07:00
Jeremy
df72369b0e Fix VirtualBox VM close. 2015-02-02 17:00:29 -07:00
Jeremy
33d5882a4a Add traceback info when catching an exception to help with debugging. 2015-02-02 15:36:13 -07:00
Jeremy
471fbe576c Ignore OSError when checking for config file changes. 2015-02-02 15:00:56 -07:00
Jeremy
45ca493ecf Use module settings from the config file. 2015-02-02 14:52:58 -07:00
Julien Duponchelle
2c3fe2ad4b Repare debug log 2015-02-02 21:28:42 +01:00
Jeremy
aecd7dedba Fixes app name for the config file on Linux. 2015-02-02 13:13:56 -07:00
Julien Duponchelle
0ae8d8031a Override configuration from command line even in case of config reload 2015-02-02 15:08:46 +01:00
Julien Duponchelle
6abf420ce1 Support configuration live reload 2015-02-02 15:01:48 +01:00
Julien Duponchelle
21020a2753 Fix server configuration path 2015-02-02 10:49:46 +01:00
Jeremy
a3a304bd12 Load port ranges from the config file. 2015-02-01 20:43:55 -07:00
Jeremy
0c90393b5b Send explicit error message when client is checking for the server version. 2015-02-01 16:55:08 -07:00
Jeremy
8d471a89a8 Check for OSError when starting the server. 2015-02-01 15:56:10 -07:00
Jeremy
334835c985 PEP8 + documentation. 2015-01-31 14:34:49 -07:00
Jeremy
8a00d30e23 Change ports to adapters in VirtualBox API entry points. 2015-01-31 12:07:30 -07:00
Jeremy
22369ade49 Rename port_id to port_number for VPCS and adapter_id for VirtualBox to avoid confusion. 2015-01-31 12:01:23 -07:00
Jeremy
fa978b6a28 Send all VirtualBox settings when creating the VM. 2015-01-30 19:36:05 -07:00
Julien Duponchelle
8bc26420b7 If not script file is setted we use the default from VPCS 2015-01-30 14:57:25 +01:00
Julien Duponchelle
29a4a0634d Add console debug 2015-01-27 11:39:31 +01:00
Jeremy
e60366c5bb Change URL to get all VirtualBox VMs. 2015-01-26 20:29:02 -07:00
Julien Duponchelle
776bfea3d7 Clean enable debug mode 2015-01-26 17:40:41 +01:00
Julien Duponchelle
6764c6e866 Useless debug 2015-01-26 16:39:09 +01:00
Julien Duponchelle
9abf323e7d Send GNS 3 server version in header and upgrade aiohttp 2015-01-26 14:40:31 +01:00
Julien Duponchelle
df8bdcc152 Catch exceptions from rmtree 2015-01-26 13:54:44 +01:00
Julien Duponchelle
4518404706 Run rmtree in a different thread 2015-01-26 12:10:30 +01:00
Julien Duponchelle
1bfb201368 Enable code live reload only in debug mode 2015-01-26 09:51:29 +01:00
Julien Duponchelle
70faf76c10 PEP8, documentation update, test fix 2015-01-26 09:36:26 +01:00
Jeremy
50fea669b5 Network handler for UDP port allocation and server network interfaces. 2015-01-24 15:32:58 -07:00
Jeremy
c002bbfb23 Minimal SSL support. 2015-01-24 12:11:51 -07:00
Jeremy
365af02f37 Packet capture support for VirtualBox. 2015-01-23 18:33:49 -07:00
Jeremy
ff63530f52 Get all available VirtualBox VMs on the server. 2015-01-23 17:57:54 -07:00