1
0
mirror of https://github.com/dkmstr/openuds.git synced 2025-10-06 11:33:43 +03:00

2932 Commits

Author SHA1 Message Date
Adolfo Gómez García
e7216e8a24 updated user interface 2022-05-17 16:42:37 +02:00
Adolfo Gómez García
48557f96e4 Fixed assignement of new services if pool is at 100% usage 2021-11-30 12:18:15 +01:00
Adolfo Gómez García
263071750c Fixed logs removal 2021-09-02 13:23:04 +02:00
Adolfo Gómez García
4fed22d39d Merge branch 'v3.0' of github.com:dkmstr/openuds into v3.0 2021-08-25 12:49:08 +02:00
Adolfo Gómez García
24687fda2e Fixed configjs so disabled custom auths works in all cases 2021-08-25 12:48:54 +02:00
Adolfo Gómez García
51b0cec536 Upgraded git signatures outdated for RDP (thanks Dani por the report ;-) ) 2021-08-19 12:55:30 +02:00
Adolfo Gómez García
d38347c534 Fixed ticket for metapools & fixed get interfaces list for python > 3.2 (as is the case) 2021-07-19 13:25:43 +02:00
Adolfo Gómez García
693d14cd81 small typo fixes 2021-07-02 11:01:31 +02:00
Adolfo Gómez García
1b12aee767 Fixed html open windows for 3.0 2021-06-22 12:10:30 +02:00
Adolfo Gómez García
762e4154fd added -env 2021-06-16 12:11:09 +02:00
Adolfo Gómez García
610085e353 Added UDS-Version as header on response to REST api 2021-06-07 21:01:39 +02:00
Adolfo Gómez García
16d6e515c6 Added "version" method to REST api so we can check UDS Server version easily 2021-06-07 20:57:19 +02:00
Adolfo Gómez García
9731e57f01 Fixed metapool 2021-06-04 11:44:32 +02:00
Adolfo Gómez García
7a030dd302 Updated & fixed url on same window 2021-06-03 12:50:22 +02:00
Adolfo Gómez García
e21267b0fd Fixed autocomplete (at last!!) 2021-05-31 11:29:56 +02:00
Adolfo Gómez García
ee7e72cbd3 Fixed main 2021-05-31 11:13:44 +02:00
Adolfo Gómez García
7edf3094ed bitarray library previously returned True or False, now return 0 and 1, and we where checking against "is True" 2021-05-27 10:52:36 +02:00
Adolfo Gómez García
02c3ffbe75 bitarray library previously returned True or False, now return 0 and 1, and we where checking against "is True" 2021-05-27 10:50:17 +02:00
Adolfo Gómez García
041942b746 Updated locales 2021-05-27 10:49:32 +02:00
Adolfo Gómez García
21ab85818e Fixed realname on user creation 2021-05-25 10:40:13 +02:00
Adolfo Gómez García
a7d8058d09 Fixed authenticator ip && removed "accept Proxy" (uds now handles this automatically...) 2021-05-19 12:19:24 +02:00
Adolfo Gómez García
1345593c3a Fixed typo on ticket_store 2021-05-12 17:36:14 +02:00
Adolfo Gómez García
a017807d2a updated admin 2021-05-07 12:35:12 +02:00
Adolfo Gómez García
f8c9dd25df A new try to disable autocomplete on admin 2021-05-06 07:54:28 +02:00
Adolfo Gómez García
469940074c Fixed VC Fixed pool "empty" token 2021-05-04 12:59:02 +02:00
Adolfo Gómez García
e920628395 Fixed connection client working 2021-05-04 12:32:56 +02:00
Adolfo Gómez García
9a7afe7839 fixed MetaPool orderer 2021-04-27 11:31:43 +02:00
Adolfo Gómez García
84ca0b2e41 Added metapool support for UDS Tickets 2021-04-26 11:44:31 +02:00
Adolfo Gómez García
5355c7e420 Fixed admin deletion of calendar access for meta pools 2021-04-22 11:55:23 +02:00
Adolfo Gómez García
d3c14520d4 Fixed small backslash typo on storage names 2021-04-19 12:59:18 +02:00
Adolfo Gómez García
fa32d485c9 Added VNC launch support from uds assigned services 2021-04-13 12:46:43 +02:00
Adolfo Gómez García
0fd24dadff Fixed sample settings for Django 3.2 new DEFAULT_AUTIFIELD and added local fonts also on admin interface 2021-04-08 17:41:03 +02:00
Adolfo Gómez García
afd36886d6 Added "switch to master" on login as default 2021-04-05 13:21:26 +02:00
Adolfo Gómez García
eb3638d62a fixed azuread login on html5rdp 2021-03-23 16:41:56 +01:00
Adolfo Gómez García
f7b8e644f9 Fixed sample REST1 for python3 && added reset suport for assigned user service using REST API 2021-03-22 11:42:11 +01:00
Adolfo Gómez García
034021522d Fixed .tar.gz installer info 2021-03-15 11:25:27 +01:00
Adolfo Gómez García
ba716be0f3 Added actor block on failure security config 2021-03-12 15:07:03 +01:00
Adolfo Gómez García
1505fd346b * Fixed configuration commands with parameters with "equal" sign
* Fixed access using ticket
2021-03-12 11:41:53 +01:00
Adolfo Gómez García
49ee75d986 Fixed big mistake on storage 2021-03-11 14:27:45 +01:00
Adolfo Gómez García
2acc72a1f7 Fixed big mistake on storage 2021-03-11 14:12:33 +01:00
Adolfo Gómez García
81d8544f5f Added "AzureAD" RDP login support 2021-03-10 18:13:08 +01:00
Adolfo Gómez García
35b0d709f6 small fix in case service_multi loads old values 2021-03-10 11:10:37 +01:00
Adolfo Gómez García
d11a010562 Cleanup temp environment before assigning it to an user 2021-03-05 11:01:23 +01:00
Adolfo Gómez García
ef24656e29 added local fonts instead from google to allow intranets to work fine 2021-03-04 17:04:03 +01:00
Adolfo Gómez García
281adedd3b autocontained google fonts 2021-03-04 17:01:29 +01:00
Adolfo Gómez García
8a8df3de35 Fixed policy for removal of old ips on multiple_ip and restored "/disabled" behavior 2021-03-03 12:31:35 +01:00
Adolfo Gómez García
0e20ccc19c Fixed policy for removal of old ips on multiple_ip and restored "/disabled" behavior 2021-03-03 12:22:10 +01:00
Adolfo Gómez García
52f8dc7fde Now machines does not locks forever.... (fix) 2021-03-01 13:12:14 +01:00
Adolfo Gómez García
8af6cc008b Now machines does not locks forever.... 2021-03-01 13:08:31 +01:00
Adolfo Gómez García
5f30e083b1 Now machines does not locks forever.... 2021-03-01 13:06:41 +01:00
Adolfo Gómez García
017aa46403 Now machines does not locks forever.... 2021-03-01 13:00:30 +01:00
Adolfo Gómez García
a2a8f157e0 Updated translations 2021-03-01 11:45:59 +01:00
Adolfo Gómez García
eb8f300c0e fixed page not found redirections 2021-03-01 11:41:47 +01:00
Adolfo Gómez García
9cd084a222 Fixed phisical machines skitTime 2021-03-01 10:41:35 +01:00
Adolfo Gómez García
6b131681cd Added new resolutions for screens to RDP client 2021-02-25 10:38:35 +01:00
Adolfo Gómez García
d7a8a441ad Fixed locale 2021-02-24 15:17:47 +01:00
Adolfo Gómez García
7985c0f9d0 Updated translations 2021-02-17 16:02:13 +01:00
Adolfo Gómez García
d474f02baf added support for "legacy" window override on html5 for UDS 2021-02-17 15:33:56 +01:00
Adolfo Gómez García
041ff932e4 added log to services.log on case of phisical machine connection test failure 2021-02-15 12:11:01 +01:00
Adolfo Gómez García
d1f83e4ae4 fixed detection of iPad & iPhone 2021-02-14 22:02:24 +01:00
Adolfo Gómez García
a3ced4af30 fixed get tag from auth name 2021-02-09 13:42:57 +01:00
Adolfo Gómez García
b6cae240a7 small comment fix 2021-02-09 12:27:37 +01:00
Adolfo Gómez García
99a96bf343 added environment variable expansion to rdp parameters 2021-02-05 14:31:43 +01:00
Adolfo Gómez García
04d0acb17e Fixed count & added new vars to service pools name 2021-01-28 13:56:57 +01:00
Adolfo Gómez García
80bd2c2f9c Fixed headers for rest.py 2021-01-26 16:01:56 +01:00
Adolfo Gómez García
99e6ec8090 add sample custom download to configjs.py 2021-01-21 11:00:13 +01:00
Adolfo Gómez García
20f2e4fd27 small header changes 2021-01-14 17:40:44 +01:00
Adolfo Gómez García
68d7ded5bc Upgraded windows script to be compatible with python2.7 & python3 (for future 3.5 client compatibility) 2021-01-11 03:01:11 +01:00
Adolfo Gómez García
105a6af885 fixed windows access scripts 2020-12-18 11:08:05 +01:00
Adolfo Gómez García
bb71dd1cd3 updated translations 2020-12-15 13:54:32 +01:00
Adolfo Gómez García
a95c69a77e Fix to gui 2020-12-09 12:19:55 +01:00
Adolfo Gómez García
b1c4385090 Added multiple ip service maxDeployed calc 2020-11-27 14:32:49 +01:00
Adolfo Gómez
620e8fee94 Merge branch 'v3.0' of https://github.com/dkmstr/openuds into v3.0 2020-11-26 18:42:07 +01:00
Adolfo Gómez
933ba772d9 fixed proxy mistyping 2020-11-26 18:41:58 +01:00
Adolfo Gómez García
45461844b1 Fixed SAML issues on logout redirections 2020-11-26 11:25:22 +01:00
Adolfo Gómez García
a70e7a269b Updated proxmox so reset invokes reset instead of stop vm 2020-11-25 18:37:40 +01:00
Adolfo Gómez García
4866b8947c restored = instead of ### for mac cord url 2020-11-20 10:08:00 +01:00
Adolfo Gómez García
dcf5ea8574 fixed tunnel for nx 3.5 2020-11-17 17:08:48 +01:00
Adolfo Gómez García
38a625452b fixed x2goscript to tunnel (using direct by mistake) 2020-11-16 14:44:24 +01:00
Adolfo Gómez García
ed15178549 fixed typo on storage locator. (The bug is in a code that is not used, but maybe in a future...) 2020-11-13 08:29:19 +01:00
Adolfo Gómez García
d5f84a4209 upgrade locales 2020-11-10 16:29:20 +01:00
Adolfo Gómez García
f3e2338cfb updated translations 2020-11-10 09:19:43 +01:00
Adolfo Gómez
cd4708296e Merge branch 'v3.0' of https://github.com/dkmstr/openuds into v3.0 2020-11-09 09:09:14 +01:00
Adolfo Gómez
c3915fd8fe Added no proxy for local requests on udsactor 2020-11-09 09:09:05 +01:00
Adolfo Gómez García
253896e995 fixed incorrectly removing service with token on edition of service and duplication of token 2020-11-05 09:28:32 +01:00
Adolfo Gómez García
9d19aebdf6 Fixed macosx CoRD pkg location 2020-10-29 09:17:11 +01:00
Adolfo Gómez García
32c496e88a Increased AD path size to 256 for os manager 2020-10-27 11:02:27 +01:00
Adolfo Gómez García
538779e3c1 fixed usage on a day report 2020-10-27 07:55:32 +01:00
Adolfo Gómez García
6f5f17326e Fixed pools usage summary on emtpy pools 2020-10-22 11:13:41 +02:00
Adolfo Gómez García
6dc6f5954b fixed typo on connection recovery 2020-10-20 11:29:46 +02:00
Adolfo Gómez García
61750f2f94 Improved services usage retrieval 2020-10-20 11:10:02 +02:00
Adolfo Gómez García
9c991fd8ef included sample code to allow use of css by tag (Authenticator tag) 2020-10-16 13:52:09 +02:00
Adolfo Gómez García
d840066468 Added config variable to allow some more modifications 2020-10-16 13:28:20 +02:00
Adolfo Gómez García
e8698316c6 Fixed calendar actions 2020-10-16 11:46:18 +02:00
Adolfo Gómez García
bbae1dca44 Fixed tags FULL removal 2020-10-14 17:55:20 +02:00
Adolfo Gómez García
1afe118481 Removed url redirection from html5. Now guacamole always closes window after end 2020-10-13 20:36:31 +02:00
Adolfo Gómez García
35c4e90be8 small fix for html5vnc 2020-10-13 20:32:57 +02:00
Adolfo Gómez García
b792c630c6 Fixed global removal concurrency check to speed up process 2020-10-09 13:43:54 +02:00
Adolfo Gómez García
958165c64f Fixed Opengnsys default max removing services 2020-10-09 13:41:57 +02:00
Adolfo Gómez García
2811521937 Removed old eclipse builders 2020-10-08 15:26:45 +02:00
Adolfo Gómez
792db7ba6c Update TODO.txt
Outdated TODO. Leaving empty for now.
2020-10-08 15:25:13 +02:00
Adolfo Gómez García
5740ec7e3e fixed (c) of pam_uds 2020-10-08 15:22:38 +02:00
Adolfo Gómez García
3cbb0675a6 Removed outdated docs 2020-10-08 15:20:05 +02:00
Adolfo Gómez García
bfd5f12f82 Fixed scheduled action executor with removing & restrained pools 2020-10-07 12:39:02 +02:00
Adolfo Gómez García
b5b2d20c27 Fixed metapool usage && visualization 2020-10-05 16:50:38 +02:00
Adolfo Gómez García
cf2c984065 Fixed metapool usage && visualization 2020-10-05 16:03:49 +02:00
Adolfo Gómez García
e38c05286f Fixed loading autoattributes from python 2 2020-10-01 15:35:36 +02:00
Adolfo Gómez García
5355cc5a51 Fixed Hanged Removal of non os managed services 2020-09-30 14:05:27 +02:00
Adolfo Gómez García
1789aee1e7 Added "connection.close" to release used connections early" (fixed) 2020-09-29 16:16:47 +02:00
Adolfo Gómez García
e184961eba Added "connection.close" to release used connections early" (fixed) 2020-09-29 16:13:43 +02:00
Adolfo Gómez García
10b8f3418f Added "connection.close" to release used connections early" 2020-09-29 15:48:39 +02:00
Adolfo Gómez García
60b1fabcaf added number of service pools to transports list 2020-09-29 13:47:12 +02:00
Adolfo Gómez García
b492e7674c added "total" macro to display services 2020-09-25 14:13:53 +02:00
Adolfo Gómez García
3d0a9f758f Fixed dependencies for Fedora 32 & OpenSuse 2020-09-24 16:33:00 +02:00
Adolfo Gómez García
a2aef2fba0 Fixed service launcher & metapool launcher to correctly recognize http urls 2020-09-23 14:07:05 +02:00
Adolfo Gómez García
9d6fd8a1ab Updated translations 2020-09-22 16:24:33 +02:00
Adolfo Gómez García
547607452a Added variable launch time for plugin launcher 2020-09-22 16:22:56 +02:00
Adolfo Gómez García
25d24f8102 fixed user/userservice removal 2020-09-15 10:49:21 +02:00
Adolfo Gómez García
9e77934136 Fixed info on model utils
Added "allow_agent=False" to forwarded connection of UDS client
2020-09-10 13:53:05 +02:00
Adolfo Gómez García
78129c9569 Allow use of tag if DISALLOW_GLOBAL_LOGIN 2020-09-08 13:01:32 +02:00
Adolfo Gómez García
2c27061534 Fixed altClass group retrieval for regexldap 2020-09-08 12:21:18 +02:00
Adolfo Gómez García
d46c806ae3 Fixed ldap _altuser attributes adding 2020-09-07 12:49:48 +02:00
Adolfo Gómez García
b35ffbbf58 Fixed translation 2020-09-03 15:48:28 +02:00
Adolfo Gómez García
407dff41ea Fixed user interface typo 2020-09-03 15:45:59 +02:00
Adolfo Gómez García
2627f96499 Fixed calendar action "Remove all user services" 2020-09-03 11:35:54 +02:00
Adolfo Gómez García
a0ba19010c updated requirements 2020-09-01 15:11:28 +02:00
Adolfo Gómez García
7650f3239a Fixed configuration save logging when migration are onwards 2020-09-01 15:10:29 +02:00
Adolfo Gómez García
35f932e88d Fixed restrained on admin 2020-08-31 18:00:45 +02:00
Adolfo Gómez García
fc188b5b9c Changed the mechanics for launching an external url 2020-08-28 17:09:56 +02:00
Adolfo Gómez García
bbc211ac8c updated admin interfaces 2020-08-28 14:32:08 +02:00
Adolfo Gómez García
fbd3d36461 Fixed test of simpleldap 2020-08-27 18:50:26 +02:00
Adolfo Gómez García
a527ff326d * Updated dependency for rpms (pycrypto) for UDS
* Included "urllib.parse" as import (not all platforms includes it on "urllib" import)
* Fixed stupid "b" on tools
2020-08-27 14:13:27 +02:00
Adolfo Gómez García
6a9b764e1e fixed temp filename 2020-08-27 13:26:46 +02:00
Adolfo Gómez García
06b7b58dd2 Fixed port error on spice tunnel 2020-08-26 16:31:26 +02:00
Adolfo Gómez García
9560ee0699 Fixed X2go authorize script for vapp 2020-08-25 15:13:05 +02:00
Adolfo Gómez García
cf88eb4c4b added support for 2.2 for backwards for script send 2020-08-25 14:45:33 +02:00
Adolfo Gómez García
f9154b57a7 Final fixes for multi domain && tagged auth 2020-08-25 13:57:48 +02:00
Adolfo Gómez García
6e6384fb00 Fixed authentication multihost 2020-08-25 13:46:20 +02:00
Adolfo Gómez García
f0caabf814 Fixed authentication multihost 2020-08-25 13:42:27 +02:00
Adolfo Gómez García
110f1c23f1 Updated translations 2020-08-25 10:52:46 +02:00
Adolfo Gómez García
0d63dabe9f Fixed admin interface 2020-08-25 10:32:40 +02:00
Adolfo Gómez García
e1b4825726 Fixed meta service pool. Negative priorities not accepted 2020-08-25 10:30:01 +02:00
Adolfo Gómez García
5e4114c719 Fixed clipboard (partially) for guacamole 2020-08-20 14:45:21 +02:00
Adolfo Gómez García
5c5ddd147c Fixed port on simple ldap 2020-08-20 11:53:18 +02:00
Adolfo Gómez García
d46eebc581 small regex ldap fix 2020-08-19 15:15:25 +02:00
Adolfo Gómez García
4216d1553a Fixed Regex LDAP accepting altClass as secondary search 2020-08-19 14:44:33 +02:00
Adolfo Gómez García
1e42bf6cbb Fixed base random pass length
Removed "tunnelCheck" from legacy nx transport (not used anyway)
2020-08-19 13:44:55 +02:00
Adolfo Gómez García
416b5e738f Fixed random password complexity 2020-08-18 00:47:56 +02:00
Adolfo Gómez García
2529039f49 Fixed getIdle for all platforms 2020-08-11 15:28:47 +02:00
Adolfo Gómez García
0ba8e83588 Removed memory for now from proxmox. Not really used 2020-08-11 12:33:40 +02:00
Adolfo Gómez García
e58b3e52e9 fixed download actors display on small screens 2020-08-11 11:23:18 +02:00
Adolfo Gómez García
3e72f634d4 Fixed "true" 2020-08-11 10:59:38 +02:00
Adolfo Gómez García
b61fd61e0e added "rmp --addsig" to build script. Note that you musth have configured an rmp key, or ignore the error output (and dont get signed the .rpm) 2020-08-10 08:44:50 +02:00
Adolfo Gómez García
39cf5b1ff7 fixed config save on multiple save 2020-08-08 20:23:30 +02:00
Adolfo Gómez García
adfed4f89d added custom value to set filter on top or bottom 2020-08-08 20:15:59 +02:00
Adolfo Gómez García
27f867f71a adder renamer for opensuse-leap 2020-08-08 00:21:27 +02:00
Adolfo Gómez García
73445c516b Added VNC HTML5 experimental transport (disabled by default) 2020-08-07 09:20:39 +02:00
Adolfo Gómez García
247bb2e549 fixed javascript login 2020-08-07 06:46:28 +02:00
Adolfo Gómez García
4a8fdfe09d fixed sample config 2020-08-07 05:48:07 +02:00
Adolfo Gómez García
5a3a9e2e42 fixed sample config 2020-08-06 17:32:36 +02:00
Adolfo Gómez García
ff4ff7899c * Upgraded user interface
* Fixed visual name max length (to 32)
2020-08-06 12:47:19 +02:00
Adolfo Gómez García
a34e8c2c9d Updated admin interface 2020-08-06 08:27:39 +02:00
Adolfo Gómez García
9a9afae79a Added {use} macro to Short name, so the % of pool use could be shown on pool name 2020-08-05 15:08:07 +02:00
Adolfo Gómez García
a3c31bcfb7 Updated admin 2020-08-05 15:07:35 +02:00
Adolfo Gómez García
060b4fce98 now "joinDomain" executes "rename" and ignores most part 2020-08-05 10:40:30 +02:00
Adolfo Gómez García
fc090497cc fixed sample config file 2020-08-04 07:55:43 +02:00
Adolfo Gómez García
44456213f7 Added new report "Authenticators stats" 2020-08-03 13:05:13 +02:00
Adolfo Gómez García
5d76b3269b fixed calendar actions add/remove group/transport 2020-08-03 13:04:18 +02:00
Adolfo Gómez García
786242d1cd Small improvement to events 2020-08-02 17:16:02 +02:00
Adolfo Gómez García
fc856ad7fb Small improvement to counter 2020-08-02 17:09:06 +02:00
Adolfo Gómez García
aecd933c98 more fixes to stats counters 2020-07-31 13:39:36 +02:00
Adolfo Gómez García
5602cca2b5 Fixed getCounters to be a bit more flexible 2020-07-31 06:30:44 +02:00
Adolfo Gómez García
50fc172fd7 improved getCounter kwargs parameters read 2020-07-30 06:21:03 +02:00
Adolfo Gómez García
0664968352 Updated dashboard 2020-07-30 05:13:51 +02:00
Adolfo Gómez García
0333dbd51a Fixed non visible config values 2020-07-30 05:13:11 +02:00
Adolfo Gómez García
6e19d59bdf Small fixes (typing, name & string related) 2020-07-30 04:12:42 +02:00
Adolfo Gómez García
fe7bbe8799 added small comment in case someone wants to use UDS as main site and redirect / to somewhere else 2020-07-29 20:11:03 +02:00
Adolfo Gómez García
c53dbd6714 removed print, not commited real stats saver :) 2020-07-29 15:13:02 +02:00
Adolfo Gómez García
3e8757e908 added auth stats to stats collector & stats manager 2020-07-29 13:53:00 +02:00
Adolfo Gómez García
e1d66db7ea Merge branch 'master' of github.com:dkmstr/openuds 2020-07-28 09:43:41 +02:00
Adolfo Gómez García
c38a68f4f6 Moved __import__ to recommended "importlib.import_module"
Fixed guacamole 500 error on some cases
2020-07-28 09:43:33 +02:00
Adolfo Gómez
db373979c2 fixed unknown literal caps 2020-07-27 09:03:05 +02:00
Adolfo Gómez
606e65eea4 Added session type to login request 2020-07-27 08:53:05 +02:00
Adolfo Gómez
4e3dce37f7 Removed SENS from uds actor 3.0. Not needed 2020-07-23 09:14:19 +02:00
Adolfo Gómez García
668c26dd8f Fixed token being cleaned on managed machines on logout 2020-07-22 23:33:23 +02:00
Adolfo Gómez García
735a093b0b Fixed service_multi, so, in case a phisical machines got "stuck on db" forever, could be removed by editing the service (remove, save, readd and done) 2020-07-22 07:10:30 +02:00
Adolfo Gómez García
8a49e7c437 Fixed type of error returned by StorageAccess 2020-07-22 06:38:35 +02:00
Adolfo Gómez García
03e3517baf Added access to storage using dict-like item 2020-07-22 06:26:53 +02:00
Adolfo Gómez García
db5ac8b12e Upgraded user interface to angular 10 2020-07-21 18:13:44 +02:00
Adolfo Gómez García
78dbd966b1 Upgraded admin interface 2020-07-21 17:57:07 +02:00
Adolfo Gómez García
cff8977c63 Fixed latam for html5 2020-07-21 17:45:46 +02:00
Adolfo Gómez García
a648f5686e Updated to client for python 3 2020-07-20 13:15:00 +02:00
Adolfo Gómez García
2fbdef1739 fixed invalid cert error on python 3 2020-07-20 11:50:20 +02:00
Adolfo Gómez García
7d4243d72a Fixed spice bugs. Thanks to a-sh1 2020-07-15 14:06:55 +02:00
Adolfo Gómez García
c520a63800 Fixed HTML5 rdp netbios domain name
Fixed publication cleaning on persistent machines (Cache is now removed correctly)
2020-07-14 14:54:40 +02:00
Adolfo Gómez García
12ce031217 fixed f4 proxy request with domain and domain name on html5 if used NETBIOS name 2020-07-14 14:03:03 +02:00
Adolfo Gómez García
3ead78adb9 Updated guacamole dependency to 1.1 2020-07-12 07:03:10 +02:00
Adolfo Gómez García
b238bba7a4 Added new "future" url paths for some dispatchers 2020-07-12 01:42:25 +02:00
Adolfo Gómez García
416a11c0ed Removed _ from hostnames (no valid) 2020-07-08 19:39:37 +02:00
Adolfo Gómez García
c286beac9f Removed _ from hostnames (no valid) 2020-07-08 19:27:09 +02:00
Adolfo Gómez García
a31411fbf0 Fixed a couple of things on UDS 2020-07-08 18:48:46 +02:00
Adolfo Gómez García
675e335aa4 Added UDS Actor version to uds actor request user agent 2020-07-03 14:34:28 +02:00
Adolfo Gómez García
31ee1d2858 Fixed background "cleaners" 2020-07-02 15:39:14 +02:00
Adolfo Gómez García
19edf417ba *More fix & improvements on cleaner workers 2020-07-01 16:45:03 +02:00
Adolfo Gómez García
510b0cb32a * Fixed and improved AssignedAndUnused check time (from 1 minutes to 5, more than enough)
* Improved query to filter assignedAndUnused
* Added "destroy_after" check for stuck worker
* Improved query for stuck check
2020-07-01 16:11:47 +02:00
Adolfo Gómez García
f9ada8349f Fixed Auth limiting by hostname/label && fixed actor changeip method (is ipchange) 2020-07-01 12:00:51 +02:00
Adolfo Gómez García
5e177059fe Added parameter to add or not digits on random string 2020-06-29 13:48:40 +02:00
Adolfo Gómez García
df86e8742c Updated translations 2020-06-25 13:55:49 +02:00
Adolfo Gómez García
526229b9cf Fixed admin tooltip 2020-06-25 13:54:41 +02:00
Adolfo Gómez García
8d39728ede Fixed service information 2020-06-25 13:53:49 +02:00
Adolfo Gómez García
5bb2cfdf8a Fixed error detection on new service allocation 2020-06-24 12:51:58 +02:00
Adolfo Gómez García
640de2e7b7 Upgraded angular && small report fix 2020-06-24 05:53:13 +02:00
Adolfo Gómez García
2f615358e3 updated frontend 2020-06-24 05:20:52 +02:00
Adolfo Gómez García
7c5cbe6604 new translations 2020-06-24 05:16:44 +02:00
Adolfo Gómez García
7c4ebd90aa Fixing up clients 2020-06-24 05:07:38 +02:00
Adolfo Gómez García
2d2030f8d5 Added downloadables & legacy downloadables 2020-06-24 03:41:48 +02:00
Adolfo Gómez García
243c89eb6d Fixed package builder for actor on python3 2020-06-24 03:16:37 +02:00
Adolfo Gómez García
6de8ccb018 Created packages for udsclient for modern rh/suse based installar (python3) 2020-06-24 03:01:04 +02:00
Adolfo Gómez García
f52b224a38 template fixed for uds client for python3 2020-06-24 01:47:49 +02:00
Adolfo Gómez García
909e706bbd Fixed UDSActor for rpm based % python3 2020-06-24 01:37:13 +02:00
Adolfo Gómez García
0fcbf8dc6a Updated translations 2020-06-24 00:56:13 +02:00
Adolfo Gómez García
bda2232629 Added Custom External URL Launcher 2020-06-24 00:48:06 +02:00
Adolfo Gómez García
308a9c68ab Updated locales 2020-06-23 14:10:19 +02:00
Adolfo Gómez García
e7a403d60e updated user moodle launcher 2020-06-23 14:06:47 +02:00
Adolfo Gómez García
14ddcfe797 fixed moodle URL 2020-06-23 13:25:54 +02:00
Adolfo Gómez García
afcb96d9b7 small fix 2020-06-22 16:12:40 +02:00
Adolfo Gómez García
96945e7834 Added "autocomplete off" to forms 2020-06-22 16:00:59 +02:00
Adolfo Gómez García
fdd241194d Updated .gitignore 2020-06-22 14:43:02 +02:00
Adolfo Gómez García
0dc78fc376 * Working on FEDORA/RH/OpenSuse & rpm based uds actor for python3 packager 2020-06-22 14:36:15 +02:00
Adolfo Gómez García
4b3c3cc183 Added custom html info on login page 2020-06-19 15:09:19 +02:00
Adolfo Gómez García
69c4efe793 fixed comments 2020-06-17 12:49:04 +02:00
Adolfo Gómez García
3c85ba692e Independized "Multimedia sync" flag from sound 2020-06-17 10:38:41 +02:00
Adolfo Gómez García
7ce2ac8bd7 Fixed /multimedia (changed for /video) when tranport flag "Multimedia sync" 2020-06-17 10:33:24 +02:00
Adolfo Gómez García
062b02a409 removed unusefull "loginurl" config parameter 2020-06-16 14:47:27 +02:00
Adolfo Gómez García
e3cb1ffaf1 enlarged options for rdp linux clients text fields 2020-06-16 13:39:32 +02:00
Adolfo Gómez García
7312c1ee6b Fixed Settings sample 2020-06-15 15:10:21 +02:00
Adolfo Gómez García
d296761ada Fixed federated auth callback 2020-06-15 14:55:52 +02:00
Adolfo Gómez García
da8d885107 Fixed locales 2020-06-12 17:15:09 +02:00
Adolfo Gómez García
9d64f7a539 Fixed model so "name", "..." are also provided to Modules 2020-06-12 14:04:34 +02:00
Adolfo Gómez García
f01d4302cf Fixed comms for non suporting coms user services 2020-06-12 13:53:51 +02:00
Adolfo Gómez García
d9a948df38 Fixed types for proxmox (network) 2020-06-11 18:04:12 +02:00
Adolfo Gómez García
5df07875f9 Fixed admin text 2020-06-11 17:38:36 +02:00
Adolfo Gómez García
c23f95e903 Fixed several proxmox issues 2020-06-11 17:34:36 +02:00
Adolfo Gómez García
6f8b67f3b8 updated translations 2020-06-10 16:42:00 +02:00
Adolfo Gómez García
7a6476569d fixed admin 2020-06-10 15:01:05 +02:00
Adolfo Gómez García
1638243d84 Fixed html5 && actor v3 2020-06-10 02:14:18 +02:00
Adolfo Gómez García
74c5643bcf New messages update 2020-06-08 18:07:40 +02:00
Adolfo Gómez García
7bc87c39a7 fixed state date optimization 2020-06-08 17:44:42 +02:00
Adolfo Gómez García
bf4a6e24d2 Fixed service multi 2020-06-08 16:47:08 +02:00
Adolfo Gómez García
0aa65e71b4 fixed debian dependency (python-six instead of python3-six) for udsclient 2020-06-08 16:02:41 +02:00
Adolfo Gómez García
4985747c97 Fixed skipTimeOnFailure store && integer division on python 3 for client 2020-06-08 14:35:07 +02:00
Adolfo Gómez García
8d9b8d9234 Added support for openstack showing subnets 2020-06-05 14:51:31 +02:00
Adolfo Gómez García
7b623bd986 Several fixes for mitration from 2.2.1 2020-06-03 13:49:19 +02:00
Adolfo Gómez García
72efd559c4 Translations 2020-06-02 15:41:03 +02:00
Adolfo Gómez García
24f77d37d4 Fixed minor javascript visualizations 2020-06-02 15:38:36 +02:00
Adolfo Gómez García
a982d64190 Removed L2 cache from openstack (not really usefull right now) 2020-06-02 01:06:00 +02:00
Adolfo Gómez García
56eefa10a9 updated locales 2020-05-30 20:56:53 +02:00
Adolfo Gómez García
779dfe1fc4 Added mor info to pools usage summary 2020-05-30 20:55:21 +02:00
Adolfo Gómez García
d0e7dde571 fixed user save 2020-05-29 15:22:49 +02:00
Adolfo Gómez García
7ee137b00e check permisions on users/groups administration 2020-05-29 14:46:36 +02:00
Adolfo Gómez García
1a42daa8e3 fixed rdp script signatures 2020-05-29 14:16:46 +02:00
Adolfo Gómez García
a630f1fc14 fixed over fixes xd (small "beauty") 2020-05-29 14:15:11 +02:00
Adolfo Gómez García
9454b9f63f Fixed linux rdp scripts 2020-05-29 14:10:01 +02:00
Adolfo Gómez García
b48bea14d2 Now ensures setReady does not steals, on error, the machine to the user 2020-05-29 04:48:14 +02:00
Adolfo Gómez García
1959051fe4 added cache for checking liveness on multiple ip 2020-05-29 03:43:36 +02:00
Adolfo Gómez García
6faf6ceaca Updated default input field length to 64. Fixed actor to allow unmanaged new methods. Fixed admin interface 2020-05-28 13:58:28 +02:00
Adolfo Gómez García
7ec2197634 improving actor to better support unmanaged hosts 2020-05-28 04:29:13 +02:00
Adolfo Gómez García
7a9dbc3edd added logging capabilites to Provider & Services Class. Added info on provider log when a machine is not accesible on phisical 2020-05-28 02:13:00 +02:00
Adolfo Gómez García
944bc0041b Fixed rdp netbios domain being swapped with username 2020-05-26 21:36:52 +02:00
Adolfo Gómez García
a7b33bb992 Fixed calendar actions 2020-05-26 18:34:40 +02:00
Adolfo Gómez García
06f4c933ed updated translations 2020-05-26 16:22:39 +02:00
Adolfo Gómez García
b1e1aebdf0 Added por check for phisical machines multi 2020-05-26 16:03:49 +02:00
Adolfo Gómez García
36609eaff3 remove empty ips from phisical machines on save 2020-05-26 14:32:57 +02:00
Adolfo Gómez García
71d6e389ea fingerprints is a comma separated string 2020-05-26 11:52:00 +02:00
Adolfo Gómez García
1983a218cb fixed typo on forward 2020-05-26 11:37:54 +02:00
Adolfo Gómez García
2fea5d1526 fixed typo on forward 2020-05-26 11:36:41 +02:00
Adolfo Gómez García
cede2c48e9 added forward checking fingerprints capability 2020-05-26 11:21:35 +02:00
Adolfo Gómez García
f306449b0e Fixed meta pool prefetch & configuration save 2020-05-25 12:55:05 +02:00
Adolfo Gómez García
786e419b27 Removed last focos of possible slowness showing services 2020-05-22 18:57:37 +02:00
Adolfo Gómez García
6ff997b054 fixed refactored var 2020-05-22 13:15:40 +02:00
Adolfo Gómez García
e0a512eefb More improvements on getServices 2020-05-22 12:43:41 +02:00
Adolfo Gómez García
fcea278d2f fixed certificate message 2020-05-22 10:56:17 +02:00
Adolfo Gómez García
aee16dd075 Improved user services queries a LOT :) 2020-05-22 03:18:04 +02:00
Adolfo Gómez García
42b06ff688 fixed metapools access 2020-05-20 14:04:32 +02:00
Adolfo Gómez García
158564552e Fixed pushing menus after dialog 2020-05-20 13:00:13 +02:00
Adolfo Gómez García
5b9fe17353 fixed prefetchs on some methods 2020-05-19 18:05:30 +02:00
Adolfo Gómez García
5ea3949d4c Improved service pool listing on high numbers... 2020-05-19 17:08:40 +02:00
Adolfo Gómez García
aa3744094b fixed pools usage summary report 2020-05-18 21:53:15 +02:00
Adolfo Gómez García
222ed0e9b0 Added new report (summary of pools usage between dates) 2020-05-18 15:37:32 +02:00
Adolfo Gómez García
cf76d7ae76 fixed log comments 2020-05-15 14:24:26 +02:00
Adolfo Gómez García
4dec86fe9d Several fixes:
* Loglevel now more "readable" for actor
* Added "remove delete protection" for cloned machine to template on proxmox
* Fixed bug on textbox
2020-05-15 14:08:32 +02:00
Adolfo Gómez García
62313ae67f fixed texbox default values 2020-05-14 14:51:46 +02:00
Adolfo Gómez García
aba2995371 moved several logs out of info level 2020-05-13 12:12:34 +02:00
Adolfo Gómez García
66e3dc11ea Fixed IP Proxy 2020-05-11 15:09:52 +02:00
Adolfo Gómez García
f1e8011f42 fixed comms for certificate checking 2020-05-11 14:16:11 +02:00
Adolfo Gómez García
616df1f0f2 Fixed translations && updated staff showing info 2020-05-11 14:06:33 +02:00
Adolfo Gómez García
65bb91c449 fixed xss && fixed configjs 2020-05-11 13:35:28 +02:00
Adolfo Gómez García
c69512bf8b fixed issue with actor certificates creation 2020-05-09 08:51:14 +02:00
Adolfo Gómez García
1e03a5cf6e fixed issue with actor certificates creation 2020-05-09 08:48:43 +02:00
Adolfo Gómez García
8c3ca38b3d updated translations 2020-05-07 11:53:38 +02:00
Adolfo Gómez García
cb8461b06c Fixed Admin by translations 2020-05-07 10:55:04 +02:00
Adolfo Gómez García
559c5c76ff fixed literals & typo 2020-05-07 10:37:26 +02:00
Adolfo Gómez García
a5b164930e updated translations 2020-05-06 13:53:18 +02:00
Adolfo Gómez García
92b4e2c898 Changed shadow default for xcp from 4 to 1 2020-05-06 13:51:03 +02:00
Adolfo Gómez García
eba6a7be7a renamed CrOs SO to Chrome OS 2020-05-05 16:32:25 +02:00
Adolfo Gómez García
b824c5431b updated client to allow some more customizations from dashboard 2020-05-05 12:35:57 +02:00
Adolfo Gómez García
f409b2986c fixing up stuff 2020-05-04 14:12:36 +02:00
Adolfo Gómez
ad4ea61613 Merge pull request #52 from shaba/devel
ovirt -> proxmox in Proxmox service
2020-04-30 09:25:55 +02:00
a8d0081fd1 ovirt -> proxmox in Proxmox service 2020-04-29 17:31:43 +03:00
Adolfo Gómez García
cdd3cd546f fixed names 2020-04-29 11:28:58 +02:00
Adolfo Gómez García
3d2423f0bf added warning capture && fixed cert issuer name 2020-04-29 08:05:25 +02:00
Adolfo Gómez García
612d05a408 generating certificates with criptography lib && added alt subject 2020-04-29 07:16:00 +02:00
Adolfo Gómez García
ab84330c7b added "strip" to IP list 2020-04-28 15:57:36 +02:00
Adolfo Gómez García
bd28300324 fixed redirection for custom auth if default 2020-04-28 11:54:06 +02:00
Adolfo Gómez García
e758ec36ff Several fixes:
* Extended windows domain OU
* Addded certification check in connections to UDS clients
* Removed empty paths from REST api
2020-04-28 11:02:36 +02:00
Adolfo Gómez García
c1adf35c99 added "initializeUnmanaged", but right now its unused" 2020-04-28 07:44:39 +02:00
Adolfo Gómez García
9aaab57a6a Fixed typo on opengnsys 2020-04-27 12:57:03 +02:00
Adolfo Gómez García
e38151a349 Added udsclient for python3 for debian/ubuntu based 2020-04-27 11:46:07 +02:00
Adolfo Gómez García
0b61e6096f done python3 client installer 2020-04-27 11:27:45 +02:00
Adolfo Gómez García
2e9b7046ff Updated OpenGnsys working 2020-04-27 10:46:37 +02:00
Adolfo Gómez García
4b3840f9c3 fixed an invalid reverse 2020-04-24 12:33:35 +02:00
Adolfo Gómez García
44632a497e fixed admin interface 2020-04-24 10:18:27 +02:00
Adolfo Gómez García
e5967b7ff3 moved uds.js to different location for admin and user 2020-04-24 10:02:18 +02:00
Adolfo Gómez García
57bc347625 Updated translations 2020-04-23 11:05:25 +02:00
Adolfo Gómez García
54bd713de6 updated usage by pool report 2020-04-22 11:45:06 +02:00
Adolfo Gómez García
2d3b3af978 removed invalid code from xen 2020-04-22 10:51:14 +02:00
Adolfo Gómez García
7ea139163d removed again local SRs because its possible to mark a local storage as "shared" on non cluster xen 2020-04-21 12:25:05 +02:00
Adolfo Gómez García
e93f2951be Updated usage by pool report 2020-04-21 11:58:50 +02:00
Adolfo Gómez García
7c37d37418 added "remove all assigned user services" as an action 2020-04-21 10:58:39 +02:00
Adolfo Gómez García
aee5b4501a fixed admin interface 2020-04-20 11:06:41 +02:00
Adolfo Gómez García
c597b307b5 fixed publication full persistent 2020-04-20 10:57:20 +02:00
Adolfo Gómez García
4c77d1ac78 fixed non full persistent 2020-04-20 10:20:34 +02:00
Adolfo Gómez García
40a820e770 re-added shared check 2020-04-16 21:20:39 +02:00
Adolfo Gómez García
1c6d58a53d allow local storage 2020-04-16 10:35:35 +02:00
Adolfo Gómez García
b2727e700b fixed typo on Xen check 2020-04-16 10:05:59 +02:00
Adolfo Gómez García
0de8ce3000 pep fix 2020-04-16 08:44:13 +02:00
Adolfo Gómez García
9e32996fa8 Added FIXED & Optional openstack Project ID & region for platforms that do not expose user apis 2020-04-16 06:55:35 +02:00
Adolfo Gómez García
addf24a30a Merge branch 'master' of github.com:dkmstr/openuds 2020-04-14 09:51:37 +02:00
Adolfo Gómez García
25d36a64fa added missing dep on debian 3.0 client 2020-04-14 09:51:23 +02:00
Adolfo Gómez
cc9326fc95 Merge pull request #51 from shaba/devel
add renamer for ALT
2020-04-14 07:41:25 +02:00
72a6c28549 add renamer for ALT 2020-04-14 03:27:49 +03:00
Adolfo Gómez García
d7e30d149c fixed proxmox tooltips && fixed error page redirection 2020-04-13 10:35:23 +02:00
Adolfo Gómez García
b8c37b279a fixes for open urls on new window if requested 2020-04-07 15:27:55 +02:00
Adolfo Gómez García
06bd7bb736 added setting support for "force on new window" 2020-04-07 15:23:35 +02:00
Adolfo Gómez García
c1a128335c fixed interface 2020-04-03 14:08:52 +02:00
Adolfo Gómez García
f9163b4e10 updated admin interface 2020-04-02 00:01:34 +02:00
Adolfo Gómez García
359857b9b3 fixed actor logout persistent & x2go authorize script 2020-04-01 14:08:49 +02:00
Adolfo Gómez García
43fbfdab3d fixes for udsadctor on script exec 2020-04-01 13:35:21 +02:00
Adolfo Gómez García
173caa250e fixed urls for auths 2020-03-30 18:16:45 +02:00
Adolfo Gómez García
5e971db73f added password encription for UDS 2020-03-30 18:11:02 +02:00
Adolfo Gómez García
aaa2ce825e updated admin interface && changed default end dato to "today" 2020-03-11 14:51:20 +01:00
Adolfo Gómez García
663c8f762a first tests with python 3 client went fine.. :) 2020-03-10 16:23:38 +01:00
Adolfo Gómez García
6ead895bdf created fork of client for python3 version 2020-03-10 14:04:27 +01:00
Adolfo Gómez García
7f0e3f0541 Fixed client message 2020-03-09 15:24:09 +01:00
Adolfo Gómez García
fd90648874 removed old js apps 2020-03-09 14:48:15 +01:00
Adolfo Gómez García
3e67852d8a * added os type verify to ticketing auth
* fixed getType method
2020-03-06 10:54:54 +01:00
Adolfo Gómez García
099a9ba3c1 fixed error shown to user 2020-03-02 18:58:24 +01:00
Adolfo Gómez García
1d807784d2 Fixed translations 2020-02-28 09:37:05 +01:00
Adolfo Gómez García
69085f28da fixed translation from angular 2020-02-28 09:34:05 +01:00
Adolfo Gómez García
15cfa45f69 Fixed doLog type hints 2020-02-28 09:07:54 +01:00
Adolfo Gómez García
f9a5b32993 Fixed small actor bug
Fixed logging in windows domain os manager
2020-02-27 10:21:13 +01:00
Adolfo Gómez García
e84965bb84 Fixed required fields for checkbox 2020-02-26 12:57:52 +01:00
Adolfo Gómez García
a8e58db3bd Updated translations 2020-02-25 15:42:39 +01:00
Adolfo Gómez García
7c384409f7 Addad HA to proxmox 2020-02-25 15:40:32 +01:00
Adolfo Gómez García
ff64d21137 Fixed url 2020-02-25 15:40:13 +01:00
Adolfo Gómez García
d6019384ef fixed actions & admin & gui small bugs 2020-02-25 14:47:42 +01:00
Adolfo Gómez García
92b4aadfbb Added experimental features flag for turning on/off highly experimenal features not intended for production environments 2020-02-25 01:17:39 +01:00
Adolfo Gómez García
52437afcf8 Proxmox is now working 2020-02-24 17:02:33 +01:00
Adolfo Gómez García
56492ccd2d initial deployment 2020-02-24 02:28:51 +01:00
Adolfo Gómez García
23bbda845c proxmox publications works (but not functional yet) 2020-02-24 01:49:16 +01:00
Adolfo Gómez García
b3c9f07d36 Creating proxmox connector (not working right now, started from ovirt as template) 2020-02-23 17:56:28 +01:00
Adolfo Gómez García
a86cbe46d6 Fixed default copy* info && renamed "test" class to "Test" as it should be 2020-02-21 10:46:09 +01:00
Adolfo Gómez García
8e73d38ea3 fixed unamanged windows actor reference 2020-02-20 12:02:16 +01:00
Adolfo Gómez García
841d088f6a added support for actor for static machine pool of ips 2020-02-20 11:59:10 +01:00
Adolfo Gómez García
f33987e62e Updated translations 2020-02-20 11:38:57 +01:00
Adolfo Gómez García
273e394937 Added small delay on login failure on web 2020-02-20 01:55:54 +01:00
Adolfo Gómez García
1df17f99ec Updated gui 2020-02-20 01:48:57 +01:00
Adolfo Gómez García
8a090049c7 upgraded web user ui 2020-02-19 15:32:58 +01:00
Adolfo Gómez García
2b912b035d * Added, as fallback "hostnamectl set-hostname" for actor renamers for linux
* Upgraded OpenNebula service to better check hostname
* added versatile hostname validator for hostnames
* Fixed sample settings.py
2020-02-19 15:30:35 +01:00
Adolfo Gómez García
34d47bdda9 added unamanaged actor for Linux 2020-02-19 12:06:21 +01:00
Adolfo Gómez García
06b0e86a39 updated admin 2020-02-18 18:54:50 +01:00
Adolfo Gómez García
c7c685865e fixed pools performance report typo error 2020-02-18 18:17:21 +01:00
Adolfo Gómez García
9bdaf4eab1 upgraded user interface to angular 9 2020-02-18 17:40:56 +01:00
Adolfo Gómez García
0282086065 Fixed client logou due to idle log 2020-02-18 17:40:34 +01:00
Adolfo Gómez García
5e7502f221 Added "idle" info on logout for actor 2020-02-18 14:54:53 +01:00
Adolfo Gómez García
ffeabe15ee fixed unmanaged 2020-02-18 14:32:21 +01:00
Adolfo Gómez García
3bc08d6b86 Updated crypto manager to use cryptography instead of pyCrypto 2020-02-18 01:46:24 +01:00
Adolfo Gómez García
2b4a0113a2 Fixing actor for unmanaged 2020-02-17 13:07:33 +01:00
Adolfo Gómez García
ac0be2f4aa Fixing linux for unmanaged hosts 2020-02-17 12:51:43 +01:00
Adolfo Gómez García
e13c8a93b3 Fixed makefile 2020-02-17 12:01:48 +01:00
Adolfo Gómez García
d33e5e3a1e Unmanaged for Linux 2020-02-13 09:49:30 +01:00
Adolfo Gómez García
8b991eae12 updated windowsos manager to include unmanaged actor 2020-02-11 18:56:50 +01:00
Adolfo Gómez
d11ffbd401 Updated rest to check own_token 2020-02-11 15:01:27 +01:00
Adolfo Gómez
903ccf2e0a fixed service login/logout 2020-02-11 14:43:10 +01:00
Adolfo Gómez García
b0d4be83a4 added actor configuration for unmanaged actors 2020-02-10 13:07:42 +01:00
Adolfo Gómez
efe7bb2a53 adapting actor to support unmanaged hosts 2020-02-10 12:01:38 +01:00
Adolfo Gómez García
56376ecd56 Updating v3 actor so we can honor service tokens for some kind of actions 2020-02-08 20:35:43 +01:00
Adolfo Gómez García
4ecb520496 fixed max length on text fields 2020-02-07 12:49:15 +01:00
Adolfo Gómez García
5b8e346788 added "log" method to userservice model 2020-02-06 21:43:46 +01:00
Adolfo Gómez García
211b227105 fixing actor & actor methods 2020-02-06 18:01:33 +01:00
Adolfo Gómez García
ac03d142d9 Updated OS Manager base methods "loggedIn" and "loggedOut" to be status, so they can be more usable, and finished v3 "notify" method 2020-02-06 09:30:10 +01:00
Adolfo Gómez García
8549f3cfa8 fixed issue whith transport allowing add of service pools that do not supports the transport protocol from transport add/edit 2020-02-05 10:46:36 +01:00
Adolfo Gómez García
cef382a1df Added actor tokens 2020-02-03 14:03:24 +01:00
Adolfo Gómez García
f47b208c33 added custom message per-pool for calendar access denied 2020-01-31 13:16:23 +01:00
Adolfo Gómez García
63824cdeee updated translations & basic fix 2020-01-31 12:17:55 +01:00
Adolfo Gómez García
907402229e updated translations & basic fix 2020-01-31 12:16:21 +01:00
Adolfo Gómez García
929903342f added "Experimental" to proxies title so it can be identified 2020-01-29 15:03:26 +01:00
Adolfo Gómez
f9b284ff8e fixed actor_client 2020-01-29 14:36:39 +01:00
Adolfo Gómez
138f97e317 Changed default from debug to info on uds actor 2020-01-29 14:33:11 +01:00
Adolfo Gómez García
6385e24e18 Fixed ticket related stuff & REST login with root user 2020-01-29 14:32:25 +01:00
Adolfo Gómez
dcc87b5f8c Merge branch 'master' of https://github.com/dkmstr/openuds 2020-01-28 16:06:24 +01:00
Adolfo Gómez García
08c15b6f60 fixed literal 2020-01-28 16:05:37 +01:00
Adolfo Gómez García
3fafef3b41 fix actor config 2020-01-28 16:03:49 +01:00
Adolfo Gómez García
49f76a5def fixed auth for REST api 2020-01-28 15:56:11 +01:00
Adolfo Gómez García
501ed22ae6 fixed login/logout for easier use 2020-01-28 13:48:26 +01:00
Adolfo Gómez
de827f6bd5 Update log.py
Fixed typo on var typing
2020-01-28 13:20:10 +01:00
Adolfo Gómez García
820ba906f0 Fixing tickets for v3 actors && changing path for "join" registry key for join domain on 2 steps 2020-01-28 13:05:50 +01:00
Adolfo Gómez García
9fd3ac280b fixed client early client hostname notify 2020-01-27 14:59:27 +01:00
Adolfo Gómez García
9b2dd802d7 fixed uds actor parameters 2020-01-27 14:01:53 +01:00
Adolfo Gómez García
1518cc0294 fixed udsactor pre command parameters 2020-01-27 13:33:00 +01:00
Adolfo Gómez García
d8826c2841 fixed admin visualization error of user service state 2020-01-27 13:17:42 +01:00
Adolfo Gómez García
8678fa8f79 fixing service 2020-01-23 14:42:13 +01:00
Adolfo Gómez García
5229caead5 Fixed Thin Version of UDS Client 2020-01-22 15:38:45 +01:00
Adolfo Gómez García
142f7122fc Fixed so now UDSClient can run with python 2 or python 3 2020-01-22 14:41:09 +01:00
Adolfo Gómez García
26e429019e fixing actor on exit 2020-01-20 17:42:33 +01:00
Adolfo Gómez García
dcf9e0137a fixing actor on exit 2020-01-20 17:38:01 +01:00
Adolfo Gómez García
525fa6e71c fixing actor on exit 2020-01-20 17:33:10 +01:00
Adolfo Gómez García
45429027bf fixes for service 2020-01-20 17:18:48 +01:00
Adolfo Gómez García
7cc6c6d3b8 fixed timeout on actor (too high) 2020-01-20 16:55:06 +01:00
Adolfo Gómez García
b3324eec91 Removed a couple of "DEBUG" and fixed remote logging
"
2020-01-20 14:13:11 +01:00
Adolfo Gómez García
099c0d9861 Fixed calendar actions typo & added calencat action "ignore unused" 2020-01-16 11:54:02 +01:00
Adolfo Gómez García
f888d1da61 Improvements
* Added taskmanager foreground exec method
* catch checkState exceptions (not expected anyway) and mark pubs as errored
2020-01-09 11:10:10 +01:00
Adolfo Gómez García
69c4fd6325 Fixed actor for linux 2020-01-08 14:38:19 +01:00
Adolfo Gómez García
a4353dde86 Fixed login url 2019-12-26 12:52:51 +01:00
Adolfo Gómez García
ddc2699774 Fixed oVirt jobs & aasigned an unused worker 2019-12-26 11:54:55 +01:00
Adolfo Gómez García
8cded2bca7 fixing upg 2019-12-26 10:08:32 +01:00
Adolfo Gómez García
fb3808991d Importing and upgrading packages generation for linux actors 2019-12-26 09:58:17 +01:00
Adolfo Gómez García
c2da7211c3 renamed actors to legacy_actors for. Will be removed on next release 2019-12-26 09:40:30 +01:00
Adolfo Gómez García
8e76c1d733 fixed ticket_store cleanup times 2019-12-23 13:20:34 +01:00
Adolfo Gómez García
c8839ed2a5 fixes for 3.0 2019-12-23 12:31:36 +01:00
Adolfo Gómez García
52208d18ae Fixed about 2019-12-23 11:22:13 +01:00
Adolfo Gómez García
a66a14a63e fix small error for django 3.0 2019-12-23 10:49:26 +01:00
Adolfo Gómez García
7801cf85c0 Fixed opennebula mac retrieval (moved to a later stage, just after "power on" vm) 2019-12-20 16:18:35 +01:00
Adolfo Gómez
7bfa539e70 fixed for windows & rest client api 2019-12-19 13:32:09 +01:00
Adolfo Gómez García
cf40396211 Merge branch 'master' of github.com:dkmstr/openuds 2019-12-19 13:06:25 +01:00
Adolfo Gómez García
faa7c37336 fixed actor config opening on "advanced" tab 2019-12-19 13:06:06 +01:00
Adolfo Gómez
4d2f7c1b95 fixed default loglevel to error 2019-12-19 13:04:55 +01:00
Adolfo Gómez García
7483a6f04f Added test configuration for uds actor & fixed some texts 2019-12-19 12:54:30 +01:00
Adolfo Gómez García
3e905381ff Added "test" method for actor v3 2019-12-19 12:54:08 +01:00
Adolfo Gómez
9150e71840 Fixed deadline & idle check 2019-12-18 08:36:31 +01:00
Adolfo Gómez
33d2dbbc52 Merge branch 'master' of https://github.com/dkmstr/openuds 2019-12-17 12:35:28 +01:00
Adolfo Gómez
fcb252deae added icon for windows apps 2019-12-17 12:35:21 +01:00
Adolfo Gómez García
93b1e71440 client execute bit 2019-12-17 12:29:52 +01:00
Adolfo Gómez
293cb129ed Fixing actor issues 2019-12-17 12:26:55 +01:00
Adolfo Gómez García
65d4b0b409 merged from windows 2019-12-17 06:23:38 +01:00
Adolfo Gómez García
12f39853e4 upgraded angular user gui version 2019-12-17 06:20:08 +01:00
Adolfo Gómez García
fb297d05c3 fixed admin issues 2019-12-17 06:19:16 +01:00
Adolfo Gómez García
97e84c968a added idle checking 2019-12-16 12:27:00 +01:00
Adolfo Gómez
0ac3fa1987 fixing client for windows 2019-12-12 15:36:34 +01:00
Adolfo Gómez García
633671d12c fixing message 2019-12-12 10:01:35 +01:00
Adolfo Gómez García
1ed4c1ad57 added support for message to actor 2019-12-12 08:35:02 +01:00
Adolfo Gómez García
2509f41c85 advancing on actor 2019-12-11 13:05:10 +01:00
Adolfo Gómez García
91272fcbb8 Refactoring comms part of user service manager and adding screenshot request capability 2019-12-10 21:17:46 +01:00
Adolfo Gómez García
0895d2feaf Added screenshot capability 2019-12-10 20:20:43 +01:00
Adolfo Gómez García
ff5601ce12 Client is advancing 2019-12-10 12:31:58 +01:00
Adolfo Gómez García
b78a41f0d3 uds actor advance 2019-12-05 09:40:06 +01:00
Adolfo Gómez García
6402106d85 Fixed windows getIdle 2019-12-04 14:59:46 +01:00
Adolfo Gómez García
3ed5d26245 advancing 2019-12-04 14:10:26 +01:00
Adolfo Gómez
72efa3221f fixing uds actor service for windows 2019-12-03 17:43:19 +01:00
Adolfo Gómez García
aabb08cad4 * Updated admin
* Updated actor
2019-12-03 15:22:45 +01:00
Adolfo Gómez García
78953ef5d9 Advanced a lot on actor 2019-12-03 10:36:23 +01:00
Adolfo Gómez García
a6cb350454 Implementing new IPC mechanics 2019-12-02 14:38:51 +01:00
Adolfo Gómez García
20bceadda9 fixed Admin interface 2019-12-01 20:46:19 +01:00
Adolfo Gómez García
4231eb5b9d Now actor start to work. A lot of work ahead, but first part seems fine :) 2019-12-01 20:26:20 +01:00
Adolfo Gómez García
d53d092483 Advanced on v2 api for actor 3.0 2019-12-01 13:32:17 +01:00
Adolfo Gómez García
371cc3d14b fixes 2019-11-30 22:41:57 +01:00
Adolfo Gómez García
8052809e86 Fixed typo 2019-11-30 22:37:12 +01:00
Adolfo Gómez García
ced7226f81 advancing on new v3 actor 2019-11-30 22:34:05 +01:00
Adolfo Gómez García
a8b94325e5 Fixed mistake (using owntoken as secret, and we should not... 2019-11-29 09:34:06 +01:00
Adolfo Gómez García
79f61098af Advancing on actor 2019-11-29 09:14:49 +01:00
Adolfo Gómez García
e5b4fb393f Actor v3 2019-11-29 02:23:56 +01:00
Adolfo Gómez García
6f3f573f61 Advancing on actor 2019-11-28 14:11:55 +01:00
Adolfo Gómez García
cf6a03b585 updating linux actor 2019-11-28 11:05:42 +01:00
Adolfo Gómez García
4cdbe5abae udsactor/linux/renamer/common.py 2019-11-28 11:04:08 +01:00
Adolfo Gómez
2c8963ba5f Updating new UDS Actor 2019-11-27 14:00:43 +01:00
Adolfo Gómez García
e76df6349d Advancing on new UDS Actor 2019-11-27 12:09:50 +01:00
Adolfo Gómez
282816b4eb Advancing on new UDS actor 2019-11-26 15:13:07 +01:00
Adolfo Gómez García
e967d994b1 Advancing on new v2 actor 2019-11-26 11:44:58 +01:00
Adolfo Gómez García
45b827e9e9 fixed admin issue on osmanagers for service pools 2019-11-22 13:56:09 +01:00
Adolfo Gómez
9e66503f0e Update rest.py 2019-11-22 13:53:39 +01:00
Adolfo Gómez García
52335b6e31 Added computername to actortoken db 2019-11-22 11:01:41 +01:00
Adolfo Gómez
d6691a4098 Fixing Config parameters 2019-11-22 10:56:05 +01:00
Adolfo Gómez García
bef9776a6b Updated udsacotr config tool 2019-11-22 09:36:16 +01:00
Adolfo Gómez
07d337364d Actor work 2019-11-22 08:43:25 +01:00
Adolfo Gómez García
2cf869150f advancing on new actor 2019-11-21 14:00:28 +01:00
Adolfo Gómez García
4df7c18ddc Updating new actor configuration tool 2019-11-21 12:34:02 +01:00
Adolfo Gómez García
09000f8b00 advancing on actor 2019-11-21 00:59:14 +01:00
Adolfo Gómez García
f517f73a0b working on new actor 2019-11-20 13:29:12 +01:00
Adolfo Gómez
04d204883b Setting up new actor based ofc on old one 2019-11-20 09:23:35 +01:00
Adolfo Gómez
37229e92e7 Initializing new uds actor 2019-11-20 02:11:28 +01:00
Adolfo Gómez García
c7dc116980 new experimental actor 2019-11-20 01:57:41 +01:00
Adolfo Gómez García
ede5d4b790 Ported to python >= 3.7 (needs already fixes, but most work done!! :) 2019-11-19 13:59:23 +01:00
Adolfo Gómez García
4a5669bdef cleaning for 3.0 2019-11-19 11:18:10 +01:00
Adolfo Gómez García
ef7bbebec8 cleaning for 3.0 2019-11-19 11:16:32 +01:00
Adolfo Gómez García
7e034a9de1 Fixed Xen 2019-11-18 14:50:15 +01:00
Adolfo Gómez García
8d680ad32d Renaming Xen provider 2019-11-18 09:53:31 +01:00
Adolfo Gómez García
76c47f7c76 fixes for ovirt & opennebula 2019-11-18 07:53:09 +01:00
Adolfo Gómez García
03e31f31b1 Fixes 2019-11-15 13:24:22 +01:00
Adolfo Gómez García
d67a1cd70c Merge branch 'master' of github.com:dkmstr/openuds 2019-11-14 13:18:36 +01:00
Adolfo Gómez García
dc381565cf Fixes for providers 2019-11-14 13:18:26 +01:00
Adolfo Gómez
dc0511045b Update README.md 2019-11-14 10:32:14 +01:00
Adolfo Gómez
b78bcbd726 Update README.md 2019-11-14 10:30:24 +01:00
Adolfo Gómez García
6038f93189 Fixing up services 2019-11-14 09:27:26 +01:00
Adolfo Gómez García
ee42653cea fixed edit fields 2019-11-13 13:56:06 +01:00
Adolfo Gómez García
eb2ad9da19 Adding "manual assignements" for UDS 2019-11-11 13:27:33 +01:00
Adolfo Gómez García
928360444b Fixes 2019-11-11 10:01:27 +01:00
Adolfo Gómez García
5d26833779 updating ip machine access 2019-11-11 09:11:23 +01:00
Adolfo Gómez García
d00057a03d Fixed oVirt and OpenStack for 3.x 2019-11-11 08:42:31 +01:00
Adolfo Gómez García
6da8d2057e Upgraded OpenStack 2019-11-08 12:13:24 +01:00
Adolfo Gómez García
103ad93cdf Upgrade OpenNebula 2019-11-08 11:29:12 +01:00
Adolfo Gómez García
ce91840622 upgrading OpenNebula connector 2019-11-07 14:42:18 +01:00
Adolfo Gómez García
99fe68608c Fixed OpenGnsys Provider 2019-11-06 13:01:29 +01:00
Adolfo Gómez García
2dc1634004 small fixes on tasks 2019-11-06 11:40:52 +01:00
Adolfo Gómez García
9cb9fc6de1 Added "delayed cancel" for some kind of services that are specially difficult to "cancel" while running... 2019-11-04 12:40:42 +01:00
Adolfo Gómez García
19754f7ed7 Fixed small admin glich 2019-10-28 07:34:34 +01:00
Adolfo Gómez García
6706866174 Upgraded admin interface 2019-10-25 10:55:36 +02:00
Adolfo Gómez García
ba40b38998 Updated serialize/deserialize 2019-10-24 14:37:20 +02:00
Adolfo Gómez García
4e647c1d7a Fixed GroupsManager import position 2019-10-23 12:51:55 +02:00
Adolfo Gómez García
b02e8e1f30 fixed allowCacheDecorator to take kwargs also into account 2019-10-23 12:02:41 +02:00
Adolfo Gómez García
7aee4efb15 * Added snackbar with progress info on new/edit, so if loading of for example, provider information, is slow, the user knows that "something is going on
* Small type check for user interface
2019-10-20 12:29:07 +02:00
Adolfo Gómez García
4c9ad55d99 Added types to providers & transports
fixed allowCache generic decorator
2019-10-17 13:19:19 +02:00
Adolfo Gómez García
a2dd2cccc9 added sqlite file to ignores 2019-10-16 13:25:04 +02:00
Adolfo Gómez García
de5411d153 Updated frontend & admin guis 2019-10-14 13:47:06 +02:00
Adolfo Gómez García
d916d9ea1f fixed delayed task typo 2019-10-14 13:24:19 +02:00
Adolfo Gómez
015cde5301 Merge pull request #46 from glyptodon/dead-keys
Leverage Guacamole.InputSink for dead key support.
2019-10-14 09:18:50 +02:00
Adolfo Gómez García
3f88884a82 Fixed log recovery for user services
Fixed taskManager stop & start identify
2019-10-14 09:07:02 +02:00
Michael Jumper
fea0f6aa34 Leverage Guacamole.InputSink for dead key support.
The Guacamole.InputSink object was added to guacamole-common-js as part
of the 1.0.0 release of Apache Guacamole, allowing composed key events
to be handled with Guacamole.Keyboard as any other keys would:

http://guacamole.apache.org/releases/1.0.0/#improved-keyboard-handling--support-for-dead-keys
2019-10-13 19:32:25 -07:00
Adolfo Gómez García
a393e0b5a3 fixed oVirt for 3.7 2019-10-03 15:45:32 +02:00
Adolfo Gómez García
fbff259691 Fixing up OVirt and related 2019-10-03 14:56:18 +02:00
Adolfo Gómez García
8908d1de9d If logging write to file fails, continue without it 2019-10-03 12:23:55 +02:00
Adolfo Gómez García
f53fa4a304 Removed ov user/password sender 2019-10-03 07:53:51 +02:00
Adolfo Gómez García
db2a43afc8 Added ov user/password sender 2019-10-03 07:17:00 +02:00
Adolfo Gómez García
66f498e7ed Added ov user/password sender 2019-10-03 07:11:42 +02:00
Adolfo Gómez García
a32bb87a78 sample provider moved to 3.7 2019-10-02 10:51:43 +02:00
Adolfo Gómez García
d48e71cfd3 fixing up sample service 2019-10-01 14:01:52 +02:00
Adolfo Gómez García
76a17b19df typing on generators 2019-10-01 01:47:10 +02:00
Adolfo Gómez García
c2b2cab228 Updated locales 2019-09-30 11:50:04 +02:00
Adolfo Gómez García
fdb630dc8e updated user inteface 2019-09-30 10:15:17 +02:00
Adolfo Gómez García
5abd8184dc Fixing up things for 3.7. providers part 2019-09-27 13:23:18 +02:00
Adolfo Gómez García
7b4563b359 Fixed publication typo (setstate for setState 2019-09-26 13:13:27 +02:00
Adolfo Gómez García
3c4f026a21 Updating gui versions 2019-09-25 12:17:32 +02:00
Adolfo Gómez García
e11009332e Fixed admin interface 2019-09-25 12:10:58 +02:00
Adolfo Gómez García
a06fc617f0 Fixed "has_key" and other issues 2019-09-24 10:02:05 +02:00
Adolfo Gómez García
917dd33349 updated signatures for scripts 2019-09-23 14:44:39 +02:00
Adolfo Gómez García
bdc6f2efb2 *Fixed x2go for python 3.7
* Removed remaining user preferences
* Small nx typo fix
2019-09-23 12:35:56 +02:00
Adolfo Gómez García
346c3a3d33 Fixed SPICE transport an typo on RDP transport 2019-09-23 11:31:41 +02:00
Adolfo Gómez García
99bfae10ad Small fixes for rdp transport 2019-09-23 08:33:50 +02:00
Adolfo Gómez García
01317df1f7 added ?stamp to javascripts for admin 2019-09-20 13:17:05 +02:00
Adolfo Gómez García
3e51037160 removed "test" from networks 2019-09-20 12:53:50 +02:00
Adolfo Gómez García
ccea5e64d3 checked basename + lenname in every provider that needs it 2019-09-20 12:52:25 +02:00
Adolfo Gómez García
ce5251178b * Fixed errors view
* Removed "downloads" from non staff users
2019-09-20 11:10:15 +02:00
Adolfo Gómez García
7be3838e41 Fixed old data transformation (squashed). To migrate to 3.0 we will need first to go thouth 2.x versions 2019-09-20 10:04:22 +02:00
Adolfo Gómez García
a0ef9c8cbe updated scripts signatures 2019-09-19 12:17:40 +02:00
Adolfo Gómez García
a25d33a615 Fixed RDP for python 3.7 2019-09-19 12:00:36 +02:00
Adolfo Gómez García
b955d0327d Fixed NX Transport for python 3.7 (anyway, this transport is now marked as deprecated) 2019-09-19 11:06:32 +02:00
Adolfo Gómez García
6ae4380cf2 Fixed html5rds for latam keyboard for next guacamole 2019-09-19 08:18:57 +02:00
Adolfo Gómez García
e69497c8cb * A couple of fixes for service pool model & user service model for typing check
* Small fix on linux random pass
* Fixed HTML5RDP for python 3.7 (improved, not failing in fact)
2019-09-18 11:02:46 +02:00
Adolfo Gómez García
c736f82697 small code fixes 2019-09-18 10:12:35 +02:00
Adolfo Gómez García
56367c58f4 Fixed Simple LDAP for python 3.7 2019-09-18 09:57:20 +02:00
Adolfo Gómez García
ebbdbedaf6 Fixed SampleAuth form python 3.7 2019-09-18 09:26:46 +02:00
Adolfo Gómez García
b6391b10a5 Fixed Regex LDAP Auth 2019-09-18 08:38:35 +02:00
Adolfo Gómez García
ce71a2e6e7 fixed regexldap auth for python 3.7 2019-09-17 10:36:10 +02:00
Adolfo Gómez García
69e456822e fixed ip auth for python 3.7 2019-09-17 09:59:48 +02:00
Adolfo Gómez García
0afcdc3bd0 fixed ip auth for python 3.7 2019-09-17 09:58:42 +02:00
Adolfo Gómez García
3850b2e01f fixed internaldb auth for python 3.7 2019-09-17 09:46:40 +02:00
Adolfo Gómez García
265578409e Fixes for authenticators & decorators 2019-09-16 12:08:41 +02:00
Adolfo Gómez García
bde6ac422b fixed REST user_services for python 3.x 2019-09-13 11:00:29 +02:00
Adolfo Gómez García
4a8a2d05ee fixed REST transports for python 3.x 2019-09-13 10:24:25 +02:00
Adolfo Gómez García
85ef989a4c fixed REST system & tickets for python 3.x 2019-09-13 10:20:23 +02:00
Adolfo Gómez García
2d05062241 *fixed providers, services, .. for REST API
fixed admin 1 item menus
2019-09-13 09:24:43 +02:00
Adolfo Gómez García
f43a8a3bf4 Fixed REST services_pools for python 3.x 2019-09-12 13:38:43 +02:00
Adolfo Gómez García
7f9b4c9274 Fixed REST services_pool_groups for python 3.x 2019-09-12 13:11:06 +02:00
Adolfo Gómez García
061ac326df fixed handler "admin check" and reports from REST 2019-09-12 13:01:51 +02:00
Adolfo Gómez García
899df5a6a6 fixing up REST exceptions: notSupported 2019-09-12 12:47:23 +02:00
Adolfo Gómez García
29cb8b6a39 fixing up REST exceptions: invalidItemException 2019-09-12 12:45:30 +02:00
Adolfo Gómez García
18826708c8 fixing up REST exceptions: invalidMethodException 2019-09-12 12:43:49 +02:00
Adolfo Gómez García
726cc33320 fixing up REST exceptions 2019-09-12 12:42:08 +02:00
Adolfo Gómez García
ecdc4fa606 Fixed REST proxies for python 3.x 2019-09-12 12:18:28 +02:00
Adolfo Gómez García
72df9b2275 request middleware improved. Fixed base model types & migrated providers to 3.x python 2019-09-12 12:16:24 +02:00
Adolfo Gómez García
145ab9b865 addad old requests deletion in case of exceptions on server 2019-09-12 10:50:22 +02:00
Adolfo Gómez García
d758aecd1e Fixed REST permissions for python 3.x 2019-09-12 08:36:01 +02:00
Adolfo Gómez García
fd6db8d618 Fixed REST osmanagers for python 3.x 2019-09-11 13:41:56 +02:00
Adolfo Gómez García
6867a278bd Fixed REST calendars operations for python 3.x 2019-09-11 13:36:47 +02:00
Adolfo Gómez García
572e2b9a51 Fixed REST networks for python 3.x 2019-09-11 13:20:27 +02:00
Adolfo Gómez García
ce04b3949d Fixed REST metapools members for python 3.x 2019-09-11 13:18:26 +02:00
Adolfo Gómez García
4cd051f50a mendfixed REST metapools for python 3.x 2019-09-11 12:51:54 +02:00
Adolfo Gómez García
6eccb757ad mendfixed REST login-logout for python 3.x 2019-09-11 12:39:46 +02:00
Adolfo Gómez García
51b16ce895 mendfixed REST images for python 3.x 2019-09-11 12:27:47 +02:00
Adolfo Gómez García
fbcf635a60 mendfixed REST calendars for python 3.x 2019-09-11 11:28:07 +02:00
Adolfo Gómez García
da0df6d407 fixed REST calendars for python 3.x 2019-09-11 11:27:12 +02:00
Adolfo Gómez García
060e2cd023 fixed REST authenticator for python 3.x 2019-09-11 08:42:11 +02:00
Adolfo Gómez García
420e491196 fixing REST for python 3.x 2019-09-11 07:56:04 +02:00
Adolfo Gómez García
fbd2bd937c advancing a lot with REST part 2019-09-09 12:08:48 +02:00
Adolfo Gómez García
79f41b3e1a fixes for python 3.7 on REST 2019-09-05 11:29:57 +02:00
Adolfo Gómez García
f464d78f99 fixed stats reports & related 2019-09-04 11:25:36 +02:00
Adolfo Gómez García
6e7b5229d1 fixed list reports & related 2019-09-04 10:38:56 +02:00
Adolfo Gómez García
446a4a3cb4 fixed duplicate "show transports" on pools edit 2019-09-04 10:03:44 +02:00
Adolfo Gómez García
f5278aa57f fixed remmendeded by tomas lobo 2019-09-03 16:16:22 +02:00
Adolfo Gómez García
83726be209 Removed support for ovirt 3.x on UDS 3.x 2019-09-03 12:43:49 +02:00
Adolfo Gómez García
bada5ed2af fully ported openstack provider to python 3.x 2019-09-03 12:37:11 +02:00
Adolfo Gómez García
75f244be2e fixes on RDP transport 2019-09-03 10:33:48 +02:00
Adolfo Gómez García
a42ccd0ca6 fixes 2019-09-03 10:00:47 +02:00
Adolfo Gómez García
9464e1794e fixed autoattributes on python3 2019-09-02 10:44:29 +02:00
Adolfo Gómez García
c502127aa5 Fixed Base order 2019-09-02 10:22:44 +02:00
Adolfo Gómez García
97e5ff1b6a fixed initialization order for IPMachinesDeployed 2019-09-02 10:17:50 +02:00
Adolfo Gómez García
a69bda8673 updated transports signatures 2019-09-02 09:20:10 +02:00
Adolfo Gómez García
b233e26a52 upgraded os managers and typo fix 2019-08-20 11:04:25 +02:00
Adolfo Gómez García
2b733c0e9e refactorizing & fixing Linux os manager 2019-08-19 12:42:45 +02:00
Adolfo Gómez García
da0a2401f3 refactorizing uds.core.transports and uds.core.util filenames & some fixes 2019-08-19 12:20:33 +02:00
Adolfo Gómez García
22b079cf53 refactorizing uds.core.setransports: lenames & some fixes 2019-08-19 11:51:14 +02:00
Adolfo Gómez García
23834328dd refactorizing uds.core.services filenames & some fixes 2019-08-19 11:46:36 +02:00
Adolfo Gómez García
a8f2dcb03d Refactoring manager filenames -- UserPrefsManager & UserServiceManager 2019-08-16 11:43:57 +02:00
Adolfo Gómez García
80591c541b Refactoring manager filenames -- UserPrefsManager 2019-08-16 11:30:45 +02:00
Adolfo Gómez García
beb09115c2 Refactoring manager filenames & some fixes for python 3.7 conversion 2019-08-16 11:26:48 +02:00
Adolfo Gómez García
9a9eee9d5e refactorizing uds.core.managers filenames & some fixes 2019-08-16 10:40:14 +02:00
Adolfo Gómez García
5ffc66a71e refactorized uds.core.auth filenames 2019-08-16 10:26:34 +02:00
Adolfo Gómez García
104eeac53c Refactorized uds.core.ui and several fixes 2019-08-15 12:11:47 +02:00
Adolfo Gómez García
c980d42b1e refactorized worker filenames 2019-08-15 11:49:39 +02:00
Adolfo Gómez García
909ff33851 refactoryzed cryptoManager access 2019-08-15 11:24:56 +02:00
Adolfo Gómez García
be7d177bdc refactoryzed cryptoManager access 2019-08-15 11:22:20 +02:00
Adolfo Gómez García
6e39c1a2dc refactorized uds.core.jobs 2019-08-15 11:07:10 +02:00
Adolfo Gómez García
d5ac86cfba more fixes an refactoring for 3.7 2019-08-15 10:54:19 +02:00
Adolfo Gómez García
e836a142fe refactoring and updating models for python 3.7 2019-08-14 12:31:13 +02:00
Adolfo Gómez García
1b3e1d9bcc refactoring and updating models for python 3.7 2019-08-14 12:16:49 +02:00
Adolfo Gómez García
882a8ad2c9 fixes for 3.7 (random found ones) 2019-08-14 11:00:21 +02:00
Adolfo Gómez García
171b5f5a48 refactoring and updating models for python 3.7 -- StatsCounters, StatsEvents, Storage, Tag, TicketStore, UniqueId and Removed DeployedService in favor of ServicePool 2019-08-14 10:55:59 +02:00
Adolfo Gómez García
e2d1d17fa9 refactoring and updating models for python 3.7 -- ServicePoolPublication 2019-08-14 09:55:35 +02:00
Adolfo Gómez García
217a51728e renamed ServicesPoolGroup to ServicePoolGroup 2019-08-14 09:52:10 +02:00
Adolfo Gómez García
bec85b5463 renamed DeployedServicePublication to ServicePoolPublication 2019-08-14 09:46:37 +02:00
Adolfo Gómez García
1110a5bd63 renamed DeployedService to ServicePool 2019-08-14 09:25:41 +02:00
Adolfo Gómez García
ffc3d14daf refactoring and updating models for python 3.7 -- ServicesPool 2019-08-14 09:11:15 +02:00
Adolfo Gómez García
c9c4a8f578 refactoring and updating models for python 3.7 -- Service 2019-08-13 12:13:33 +02:00
Adolfo Gómez García
2b06813176 refactoring and updating models for python 3.7 -- Proxy & Scheduler 2019-08-13 11:48:32 +02:00
Adolfo Gómez García
49fd063e90 refactoring and updating models for python 3.7 -- Provider 2019-08-13 11:35:45 +02:00
Adolfo Gómez García
75b470a7d1 refactoring and updating models for python 3.7 -- os_manager & permissions 2019-08-13 11:28:33 +02:00
Adolfo Gómez García
377b4542d7 refactoring and updating models for python 3.7 -- Network & Transport 2019-08-13 11:22:57 +02:00
Adolfo Gómez García
ee34f6c624 refactoring and updating models for python 3.7 -- MetaPool & Log 2019-08-13 11:14:15 +02:00
Adolfo Gómez García
4be27489ad refactoring and updating models for python 3.7 -- Image 2019-08-13 11:10:24 +02:00
Adolfo Gómez García
e3912276f4 refactoring and updating models for python 3.7 -- UserPreference 2019-08-13 11:07:34 +02:00
Adolfo Gómez García
b4a09a4c10 refactoring and updating models for python 3.7 -- ManagedObjectModel 2019-08-13 11:03:42 +02:00
Adolfo Gómez García
77c6857973 refactoring and updating models for python 3.7 -- UUIDModel 2019-08-13 11:01:26 +02:00
Adolfo Gómez García
c13da05baa refactoring and updating models for python 3.7 -- Util, User & Group 2019-08-13 10:43:04 +02:00
Adolfo Gómez García
d108de9720 refactoring and updating models for python 3.6 -- DBFile and delayed_task 2019-08-13 10:09:47 +02:00
Adolfo Gómez García
1ace92083e refactoring for name improvements - config model 2019-08-12 15:04:37 +02:00
Adolfo Gómez García
fb32c8b86a refactoring for name improvements - cache, calendar, calendar_access, calendar_rule models 2019-08-12 15:01:24 +02:00
Adolfo Gómez García
efbca0bf92 refactoring for name improvements - account model 2019-08-12 14:52:58 +02:00
Adolfo Gómez García
1c9ba0738a refactoring for name improvements 2019-08-12 14:50:11 +02:00
Adolfo Gómez García
445c890209 more upgrading models for 3.7 2019-08-12 14:34:56 +02:00
Adolfo Gómez García
1072e1f883 more upgrading models for 3.7 2019-08-12 14:07:38 +02:00
Adolfo Gómez García
1e789132a5 more upgrading models for 3.7 2019-08-12 13:32:29 +02:00
Adolfo Gómez García
a6bf2c4cfc upgrading models for 3.7 2019-08-12 11:20:16 +02:00
Adolfo Gómez García
642009425f more 3.7 fixes 2019-08-09 17:57:16 +02:00
Adolfo Gómez García
a992246203 a lot of more fixes for 3.7 2019-08-09 13:22:50 +02:00
Adolfo Gómez García
52054ae45b fixed workers for 3.7 2019-08-08 13:42:22 +02:00
Adolfo Gómez García
064423413b latests fixes for uds.core.utils for 3.7 2019-08-06 14:44:21 +02:00
Adolfo Gómez García
de24aaab93 More fixes for uds.core.utils for 3.7 2019-08-06 14:08:35 +02:00
Adolfo Gómez García
b55669d910 More fixes for uds.core.utils for 3.7 2019-08-06 13:03:32 +02:00
Adolfo Gómez García
6fac308d80 fixed util.stats & util.states for python 3.7 2019-08-06 11:49:08 +02:00
Adolfo Gómez García
e103fb02d2 fixed user interface 2019-08-05 21:24:06 +02:00
Adolfo Gómez García
72a93e774d no themes on 3.0, just angular and custom deploys 2019-08-05 21:13:16 +02:00
Adolfo Gómez García
e484c31b38 upgrades for 3.7 2019-08-05 21:04:36 +02:00
Adolfo Gómez García
5157dce173 fixed admin 2019-08-05 13:26:54 +02:00
Adolfo Gómez García
cc7fbbf5f1 typo fix 2019-08-05 10:05:38 +02:00
Adolfo Gómez García
4f35ba2cca refactorized reports && more 3.7 upgrades 2019-08-02 13:27:08 +02:00
Adolfo Gómez García
45b2a3b66f BaseReport to 3.7 2019-08-02 12:21:14 +02:00
Adolfo Gómez García
bbb6792961 refactorying some file names 2019-08-02 11:58:45 +02:00
Adolfo Gómez García
3588ea20f4 3.7 advances 2019-08-02 11:49:49 +02:00
Adolfo Gómez García
999a23fb6d Updating to 3.7
refactoring portions
2019-08-02 11:17:28 +02:00
Adolfo Gómez García
47721db3f5 fixes for 3.7 and some improvements 2019-08-01 16:35:05 +02:00
Adolfo Gómez García
5fb7c830b2 fixes for 3.7 2019-07-31 11:41:25 +02:00
Adolfo Gómez García
82ef65a26c fixes for python 3.7 2019-07-29 13:13:49 +02:00
Adolfo Gómez García
a948188187 pep fix 2019-07-25 12:10:07 +02:00
Adolfo Gómez García
54110f5425 Fixed opennebula provider for python 3.7 && updated setting to nonpersistant (moved to end of image clone process) 2019-07-25 11:49:40 +02:00
Adolfo Gómez García
7d66d92f85 Merge branch 'master' of github.com:dkmstr/openuds 2019-07-18 13:03:56 +02:00
Adolfo Gómez García
c8831b1bba fixed cryptomanager 2019-07-18 13:03:47 +02:00
Adolfo Gómez García
c6b9bd4643 small fixes for mypy 2019-07-18 12:28:52 +02:00
Adolfo Gómez García
15f4db636e fixed notifications 2019-07-18 11:11:30 +02:00
Adolfo Gómez
668cd82d9e Merge pull request #45 from shaba/devel
Fix Error 500: Plaintext too large on Tools/Configure page.
2019-07-17 21:02:48 +02:00
dae085dc6a Fix Error 500: Plaintext too large on Tools/Configure page.
ERROR 2019-07-17 17:48:11,302 __init__ dispatch 163 Error processing request
Traceback (most recent call last):
  File "/usr/share/openuds/uds/REST/__init__.py", line 143, in dispatch
    response = operation()
  File "/usr/share/openuds/uds/REST/methods/config.py", line 61, in get
    for cfg in CfgConfig.enumerate():
  File "/usr/share/openuds/uds/core/util/Config.py", line 210, in enumerate
    val = Config.section(cfg.section).valueCrypt(cfg.key)
  File "/usr/share/openuds/uds/core/util/Config.py", line 185, in valueCrypt
    return Config.value(self, key, default, True, **kwargs)
  File "/usr/share/openuds/uds/core/util/Config.py", line 199, in value
    return Config.Value(section, key, default, crypt, longText, **kwargs)
  File "/usr/share/openuds/uds/core/util/Config.py", line 82, in __init__
    self._default = CryptoManager.manager().encrypt(default)
  File "/usr/share/openuds/uds/core/managers/CryptoManager.py", line 98, in encrypt
    return encoders.encode((self._rsa.encrypt(value, b'')[0]), 'base64', asText=True)
  File "/usr/lib64/python3/site-packages/Crypto/PublicKey/RSA.py", line 158, in encrypt
    return pubkey.pubkey.encrypt(self, plaintext, K)
  File "/usr/lib64/python3/site-packages/Crypto/PublicKey/pubkey.py", line 75, in encrypt
    ciphertext=self._encrypt(plaintext, K)
  File "/usr/lib64/python3/site-packages/Crypto/PublicKey/RSA.py", line 233, in _encrypt
    raise ValueError("Plaintext too large")
ValueError: Plaintext too large

Fixes: #44
2019-07-17 20:43:28 +03:00
Adolfo Gómez García
30e041b34b fixed admin & dbgroup info data 2019-07-15 14:37:56 +02:00
Adolfo Gómez García
38d6a7e6c6 removed cleanUDS theme reset 2019-07-15 11:26:20 +02:00
Adolfo Gómez García
e7fb7064e3 fixes for x2go & uds actor on python3 2019-07-11 11:08:46 +02:00
Adolfo Gómez García
45aa2e92ac updated changelog to 3.0 on debian actor 2019-07-10 10:17:22 +02:00
Adolfo Gómez García
7cf4659f5f fixed httpserver python 3.x issue 2019-07-09 13:26:44 +02:00
Adolfo Gómez García
45db8592b7 upgraded amin 2019-07-08 10:15:44 +02:00
Adolfo Gómez
e9f03f2075 Update client-ui.js
Changed connectionName
2019-07-04 13:18:19 +02:00
Adolfo Gómez García
59f0b1c572 upgrade frontend to angular 8 2019-06-29 18:11:41 +02:00
Adolfo Gómez García
bae405d082 fixes 2019-06-29 17:24:53 +02:00
Adolfo Gómez García
e76695e583 fixed versions 2019-06-17 12:01:35 +02:00
Adolfo Gómez García
1e74c55d2b more fixes 2019-06-14 17:44:20 +02:00
Adolfo Gómez García
70ec9ab3ea more typing checking 2019-06-14 14:08:36 +02:00
Adolfo Gómez García
a5929a0af3 adding type checking to better control source 2019-06-13 08:28:54 +02:00
Adolfo Gómez García
f343368da9 Merge remote-tracking branch 'origin/v2.2' 2019-06-11 05:35:27 +02:00
Adolfo Gómez García
7dd57cd778 Merge branch 'master' of github.com:dkmstr/openuds 2019-06-11 05:33:33 +02:00
Adolfo Gómez García
6309047a34 fixes for python 3.x 2019-06-11 05:33:25 +02:00
Adolfo Gómez
1b3ff5661b Merge pull request #41 from Jarli01/patch-1
Chore: Verbiage updates - translation corrections, typos and capitali…
2019-06-10 23:41:35 +02:00
Adolfo Gómez
8f0da29a99 Merge pull request #42 from Jarli01/patch-2
Chore: Typos, capitalization and thought clarification
2019-06-10 23:40:48 +02:00
Dustin B
bdc92052ae Chore: Typos, capitalization and thought clarification
Updated the translations a bit as some of this didn't really work in English, fixed a few typos and capitalization issues.
2019-06-10 17:07:09 -04:00
Dustin B
1df42462fd Chore: Verbiage updates - translation corrections, typos and capitalization
Fixed a few types, attempted to clarify your thought at the time and fixed some capitalization issues.
2019-06-10 17:03:38 -04:00
Adolfo Gómez García
0b97c15ca8 fixes for python 3.x 2019-06-10 14:43:03 +02:00
Adolfo Gómez García
feeeaed1a9 fixes for python 3.x 2019-06-10 11:23:38 +02:00
Adolfo Gómez García
ccdedb9126 fixes for python 3.x 2019-06-10 08:40:37 +02:00
Adolfo Gómez García
64ddba25f4 continues fixes for python 3.x and removal of 2.7 stuff 2019-06-06 10:41:26 +02:00
Adolfo Gómez García
36794ec5cf fixes for python 3.x and removal of 2.7 stuff 2019-06-06 08:38:11 +02:00
Adolfo Gómez García
89515dce33 more 3.7 fixes 2019-06-05 09:29:31 +02:00
Adolfo Gómez García
613f4efd31 fixes for python3 & type hinting 2019-06-05 08:14:45 +02:00
Adolfo Gómez García
2baac2f532 Added "extra module" for getting extra groups on ldap. Fix passing "self" 2019-05-29 05:16:27 +02:00
Adolfo Gómez García
37ae7af508 Added "extra module" for getting extra groups on ldap 2019-05-29 05:15:44 +02:00
Adolfo Gómez García
d068bcef60 fixed os_state on backend 2019-05-21 15:36:35 +02:00
Adolfo Gómez García
7540ca977f Fixed passwd 2019-05-20 10:57:49 +02:00
Adolfo Gómez García
a3bbd00531 Merge branch 'master' of github.com:dkmstr/openuds 2019-05-16 08:36:23 +02:00
Adolfo Gómez García
6ab3bad34b Some cleanups on unused stuff 2019-05-16 08:35:41 +02:00
Adolfo Gómez
bb6f21248b Update TODO.txt 2019-05-14 14:16:03 +02:00
Adolfo Gómez
39a75bfcc0 Update README.md 2019-05-14 14:15:33 +02:00
Adolfo Gómez García
20ff8cafdc Restrained mode now do not allows new machines to be created even on
user demand
2019-05-14 11:54:06 +02:00
Adolfo Gómez García
41b849c1f5 Merge remote-tracking branch 'origin/v2.2' 2019-05-14 08:34:32 +02:00
Adolfo Gómez García
4c001b044f security for PAM 2019-05-14 08:33:58 +02:00
Adolfo Gómez García
a9b4798155 added security extra to pam 2019-05-14 08:31:08 +02:00
Adolfo Gómez García
7c92d8ad5c restricted PAM to only 1 "id" on params 2019-05-14 08:22:11 +02:00
Adolfo Gómez García
8a7ceb926d imported pam_http fix 2019-05-13 17:19:44 +02:00
Adolfo Gómez García
70141ae972 fixing up pam_http 2019-05-13 17:11:12 +02:00
Adolfo Gómez García
20ead2954b fixing up pam_http 2019-05-13 16:56:19 +02:00
Adolfo Gómez García
8331c886de Set "tbr" to none always. It's a non useful parameter 2019-05-10 10:10:36 +02:00
Adolfo Gómez García
14da66291e Merge remote-tracking branch 'origin/v2.2' 2019-05-10 10:01:47 +02:00
Adolfo Gómez García
3415cb8604 fixing up things 2019-05-10 10:01:34 +02:00
Adolfo Gómez García
66c217a988 Backport of random fixes 2019-05-10 09:56:07 +02:00
Adolfo Gómez García
d6935d0210 fixed cache 2 -> 1 2019-05-08 11:34:55 +02:00
Adolfo Gómez García
a1866fb56c added RDP keyboards 2019-05-07 09:31:07 +02:00
Adolfo Gómez García
c47501e3e6 Fixed guacamole audio & video 2019-05-06 21:38:32 +02:00
Adolfo Gómez
a18f85b4f1 Merge pull request #39 from glyptodon/correct-av-mimetypes
Use Guacamole.AudioPlayer and Guacamole.VideoPlayer to query the audio/video mimetypes supported by the Apache Guacamole client.
2019-05-06 21:33:20 +02:00
Michael Jumper
9a816edcc0 Use Guacamole.AudioPlayer and Guacamole.VideoPlayer to query the audio/video mimetypes supported by the Apache Guacamole client. 2019-05-06 12:10:47 -07:00
Adolfo Gómez García
3568f43fc8 added "launcher" for ticketing auth 2019-05-06 10:49:46 +02:00
Adolfo Gómez García
3b05a06336 fixed missing include 2019-05-03 11:58:01 +02:00
Adolfo Gómez García
dfa6fe04cc Updated request middelware to work with nginx 2019-04-30 12:44:00 +02:00
Adolfo Gómez García
111660b396 Improves security of random strings 2019-04-29 13:59:52 +02:00
Adolfo Gómez García
c517e746da Fixed NX Transport for new mechanics 2019-04-29 08:28:51 +02:00
Adolfo Gómez García
68f63a02f3 updated transport signatures 2019-04-24 09:35:18 +02:00
Adolfo Gómez García
4dc4c27925 fixed RDP transport for 3.0 2019-04-24 09:31:58 +02:00
Adolfo Gómez García
363d247c8b Fixed tunnel rdp for 3.0 2019-04-23 15:11:41 +02:00
Adolfo Gómez García
842595be95 clientfix 2019-04-23 14:39:06 +02:00
Adolfo Gómez García
b248a284bb clientfix 2019-04-23 14:07:43 +02:00
Adolfo Gómez García
31d2775f4d clientfix 2019-04-23 14:05:09 +02:00
Adolfo Gómez García
bb84b64eb2 clientfix 2019-04-23 14:01:36 +02:00
Adolfo Gómez García
a7116b9e2e fixes 2019-04-23 13:44:37 +02:00
Adolfo Gómez García
2b9d625b5d testing client 2019-04-23 08:00:37 +02:00
Adolfo Gómez García
d16cc757af testing client 2019-04-23 07:45:23 +02:00
Adolfo Gómez García
1a43ce16e4 testing client 2019-04-23 07:43:55 +02:00
Adolfo Gómez García
deff947b03 Several
upgraded uds client projects
fixed admin js
rdp transport work
2019-04-23 07:28:29 +02:00
Adolfo Gómez García
436fe43098 fixes from 2.2 2019-04-15 11:51:11 +02:00
Adolfo Gómez García
7a2bd7dcf5 actor fix 2019-04-15 11:49:12 +02:00
Adolfo Gómez García
3caa49705e * update of cryptomanager Xor
* Fix config command
2019-04-10 08:17:52 +02:00
Adolfo Gómez García
6ab3fd5559 fixes for translations 2019-04-04 11:30:34 +02:00
Adolfo Gómez García
d6d6a4b44b fix 2019-04-04 11:11:10 +02:00
Adolfo Gómez García
b1a8d9b84c fixed translations 2019-04-04 11:09:57 +02:00
Adolfo Gómez García
272588f306 upgraded frontend 2019-04-04 10:32:35 +02:00
Adolfo Gómez García
87e7f1ca3c fixed double removal check 2019-04-03 21:50:00 +02:00
Adolfo Gómez García
d655b0f41a Added controls on how UDS works with domain controllers for machin/group accounts 2019-04-03 08:16:55 +02:00
Adolfo Gómez García
5422dcf78d Fixed 404 & 500 templates for new
* Try ssl before non ssl on domain os manager connections
2019-04-02 23:23:12 +02:00
Adolfo Gómez García
09eb130b11 fix commnet 2019-04-02 10:43:43 +02:00
Adolfo Gómez García
952322556c removed nonused tool 2019-04-02 07:49:27 +02:00
Adolfo Gómez García
194e232252 removed nonused tool 2019-04-02 07:48:55 +02:00
Adolfo Gómez García
9fee4adcc2 Merge remote-tracking branch 'origin/v2.2' 2019-03-28 12:22:15 +01:00
Adolfo Gómez García
ea11a25c52 Final fix 2019-03-28 12:17:27 +01:00
Adolfo Gómez García
f79f659711 Added so if ipc is closed, and logout is sent (if already logged in ofc) 2019-03-28 11:58:28 +01:00
Adolfo Gómez García
9130a12e52 Merge remote-tracking branch 'origin/v2.2' 2019-03-22 10:36:52 +01:00
Adolfo Gómez García
fddc69e0ea Fixed UDS actor postins 2019-03-22 10:36:35 +01:00
Adolfo Gómez García
30c445bef0 fixes 2019-03-22 10:36:07 +01:00
Adolfo Gómez García
47d234e1c5 small fixex 2019-03-15 13:20:48 +01:00
Adolfo Gómez García
83290f0a29 Merge remote-tracking branch 'origin/v2.2' 2019-03-08 10:34:19 +01:00
Adolfo Gómez García
b795260e4d Fixed access from MAC 2019-03-06 10:08:04 +01:00
Adolfo Gómez García
ea6d68ee93 fixes 2019-03-01 12:57:40 +01:00
Adolfo Gómez García
3fdb089b48 Re-added simple ldap 2019-02-27 11:13:33 +01:00
Adolfo Gómez García
ebf794cb67 Merge remote-tracking branch 'origin/v2.2' 2019-02-27 07:37:16 +01:00
Adolfo Gómez García
45bf24ecdd added check user on vm access, to avoid concurrency problems 2019-02-27 07:37:13 +01:00
Adolfo Gómez García
66464df043 small fix. Now checks the ownership of a machine before letting an user access it 2019-02-26 16:50:12 +01:00
Adolfo Gómez García
5d4e05309a re-added simple ldap 2019-02-26 12:54:16 +01:00
Adolfo Gómez García
a288dd4df3 Removed optimizes (nonsense with innodb) 2019-02-26 12:27:41 +01:00
Adolfo Gómez García
6156f2c6f6 Fix 2019-02-25 10:08:37 +01:00
Adolfo Gómez García
27a29d92e0 Several improvements
* Improved database saving model
* Code cleanup improvement :)
2019-02-24 12:15:12 +01:00
Adolfo Gómez García
6a7d10bf1d Merge remote-tracking branch 'origin/v2.2' 2019-02-24 11:49:14 +01:00
Adolfo Gómez García
6ec73b336d fixes 2019-02-24 11:48:38 +01:00
Adolfo Gómez García
b1f3407299 Fixes 2019-02-24 11:47:50 +01:00
Adolfo Gómez García
2b653b8b05 upgrades 2019-02-24 11:30:44 +01:00
Adolfo Gómez García
cd7beac87e Fixes 2019-02-24 11:24:54 +01:00
Adolfo Gómez García
6d50f99ad6 pydev 2019-02-24 11:01:16 +01:00
Adolfo Gómez García
f4f297a1e4 Merge remote-tracking branch 'origin/v2.2' 2019-02-24 11:00:43 +01:00
Adolfo Gómez García
dbee05d1bc More fixes 2019-02-24 10:59:47 +01:00
Adolfo Gómez García
cbfa9516bf Merge remote-tracking branch 'origin/v2.2' 2019-02-24 10:52:52 +01:00
Adolfo Gómez García
7910327a8a Removed non used deployed service method "assignTouser" 2019-02-24 10:51:12 +01:00
Adolfo Gómez García
9f01f2c368 Fix 2019-02-24 10:40:02 +01:00
Adolfo Gómez García
9e26580af5 Fixed several concurrency issues (very rare, btw, but possible :) ) 2019-02-24 10:16:50 +01:00
Adolfo Gómez García
f5abeb0a94 merged 2019-02-22 16:46:30 +01:00
Adolfo Gómez García
689b20ce2f A few more fixes for concurrency 2019-02-22 16:29:22 +01:00
Adolfo Gómez García
bac0b9755e Improved concurrency check on cache assignation 2019-02-22 15:37:42 +01:00
Adolfo Gómez García
33d2ca4ece Improved concurrency 2019-02-22 15:23:40 +01:00
Adolfo Gómez García
4e0c3b0c5d Updates 2019-02-21 14:52:44 +01:00
Adolfo Gómez García
d4aa2cc8e8 Upgraded web components 2019-02-20 07:45:29 +01:00
Adolfo Gómez García
c7c1103ed1 Fixed installed apps 2019-02-19 12:10:47 +01:00
Adolfo Gómez García
083b1f21fd Fixed Xen to work correctly with 3.7 2019-02-14 11:36:50 +01:00
Adolfo Gómez García
d7ac1f590a Updated to compatibility to python 3.7 (sync is a reserveed word) 2019-02-13 17:07:30 +01:00
Adolfo Gómez García
d523ae6001 upgrading environment 2019-02-12 11:26:04 +01:00
Adolfo Gómez García
581b13e70e Added new system info 2019-02-12 07:51:11 +01:00
Adolfo Gómez García
6889098ec8 Fixed pkexec
Removed "optimizeTable" for stats (nonsense...)
"
2019-02-11 11:13:12 +01:00
Adolfo Gómez García
683728fbc1 Locales & admin fix 2019-02-08 11:03:33 +01:00
Adolfo Gómez García
30ed88aefa Updating logic to remove table locking for some operations 2019-02-08 10:03:30 +01:00
Adolfo Gómez García
7b30f58750 Fixed services marshallers/unmarshallers for python 3.5 (correct usage
of binary data)
2019-02-07 11:20:44 +01:00
Adolfo Gómez García
0155f6c7fd * Added assigned services to meta pools (admin)
* Fixed serialization of oVirt
* Advanced a lot on meta pools (maybe they are yet usable?)
* minor fixex
2019-02-06 13:31:30 +01:00
Adolfo Gómez García
4509400605 * Advancing on metapools
* Removed non used old code
2019-02-05 13:52:51 +01:00
Adolfo Gómez García
e88256a892 Simplified code. Removed "assignedUserService" logic because pools will
allow only one userService per user, so everything can be located using
"pool"
2019-02-05 07:25:06 +01:00
Adolfo Gómez García
64faeec13c Updated translations (machine translation right now)
Fixed urls to new format
2019-02-04 10:00:15 +01:00
Adolfo Gómez García
b5352596e8 Updated grans method 2019-02-04 09:44:01 +01:00
Adolfo Gómez García
c1e8f6afe1 Updated to new admin interface 2019-02-04 09:15:46 +01:00
Adolfo Gómez García
2641fbbfcc fix 2019-01-30 09:43:01 +01:00
Adolfo Gómez García
923dbcc45b Removed old admin interface and added the new one based on Angular & Material 2019-01-30 06:40:36 +01:00
Adolfo Gómez García
0d4f2122c6 fixes on configuration administration section 2019-01-29 13:39:03 +01:00
Adolfo Gómez García
b55c9756e8 Added permissions for accounts & metapools 2019-01-24 07:27:15 +01:00
Adolfo Gómez García
cc1d022f40 fixed about 2019-01-22 09:19:59 +01:00
Adolfo Gómez García
d501d6037f Fix typo 2019-01-21 11:52:27 +01:00
Adolfo Gómez García
5353573ca3 Added "webLogoutHook" so we can, on authenticators, do some corrections
to response from authenticators
2019-01-21 11:48:10 +01:00
Adolfo Gómez García
26af865483 Upgraded javascript 2019-01-21 07:29:36 +01:00
Adolfo Gómez García
2bd4f3d8e5 Merge remote-tracking branch 'origin/v2.2'
# Conflicts:
#	server/src/uds/REST/methods/op_calendars.py
2019-01-18 08:34:47 +01:00
Adolfo Gómez García
efb3965d76 Fixed calendar action can create "empty" actions 2019-01-17 18:20:51 +01:00
Adolfo Gómez García
1a0c27f23c Fixes for new administration interface 2019-01-16 10:04:21 +01:00
Adolfo Gómez García
1b0f406de4 fixes for python 3.5 2019-01-14 10:34:51 +01:00
Adolfo Gómez García
21a5f4de09 Merge remote-tracking branch 'origin/v2.2' 2019-01-11 05:58:36 +01:00
Adolfo Gómez García
4778f5f931 fix translations 2019-01-11 05:57:51 +01:00
Adolfo Gómez García
29d0c242f7 Merge remote-tracking branch 'origin/v2.2' 2019-01-10 12:41:32 +01:00
Adolfo Gómez García
78656ed4a2 fixed 2019-01-10 12:40:23 +01:00
Adolfo Gómez García
c9a08cf1a1 Merge remote-tracking branch 'origin/v2.2' 2019-01-10 11:10:11 +01:00
Adolfo Gómez García
278bcb87de Fixed translations 2019-01-10 11:06:38 +01:00
Adolfo Gómez García
690fd7c9cc Added datepicker for chinese 2019-01-09 20:16:25 +01:00
Adolfo Gómez García
7b51bb7985 Added chinese lang to translations on sample file 2019-01-09 20:10:16 +01:00
Adolfo Gómez García
6f81892324 renamed chinese to zh_hans (traditional chinese) 2019-01-09 20:03:41 +01:00
Adolfo Gómez García
f603bd6c8f Merge remote-tracking branch 'origin/v2.2' 2019-01-09 13:53:28 +01:00
Adolfo Gómez García
a496fd97f1 added autotrasnlations for chinesse 2019-01-09 13:53:07 +01:00
Adolfo Gómez García
77bf401bd5 added eu autotranslations 2019-01-09 13:31:29 +01:00
Adolfo Gómez García
812e863e7f translations 2019-01-09 12:29:39 +01:00
Adolfo Gómez García
cd2d529524 Fixed IOS crash 2019-01-08 10:04:37 +01:00
Adolfo Gómez
445bbc6ee6 Merge pull request #37 from m-khan-glyptodon/Safari-Crash-Fix
IOS Safari crash fix
2019-01-08 09:54:33 +01:00
m-khan-glyptodon
cc9cf15c69 Added further documentation to max width and max height functions 2019-01-07 16:45:55 -08:00
m-khan-glyptodon
42ded5c382 Added documentation for the max height and max width functions 2019-01-07 16:45:55 -08:00
m-khan-glyptodon
8df513fbd3 Added scroll height and scroll width cap to fix ios safari crash 2019-01-07 15:08:42 -08:00
Adolfo Gómez García
164654143d Merge remote-tracking branch 'origin/v2.2' 2018-12-21 13:55:32 +01:00
Adolfo Gómez García
d9ad218e41 Merge remote-tracking branch 'origin/v2.2' 2018-12-21 13:55:20 +01:00
Adolfo Gómez García
8f76363b27 realname fixed on creation 2018-12-21 13:53:52 +01:00
Adolfo Gómez García
6a05403464 Added realname 2018-12-21 10:52:42 +01:00
Adolfo Gómez García
ac0eefc683 Merge remote-tracking branch 'origin/v2.2' 2018-12-20 16:46:07 +01:00
Adolfo Gómez García
43398cd125 Fixed user edition (user assignation) 2018-12-20 16:38:00 +01:00
Adolfo Gómez García
1da058cec6 Upgrading to new admin interface 2018-12-19 12:43:38 +01:00
Adolfo Gómez García
c5d1702758 Fixes for python 3 2018-12-18 10:52:03 +01:00
Adolfo Gómez García
fb818f06a5 fixes 2018-12-10 11:42:23 +01:00
Adolfo Gómez García
eae79364b8 Merge remote-tracking branch 'origin/v2.2' 2018-12-03 10:49:21 +01:00
Adolfo Gómez García
49564147a3 fixed on user services rest 2018-12-03 10:49:15 +01:00
Adolfo Gómez García
481eca7d16 Removed unused imports 2018-12-03 10:46:05 +01:00
Adolfo Gómez García
e382bfa19b Removed transaction from calendar actions execution. Not needed in fact. 2018-12-03 10:45:31 +01:00
Adolfo Gómez García
9094547f22 Testing windows 8 idle 2018-12-03 08:27:02 +01:00
Adolfo Gómez García
c2bd664545 translations 2018-11-29 10:18:59 +01:00
Adolfo Gómez García
04b68401cf minor fixes 2018-11-28 07:12:35 +01:00
Adolfo Gómez García
6300da4697 Merge remote-tracking branch 'origin/v2.2' 2018-11-27 11:59:40 +01:00
Adolfo Gómez García
8b4485d533 translations 2018-11-27 11:57:22 +01:00
Adolfo Gómez García
94501b1106 Merge remote-tracking branch 'origin/v2.2' 2018-11-27 11:18:24 +01:00
Adolfo Gómez García
696ad047a3 Merge remote-tracking branch 'origin/v2.2' 2018-11-27 11:18:14 +01:00
Adolfo Gómez García
682ce422b6 Translations 2018-11-27 11:17:49 +01:00
Adolfo Gómez García
906824cafc Fixups 2018-11-26 13:44:48 +01:00
Adolfo Gómez García
6f6633b819 Merge remote-tracking branch 'origin/v2.2' 2018-11-26 11:44:39 +01:00
Adolfo Gómez García
eb6065b203 Fixed so now services with no transports are not provided to template 2018-11-26 11:44:07 +01:00
Adolfo Gómez García
9451889bb3 Removed execution of "reg", using "winreg" instead (_winreg on 2.7) 2018-11-23 11:39:45 +01:00
Adolfo Gómez García
8120ae5c92 Final fix for no check redirections 2018-11-23 11:09:06 +01:00
Adolfo Gómez García
d1bb018dff Added "no warning for redirections' to remote connection 2018-11-23 11:07:58 +01:00
Adolfo Gómez García
694d60cb88 Some minor fixes 2018-11-23 10:55:00 +01:00
Adolfo Gómez García
a2a43fd041 Merge remote-tracking branch 'origin/v2.2' 2018-11-22 12:10:28 +01:00
Adolfo Gómez García
43cb02b177 Now on access error, reloads page 2018-11-22 12:09:58 +01:00
Adolfo Gómez García
01cc3eb147 Merge remote-tracking branch 'origin/v2.2' 2018-11-20 11:04:14 +01:00
Adolfo Gómez García
3e3ea59261 Updated translations 2018-11-20 11:02:58 +01:00
Adolfo Gómez García
462e53efea Merge remote-tracking branch 'origin/v2.2' 2018-11-20 11:00:42 +01:00
Adolfo Gómez García
589b12f490 new modern index && typo fix 2018-11-20 10:51:34 +01:00
Adolfo Gómez García
688a91325c Added servicepool add/remove from groups/transports 2018-11-20 10:50:18 +01:00
Adolfo Gómez García
3c905e8bc4 added spinner on app loading 2018-11-14 06:57:10 +01:00
Adolfo Gómez García
97e8c42b2f Fix on None notifyComms 2018-11-13 20:12:04 +01:00
Adolfo Gómez García
e814c47a24 Another fix for actor 2018-11-13 19:46:15 +01:00
Adolfo Gómez García
9fb19c6b9d Fix actor typ 2018-11-13 19:28:03 +01:00
Adolfo Gómez García
4375ee6d50 Fixups for actor 2018-11-13 18:38:35 +01:00
Adolfo Gómez García
de45c24bbc small fixes for updating 2018-11-13 13:18:19 +01:00
Adolfo Gómez García
ff2f508240 Fix on windows actor to check if lastInputInfo is valid or not... 2018-11-13 10:52:11 +01:00
Adolfo Gómez
f2ff09a882 Removed finished tasks 2018-11-12 16:27:58 +01:00
Adolfo Gómez García
68a58b7c73 removed /compression from freerdp (used -compression now) 2018-11-08 10:41:08 +01:00
Adolfo Gómez García
4441286c89 removed /compression from freerdp (used -compression now) 2018-11-08 10:40:14 +01:00
Adolfo Gómez García
0d97831b71 removed fontawesome not used anymore 2018-11-07 12:14:16 +01:00
Adolfo Gómez García
db7d3ef0e3 Updated gui to angular 7 2018-11-07 12:12:39 +01:00
Adolfo Gómez García
d0c9ca6234 Fixes for new admin gui 2018-11-06 10:08:09 +01:00
Adolfo Gómez García
857be90128 Merge remote-tracking branch 'origin/v2.2' 2018-11-05 11:28:44 +01:00
Adolfo Gómez García
c9410fbbac fixed removing user on case of error 2018-11-05 11:28:19 +01:00
Adolfo Gómez García
5a26063233 fixed dependency 2018-10-29 23:54:05 +01:00
Adolfo Gómez García
a68152fee3 Merge remote-tracking branch 'origin/v2.2' 2018-10-26 13:22:28 +02:00
Adolfo Gómez García
43157d722f Fixed Calendar Actions L2 2018-10-26 13:20:16 +02:00
Adolfo Gómez García
5bade926b1 Merge remote-tracking branch 'origin/v2.2' 2018-10-24 09:17:09 +02:00
Adolfo Gómez García
861258532d Python3 compat 2018-10-24 08:35:08 +02:00
Adolfo Gómez García
869f1d7031 Merge remote-tracking branch 'origin/v2.2' 2018-10-23 14:13:55 +02:00
Adolfo Gómez García
ba45e4c6d6 Fixed bug on case of exception on service saving 2018-10-23 14:13:36 +02:00
Adolfo Gómez García
ff3d27ad42 Fixed typo 2018-10-23 11:35:16 +02:00
Adolfo Gómez García
8088efa225 Some adjustements to OpenStack connector 2018-10-23 09:28:05 +02:00
Adolfo Gómez García
2b6a0ee449 imports 2018-10-22 12:30:06 +02:00
Adolfo Gómez García
300f2f3333 Fixed OpenStack for newer versions. Now has 2 providers for "legacy" and for "new" versions 2018-10-22 12:28:26 +02:00
Adolfo Gómez García
259bfc31c4 Merge remote-tracking branch 'origin/v2.2' 2018-10-22 10:56:35 +02:00
Adolfo Gómez García
c1e2e12dd9 Fixed "meta group" pools on information 2018-10-22 10:54:24 +02:00
Adolfo Gómez García
dc0d96c83a removed user template 2018-10-17 10:34:22 +02:00
Adolfo Gómez García
579b86c527 removed user template 2018-10-17 10:33:24 +02:00
Adolfo Gómez García
4bfcac0307 Merge remote-tracking branch 'origin/v2.2' 2018-10-15 10:56:46 +02:00
Adolfo Gómez García
265d2d8702 translations 2018-10-15 10:55:48 +02:00
Adolfo Gómez García
95e99670ee Changed names on openstack for older releases 2018-10-15 10:47:23 +02:00
Adolfo Gómez García
e33a6e4712 updated requirements 2018-10-11 05:43:56 +02:00
Adolfo Gómez García
73be005f6a changed error message on case of change user password error 2018-10-05 12:41:23 +02:00
Adolfo Gómez García
4c30e9d45e actor fix for python3/ubuntu16 (due to requests/json) 2018-10-04 13:08:26 +02:00
Adolfo Gómez García
68fbaf7ae0 removev python3-prctl as dependency and marqued as "recommended" 2018-10-04 12:54:49 +02:00
Adolfo Gómez García
78731b2e51 fixed requirements.txt to latest django 2018-10-04 08:29:01 +02:00
Adolfo Gómez García
b2cda46cc0 Merge remote-tracking branch 'origin/v2.2' 2018-10-03 13:45:22 +02:00
Adolfo Gómez García
cf7e8f19e2 updated translations 2018-10-03 13:45:05 +02:00
Adolfo Gómez García
879457db4e Merge remote-tracking branch 'origin/v2.2' 2018-10-03 13:44:49 +02:00
Adolfo Gómez García
256a7f2584 Now RDP defaults credssp to "TRUE" 2018-10-03 13:43:58 +02:00
Adolfo Gómez García
22b3aa848e Finished metepools admin part 2018-10-03 11:09:24 +02:00
Adolfo Gómez García
7d5ce53317 Finished metepools admin part 2018-10-03 11:08:24 +02:00
Adolfo Gómez García
f995903056 Merge remote-tracking branch 'origin/v2.2' 2018-10-02 15:26:51 +02:00
Adolfo Gómez García
7f1a776f69 Upgraded debian actor to python 3 2018-10-02 15:24:34 +02:00
Adolfo Gómez García
0169c64354 fixes 2018-10-02 13:12:34 +02:00
Adolfo Gómez García
d5be31f1d9 * Fixed version
* Moved actors to python3
2018-10-02 13:08:13 +02:00
Adolfo Gómez García
8968ada03b Adding metapools to UDS 2018-10-01 14:08:13 +02:00
Adolfo Gómez García
816dde8aca Preparing meta pools 2018-09-28 12:09:17 +02:00
Adolfo Gómez García
a47df49ca8 Changed order so now on mac CorD is tried first 2018-09-28 10:03:04 +02:00
Adolfo Gómez García
2e0972b71e Added loging on action over service pool 2018-09-24 18:57:11 +02:00
Adolfo Gómez García
b4e672bb43 Merge remote-tracking branch 'origin/v2.2' 2018-09-24 15:54:47 +02:00
Adolfo Gómez García
ee9a062201 added log in case of max services reached on service pool 2018-09-24 15:54:08 +02:00
Adolfo Gómez García
74ebf0dd30 Merge remote-tracking branch 'origin/v2.2' 2018-09-24 11:30:34 +02:00
Adolfo Gómez García
8384a43699 Updated trans, need revision already 2018-09-24 11:24:05 +02:00
Adolfo Gómez García
8c882852db added assigned service edition. Now we can change the onwership of a machine 2018-09-24 11:12:36 +02:00
Adolfo Gómez García
cbdd61cfa8 Small fixes 2018-09-21 11:07:39 +02:00
Adolfo Gómez García
e642f4df18 Updated about 2018-09-21 07:56:36 +02:00
Adolfo Gómez García
b8eda0cbc4 cleaning stuff for new interface 2018-09-20 14:12:37 +02:00
Adolfo Gómez García
ce3c1e3861 Merge remote-tracking branch 'origin/v2.2' 2018-09-19 07:28:16 +02:00
Adolfo Gómez García
8c85639dfe Fixed so UDS now works correctly with versiones newer that OCATA 2018-09-18 23:40:16 +02:00
Adolfo Gómez García
5c27b521af removing unused clusters part 2018-09-17 19:04:19 +02:00
Adolfo Gómez García
33a02ee8f3 cleaning for new angular interface 2018-09-14 05:50:26 +02:00
Adolfo Gómez García
44feef783b Merge remote-tracking branch 'origin/v2.2' 2018-09-13 10:21:29 +02:00
Adolfo Gómez García
5fbdb6834d fixed so concurrent creation storm is better handled now 2018-09-13 10:17:28 +02:00
Adolfo Gómez García
39877dacd9 fixes 2018-09-12 13:35:30 +02:00
Adolfo Gómez García
c8b1d0cb22 Mograting to modern user gui 2018-09-12 09:41:53 +02:00
Adolfo Gómez García
442a2cc72a Merge remote-tracking branch 'origin/v2.2' 2018-09-10 11:11:47 +02:00
Adolfo Gómez García
6bcf8a832f updated translations 2018-09-10 11:11:27 +02:00
Adolfo Gómez García
f0903ee505 fixed unique id 2018-09-10 11:02:25 +02:00
Adolfo Gómez García
9ffced6365 fixing up things 2018-09-10 10:40:34 +02:00
Adolfo Gómez García
4561e6c0fe Merge remote-tracking branch 'origin/v2.2' 2018-09-07 04:11:49 +02:00
Adolfo Gómez García
aa4bbcbeb3 Removed simple ldap from authenticators list. Its not used and its use
is very limited
2018-09-07 04:11:09 +02:00
Adolfo Gómez García
89f77dbbc6 Merge remote-tracking branch 'origin/v2.2' 2018-09-06 13:48:16 +02:00
Adolfo Gómez García
5863962e8a Added "display connection bar" option to transport 2018-09-06 13:45:21 +02:00
Adolfo Gómez García
afe5f0c965 fixed user groups assignation 2018-09-04 12:49:56 +02:00
Adolfo Gómez García
82c362b2b6 Fixed LDAP regex user search 2018-09-04 12:45:46 +02:00
Adolfo Gómez García
58886b00fa towards v3 2018-09-03 10:13:27 +02:00
Adolfo Gómez García
966d61fda1 Working towards new gui 2018-08-31 09:15:07 +02:00
Adolfo Gómez García
7a06279601 advancing on modern gui 2018-08-30 09:29:32 +02:00
Adolfo Gómez García
cb0150391a Added compat between new-future templates and existing ones 2018-08-22 05:52:54 +02:00
Adolfo Gómez García
121f5a6fa6 Merge remote-tracking branch 'origin/v2.2' 2018-08-20 13:48:54 +02:00
Adolfo Gómez García
c2a95711da Fixed trying to remove VM when LCM_STATE was "boot" or prior for
OpenNebula
2018-08-20 13:38:54 +02:00
Adolfo Gómez García
bc04f9c30f fixed password field
Updated requirements to django 2.1
2018-08-19 23:32:44 +02:00
Adolfo Gómez García
eb3188c6c1 Changed AES to CBC 2018-08-02 11:13:37 +02:00
Adolfo Gómez García
34b8902c71 Added AEScrypt y AESdecrypt 2018-08-02 01:58:49 +02:00
Adolfo Gómez García
3f76f6c1ab Some refactoring to easy indentify algorithm 2018-08-02 01:00:24 +02:00
Adolfo Gómez García
34028b99e7 Fixes from merge 2018-07-31 23:59:59 +02:00
Adolfo Gómez García
8867ef7036 Merge remote-tracking branch 'origin/v2.2' 2018-07-31 23:54:10 +02:00
Adolfo Gómez García
6cee32d680 fix lambda 2018-07-31 23:53:58 +02:00
Adolfo Gómez García
cce00adc51 Fixed string for "access denied" on logon 2018-07-26 12:52:08 +02:00
Adolfo Gómez García
e37b929adc merged from 2.2 2018-07-23 09:54:35 +02:00
Adolfo Gómez García
4b75be2f02 fully fixed password issue on HTML5 2018-07-19 21:14:08 +02:00
Adolfo Gómez García
34046c8a7e removed unsecure logging on exception on code 2018-07-19 11:22:04 +02:00
Adolfo Gómez García
f177b98c78 Fixed tickets auth 2018-07-18 23:11:55 +02:00
Adolfo Gómez García
4777b7e8f9 Fixes for passwords 2018-07-18 22:44:23 +02:00
Adolfo Gómez García
fbbdc529fe Fixes & DEBUG log fix 2018-07-17 21:16:17 +02:00
Adolfo Gómez García
e9f61b6a94 fixed single quote on passwords 2018-07-17 12:03:03 +02:00
Adolfo Gómez García
367a1779f5 fixed requirements 2018-07-13 07:02:48 +02:00
Adolfo Gómez García
99f834c41f fixed requirements 2018-07-13 06:54:53 +02:00
Adolfo Gómez García
2b868a71ba fixed paramiko dep 2018-07-13 06:54:21 +02:00
Adolfo Gómez García
1a0a1d17dc Merge remote-tracking branch 'origin/v2.2' 2018-07-02 14:10:56 +02:00
Adolfo Gómez García
f333f2f71f Fixed "keep on new publication" 2018-07-02 13:28:28 +02:00
Adolfo Gómez García
6c2a7ff6e6 Added basic metadata info to openstack server 2018-06-29 14:15:06 +02:00
Adolfo Gómez García
1936a02cf7 * Fixed get name from authCallback
* added convenient "comments" to some parts
* Fixed login, to cicly session only when logged in
2018-06-27 11:12:08 +02:00
Adolfo Gómez García
d8eb440b34 Advanced a lot on azure ad integration 2018-06-26 17:20:05 +02:00
Adolfo Gómez García
4570d79645 Added "hint" return type for managers helpers 2018-06-25 09:35:20 +02:00
Adolfo Gómez García
6936f6994d Updated random uuid method 2018-06-25 09:32:20 +02:00
Adolfo Gómez García
d60f1d82db Fixed datetime.now 2018-06-21 12:55:17 +02:00
Adolfo Gómez García
c72a6a32dc Fixed cache geting local datetime instead of 2018-06-21 12:47:20 +02:00
Adolfo Gómez García
757151c71a Merge remote-tracking branch 'origin/v2.2' 2018-06-12 13:28:52 +02:00
Adolfo Gómez García
7bdb3d77ba Fixed LogManager so now "cuts" correctly before writing log text
Removed debug that was "anoying
2018-06-12 13:25:54 +02:00
Adolfo Gómez García
f211f3482f small fixes & added open link on new window instead of current 2018-06-11 13:33:50 +02:00
Adolfo Gómez García
e52cec2ce7 Merge remote-tracking branch 'origin/v2.2' 2018-06-11 01:33:15 +02:00
Adolfo Gómez García
ff226dd8e5 included decorator 2018-06-11 01:30:32 +02:00
Adolfo Gómez García
574de727d3 Merge remote-tracking branch 'origin/v2.2' 2018-06-08 01:45:23 +02:00
Adolfo Gómez García
b0268346e5 Created Azure publication 2018-06-08 01:36:35 +02:00
Adolfo Gómez García
db87dd101b Merge remote-tracking branch 'origin/v2.2' 2018-06-06 15:30:14 +02:00
Adolfo Gómez García
9906b80702 Added russian 2018-06-06 15:29:52 +02:00
Adolfo Gómez García
be4a4a5b09 Fixed non asceii characters on user home for windows 2018-06-05 14:06:32 +02:00
Adolfo Gómez García
070088909e Fixed "idle checker" logout 2018-05-31 12:20:14 +02:00
Adolfo Gómez García
2066f4050c Merge remote-tracking branch 'origin/v2.2' 2018-05-28 09:55:14 +02:00
Adolfo Gómez García
9cbb297330 advances 2018-05-28 09:55:01 +02:00
Adolfo Gómez García
e9d23cf170 * Added "HIDDEN_FIELD" and "READ_ONLY_FIELD" to Configuration
* Added a "default" UDS Server (cluster) ID, so we can use it for a lot
of things :)
2018-05-28 09:54:23 +02:00
Adolfo Gómez García
9f98fc6f6d Merge remote-tracking branch 'origin/v2.2' 2018-05-18 12:03:50 +02:00
Adolfo Gómez García
b5ebd1f1fb Added RDP option to allow only "new local drives" from windows 2018-05-18 10:55:47 +02:00
Adolfo Gómez García
2ed4bf07cd Working on next-gen user id 2018-05-18 09:44:29 +02:00
Adolfo Gómez García
df17aa8687 Merge remote-tracking branch 'origin/v2.2' 2018-05-16 13:39:50 +02:00
Adolfo Gómez García
04e900bd8e work in progress, will log later 2018-05-16 13:39:44 +02:00
Adolfo Gómez García
0e99f53f0d Added "early client IP log" on dashboard 2018-05-16 13:36:17 +02:00
Adolfo Gómez García
af53a574f5 simple uds tags fixes 2018-05-11 12:06:00 +02:00
Adolfo Gómez García
15e4c949d3 Now the machine removal on windows takes care of child nodes.. (We have
noticed that Hyperv server 2016 creates a "node" behind machines on
domain)
2018-05-10 12:32:10 +02:00
Adolfo Gómez García
962d28b484 Merge remote-tracking branch 'origin/v2.2' 2018-05-10 12:21:22 +02:00
Adolfo Gómez García
2bbc74a87c Fixed domain deletion when a machine has child nodes 2018-05-10 12:19:54 +02:00
Adolfo Gómez García
ac5d3ebe14 Removed non used "moderm" stuff 2018-05-10 08:34:43 +02:00
Adolfo Gómez García
0e4e1e860d Now we can add/remove transports from an scheduled action 2018-05-09 08:14:39 +02:00
Adolfo Gómez García
0b201eada9 removed debug from xenserver 2018-05-09 00:24:51 +02:00
Adolfo Gómez García
73139094dc Merge remote-tracking branch 'origin/v2.2' 2018-05-09 00:24:36 +02:00
Adolfo Gómez García
9e270f6f7e fixed requirements 2018-05-09 00:22:30 +02:00
Adolfo Gómez García
81a358e4e2 Adding scheduled action on transports
Fixed PUT for detail items
2018-05-07 16:47:19 +02:00
Adolfo Gómez García
eead0d282c Merge remote-tracking branch 'origin/v2.2' 2018-05-02 10:46:18 +02:00
Adolfo Gómez García
ba09bab8a1 fix Actor for newer Oss 2018-05-02 10:40:57 +02:00
Adolfo Gómez García
ac24acc52d Merge remote-tracking branch 'origin/v2.2' 2018-04-27 16:54:22 +02:00
Adolfo Gómez García
4c4a54e50b Fixed debian to use first freerdp2 instead freerdp. Also, removed rdesktop 2018-04-27 16:52:09 +02:00
Adolfo Gómez García
5f44798fe6 Merge branch 'master' of github.com:dkmstr/openuds 2018-04-27 11:21:47 +02:00
Adolfo Gómez García
5b7d02964d Now AD search on full path instead of OU 2018-04-27 11:01:08 +02:00
Adolfo Gómez García
912c4d3d05 Merge remote-tracking branch 'origin/v2.2' 2018-04-27 10:55:42 +02:00
Adolfo Gómez García
0648a27daf Fixed for machine deletion on ou change 2018-04-27 10:53:04 +02:00
Adolfo Gómez García
496e5fb60d Removed all pycha references from project. All charts are now created
using matplotlib
2018-04-25 12:15:05 +02:00
Adolfo Gómez García
1406b036f7 Fixed another report (removed pycha) 2018-04-24 13:41:43 +02:00
Adolfo Gómez García
51cc23b223 * Fixed sample setting file
* Working on removal of pycha of reports
2018-04-24 11:27:51 +02:00
Adolfo Gómez García
2ad3517bcd Fixing up, removing pycha and using matplotlib instead 2018-04-23 15:08:58 +02:00
Adolfo Gómez García
52e703f9c2 Fixes 2018-04-20 10:39:26 +02:00
Adolfo Gómez García
2ce130786a Autcompletes 2018-04-18 12:25:20 +02:00
Adolfo Gómez García
9b2e9000e7 pep related fixes 2018-04-18 10:07:16 +02:00
Adolfo Gómez García
0021fd5ff9 pep related fixes 2018-04-18 01:06:06 +02:00
Adolfo Gómez García
f74b0b0fe9 pep related fixes 2018-04-18 00:44:21 +02:00
Adolfo Gómez García
62abc85191 pep related fixes 2018-04-18 00:38:59 +02:00
Adolfo Gómez García
429eead46d Fixes for python 3 (pep related, code warns, etc...) 2018-04-17 18:29:13 +02:00
Adolfo Gómez García
6293c09ca8 Fixed intragrations from 2.2 2018-04-14 19:15:44 +02:00
Adolfo Gómez García
6db1fdb86d Added content type to error responses on REST api 2018-04-14 18:53:26 +02:00
Adolfo Gómez García
af9e372d6b Merge remote-tracking branch 'origin/v2.2' 2018-04-12 13:11:01 +02:00
Adolfo Gómez García
b1223f623b Fixed RDP connection 2018-04-12 13:02:24 +02:00
Adolfo Gómez García
e72698e1da Merge remote-tracking branch 'origin/v2.2' 2018-03-30 19:00:50 +02:00
Adolfo Gómez García
22a78d8e69 addedd freerdp2-x11 as optional dependency 2018-03-30 19:00:24 +02:00
Adolfo Gómez García
04f532065a Merge remote-tracking branch 'origin/v2.2' 2018-03-28 12:43:37 +02:00
Adolfo Gómez García
39b6a59538 Fixed end date 2018-03-28 12:42:50 +02:00
Adolfo Gómez García
1d45fef879 Merge remote-tracking branch 'origin/v2.2' 2018-03-28 12:03:33 +02:00
Adolfo Gómez García
772a31da37 added fix for shotname 2018-03-28 12:02:57 +02:00
Adolfo Gómez García
cc95427e05 Merge remote-tracking branch 'origin/v2.2' 2018-03-26 12:34:24 +02:00
Adolfo Gómez García
0070b1618b Fixed for getByAttr1 to return FIRST element in case of error 2018-03-26 12:34:12 +02:00
Adolfo Gómez García
d3c5f47ac2 Merge remote-tracking branch 'origin/v2.2' 2018-03-23 10:53:02 +01:00
Adolfo Gómez García
3b04e2a180 translations 2 2018-03-23 10:52:54 +01:00
Adolfo Gómez García
838cedf7e2 Merge remote-tracking branch 'origin/v2.2' 2018-03-23 10:43:01 +01:00
Adolfo Gómez García
5d43c1dbff translations 1 2018-03-23 10:42:34 +01:00
Adolfo Gómez García
f3e8d98ae6 Merge remote-tracking branch 'origin/v2.2' 2018-03-23 10:40:16 +01:00
Adolfo Gómez García
9c65db5c25 X2go fixes 2018-03-23 10:39:34 +01:00
Adolfo Gómez García
a6397e9ff6 Fixed X2Go 2018-03-22 18:36:43 +01:00
Adolfo Gómez García
187d417eec Merge remote-tracking branch 'origin/v2.2' 2018-03-21 18:41:21 +01:00
Adolfo Gómez García
5909533161 Fixed "smooth fonts".Now works on linux xfreerdp clients also. 2018-03-21 18:40:32 +01:00
Adolfo Gómez García
cbaf42af26 Merge remote-tracking branch 'origin/v2.2' 2018-03-16 10:57:21 +01:00
Adolfo Gómez García
f3420a50ac translations 2018-03-16 10:56:57 +01:00
Adolfo Gómez García
f6eab2f3b2 Fixed migrations from 2.2 2018-03-16 10:02:14 +01:00
Adolfo Gómez García
6bbd8d1321 Merge remote-tracking branch 'origin/v2.2' 2018-03-16 09:53:49 +01:00
Adolfo Gómez García
1bd56debb9 Added reset to vdi 2018-03-16 09:51:55 +01:00
Adolfo Gómez García
83ad9141a8 Merge remote-tracking branch 'origin/v2.2' 2018-03-16 09:50:29 +01:00
Adolfo Gómez García
a1ed512453 fixes from merge 2018-03-16 09:43:01 +01:00
Adolfo Gómez García
4641fde008 Added reset to vdi 2018-03-16 09:37:04 +01:00
Adolfo Gómez García
1d3d79c562 fix for "reset" capacity 2018-03-16 06:15:19 +01:00
Adolfo Gómez García
33600bda6e Fixed rootless 2018-03-14 15:23:44 +01:00
Adolfo Gómez García
e4807cf648 sets "allow_users_reset" to false on save if service does not supports
it.
2018-03-14 09:51:17 +01:00
Adolfo Gómez García
b9cb82c054 Merge remote-tracking branch 'origin/v2.2' 2018-03-14 08:18:06 +01:00
Adolfo Gómez García
92de41d410 * Added support for "reset" services that support it.
Right now, we will test on enterprise this feature.
2018-03-14 08:03:23 +01:00
Adolfo Gómez García
ee72b65534 Merge from master guacamole updates 2018-03-12 07:21:22 +01:00
Adolfo Gómez
ca24954e8d Merge pull request #20 from glyptodon/update-guac-version
Update to 0.9.14 version of Apache Guacamole APIs.
2018-03-12 07:17:45 +01:00
Michael Jumper
b30f9334c5 Automatically reconnect after network errors (see upstream commit apache/guacamole-client@ecf506e). 2018-03-11 21:58:20 -07:00
Michael Jumper
a8e384cb43 Add error strings for status codes added upstream via GUACAMOLE-208 (see upstream commits apache/guacamole-client@dd6964a and apache/guacamole-client@ee4f8cf). 2018-03-11 21:55:47 -07:00
Michael Jumper
5136d013c2 Update to 0.9.14 version of Apache Guacamole APIs. 2018-03-11 21:33:30 -07:00
Adolfo Gómez García
374c35ea8c Merge remote-tracking branch 'origin/v2.2' 2018-03-09 11:19:17 +01:00
Adolfo Gómez García
dba5e4267a Fixed translations 2018-03-09 11:19:01 +01:00
Adolfo Gómez García
fb757fc1fd Merge remote-tracking branch 'origin/v2.2' 2018-03-08 20:33:21 +01:00
Adolfo Gómez García
f6d78201cb fixed cache in case of use in middle of "lock tables"... 2018-03-08 20:29:28 +01:00
Adolfo Gómez García
952cb1c3f7 Merge remote-tracking branch 'origin/v2.2' 2018-03-06 11:08:58 +01:00
Adolfo Gómez García
8162230f23 Fixed lazy trans on os managers 2018-03-06 11:06:40 +01:00
Adolfo Gómez García
f73de2f4c3 Merge remote-tracking branch 'origin/v2.2' 2018-03-05 13:59:40 +01:00
Adolfo Gómez García
bfb96b6d9f Translations 2018-03-05 13:59:20 +01:00
Adolfo Gómez García
f9316b230b Merge remote-tracking branch 'origin/v2.2' 2018-03-05 13:41:33 +01:00
Adolfo Gómez García
b37c87afb5 Added new "on logout" state 2018-03-05 13:38:40 +01:00
Adolfo Gómez García
8913d152e7 cosmetic 2018-03-05 13:37:33 +01:00
Adolfo Gómez García
8141d3bbdb Updated go fontawasome 5 2018-03-04 02:38:48 +01:00
Adolfo Gómez García
05f2f816e0 a couple of fixes for grunt-copy on user space template 2018-03-03 10:53:39 +01:00
Adolfo Gómez García
0c1313af8f Merge remote-tracking branch 'origin/v2.2' 2018-03-02 18:36:43 +01:00
Adolfo Gómez García
df98efc2da translations 2018-03-02 18:35:02 +01:00
Adolfo Gómez García
7320ba0e6d Added to "use" log the serviceName & the pool name 2018-03-02 18:09:12 +01:00
Adolfo Gómez García
9f89cc1482 Merge remote-tracking branch 'origin/v2.2' 2018-03-02 06:01:30 +01:00
Adolfo Gómez García
4271be9340 Added a couple of logs due to the fact that maybe in some moment we
change a datetime from db/uds and may "force" tasks
2018-03-02 06:00:04 +01:00
Adolfo Gómez García
8904cc9bc0 fixing migrations from 2.2 2018-03-02 05:47:17 +01:00
Adolfo Gómez García
e1efa5d5ed fixing migrations from 2.2 2018-03-02 05:46:56 +01:00
Adolfo Gómez García
b56b3ef6d8 Fixed & remove "auto_add_time" etc.. 2018-03-02 05:25:42 +01:00
Adolfo Gómez García
eacffbe20b Merge remote-tracking branch 'origin/v2.2' 2018-03-02 01:02:08 +01:00
Adolfo Gómez García
5f74c7fca8 * Changed the "persitent" management on case of new publication.
Now, if a machine is considered "persistent", on a new publication, UDS
Will not remove assigned services, nor will remove services of old
publications on logout.
2018-03-02 00:51:16 +01:00
Adolfo Gómez García
4a171b6aa5 Merge remote-tracking branch 'origin/v2.2' 2018-02-28 19:50:48 +01:00
Adolfo Gómez García
0bd09e70bf fixed README.txt 2018-02-28 19:50:27 +01:00
Adolfo Gómez García
52345d6970 Forgot the moderm folder :) 2018-02-26 07:30:22 +01:00
Adolfo Gómez García
697a07dda8 Working on templates 2018-02-26 07:11:59 +01:00
Adolfo Gómez García
ccd2215cf6 Finally, we are going to try translation to typescript, at least on user space for now. 2018-02-25 09:05:02 +01:00
Adolfo Gómez García
c2e5b705a7 Advanced a bit 2018-02-24 23:48:42 +01:00
Adolfo Gómez García
30006b90d4 Advancing on base template dev environment 2018-02-24 10:10:26 +01:00
Adolfo Gómez García
9d2abc83bf Added by now the bootstrap-select picerk beta. To be replace with stable & npm package when stable 2018-02-24 10:09:44 +01:00
Adolfo Gómez García
9e86df21e5 advancing on base templates. 2018-02-24 09:09:14 +01:00
Adolfo Gómez García
367b9ca26f Advancing on auto builders 2018-02-24 08:45:45 +01:00
Adolfo Gómez García
3be93f2dcf Testing aroung with typescripy/javascript. For now, will keep coffeescript, too many changes for using typescript and no time ;-) 2018-02-24 06:21:13 +01:00
Adolfo Gómez García
5d8a63e729 base empty template for user html 2018-02-24 05:38:23 +01:00
Adolfo Gómez García
f9886cae3b Replacing coffeescripy by typescript 2018-02-24 05:24:26 +01:00
Adolfo Gómez García
f9e10b8daf Updated 2018-02-23 09:40:14 +01:00
Adolfo Gómez García
b386839bdc started template for new user interface, using bootstrap 4 2018-02-23 09:00:59 +01:00
Adolfo Gómez García
32053627ad Merge remote-tracking branch 'origin/v2.2' 2018-02-20 14:32:51 +01:00
Adolfo Gómez García
9e991eebb2 Locales to date 2018-02-20 14:29:59 +01:00
Adolfo Gómez García
579092bac6 Merge remote-tracking branch 'origin/v2.2' 2018-02-20 13:27:16 +01:00
Adolfo Gómez García
ab8faf3ebb Small 2.2 fixes 2018-02-20 13:11:46 +01:00
Adolfo Gómez García
17e573dc14 First tests with mssql. With a couple of fixes, seems to work properly for "testing" porposes at least... 2018-02-16 06:15:21 +01:00
Adolfo Gómez García
bd267d7cd1 On Mysql, unsigned smalint can cover till 65536. Seems that on MS SQL
does not support this range (instead, supports only till 32768).
Also, due to something i do not understand, cannot change the type of
"level" field because it gas a constraint. So, as long as int and
smallint are compatibles at query leve, we have changed it on initial
creation to "PsotiveInteger" and shoudl be fine. (The already created
database will not suffer from this change)
2018-02-16 05:37:47 +01:00
Adolfo Gómez García
18d6a24631 fixes for django 2.x 2018-02-13 01:20:32 +01:00
Adolfo Gómez García
86a2c7c544 Small fix & debug info removal 2018-02-13 01:02:28 +01:00
Adolfo Gómez García
733522d574 * Added new squashed migration for next release
* Fixed several issues with django 2.x
2018-02-13 00:38:15 +01:00
Adolfo Gómez García
92a0c840a5 updated requirements with current neede versions 2018-02-12 22:03:48 +01:00
Adolfo Gómez García
92639b6771 preparing debian package for next release (just upgrading version numbers right now...) 2018-02-12 21:40:40 +01:00
Adolfo Gómez García
7b6d7df38b UDS 3.0 will be only python 3 compatible. We have upgrade django to 2.x, so we need python 3 to use it 2018-02-12 21:34:58 +01:00
Adolfo Gómez García
1ea2054d60 UDS 3.0 will be only python 3 compatible. We have upgrade django to 2.x, so we need python 3 to use it 2018-02-12 21:29:35 +01:00
Adolfo Gómez García
96721487de Fixed workers autoloader for python3 2018-02-12 19:22:57 +01:00
Adolfo Gómez García
c9075bfa0f Merge remote-tracking branch 'origin/v2.2' 2018-02-12 11:04:53 +01:00
Adolfo Gómez García
752b84a17a added xscreensaver dependencie to udsactor 2018-02-12 10:49:44 +01:00
Adolfo Gómez García
4ffdd4b882 Removed check of systray existance... 2018-02-12 10:43:34 +01:00
Adolfo Gómez García
ca0fc6a61d Updating windowmain to be functional on python2 & python3 2018-02-09 06:10:50 +01:00
Adolfo Gómez García
54136ae077 Upgraded reporting to weasyprint & python3.
Caution!!. pycha does not supports python3. Right now, we have patched
pycha on our servers, and will look for an updated alternative.
2018-02-08 08:05:18 +01:00
Adolfo Gómez García
8f38ae8f4a Fixed fields order not being returned correctly 2018-02-08 07:02:08 +01:00
Adolfo Gómez García
49654d9afe Removed duplicate password for testing (nonsense... :P) 2018-02-08 07:01:33 +01:00
Adolfo Gómez García
225bf75770 advancing on a reporting system compatible with python2 & python3 2018-02-07 21:38:17 +01:00
Adolfo Gómez García
a9844fc8b4 Merge remote-tracking branch 'origin/v2.2' 2018-02-07 16:43:35 +01:00
Adolfo Gómez García
d59661eb05 Fix report 2018-02-07 16:42:59 +01:00
Adolfo Gómez García
babcf53ea3 removing old geraldo reports and adding much more conveninet weasyprint 2018-02-07 11:53:31 +01:00
Adolfo Gómez García
a395847b32 Merge remote-tracking branch 'origin/v2.2' 2018-02-07 10:26:21 +01:00
Adolfo Gómez García
7c54eba78c Merge branch 'master' of github.com:dkmstr/openudt mes 2018-02-07 10:26:07 +01:00
Adolfo Gómez García
766786715d Removing geraldo reports/reportlabs in favor of weasyprint 2018-02-07 10:25:50 +01:00
Adolfo Gómez García
c81fc17593 Removing geraldo reports/reportlabs in favor of weasyprint 2018-02-07 10:25:22 +01:00
Adolfo Gómez García
a03f86f031 Fixed report to blob generation 2018-02-07 10:21:46 +01:00
Adolfo Gómez García
c9bea9cf78 Merge remote-tracking branch 'origin/v2.2' 2018-02-06 15:19:40 +01:00
Adolfo Gómez García
cc033105e2 fixed translations 2018-02-06 15:19:21 +01:00
Adolfo Gómez García
a665c72c25 Updated simpleldap authenticator to be python2 & python3 compatible 2018-02-01 07:06:25 +01:00
Adolfo Gómez García
dcf1ea7cac merge from 2.2 and fix 2018-02-01 05:25:17 +01:00
Adolfo Gómez García
9e293905b6 merge from 2.2 and fix 2018-02-01 05:23:36 +01:00
Adolfo Gómez García
a1bf0b92bb Enhanced "search user/groups" response on too many results 2018-02-01 04:59:20 +01:00
Adolfo Gómez García
bce764f0d3 Fixied unique generators for not using "lock tables" (towards full use of galer mariadb cluster) 2018-01-31 08:09:04 +01:00
Adolfo Gómez García
a4288b991d Removed "lock" from UniqueIdGenerator for future release 2018-01-29 12:45:18 +01:00
Adolfo Gómez García
c2a1e310ef Merge remote-tracking branch 'origin/v2.2' 2018-01-29 09:26:55 +01:00
Adolfo Gómez García
b6e5aeac29 Fixed string translation from coffeescript 2018-01-26 10:32:08 +01:00
Adolfo Gómez García
a6474101b4 small info fix 2018-01-25 08:34:01 +01:00
Adolfo Gómez García
8a06132b1a Updated LDAP REGEX to be compatible with python2 & pytohn3 2018-01-24 10:28:26 +01:00
Adolfo Gómez García
789084d3ed py3 2018-01-18 10:46:05 +01:00
Adolfo Gómez García
fab976fd8f Merge remote-tracking branch 'origin/v2.2' 2018-01-18 08:36:39 +01:00
Adolfo Gómez García
3420ac44be Fixed net to use only integers on py3 2018-01-18 08:32:16 +01:00
Adolfo Gómez García
42631f39da python 3.x 2018-01-16 12:37:56 +01:00
Adolfo Gómez García
c6003536ae python3.x 2018-01-16 11:30:04 +01:00
Adolfo Gómez García
5c3505856a Merge remote-tracking branch 'origin/v2.2' 2018-01-16 10:39:31 +01:00
Adolfo Gómez García
d0fb880880 Removed annoying debug 2018-01-16 10:38:23 +01:00
Adolfo Gómez García
e597381005 Merge remote-tracking branch 'origin/v2.2' 2018-01-16 10:37:11 +01:00
Adolfo Gómez García
f43a65e026 Fixed connection for not checking connections 2018-01-16 10:33:51 +01:00
Adolfo Gómez García
0d63c25f27 Common ldaputil for all ldap access, so py2 & py3 compat will be easier 2018-01-16 08:35:18 +01:00
Adolfo Gómez García
37c65c14e6 Fixing for python3.x 2018-01-15 23:38:00 +01:00
Adolfo Gómez García
6d5b154f3c Fixes for python3.x 2018-01-15 23:33:21 +01:00
Adolfo Gómez García
ea0727993e legacy bug, in a methond not in fact used (but maybe usable) 2018-01-15 23:32:55 +01:00
Adolfo Gómez García
61b8c270c4 Fixing up things for python 3.x compat 2018-01-15 17:02:33 +01:00
Adolfo Gómez García
b491c4a2c0 Merge remote-tracking branch 'origin/v2.2' 2018-01-12 11:53:01 +01:00
Adolfo Gómez García
8d00883213 Added "Chrome OS", and fixed the "unknown os" bug 2018-01-12 11:51:08 +01:00
Adolfo Gómez García
8ad77c736d Set that unknown os to be recognized right now as android 2018-01-12 11:25:24 +01:00
Adolfo Gómez García
f5325e47f7 Merge remote-tracking branch 'origin/v2.2' 2018-01-12 11:18:37 +01:00
Adolfo Gómez García
bfb65ccdb6 towerds python 3.x 2018-01-12 10:37:32 +01:00
Adolfo Gómez García
178bb12b62 Working on python3 compat, an fixing 2.2 merge issues :) (a couple only) 2018-01-12 10:03:05 +01:00
Adolfo Gómez García
0801bd0cfb * Fixed cache for invalidate it fi "pickle" protocol is mismatched (for
python3/python2 compat)
* Fixed BaseModule to return icon in "unicode" instead of "bytes"
2018-01-12 07:55:46 +01:00
Adolfo Gómez García
5fae347440 Fixing up for 3.x compatibility 2018-01-12 06:46:07 +01:00
Adolfo Gómez García
34ff0259ce Fixed icon for service inside providers (on dashboard) 2018-01-10 12:18:28 +01:00
Adolfo Gómez García
b4ba79cad2 Fixed look up user names on Windows Actor on lowercase 2018-01-10 12:10:53 +01:00
Adolfo Gómez García
5a13f52d8f Fixed translations 2018-01-09 22:50:46 +01:00
Adolfo Gómez García
3e8b681dae Merge remote-tracking branch 'origin/v2.2' 2018-01-09 22:36:59 +01:00
Adolfo Gómez García
0242eaaa54 fixed a couple of literals 2018-01-09 22:36:26 +01:00
Adolfo Gómez García
f2149c594e Merge remote-tracking branch 'origin/v2.2' 2018-01-09 14:35:58 +01:00
Adolfo Gómez García
7ec92d6005 translations 2018-01-09 14:35:42 +01:00
Adolfo Gómez García
1518be047c Merge remote-tracking branch 'origin/v2.2' 2018-01-09 14:33:46 +01:00
Adolfo Gómez García
dbc2bc1754 Fixed string 2018-01-09 14:33:38 +01:00
Adolfo Gómez García
4932fe37f7 Merge remote-tracking branch 'origin/v2.2' 2018-01-08 18:50:13 +01:00
Adolfo Gómez García
18f75ecb37 Updated translations 2018-01-08 18:48:41 +01:00
Adolfo Gómez García
61b147f450 Merge remote-tracking branch 'origin/v2.2' 2018-01-06 19:32:36 +01:00
Adolfo Gómez García
033a6265a8 Fixed ticket validity description on HTML5 2018-01-06 19:29:46 +01:00
Adolfo Gómez García
02ab1a8c7c Removed unused field 2018-01-06 19:27:17 +01:00
Adolfo Gómez García
8c6833f420 Several fixes
* Added missing migration
* More fixes towards python3 full compatibility (now it runs, but has
lots of unicode/bytes problems :) )
* Several minor fixes found during updating
2018-01-05 14:46:14 +01:00
Adolfo Gómez García
9726cd7858 Fixing up things for future python 3.x (advancing fast)) 2018-01-05 00:28:05 +01:00
Adolfo Gómez García
a81e08d3cd Fixed migrations to work on python3 2018-01-04 22:55:41 +01:00
Adolfo Gómez García
fa1dfea181 small fix for migrations 2018-01-04 22:43:52 +01:00
Adolfo Gómez García
b59067a20e Fixing up things for python3 near future upgrade 2018-01-04 22:16:21 +01:00
Adolfo Gómez García
fc2f8b8a37 Merge remote-tracking branch 'origin/v2.2' 2018-01-04 14:46:14 +01:00
Adolfo Gómez García
89155d6db9 HTML5 addin so we can define the duration of HTML5 tickets (for
disconnections, or F5 allowance)
2018-01-04 14:44:31 +01:00
Adolfo Gómez García
9b35224fc5 Removed "storage_type" from 4.1. It's not used, so not needed 2018-01-04 14:43:40 +01:00
Adolfo Gómez García
161c277ec6 Merge remote-tracking branch 'origin/v2.2' 2017-12-21 19:10:55 +01:00
Adolfo Gómez García
a0797ac07f Updated translations 2017-12-21 19:10:36 +01:00
Adolfo Gómez García
3694f10fff Merge remote-tracking branch 'origin/v2.2' 2017-12-21 19:05:33 +01:00
Adolfo Gómez García
bbcc06f503 Fixes on RDP for Linux.
On linux client freerdp 1.1, seems that /home-drive with
/drive:media,/media and /printer makes the client fail. (Works fine with
2.0).
We have replaced so:
1.- Now by default, on linux, redirect drives redirects /media
2.- You can check "redirect home" so /home is also redirected (take
care, /home, not home folder)
3.- If you want /home-drives, you can include it on "custom parameters"
2017-12-21 19:04:06 +01:00
Adolfo Gómez García
42ac0d6b03 Merge remote-tracking branch 'origin/v2.2' 2017-12-20 12:29:02 +01:00
Adolfo Gómez García
6fbf419064 Updated translations 2017-12-20 12:28:52 +01:00
Adolfo Gómez García
30ef566bef merged from v2.2 2017-12-20 12:28:38 +01:00
Adolfo Gómez García
cabc906758 Fixed a lof of transports string literals 2017-12-20 12:17:17 +01:00
Adolfo Gómez García
0b7535e76e Fixed string on x2go transport 2017-12-20 00:10:24 +01:00
Adolfo Gómez García
85db53e619 Merge remote-tracking branch 'origin/v2.2' 2017-12-19 22:44:32 +01:00
Adolfo Gómez García
f536112312 Updated translations 2017-12-19 22:42:50 +01:00
Adolfo Gómez García
1a1a4e84b2 Merged from 2.2. 2017-12-19 22:41:26 +01:00
Adolfo Gómez García
ab2ca6d527 Fixed text & descriptions for transports 2017-12-19 22:33:05 +01:00
Adolfo Gómez García
442b78ef2e Fixed smartcard parameter when empty 2017-12-19 13:52:20 +01:00
Adolfo Gómez García
9cfc348ee6 RDP aditions. 2017-12-18 12:48:15 +01:00
Adolfo Gómez García
6756142e44 Merged from 2.2 2017-12-15 12:41:50 +01:00
Adolfo Gómez García
0f1d1af736 RDP Transport fixes
* Now preferences are not for user, that is not useful. Now screen size,
color deppth, etc.. is selected on the transports.
* Preferences for RDP has been removed from "user preferences"
2017-12-15 12:33:15 +01:00
Adolfo Gómez García
6830d8db4e Fixed Client plugin version 2017-12-15 11:16:22 +01:00
Adolfo Gómez García
49862699f2 Merged 2017-12-14 15:28:34 +01:00
Adolfo Gómez García
d8db218c6d * Updated linux agents to include "udsvapp"
* Fixed reloading of master key, to do it "less sensitive" to database connection errros
* Removed nonsense info log from storage
* Added "customCmd" for UDS vApp on linux
2017-12-14 15:17:46 +01:00
Adolfo Gómez García
afbbc342ba Merged v2.2 & fixed typo 2017-12-14 10:52:55 +01:00
Adolfo Gómez García
81dd4e3b8c a little optimization 2017-12-12 19:42:09 +01:00
Adolfo Gómez García
9519c7c95b More fixes to scheduled actions. Now all should work as expected with start/end dates 2017-12-12 18:42:44 +01:00
Adolfo Gómez García
afa7cb8f39 Fixed another calendar issue 2017-12-12 18:04:47 +01:00
Adolfo Gómez García
dc640fd400 Added support so a deployed service can "ignore unused but assigned"
state. That is, UDS now can enforce the check to be ignored.
2017-11-29 12:50:54 +01:00
Adolfo Gómez García
76c822b015 Fixed RDPFile to split linux command lines correctly 2017-11-29 12:49:49 +01:00
Adolfo Gómez García
c7513328eb Smaill fix for authenticators list (so we can determine type) 2017-11-23 06:38:12 +01:00
Adolfo Gómez García
e5f0fcce69 Fixed SHUTOFF on OpenStack 2017-11-21 12:48:44 +01:00
Adolfo Gómez García
5e0d71042d Merge remote-tracking branch 'origin/v2.2' 2017-11-20 15:30:35 +01:00
Adolfo Gómez García
004acbab9a Fixing up thin thin plugin 2017-11-20 14:56:19 +01:00
Adolfo Gómez García
c566ec47a2 Fixes for thin thin plugin 2017-11-20 13:56:28 +01:00
Adolfo Gómez García
3e1a31954a * Added "requestLogoff", to be invoked before "user removal" of a
service
2017-11-20 01:01:52 +01:00
Adolfo Gómez García
3a42fb599c Merge remote-tracking branch 'origin/v2.2' 2017-11-15 15:39:41 +01:00
Adolfo Gómez García
ec5473d99f Fixed autoatrributes && rdp 2017-11-15 15:36:36 +01:00
Adolfo Gómez García
4cf62de3fd Fixing up encoders 2017-11-15 14:21:45 +01:00
Adolfo Gómez García
4c87d96cd3 Merge remote-tracking branch 'origin/v2.2' 2017-11-15 13:27:44 +01:00
Adolfo Gómez García
a43d6af237 Fixing up encoders/decoders 2017-11-15 13:11:34 +01:00
Adolfo Gómez García
f41f431f38 Added "hex" encoder if needed 2017-11-15 13:02:13 +01:00
Adolfo Gómez García
c5af877fce Fixed DBfile new "encoding-decoding' 2017-11-15 13:01:47 +01:00
Adolfo Gómez García
88dd6e7494 Fixed encoding to bzip2 2017-11-15 12:41:40 +01:00
Adolfo Gómez García
7fd7f48ee8 Mergin 2.2 changes into master 2017-11-14 15:19:32 +01:00
Adolfo Gómez García
e69800ccd2 Fixing up removing ".encode(bzip2, base64, zip)" from strings for Python 3 compatibility 2017-11-14 14:51:26 +01:00
Adolfo Gómez García
b1ba02c1f3 Added support or "ignore ssl" cert to openstack (to allow self signed) 2017-11-13 09:23:02 +01:00
Adolfo Gómez García
cb13ac1617 Fixing up REST api for client access 2017-11-10 14:10:26 +01:00
Adolfo Gómez García
dcfc5357aa Merge remote-tracking branch 'origin/v2.2' 2017-11-09 08:20:24 +01:00
Adolfo Gómez García
de051d99ac Small fix 2017-11-09 08:20:03 +01:00
Adolfo Gómez García
86b12f82bf Merge remote-tracking branch 'origin/v2.2' 2017-11-07 11:10:01 +01:00
Adolfo Gómez García
fa1e6a69e8 Added "minValue" (cosmetic) to memory & storage sizes on oVirt Service 2017-11-07 11:09:14 +01:00
Adolfo Gómez García
5360864aed Merge remote-tracking branch 'origin/v2.2' 2017-11-06 15:03:12 +01:00
Adolfo Gómez García
417ddc6d8d * Fixed calendar, so next execution updates correctly on calendar rule
edition
2017-11-06 10:56:35 +01:00
Adolfo Gómez García
238f08b7dd Fixed id on auth list on REST api 2017-11-03 12:13:32 +01:00
Adolfo Gómez García
739ee728d3 upgraded to 2.2 2017-10-30 10:24:45 +01:00
Adolfo Gómez García
b8042f5aa7 Merged changes from 2.2 2017-10-26 14:02:07 +02:00
Adolfo Gómez García
09d6001ef1 Merged changes from 2.2 2017-10-26 14:01:44 +02:00
Adolfo Gómez García
c5b9233d4a Lots of new things
* Now we can have a short name for correct visualization of UDS Services
* We now can allow release services
2017-10-26 13:35:53 +02:00
Adolfo Gómez García
22a8933e82 Added "release" icon (trash) 2017-10-26 10:47:55 +02:00
Adolfo Gómez García
a185baccdd fixed so /rest is allowed 2017-10-25 13:45:22 +02:00
Adolfo Gómez García
9e2a5d8b07 Merge remote-tracking branch 'origin/v2.2' 2017-10-25 13:31:58 +02:00
Adolfo Gómez García
2521f41e76 fixed so now Redirect To Https will redirect ALWAYS :) 2017-10-25 13:26:08 +02:00
Adolfo Gómez García
3f1f2066b4 Merged 2.2 2017-10-19 14:31:16 +02:00
Adolfo Gómez García
815de57b86 fixed executing 2017-10-19 14:27:17 +02:00
Adolfo Gómez García
428ddd493c * Fixed actor version
* Fixed run
2017-10-19 10:38:41 +02:00
Adolfo Gómez García
4de93ddf1f adapted "run" windows registry key value, so it contains also arguments 2017-10-19 08:07:45 +02:00
Adolfo Gómez García
e6b75e3807 Now, run allows the use of a full command line with parameters 2017-10-18 15:27:56 +02:00
Adolfo Gómez García
e835c018b4 Logs for debugging 2017-10-18 13:18:37 +02:00
Adolfo Gómez García
6b88209a93 Coding style related 2017-10-17 14:16:00 +02:00
Adolfo Gómez García
eb7773fb74 Merge remote-tracking branch 'origin/v2.2' 2017-10-17 13:24:23 +02:00
Adolfo Gómez García
098620cd05 Fix 2017-10-17 13:20:20 +02:00
Adolfo Gómez García
1519d7b8a1 Merge remote-tracking branch 'origin/v2.2' 2017-10-17 13:15:17 +02:00
Adolfo Gómez García
214f9c397b Improved "ensureResponseIsOk" to detect non json responses... 2017-10-17 13:14:56 +02:00
Adolfo Gómez García
528d1d3acc Code slyling related 2017-10-16 19:24:28 +02:00
Adolfo Gómez García
f1158b9d42 Merge remote-tracking branch 'origin/v2.2' 2017-10-16 19:08:18 +02:00
Adolfo Gómez García
8a87c2e057 Fixes 2017-10-16 19:08:14 +02:00
Adolfo Gómez García
47ae741952 Fixed exception on "notifyReadyFromOsManager' 2017-10-16 19:06:41 +02:00
Adolfo Gómez García
97dde33c48 Merge remote-tracking branch 'origin/v2.2' 2017-10-16 18:51:59 +02:00
Adolfo Gómez García
907fad4a55 On 2.2 and later, we force the python executable to be "python2.7" on
linux platforms (except for thin udsclient, that will execute python)
2017-10-16 13:08:47 +02:00
Adolfo Gómez García
7c3e289a6b * Deadline now on its own method
* Removed deadline from notifyUrls. It was a nonsense :).
2017-10-16 12:15:46 +02:00
Adolfo Gómez García
1f5a647ff3 Deadline & Fake set to false
* Added deadline to notifyURLS
* Now Fake = False
2017-10-16 12:02:01 +02:00
Adolfo Gómez García
0eebe6a0a5 Fixed Removal of service without os manager on "logout" 2017-10-16 11:10:39 +02:00
Adolfo Gómez García
953d4ac0c9 ¡ 2017-10-13 13:09:15 +02:00
Adolfo Gómez García
b8c09f48db Code style related fixes (a lot!!! :) ) 2017-10-13 13:06:27 +02:00
Adolfo Gómez García
8aa1607fee Fixed auth log 2017-10-13 13:05:45 +02:00
Adolfo Gómez García
a890a957c8 Merge remote-tracking branch 'origin/v2.2' 2017-10-13 12:17:11 +02:00
Adolfo Gómez García
64ed0a9a1f Merge branch 'master' of github.com:dkmstr/openuds 2017-10-13 12:16:59 +02:00
Adolfo Gómez García
0aa1311836 Fixed small bug on "useEmptyCreds". In fact, not used but "bug" exists 2017-10-13 12:16:32 +02:00
Adolfo Gómez García
1ac61edebe small fixes 2017-10-12 02:54:56 +02:00
Adolfo Gómez García
6eaa3fd450 PEP & related 2017-10-12 02:28:43 +02:00
Adolfo Gómez García
81ce78bbbd PEP & related 2017-10-12 02:05:44 +02:00
Adolfo Gómez García
a1478a04d8 Fixing up PEP related 2017-10-12 01:27:26 +02:00
Adolfo Gómez García
6d49ae6667 Fixed IP Machines service && "execute" method of action calendars 2017-10-12 01:23:02 +02:00
Adolfo Gómez García
76ff66661d Merge remote-tracking branch 'origin/v2.2' 2017-10-11 17:55:46 +02:00
Adolfo Gómez García
e60a4bc8fa Added "udsvapp" possibility 2017-10-09 15:18:59 +02:00
Adolfo Gómez García
5ebd081ff3 Merge remote-tracking branch 'origin/v2.2' 2017-10-09 09:21:38 +02:00
Adolfo Gómez García
6e5b73c3b7 Catalan up to date 2017-10-09 09:21:23 +02:00
Adolfo Gómez García
71f04e46be from 2.2 2017-10-05 11:11:35 +02:00
Adolfo Gómez García
cbb6d48cfb Merge remote-tracking branch 'origin/v2.2' 2017-10-05 11:09:42 +02:00
Adolfo Gómez García
ae4330fc9d Fixed custom spice error message on dashboard 2017-10-05 11:08:43 +02:00
Adolfo Gómez García
04a862840c Updating from 2.2 2017-10-05 11:05:18 +02:00
Adolfo Gómez García
b7147661e7 * Fixed several translations && translations upgrade
* Also removed nonsense check for AD
2017-10-05 10:58:25 +02:00
Adolfo Gómez García
3c07d2f667 Several improvements to messages for transports, and minor client
scripts fixed

* Added custom error message for SPICE
* Remover "import QT" from NX client scripts
2017-10-04 11:30:29 +02:00
Adolfo Gómez García
f54d87a295 Fixed NX legacy password generator. The $ must not be scaped to "\$" :) 2017-10-04 11:26:16 +02:00
Adolfo Gómez García
9f386a8d01 Merge remote-tracking branch 'origin/v2.2' 2017-10-02 10:44:54 +02:00
Adolfo Gómez García
ac8a661182 Merge remote-tracking branch 'origin/v2.2' 2017-10-02 10:44:14 +02:00
Adolfo Gómez García
13f97248f6 Fixed OSManager to allow:
1.- Posting "POST"-only messages through "GET" method. (Only basic
messages)
 2.- Allow notify login/logout for user services without os manager
2017-10-02 10:36:45 +02:00
Adolfo Gómez García
786945fcbf Fixiung up og 2017-09-29 12:33:03 +02:00
Adolfo Gómez García
1070b716a2 Fixiung up og 2017-09-29 12:10:21 +02:00
Adolfo Gómez García
ad1bf0fe0b Fixiung up og 2017-09-29 11:49:37 +02:00
Adolfo Gómez García
df70dd4fd8 Fixiung up og 2017-09-29 11:37:37 +02:00
Adolfo Gómez García
3038c545ce Fixiung up og 2017-09-29 11:09:35 +02:00
Adolfo Gómez García
8d3b28e3cb Fixiung up og 2017-09-29 11:05:29 +02:00
Adolfo Gómez García
c431e39d4a Fixiung up og 2017-09-29 11:04:13 +02:00
Adolfo Gómez García
770f2eef09 Fixing up og 2017-09-29 11:01:28 +02:00
Adolfo Gómez García
e702ff6bca Fixing up OpenGnsys 2017-09-29 10:02:44 +02:00
Adolfo Gómez García
c6cc1f2b43 x2go transport fix 2017-09-27 08:07:43 +02:00
Adolfo Gómez García
06f5184ddd Fixed OpenGnsys 2017-09-25 14:18:19 +02:00
Adolfo Gómez García
a071ce5e3e Merge remote-tracking branch 'origin/v2.2' 2017-09-21 15:50:07 +02:00
Adolfo Gómez García
d5688116e3 Merge remote-tracking branch 'origin/v2.1' into v2.2 2017-09-21 15:49:39 +02:00
Adolfo Gómez García
1e6f806563 Added base support for Catalan 2017-09-21 15:49:17 +02:00
Adolfo Gómez García
08ed93121b Added base support for Catalan 2017-09-21 15:48:45 +02:00
Adolfo Gómez García
840cc57fdc Updated with 2.2 version of WinDomainOsManager 2017-09-21 15:37:25 +02:00
Adolfo Gómez García
1ec1104356 Fixed advanced "alt class" setting to be optional 2017-09-21 09:26:34 +02:00
Adolfo Gómez García
cd19eae182 Merge remote-tracking branch 'origin/v2.2' 2017-09-20 10:16:22 +02:00
Adolfo Gómez García
234eb98f0c Included support for retrieving secondary LDAP records so the
information can be completed
2017-09-20 10:14:05 +02:00
Adolfo Gómez García
3c7d0f0e71 Merge remote-tracking branch 'origin/v2.2' 2017-09-19 16:32:16 +02:00
Adolfo Gómez García
fa7ab534a3 Updated openGnsys 2017-09-19 08:33:24 +02:00
Adolfo Gómez García
ee661461a5 Fixed windows domain "release", so if domain is not found can be easyly
identified
2017-09-19 08:32:51 +02:00
Adolfo Gómez García
aecf6854a4 Fixed Domain Os Manager for 2017-09-18 14:13:49 +02:00
Adolfo Gómez García
a3eb1f6e3f Fixing up things for 2.5 2017-09-18 09:46:00 +02:00
Adolfo Gómez García
b9634bfd10 Merged 2.2 2017-09-18 08:35:16 +02:00
Adolfo Gómez García
34cd90f9a1 Fixed macosx CoRD transports && backported OpenGnsys 2017-09-18 08:33:17 +02:00
Adolfo Gómez García
5091b69219 Merge remote-tracking branch 'origin/v2.2' 2017-09-13 14:32:33 +02:00
Adolfo Gómez García
201fb8ff9b A couple of cosmetic fixes 2017-09-13 14:31:41 +02:00
Adolfo Gómez García
d071f86c31 Updated filesaver version 2017-09-13 08:26:51 +02:00
Adolfo Gómez García
1c133eacd0 Fix for Windomain 2017-09-13 08:22:10 +02:00
Adolfo Gómez García
89ed019788 Fixed WinDomainOsManager to, in case of several servers actin as DC, look for the machine on all of them 2017-09-07 15:05:44 +02:00
Adolfo Gómez García
9930f4323c Small fix for windomain os manager, to better inform on errors adding to
group.
2017-09-04 18:12:03 +02:00
Adolfo Gómez García
167eb1861c Merge remote-tracking branch 'origin/v2.2' 2017-09-01 13:06:03 +02:00
Adolfo Gómez García
115beefa8a Fixed RDP TRansport to leave enabled by default clipboard redirection, for backward consistence 2017-09-01 13:05:27 +02:00
Adolfo Gómez García
611f3590e6 Added clipboard enabling/disabling on transport 2017-09-01 12:37:13 +02:00
Adolfo Gómez García
59635839cf Added check so we cannot use "no credentials" with an sec that is not rdp and set default sec level to "rdp" for html5 transport 2017-09-01 12:36:39 +02:00
Adolfo Gómez García
0d13156edf Merge remote-tracking branch 'origin/v2.2' 2017-08-04 15:20:12 +02:00
Adolfo Gómez García
4853729d7c Merge remote-tracking branch 'origin/v2.1' into v2.2 2017-08-04 15:19:58 +02:00
Adolfo Gómez García
e46b0d22e7 Now thinstation package is functional with gtk 2017-08-04 15:19:06 +02:00
Adolfo Gómez García
b5887ad1df Merged & fixed 2.2 changes 2017-08-02 16:29:47 +02:00
Adolfo Gómez García
a8b3b80f75 Merge remote-tracking branch 'origin/v2.1' into v2.2 2017-08-02 16:21:14 +02:00
Adolfo Gómez García
085b0c1393 Fixed Transport to remove references on scripts to Qt 2017-08-02 16:20:52 +02:00
Adolfo Gómez García
e257ca0571 First working (but already non functional) "thin plugin" for thinstation
(and any other linux also ;-) )
2017-08-02 16:20:25 +02:00
Adolfo Gómez García
29e062ba5d Small Fix, so UDS client gets an exception in case of UDS being unable
to identify client platform.
2017-08-02 16:08:46 +02:00
Adolfo Gómez García
2b9cd5508d * Advancing on "thin plugin" for UDS 2017-08-02 15:53:18 +02:00
Adolfo Gómez García
e5a6916109 Fixing up for 2.2 future release 2017-07-27 14:12:45 +02:00
Adolfo Gómez García
6a3093c49d Fix for miniamal server version to use "old method" 2017-07-27 14:04:36 +02:00
Adolfo Gómez García
498154ffb1 Updated version & Initial 2.2 uds client fix so it will support signed scripts 2017-07-27 14:01:04 +02:00
Adolfo Gómez García
79a591180d Removed "sec:rdp" from Linux xfreerdp client 2017-07-26 15:08:33 +02:00
Adolfo Gómez García
1e711eecbb Updated "update" date :) 2017-07-21 07:46:13 +02:00
Adolfo Gómez García
7da01597e6 Enabled HTML5 file sharing as experimental feature 2017-07-20 12:20:19 +02:00
Adolfo Gómez García
9f441c6b22 merged from 2.1 update 1 changes 2017-07-17 13:15:08 +02:00
Adolfo Gómez García
2e4bd4b1db * Fix on recovering v1 WindDomainOsManager
* Added support for "strange" groupnames (with parentheses, quotes, ...)
2017-07-17 12:14:35 +02:00
Adolfo Gómez García
f3f936e401 Improvements for Windows domain os manager (now we can add the machine to a group on creation) 2017-07-14 14:48:18 +02:00
Adolfo Gómez García
90ed08c779 Added a feature so in windows we can have a custom "RunOnce" mechanics
so we can include a custom call if needed.
2017-07-11 21:24:56 +02:00
Adolfo Gómez García
c2874e74c8 added some RDP 2017-07-06 12:35:06 +02:00
Adolfo Gómez García
3a11c9832f Fixed post-script for windows 2017-07-03 14:07:44 +02:00
Adolfo Gómez García
0f6ffb559b Fixed HTML5RDP files upload (commented anyway right now) 2017-07-03 10:37:58 +02:00
Adolfo Gómez
1e96bd2c13 Update README.md 2017-07-01 17:30:07 +02:00
Adolfo Gómez García
4769d7dc51 Added more REST API samples 2017-06-29 11:56:45 +02:00
Adolfo Gómez García
4fc2e98313 small fix for REST1 sample 2017-06-29 10:36:36 +02:00
Adolfo Gómez García
65d4e8f316 Fix so POSTs bodys of UDSActor are never empty 2017-06-27 10:40:15 +02:00
Adolfo Gómez García
876e9ee3b5 Merge remote-tracking branch 'origin/v2.1' 2017-06-20 08:18:36 +02:00
Adolfo Gómez García
09a48c9c5a added usage list to providers 2017-06-20 08:11:41 +02:00
Adolfo Gómez García
ac245e71e9 fix for AD machine removal 2017-06-16 09:56:58 +02:00
Adolfo Gómez García
e5d2c711ce Fixed for 2.1 finsl 2017-06-13 08:08:00 +02:00
Adolfo Gómez García
59e670f44e Merge remote-tracking branch 'origin/v2.1' 2017-06-08 11:34:12 +02:00
Adolfo Gómez García
de5e7380c4 Added a few "pretty" enhacements... 2017-06-08 11:31:47 +02:00
Adolfo Gómez García
2117433f8f Merge remote-tracking branch 'origin/v2.1' 2017-06-08 11:17:57 +02:00
Adolfo Gómez García
3e87c90c67 Added fast admin navigation links 2017-06-08 11:10:39 +02:00
Adolfo Gómez García
4a97872cdd Added usage info 2017-06-08 11:02:34 +02:00
Adolfo Gómez García
7d39e15c18 removed checkpoints 2017-06-06 13:17:55 +02:00
Adolfo Gómez García
77c7d71a96 Merge remote-tracking branch 'origin/v2.1' 2017-06-06 13:16:20 +02:00
Adolfo Gómez García
19e67f5a18 Updated translations 2017-06-06 13:16:03 +02:00
Adolfo Gómez García
ca877e513f Merge remote-tracking branch 'origin/v2.1' 2017-06-06 13:09:46 +02:00
Adolfo Gómez García
3e7c01f7f9 Added security option for HTML5 2017-06-06 12:18:41 +02:00
Adolfo Gómez García
0bda00e43d Added "custom parameter" for xfreerdp 2017-06-05 10:58:45 +02:00
Adolfo Gómez García
fe18faa863 Thistation 2017-06-05 09:55:12 +02:00
Adolfo Gómez García
808c715710 Added POST-CMD support 2017-06-01 12:25:48 +02:00
Adolfo Gómez García
648aad97ea Merge remote-tracking branch 'origin/v2.1' 2017-06-01 11:38:24 +02:00
Adolfo Gómez García
16d458bb69 Fixed locales 2017-06-01 11:38:03 +02:00
Adolfo Gómez García
e8ecf3d057 Merged changes to 2.1 2017-06-01 11:36:07 +02:00
Adolfo Gómez García
22a7e2336e Added config var for convert usernames to lowercase... 2017-06-01 09:35:43 +02:00
Adolfo Gómez García
f773cb5ecc Advancing on thin client & thinstation 2017-05-31 15:34:50 +02:00
Adolfo Gómez García
d1b6891ca7 Creating new "thin" uds client connector 2017-05-31 12:07:13 +02:00
Adolfo Gómez García
a9e65975c5 * Fixed X-Forwarded-Proto (was X-Forwarded-Protocol before...)
* Added "fix" on HTML5 javascript so it can fix the uds actor client
2017-05-26 10:55:47 +02:00
Adolfo Gómez García
c1377255b5 Added comment to metagroup groups combo 2017-05-24 11:52:58 +02:00
Adolfo Gómez García
cce8fa4869 Added double Crypt Method authentication 2017-05-24 10:23:16 +02:00
Adolfo Gómez García
dda1018901 fixed " on group names 2017-05-23 20:11:45 +02:00
Adolfo Gómez García
b44d02dbd9 Fixed tunnel wait 2017-05-22 14:16:38 +02:00
Adolfo Gómez García
cfded58563 Fixed 0x01 for 0x05 on cryptdata for windows rdp 2017-05-19 19:36:07 +02:00
Adolfo Gómez García
8642f4291b added pygtk dependencie to thinstation 2017-05-19 18:45:41 +02:00
Adolfo Gómez García
e83ff8d69d Fixed log to be INFO 2017-05-18 13:13:37 +02:00
Adolfo Gómez García
d8fa71c326 Merge remote-tracking branch 'origin/v2.1' 2017-05-18 12:39:42 +02:00
Adolfo Gómez García
16edf04f1d Updated build packages 2017-05-18 12:39:30 +02:00
Adolfo Gómez García
cbaa5cef46 Fixed error on udsclient for Linux that was creating the log file on
/tmp instead of home user folder
2017-05-18 12:36:05 +02:00
Adolfo Gómez García
aa4a96663c * Fixed a bug with removal/checkForRemoval on UserServiceManager that,
in case of a publication that finishes instantly (no one before 2.5
version), the valid services got into error instead of removal process.
* Added OpenGnsys, now works correctly (needs to do real tests against)
* Fixed template getting from adm interface for django >1.10
2017-05-18 12:31:03 +02:00
Adolfo Gómez García
8dc0239548 * Added "fake" opengnsys server
* Advanced with provider & service for Opengnsys
2017-05-17 13:55:38 +02:00
Adolfo Gómez García
da75dc79a7 Fixed OpenStack error information 2017-05-17 11:55:18 +02:00
Adolfo Gómez García
9965be5a76 Fixed MAC address to uppercase on Free & OpenStack 2017-05-16 14:49:34 +02:00
Adolfo Gómez García
9d6f3111da Adding thinstation stuff 2017-05-16 13:30:47 +02:00
Adolfo Gómez García
0d02dcb83b Merge remote-tracking branch 'origin/v2.1' 2017-05-16 09:37:38 +02:00
Adolfo Gómez García
9265ab3ac3 Fixed symlinks 2017-05-16 09:37:14 +02:00
Adolfo Gómez García
e5a770345b Merge remote-tracking branch 'origin/v2.1' 2017-05-16 09:32:03 +02:00
Adolfo Gómez García
34e70394e9 Updating directory structure 2017-05-16 09:30:52 +02:00
Adolfo Gómez García
3a750018e2 New "thin uds client" 2017-05-16 09:22:10 +02:00
Adolfo Gómez García
922659d284 Merge remote-tracking branch 'origin/v2.1' 2017-05-13 18:37:13 +02:00
Adolfo Gómez García
390eea5c3d Fixed translations 2017-05-13 18:27:31 +02:00
Adolfo Gómez García
dbf94b4c17 Fixed a couple of things 2017-05-13 18:24:59 +02:00
Adolfo Gómez García
bc8b2de151 Enable usb redir added 2017-05-13 18:21:26 +02:00
Adolfo Gómez García
c846bae301 Fixed report generation on 2.5 2017-05-10 10:48:37 +02:00
Adolfo Gómez García
bdefd11ade Fixing up proxy 2017-05-10 09:50:49 +02:00
Adolfo Gómez García
b73408043e Commented openstack volume availability for publishing only if not in
use.
2017-05-09 17:49:59 +02:00
Adolfo Gómez García
e8888afd22 Merge remote-tracking branch 'origin/v2.1' 2017-05-09 10:20:14 +02:00
Adolfo Gómez García
2ba6e4fa7c Updated locales & fixed usage summary report 2017-05-09 10:17:32 +02:00
Adolfo Gómez García
58d0f10eb0 Merge remote-tracking branch 'origin/v2.1' 2017-05-09 09:42:18 +02:00
Adolfo Gómez García
9bbd7fd57d Split usb sharing & auto new usb sharing into two options 2017-05-09 08:35:17 +02:00
Adolfo Gómez García
0ec3cb104a Fixed reversed options on spice transport 2017-05-09 08:25:22 +02:00
Adolfo Gómez García
72eedd8978 Merge remote-tracking branch 'origin/v2.1' 2017-05-08 09:33:42 +02:00
Adolfo Gómez García
b1f1d6701e removed log 2017-05-08 09:32:21 +02:00
Adolfo Gómez García
b2851b3c65 Merge remote-tracking branch 'origin/v2.1' 2017-05-08 09:31:32 +02:00
Adolfo Gómez García
d54b447bf7 Added "allow" smartcard redirection also, and added an small fix for
"usb sharing"
2017-05-05 14:00:44 +02:00
Adolfo Gómez García
6ca7c5fb34 Enable USB Auto Sharing controled by UDS Transport now 2017-05-05 13:43:00 +02:00
Adolfo Gómez García
ca9ad5efbd Seems that opennebula allows "spaces" on imagenames???. Fixed this removing it, and enhaced error notification in case of an image not found 2017-05-05 09:25:54 +02:00
Adolfo Gómez García
b5154cbbe9 added report for UPC 2017-05-05 01:43:19 +02:00
Adolfo Gómez García
a3ad88b9e6 Removed "adminitrative" permissions (left just full access, the other
was in fact an synonim)
2017-05-03 14:30:51 +02:00
Adolfo Gómez García
a4b9bf1fb9 Added new report for UPC 2017-05-03 12:30:59 +02:00
Adolfo Gómez García
a95684d864 Fixed tunWait 2017-04-20 19:24:28 +02:00
Adolfo Gómez García
6057e8a3f8 Removed unusefull exception log :) 2017-04-19 13:32:18 +02:00
Adolfo Gómez García
4fbbfb8d10 Added possible support for personalized logout url on login form 2017-04-19 13:24:32 +02:00
Adolfo Gómez García
2daafa2c4a Added "allow cross domain logins" as comment to login view 2017-04-19 10:26:18 +02:00
Adolfo Gómez García
b8e1e17735 Merge remote-tracking branch 'origin/v2.1' 2017-04-19 08:23:44 +02:00
Adolfo Gómez García
846489244e Fixed removal of users & authenticators 2017-04-18 14:24:22 +02:00
Adolfo Gómez García
ec33b46848 Removed trying to get opener StorageSession, as UDS will never do that, and under some cirtustances it may fail (for exmple, if using UDS API for getting a connection from a cross domain 2017-04-18 13:39:31 +02:00
Adolfo Gómez García
06d4909447 Merge remote-tracking branch 'origin/v2.1' 2017-04-18 00:32:44 +02:00
Adolfo Gómez García
e067f09958 Fixed added by Gliphtodown backported to 2.1 2017-04-18 00:32:27 +02:00
Adolfo Gómez
498a1a51eb Merge pull request #6 from glyptodon/update-glypto-copyright
Update Glyptodon copyright notice in applicable files.
2017-04-18 00:24:31 +02:00
Adolfo Gómez
3862605e3a Merge pull request #4 from glyptodon/remove-unused
Remove unused portions of legacy Guacamole UI.
2017-04-18 00:23:41 +02:00
Adolfo Gómez
b713ac9172 Merge pull request #5 from glyptodon/check-window-objects
Verify existence of localStorage / opener before attempting to reference.
2017-04-18 00:23:30 +02:00
Michael Jumper
1e96917c27 Remove unused CSS files. 2017-04-17 14:42:50 -07:00
Michael Jumper
5adc47fab8 Remove old, commented-out code. 2017-04-17 14:42:50 -07:00
Michael Jumper
2ca3b7ba25 Update copyright notice in applicable files. 2017-04-17 14:42:14 -07:00
Michael Jumper
8af8c91e2e Do not attempt to reference opener unless it is actually defined. 2017-04-17 14:41:57 -07:00
Michael Jumper
c7ba6e84b9 Do not attempt to reference localStorage unless it has been verified to exist. 2017-04-17 14:41:57 -07:00
Adolfo Gómez García
469fbaacda Merge remote-tracking branch 'origin/v2.1' 2017-04-17 23:11:59 +02:00
Adolfo Gómez García
8cbfcbb104 Removed "annoying" messages on log when need to retry database accesss 2017-04-17 22:52:31 +02:00
Michael Jumper
ba53a37d6f Remove unused GuacUI interface component classes. 2017-04-17 13:28:15 -07:00
Michael Jumper
d7006264ad Remove unused GuacUI utility functions. 2017-04-17 13:28:15 -07:00
Michael Jumper
3acda2fa28 Remove legacy code driving non-existant administration UI. 2017-04-17 13:28:15 -07:00
Michael Jumper
543e16500f Remove tracking of connection history and thumbnails. 2017-04-17 13:28:14 -07:00
Adolfo Gómez García
2a0a243dd1 merged 2.1 2017-04-10 02:45:17 +02:00
Adolfo Gómez García
2b5cf494db backported pom.xml from 2.5 2017-04-10 02:43:24 +02:00
Adolfo Gómez García
cdb3a2e8df Fixed version of guacamole transport 2017-04-10 02:40:32 +02:00
Adolfo Gómez
e7f6d8ddeb Merge pull request #3 from glyptodon/update-guac-api
Update to latest Guacamole API versions.
2017-04-10 02:33:59 +02:00
Adolfo Gómez García
39158bd7ae Removed download for Microsoft old RDP app 2017-04-10 01:43:42 +02:00
Michael Jumper
f68f78f48c Update to latest Guacamole API versions. 2017-04-08 16:58:03 -07:00
Adolfo Gómez García
95a695ee88 Fixed mac os x virt-viewer download url 2017-04-07 12:00:08 +02:00
Adolfo Gómez García
c5eb0432b3 Merge remote-tracking branch 'origin/v2.1' 2017-04-06 20:33:16 +02:00
Adolfo Gómez García
a860732ed2 small visual fix 2017-04-06 20:32:08 +02:00
Adolfo Gómez García
d6539dc543 Added visible attribute to services pools 2017-04-06 20:30:49 +02:00
Adolfo Gómez García
f2523fa8f2 Merge remote-tracking branch 'origin/v2.1' 2017-04-06 19:56:29 +02:00
Adolfo Gómez García
5d391a9fc4 Added exception log on case of invalid 2017-04-04 10:01:01 +02:00
Adolfo Gómez García
148cd249cd If removing takes too long, mark it as errored 2017-04-03 10:24:27 +02:00
Adolfo Gómez García
eb6ac84b5b Merge remote-tracking branch 'origin/v2.1' 2017-03-31 10:38:05 +02:00
Adolfo Gómez García
57e643333e Fixed TRanslations
Fixed SPICE name
2017-03-31 10:37:16 +02:00
Adolfo Gómez García
5794fab7da By default, on 2.1, linux machines will do a reboot after configure. 2017-03-31 10:23:39 +02:00
Adolfo Gómez García
3999507129 Merge remote-tracking branch 'origin/v2.1' 2017-03-31 08:08:31 +02:00
Adolfo Gómez García
9955e7bcff Fixed tunneled access for SPICE for opennebula (no secure port, no need
of channel config...)
2017-03-30 23:05:15 +02:00
Adolfo Gómez García
03db789be9 Merge remote-tracking branch 'origin/v2.1' 2017-03-29 13:33:59 +02:00
Adolfo Gómez García
86b252916c Set ready to y so initial wait is not done 2017-03-29 13:33:39 +02:00
Adolfo Gómez García
4ce97b4e7a removed duplicate except 2017-03-29 13:07:40 +02:00
Adolfo Gómez García
621722f5e3 Merge remote-tracking branch 'origin/v2.1' 2017-03-29 13:03:53 +02:00
Adolfo Gómez García
e81a8fdc5f Fixed ovirt.. 2017-03-29 13:02:17 +02:00
Adolfo Gómez García
897682eae4 Merge remote-tracking branch 'origin/v2.1' 2017-03-29 11:00:32 +02:00
Adolfo Gómez García
92cf8c36bd fixed ou with spaces 2017-03-29 10:53:34 +02:00
Adolfo Gómez García
5a3c14db2d Fixed SPICE with powered off machines (fixed check connection) 2017-03-29 10:23:07 +02:00
Adolfo Gómez García
de07a4f3cd Another small fix 2017-03-28 15:20:23 +02:00
Adolfo Gómez García
f531d338a0 Merge remote-tracking branch 'origin/v2.1' 2017-03-28 15:12:50 +02:00
Adolfo Gómez García
320a530bbc Several fixes so we can check availability of spice transport BEFORE
user tries to access it.
2017-03-28 15:12:14 +02:00
Adolfo Gómez García
615ed11197 Fixing up opennebula things 2017-03-28 14:27:36 +02:00
Adolfo Gómez García
5037fd2bd4 Merge remote-tracking branch 'origin/v2.1' 2017-03-27 10:36:48 +02:00
Adolfo Gómez García
e945ad9fe8 A couples of fixes for opennebula 2017-03-27 10:35:53 +02:00
Adolfo Gómez García
9cf5291064 Merge remote-tracking branch 'origin/v2.1' 2017-03-23 14:04:55 +01:00
Adolfo Gómez García
be3c242a7d Added delay on actor EINTR 2017-03-23 13:55:32 +01:00
Adolfo Gómez García
c1ac0d4734 merged ipc from actor 2.1 2017-03-23 10:01:27 +01:00
Adolfo Gómez García
f86712a05a ignore EINTR on connection error 2017-03-23 09:58:36 +01:00
Adolfo Gómez García
777ca4c016 Keep running on case of commmunitacion error with uds server... 2017-03-23 09:40:56 +01:00
Adolfo Gómez García
d838c8c9fe Merge remote-tracking branch 'origin/v2.1' 2017-03-22 15:07:03 +01:00
Adolfo Gómez García
f715f48a7b * Now if notifyReadyFromOsManager raises an error, puts the machine on
"error" state
* Fixed L2 cache on oVirt, that was not working correctly con 4.x
versions
2017-03-22 15:04:19 +01:00
Adolfo Gómez García
315dd77a5a Ovirt publication now take into account removed 2017-03-22 13:10:10 +01:00
Adolfo Gómez García
fd056eab9f Merge remote-tracking branch 'origin/v2.1' 2017-03-22 12:43:09 +01:00
Adolfo Gómez García
82f7f56590 Another small typo 2017-03-22 12:32:20 +01:00
Adolfo Gómez García
8e594c7c7f Fixed indent 2017-03-22 12:30:34 +01:00
Adolfo Gómez García
e99c77a97f fix for ovirt python sdk types 2017-03-22 12:03:11 +01:00
Adolfo Gómez García
cbc66f4017 Merge remote-tracking branch 'origin/v2.1' 2017-03-22 11:55:51 +01:00
Adolfo Gómez García
a80fc629a2 Backported ovirt cleanups from 2.5 to 2.1 2017-03-22 11:55:39 +01:00
Adolfo Gómez García
f5d1e39121 Fixes for ovirt cleanup 2017-03-22 11:53:59 +01:00
Adolfo Gómez García
8b644d4fec Removed "free old macs??" 2017-03-22 11:26:38 +01:00
Adolfo Gómez García
c981935270 Fixes for ovirt housekeeping 2017-03-22 11:10:28 +01:00
Adolfo Gómez García
8fb4f190e6 Added defred removal for cleaning up on ovirt as done on other
hypervisors
2017-03-22 10:47:56 +01:00
Adolfo Gómez García
4e2e023ac6 Merge remote-tracking branch 'origin/v2.1' 2017-03-22 10:13:48 +01:00
Adolfo Gómez García
17196ac31d Fixed 404 error on oVirt access 2017-03-22 10:01:20 +01:00
Adolfo Gómez García
9c0c3bcade Merge remote-tracking branch 'origin/v2.1' 2017-03-22 01:55:03 +01:00
Adolfo Gómez García
632bb3e6d4 Fixed openstack support for newer versions 2017-03-21 15:46:13 +01:00
Adolfo Gómez García
5287bfbe9c merged 2.1 fixes 2017-03-20 21:23:03 +01:00
Adolfo Gómez García
def1c59e4c Added CredSSP Support parameter to transport 2017-03-20 21:17:48 +01:00
Adolfo Gómez García
2acaa74270 Fixes & merges 2017-03-17 13:39:54 +01:00
Adolfo Gómez García
e90e56c426 Set enablecredsspsupport to 0 to allow windows10->windows10 connections
to work under some circustances...
2017-03-17 13:29:36 +01:00
Adolfo Gómez García
5f1676e56b Added usb support workaround for 4.0 & 4.1 of ovirt 2017-03-17 10:05:03 +01:00
Adolfo Gómez García
d816b141b1 Merge remote-tracking branch 'origin/v2.1' 2017-03-16 15:34:08 +01:00
Adolfo Gómez García
72230c5a60 Fixed linux actor with KDE
Removed temporally usb support for 4.x until a fix/workaround is found
2017-03-16 15:33:36 +01:00
Adolfo Gómez García
4793667435 * Fixed signatures && rdp transport direct now works fine again 2017-03-15 10:54:06 +01:00
Adolfo Gómez García
f86c5942f8 Merge remote-tracking branch 'origin/v2.1' 2017-03-15 10:03:37 +01:00
Adolfo Gómez García
fad5eca5b9 Fixed cord tunneled access for rdp 2017-03-15 09:57:13 +01:00
Adolfo Gómez García
a5b17d3015 Upgrading transports to new secured method 2017-03-15 09:46:51 +01:00
Adolfo Gómez García
1af160608e Merge remote-tracking branch 'origin/v2.1' 2017-03-14 13:46:20 +01:00
Adolfo Gómez García
8054f088b9 Added custom message text for calendar limitation 2017-03-14 13:45:38 +01:00
Adolfo Gómez García
f244bb7ece Merge remote-tracking branch 'origin/v2.1' 2017-03-10 13:24:17 +01:00
Adolfo Gómez García
544b8b7b25 Locales 2017-03-10 13:24:07 +01:00
Adolfo Gómez García
55964b7e3f Fixing up for signed-client code 2017-03-10 13:18:34 +01:00
Adolfo Gómez García
35a3e48b89 merged 2017-03-10 10:04:19 +01:00
Adolfo Gómez García
9944854b7b Working on new signed client scripts 2017-03-10 10:02:16 +01:00
Adolfo Gómez García
4d6f54f54c fixed tunnel wait 2017-03-10 10:00:34 +01:00
Adolfo Gómez García
2004f4f882 Added "preconnect" script for Linux 2017-03-09 17:34:28 +01:00
Adolfo Gómez García
6e6d7a8795 Fixed client & signature for RDP tunnel 2017-03-08 17:43:09 +01:00
Adolfo Gómez García
bf85332492 Merge remote-tracking branch 'origin/v2.1' 2017-03-08 17:38:21 +01:00
Adolfo Gómez García
08e33ee20e Fixed RDP tunnel 2017-03-08 17:01:44 +01:00
Adolfo Gómez García
0b928476d1 Adding signatures & signature checking for client scripts 2017-03-08 15:23:37 +01:00
Adolfo Gómez García
88fb4ce1b7 Merge remote-tracking branch 'origin/v2.1' 2017-03-07 10:41:17 +01:00
Adolfo Gómez García
330973ac30 * Fixed calendars "required" fields not being honored
* Fixed open nebula "volatile" disks
2017-03-07 10:26:47 +01:00
Adolfo Gómez García
1ad7385954 Merge remote-tracking branch 'origin/v2.1' 2017-03-06 14:17:28 +01:00
Adolfo Gómez García
f78c755f12 Several fixes for XenServer and L2 Cache... 2017-03-06 14:17:07 +01:00
Adolfo Gómez García
bbc2cdfa30 Fixed Opennebula & Xen connectors 2017-03-06 12:26:47 +01:00
Adolfo Gómez García
cdac261561 Merge remote-tracking branch 'origin/v2.1' 2017-03-06 09:31:03 +01:00
Adolfo Gómez García
8ebc0aeaaf Refactoring 2017-03-06 09:30:36 +01:00
Adolfo Gómez García
d566285098 Minor fixes 2017-03-06 08:40:22 +01:00
Adolfo Gómez García
4c7b48588f Fixed ovirt 4 client "unicode" problems :)
*
2017-03-03 11:03:09 +01:00
Adolfo Gómez García
55dd16d508 Refactoring fixing some code issues 2017-03-03 08:32:46 +01:00
Adolfo Gómez García
22313a517f Small opennebula fix for better control of certain situations... 2017-03-03 08:30:24 +01:00
Adolfo Gómez García
0c7a4911d2 Small message fix 2017-03-02 22:34:33 +01:00
Adolfo Gómez García
f11bccc868 Last fixes for OpenNebula (now correctly detect "done" VM State) 2017-02-28 11:38:17 +01:00
Adolfo Gómez García
c62e90f0a1 Small fix for better cancel on opennebula 2017-02-28 10:28:35 +01:00
Adolfo Gómez García
70dc779fc4 refactoring & fixes 2017-02-27 09:41:32 +01:00
Adolfo Gómez García
170319f871 Fix for very very weird situation (invalid argument in case no OS was
detected...)
2017-02-27 08:11:46 +01:00
Adolfo Gómez García
c6dd782150 * Fixed webLogout if we accesed UDS using ticketing system 2017-02-27 07:57:47 +01:00
Adolfo Gómez García
cc7740bafb Translation Fix 2017-02-27 07:45:38 +01:00
Adolfo Gómez García
1626fe96b1 Fixed getting password for access spice from OpenNebula 2017-02-22 13:32:28 +01:00
Adolfo Gómez García
efbca46af9 small typo 2017-02-22 12:51:32 +01:00
Adolfo Gómez García
548f44b1a7 last fixes 2017-02-22 12:30:02 +01:00
Adolfo Gómez García
2664be7ec4 fixes for linux actor 2017-02-22 11:49:42 +01:00
Adolfo Gómez García
bd3d0dd006 Minor fixes for actor for linux 2017-02-22 10:38:27 +01:00
Adolfo Gómez García
a83e218679 * Fixed use of Spice over OpenNebula
* Minor cosmetic fixes :)
2017-02-21 14:51:25 +01:00
Adolfo Gómez García
240be81f26 Big refactoring towards future 3.x version 2017-02-17 20:22:52 +01:00
Adolfo Gómez García
8ee34cd42b Coherence 2017-02-17 14:12:43 +01:00
Adolfo Gómez García
1ad57ee70c Simple fix 2017-02-17 14:11:58 +01:00
Adolfo Gómez García
c9ab76c19c Added infor message for multple join :) 2017-02-14 13:35:30 +01:00
Adolfo Gómez García
217655c276 Fixes for joining domains in multi steps using key from registro (HKEY_LOCAL_MACHINE\Sotware\UDSEntepriseActor, value "join" of type string must contain "old" (remenber that in 64 bits, this key can be under WOW3264Node) 2017-02-14 12:05:36 +01:00
Adolfo Gómez García
c80535fabb small fix for base rdp to backwards compatibility 2017-02-14 10:27:48 +01:00
Adolfo Gómez García
a499f13e56 fixed urls for dispatchers for django 1.10 2017-02-14 09:56:13 +01:00
Adolfo Gómez García
4e8b267da5 Merge remote-tracking branch 'origin/v2.1' 2017-02-14 09:54:49 +01:00
Adolfo Gómez García
57d1041f87 Fixed DBFile not found on "url" method 2017-02-14 09:53:41 +01:00
Adolfo Gómez García
bb41021eee Merge remote-tracking branch 'origin/v2.1' 2017-02-13 17:28:46 +01:00
Adolfo Gómez García
b56bf7b13f updated translations 2017-02-13 17:28:27 +01:00
Adolfo Gómez García
c7d9ed8d78 Fixes from 2.1 merge 2017-02-13 17:23:48 +01:00
Adolfo Gómez García
053eb55355 Merge remote-tracking branch 'origin/v2.1' 2017-02-13 17:09:16 +01:00
Adolfo Gómez García
3a137213a7 * Fixed mistake on osmanager dashboard template
* Added "custom string" to Linux Clients using xfreerdp client for
printer & smartcard
2017-02-13 16:58:35 +01:00
Adolfo Gómez García
9084c0e8b0 Merged from 2.1 2017-02-09 20:13:51 +01:00
Adolfo Gómez García
9c3d67a34c Fixes to OG 2017-02-09 20:04:38 +01:00
Adolfo Gómez García
90cb224c9a Translations fixes 2017-02-09 20:03:39 +01:00
Adolfo Gómez García
69ad1baa7d Translations fixes 2017-02-09 20:01:15 +01:00
Adolfo Gómez García
0d42fbdc84 Login & Info 2017-02-09 08:21:14 +01:00
Adolfo Gómez García
08f442b809 Started OpenGnsys UDS Provider 2017-02-09 08:12:56 +01:00
Adolfo Gómez García
6d2dee2664 Removed "print" 2017-02-09 07:52:30 +01:00
Adolfo Gómez García
ace11fd77a Added timeout to RDP Tranpsort & little fix for OpenNebula access using SPICE 2017-02-08 11:23:52 +01:00
Adolfo Gómez García
c3c11f3326 Fixed merge mistake 2017-02-07 07:55:00 +01:00
Adolfo Gómez García
f1a7c4661e Merge remote-tracking branch 'origin/v2.1' 2017-02-07 07:52:47 +01:00
Adolfo Gómez García
84d3a2d67f Added sample .service 2017-02-07 07:52:24 +01:00
Adolfo Gómez García
afa6f62daa Some additions yo HTML5 transport 2017-02-02 15:35:27 +01:00
Adolfo Gómez García
6c8f9affc2 Addedl length to name (128 max) 2017-02-02 14:10:52 +01:00
Adolfo Gómez García
fa0acb6a1a Locale updates (included arabian translation) 2017-02-02 00:26:21 +01:00
Adolfo Gómez García
4fa7d26191 Minor text upgrades 2017-02-02 00:15:23 +01:00
Adolfo Gómez García
186190ddff * Fixed Proxy model (1 more fix to go)
* Fixed names on coffee script files
* Added proxies admin interface
2017-01-31 09:26:18 +01:00
Adolfo Gómez García
9e2a1cc9f9 done accounting usage of services 2017-01-31 07:20:23 +01:00
Adolfo Gómez García
310d3ca618 Merge remote-tracking branch 'origin/v2.1' 2017-01-30 10:58:30 +01:00
Adolfo Gómez García
c8d26199cd Updating dashboard 2017-01-30 10:58:21 +01:00
Adolfo Gómez García
e22f489038 added temporary storage in memory for stlite 2017-01-30 10:57:35 +01:00
Adolfo Gómez García
11100e3fda Enhanced performance on sqlite 2017-01-30 10:41:32 +01:00
Adolfo Gómez García
a601220771 Updating dashboard to include accounts & proxy 2017-01-30 08:17:56 +01:00
Adolfo Gómez García
9b0e1eb7ce updated sample settings tu current version 2017-01-26 06:56:46 +01:00
Adolfo Gómez García
eeaef4604a Merge remote-tracking branch 'origin/v2.1' 2017-01-26 06:30:25 +01:00
Adolfo Gómez García
047eac18a7 added trace file for connections checking tracing 2017-01-26 06:26:45 +01:00
Adolfo Gómez García
cd45b9359c Merged from 2.1 2017-01-25 12:36:42 +01:00
Adolfo Gómez García
1b1ec6d736 Merge remote-tracking branch 'origin/v2.1' 2017-01-25 12:30:39 +01:00
Adolfo Gómez García
32b5354a15 fixed meta group information 2017-01-25 12:28:28 +01:00
Adolfo Gómez García
0d085ba708 Fixed RDP to add "font smoothing" capability
Fixed users_groups metagroups information
2017-01-25 10:49:27 +01:00
Adolfo Gómez García
d184f0eec3 Updated css for administration, now it easy access elements 2017-01-25 05:42:53 +01:00
Adolfo Gómez García
d9454fea63 Merge remote-tracking branch 'origin/v2.1' 2017-01-24 09:57:29 +01:00
Adolfo Gómez García
675d502f73 Added information for groups 2017-01-24 09:56:01 +01:00
Adolfo Gómez García
3f110fb6c6 Merged from 2.1 2017-01-23 11:54:35 +01:00
Adolfo Gómez García
4268004fcf Added information button (and information) to users, so certain information can be found more easily 2017-01-23 11:45:01 +01:00
Adolfo Gómez García
aabc5540d0 Fixes for several user text so the can be better understand 2017-01-20 11:01:39 +01:00
Adolfo Gómez García
09a49a1cb2 * Renamed udsProxy to udsproxy
* Woring first version proxy
* Added basic sample config file for udsproxy
* Added daemonize example for udsproxy
Fixed os manager treatment of ready
2017-01-20 10:29:33 +01:00
Adolfo Gómez García
68806c6366 Removed check of FQDN from domain 2017-01-20 09:40:28 +01:00
Adolfo Gómez García
d42482b6c3 Removing qt imports from plugin scripts 2017-01-20 06:54:27 +01:00
Adolfo Gómez García
83ed44b399 Merge remote-tracking branch 'origin/v2.1' 2017-01-20 05:35:16 +01:00
Adolfo Gómez García
343fed3245 Fixed & updated translations 2017-01-20 05:34:55 +01:00
Adolfo Gómez García
d1f4ce0884 * Added new images
* Fixes on Dashboard (advanced new sidevar disposition)
* Added Proxy element to DB (needs to finish this)
2017-01-20 04:58:05 +01:00
Adolfo Gómez García
d3417a1c79 Implemented "proxyRequest" method 2017-01-20 02:19:49 +01:00
Adolfo Gómez García
1a2619c170 * Advancing on proxy
* Preparing UDS to allow "proxied" requests to services (to simplify
access to remote "hidden" networks)
2017-01-19 18:50:00 +01:00
Adolfo Gómez García
ad5b8dcded Added support for using a proxy on requests methods to services 2017-01-19 18:38:28 +01:00
Adolfo Gómez García
16997b6298 Merging 2.1 fixes 2017-01-19 12:52:33 +01:00
Adolfo Gómez García
519e36e7bd Advancing on admin dashboard & accounting 2017-01-19 12:47:01 +01:00
Adolfo Gómez García
c740457860 Fixed doing "pkill" in correct session logout (only needs to do this on session timeout and persistent machines...) 2017-01-19 12:46:22 +01:00
Adolfo Gómez García
1d417c6075 Removed pkill right now 2017-01-19 11:02:33 +01:00
Adolfo Gómez García
dcc870d8e0 starting also proxy 2017-01-19 04:55:44 +01:00
Adolfo Gómez García
ab8cb7a7e0 Initial UDS Proxy for networks behind firewalls 2017-01-18 20:25:13 +01:00
Adolfo Gómez García
ec7d3d39bd Fixed a lot of things from javi 2017-01-17 11:17:55 +01:00
Adolfo Gómez García
5897cf33f2 Fixed 0024 migration to include also tags
Started accounts admin gui
2017-01-17 08:57:17 +01:00
Adolfo Gómez García
4401985f3c Adding constraints to cache and advancing so we can make use efficiently a predefined pool with uds & uds actor 2017-01-12 03:27:42 +01:00
Adolfo Gómez García
4e972e0aff * Added background color for selected items on admin choices
* Fixes to sample settings file for django 1.10
2017-01-11 02:27:29 +01:00
Adolfo Gómez García
4a16707be3 Merge remote-tracking branch 'origin/v2.1' 2017-01-10 17:20:07 +01:00
Adolfo Gómez García
2e98197376 Fixed to x2go transport 2017-01-10 17:19:29 +01:00
Adolfo Gómez García
bf131f896c Merged 2.1 changes 2017-01-10 02:24:04 +01:00
Adolfo Gómez García
df17a86820 Added a Physical "single machine" service to physicals machines
provider.
Fixed textbox admin template to honor "required"
2016-12-02 12:13:46 +01:00
Adolfo Gómez García
54c751e4c5 Removed "files" from actors' debian files (redundant? :) ) 2016-12-02 08:21:01 +01:00
Adolfo Gómez García
151d35459e Added execution of script on /etc/udsactor/post on Linux Actor after
getting "ready" on machine...
2016-11-28 09:47:31 +01:00
Adolfo Gómez García
1ae22ff249 Fixing opennebula password spice access 2016-11-24 10:06:25 +01:00
Adolfo Gómez García
983114af88 Updated translations 2016-11-24 09:55:04 +01:00
Adolfo Gómez García
8a828bd087 For testing experimental SPICE support on opennebula 2016-11-23 10:13:10 +01:00
Adolfo Gómez García
506364d578 Merged with 2.1 2016-11-22 11:14:38 +01:00
Adolfo Gómez García
76fc938604 Added limitation for users authenticated using tickets. (Tickets are
used from external apps to provide acces to one machine, but not to
provide access to all platform...)
2016-11-22 11:09:49 +01:00
Adolfo Gómez García
c08cb38dbc Fixing tunneled access for ovirt in case there is only "secure port" and
no "unsecure port"....
2016-11-21 16:49:37 +01:00
Adolfo Gómez García
f5dcb73e33 Fixed for mysql 5.7 2016-11-17 14:18:50 +01:00
Adolfo Gómez García
4108cf4df7 Added to enumeate by default images, templates & vms of user & his
group.
2016-11-10 11:38:05 +01:00
Adolfo Gómez García
f33c536adf Minor cosmetic changes 2016-11-07 03:03:12 +01:00
Adolfo Gómez García
a66b36e142 Finished with x2go? (more tests to go, but seems good right now...) 2016-11-07 02:59:38 +01:00
Adolfo Gómez García
c9bff899ba Added "experimental" to x2go transports 2016-11-07 02:36:46 +01:00
Adolfo Gómez García
82097b67f4 X2Go Working on linux & Windows 2016-11-07 02:35:23 +01:00
Adolfo Gómez García
3a58e0e446 * Fixed calendar rules with 0 interval
* Running X2Go direct connection from windows
* fixed Actor to notify correctly listening address on ip chang
2016-11-02 10:30:19 +01:00
Adolfo Gómez García
5ce61e1f98 Fixed "0" interval rules, that could hang UDS index page & consume all
memory
2016-10-31 12:55:56 +01:00
Adolfo Gómez García
5af198db75 More fixes (in fact, fixing fixes... :P) for actors 2016-10-27 08:25:30 +02:00
Adolfo Gómez García
1f6279cd46 Replaced REST listener address to listen on 0.0.0.0 so we do not need to
reassing listener on case of ip change of VM.
2016-10-27 08:05:01 +02:00
Adolfo Gómez García
a07f1d5b24 Advancing on x2go implementation 2016-10-24 16:59:29 +02:00
Adolfo Gómez García
26c0532fd5 first injection test seems to work 2016-10-23 22:09:32 +02:00
Adolfo Gómez García
9901bc2c8f *Updating linux client
* Updating x2go
2016-10-23 21:20:31 +02:00
Adolfo Gómez García
715957feb2 Some advances on x2go 2016-10-20 10:00:09 +02:00
Adolfo Gómez García
c7dc1e8b81 advancing on x2go support 2016-10-19 11:54:12 +02:00
Adolfo Gómez García
f1704787b8 Merge remote-tracking branch 'origin/v2.1' 2016-10-14 10:59:24 +02:00
Adolfo Gómez García
00798e5927 Merge remote-tracking branch 'origin/v2.0' into v2.1 2016-10-14 10:59:12 +02:00
Adolfo Gómez García
92c3fbd827 Update checkuuid timeout from 2 to 5 2016-10-14 10:58:41 +02:00
Adolfo Gómez García
eb3c61f0ea merge changes from 2.1 2016-10-14 09:33:53 +02:00
Adolfo Gómez García
a68837bf4b fixed new sub-menus for tranports 2016-10-14 09:30:04 +02:00
Adolfo Gómez García
387b7f51d4 * Added support for multi-level new menu items (for transport for
example, they are going too long...)
* Fixed all transports to include group
2016-10-14 08:17:52 +02:00
Adolfo Gómez García
0711bf5db3 merged from 2.1 2016-10-14 06:56:43 +02:00
Adolfo Gómez García
83a94d0ece updated operations from previous releases 2016-10-14 06:54:38 +02:00
Adolfo Gómez García
649a3515fc Added backport of x2go development branch for 2.1 version 2016-10-14 06:52:15 +02:00
Adolfo Gómez García
fe8f8be1d8 Merge remote-tracking branch 'origin/v2.0' into v2.1 2016-10-14 06:51:29 +02:00
Adolfo Gómez García
ea49e18f80 Now in case of connection error on checkuuid, the result will be that the check is correcot 2016-10-14 06:51:10 +02:00
Adolfo Gómez García
cd9f9ad523 updated changelod for uds debian based actors 2016-10-11 08:02:43 +02:00
Adolfo Gómez García
bba494cdc0 Merge remote-tracking branch 'origin/v2.0' into v2.1 2016-10-11 07:57:39 +02:00
Adolfo Gómez García
393819bc94 backported fix from 2.1 2016-10-11 07:53:31 +02:00
Adolfo Gómez García
49e3f72d89 Finishing up fixes... 2016-10-10 22:16:41 +02:00
Adolfo Gómez García
a266cdaeff Fixing on Linux getting mor than one XScreenSaverAllocInfo (too many
clients error with time...)
2016-10-10 22:03:19 +02:00
Adolfo Gómez García
43bf2de385 Small fix for actor timeout detection on centos 7 2016-10-10 21:43:50 +02:00
Adolfo Gómez García
447dc23914 Fixed 2.1 version 2016-10-10 08:35:56 +02:00
Adolfo Gómez García
5e0ba4990a Merge remote-tracking branch 'origin/v2.1' 2016-10-10 08:31:48 +02:00
Adolfo Gómez García
49aaaedbe9 Backporting transport limitation by connecting os 2016-10-10 08:31:32 +02:00
Adolfo Gómez García
e7b2811fa1 Added migration 2016-10-10 07:59:31 +02:00
Adolfo Gómez García
f9f1413a3e Updating to 2.1 intermediate version 2016-10-10 07:53:28 +02:00
Adolfo Gómez García
c11953cd03 Merge remote-tracking branch 'origin/v2.1' 2016-10-10 07:52:20 +02:00
Adolfo Gómez García
7892a196ac Adapting v2.1 2016-10-10 07:52:03 +02:00
Adolfo Gómez García
148a8a1ffc Merge remote-tracking branch 'origin/v2.1' 2016-10-10 07:42:41 +02:00
Adolfo Gómez García
7ab956fa4a minor fixes 2016-10-10 07:37:41 +02:00
Adolfo Gómez García
1658e9278a Merge remote-tracking branch 'origin/v2.0' 2016-10-10 07:22:45 +02:00
Adolfo Gómez García
17044d38bd Improvement on ready setting logged in counter to 0 2016-10-03 14:23:19 +02:00
Adolfo Gómez García
0dc461c30b Fixed setPropert 2016-10-03 13:42:24 +02:00
Adolfo Gómez García
7fc9adae8b Merged 2.0 fixes 2016-09-27 15:52:47 +02:00
Adolfo Gómez García
780f2b4a05 Fixed xen default shadow memory value 2016-09-27 15:51:16 +02:00
Adolfo Gómez García
14e42a6382 Fixing up accounting methods.
Now we have included an "temporal updating", so running services will
get their accounting updated every minute
2016-09-21 10:20:04 +02:00
Adolfo Gómez
d439f78f11 Merge pull request #2 from johnp/patch-1
Add necessary packages to requirements.txt
2016-09-20 08:18:33 +02:00
Adolfo Gómez García
ced5e06ff0 Added a counter posibility to login-logout 2016-09-19 16:14:54 +02:00
Johannes Pfrang
610e88cf09 Add necessary packages to requirements.txt
This does not include `pycairo`, as it does not provide an egg and therefore can't be installed via pip.
We should consider `cairocffi` instead, but `pycha` (last update 2013) would have to be patched then.
2016-09-19 11:51:05 +02:00
Adolfo Gómez García
293dd2d9a1 Forgot this :) 2016-09-16 08:30:37 +02:00
Adolfo Gómez García
57b5ae6dcf Fixes & corrections to initial usage accounting.
Fixes.
We already keep "stats" tables, but we think it is better to start using
a well-known location for accounting on usage.
2016-09-16 08:29:52 +02:00
Adolfo Gómez García
8c2b7bf4bb Started pools usage accounting mechanism 2016-09-16 07:55:24 +02:00
Adolfo Gómez García
3113524197 New fix for windomain.. :) 2016-09-12 18:50:40 +02:00
Adolfo Gómez García
2bf6a92de3 Removev "space removal" from OU for WinDomain OS Manager, and removed de
"add" of the dc...dc.
2016-09-12 18:47:35 +02:00
Adolfo Gómez García
8ac5cc068d Merge remote-tracking branch 'origin/v2.0' 2016-09-11 23:04:02 +02:00
Adolfo Gómez García
5e848cbc8c Fixed defvalue from 4 to 3 for ovirt, so migrations works fine from 1.9 to 2.x 2016-09-11 23:02:57 +02:00
Adolfo Gómez García
729b0310bd Merge remote-tracking branch 'origin/v2.0' 2016-09-11 22:21:30 +02:00
Adolfo Gómez García
f924604217 Backport for ovirt 4.0 2016-09-11 22:21:12 +02:00
Adolfo Gómez García
efc59c0124 fixed unresolved imports 2016-09-11 22:15:04 +02:00
Adolfo Gómez García
d229dab41e Finished basic support for ovirt4.
Now we need to have installed ovirt-engine-sdk-python 3.x and 4.x in
order to work properly
2016-09-11 22:13:11 +02:00
Adolfo Gómez García
fb9fa08090 * Adding support for ovirt 4.x keeping support for ovirt 3.x
Big changes on Python ovirt SDK API...
2016-09-11 20:53:45 +02:00
Adolfo Gómez García
2eaa447155 Includede persistent machines check idle also. 2016-09-07 16:49:40 +02:00
Adolfo Gómez García
682ce5d69f Adding phisical server for user (1 to N users) 2016-09-07 16:46:58 +02:00
Adolfo Gómez García
397bd29ce6 Started experimental x2go support (for linux clients only right now) 2016-09-07 15:33:10 +02:00
Adolfo Gómez García
cba154944d Now password fields are repeated, so we can ensure the vale before
submiting (on admin dashboard)
2016-09-06 23:29:13 +02:00
Adolfo Gómez García
efacaeec7f Viz command no more works correctly (and in fact, was never used), se we
have removed it
2016-08-26 03:08:01 +02:00
Adolfo Gómez García
05c00eb13a Fixed taskManager command for 2.0 also :) 2016-08-26 03:05:54 +02:00
Adolfo Gómez García
9347b3c29b Aded build version to be current datetime. On production environments,
better replace this with datetime/git commit
2016-08-26 03:01:13 +02:00
Adolfo Gómez García
8ba4a9827b Addapted middleware from pre-1.10 to post-1.10 2016-08-26 02:53:38 +02:00
Adolfo Gómez García
14bbf56145 Fixes to work with Django 1.0.
From this commit on master onwards, UDS needs Django 1.10 or greater.
Probably will need some more fixes, but basic ones are done
2016-08-26 02:37:30 +02:00
Adolfo Gómez García
71076a1b63 Merge remote-tracking branch 'origin/v2.0' 2016-08-25 13:21:36 +02:00
Adolfo Gómez García
3528424892 Fixed meta gruoups edition 2016-08-25 13:21:16 +02:00
Adolfo Gómez García
36dc8ecfd5 Added support for filtering transport on device basis 2016-08-24 11:27:34 +02:00
Adolfo Gómez García
34c6dd9cb5 Now we can notify source platform on REST API login. If not specified,
will try to guest from User Agent String.

This is important because we will add filters by platform to transports,
and we will need to know it.
2016-08-24 09:21:34 +02:00
Adolfo Gómez García
c34d70231c Now we can notify source platform on REST API login. If not specified,
will try to guest from User Agent String.

This is important because we will add filters by platform to transports,
and we will need to know it.
2016-08-24 09:21:34 +02:00
Adolfo Gómez García
5eb9af39f6 Merge remote-tracking branch 'origin/v2.0' 2016-08-17 20:49:23 +02:00
Adolfo Gómez García
2eef7222d5 Backported guacamole for 2.0 availability 2016-08-17 20:39:37 +02:00
Adolfo Gómez García
0d28a5b5f7 Backported guacamole for 2.0 availability 2016-08-17 20:38:56 +02:00
Adolfo Gómez García
1dc58be4fa Merge remote-tracking branch 'origin/v2.0' 2016-07-28 13:36:01 +02:00
Adolfo Gómez García
e0e7e26234 Fixed Translations 2016-07-28 13:33:28 +02:00
Adolfo Gómez García
2674563535 Fixed template config removal on publication failure 2016-07-27 18:22:37 +02:00
Adolfo Gómez García
a864fbac96 Publication now will correctly fail if the template cannot be cloned 2016-07-27 17:33:45 +02:00
Adolfo Gómez García
51c32a4350 Fixed for OpenNebula 5 (seems to work fine with 4 & 5 right now) 2016-07-26 16:29:40 +02:00
Adolfo Gómez García
1e7b729164 Updated 2.x translations 2016-07-26 15:06:29 +02:00
Adolfo Gómez García
ec95f27ee6 Updated translations && added server-keyboard-layout to guacamole 2016-07-26 13:44:36 +02:00
Adolfo Gómez García
15ce5aa938 Added failsafe to html5 keyboard 2016-07-26 12:58:56 +02:00
Adolfo Gómez
4a021a4ed4 Merge pull request #1 from glyptodon/cleanup
Clean up and upgrade Guacamole transport backend.
2016-07-26 03:25:09 +02:00
Michael Jumper
7b86ec97eb Include port number in service base URI of OpenUDS. 2016-07-25 03:48:54 -07:00
Michael Jumper
8bb9bf11d5 Read configuration from servlet context. 2016-07-25 03:48:22 -07:00
Adolfo Gómez García
d34e80e360 Merged fixes from 2.0 2016-07-22 18:00:50 +02:00
Adolfo Gómez García
39b353fb24 More Fixes 2016-07-22 17:57:45 +02:00
Adolfo Gómez García
7a0c8aa977 More Fixes for OpenNebula 4.x (for new API implementation) 2016-07-22 17:40:03 +02:00
Adolfo Gómez García
664418d4dc More fixes for OpenNebula 2016-07-22 16:54:09 +02:00
Adolfo Gómez García
381cf47abf * Fixed RDP to allow some optional parameters on linux clients
* dixed OpenNebula support
2016-07-21 13:51:31 +02:00
Adolfo Gómez García
a8853930a2 Minor fixes for actor 2016-07-19 14:18:29 +02:00
Adolfo Gómez García
ac02161eb9 Adding ticket messaging support on actor & server 2016-07-19 13:56:11 +02:00
Adolfo Gómez García
957403a23f Merge remote-tracking branch 'origin/v2.0' 2016-07-18 20:13:30 +02:00
Adolfo Gómez García
c5582c3092 Fixing open nebula 2016-07-18 20:13:14 +02:00
Adolfo Gómez García
1578c92a88 Adding support for OpenNebula 5.0 2016-07-18 20:12:38 +02:00
Adolfo Gómez García
6827380e99 Added - to title for xfreerdp 2016-07-15 15:33:44 +02:00
Adolfo Gómez
1c9bc68a66 Fixed header date 2016-07-14 10:50:37 +02:00
Adolfo Gómez García
62f637790c Fixed changelog of publications not being displayed on dashboard 2016-07-12 11:33:50 +02:00
Adolfo Gómez García
73192bb515 Merge remote-tracking branch 'origin/v2.0' 2016-07-12 01:44:42 +02:00
Adolfo Gómez García
bf5311b5af Added sessions cleanup to scheduled task list 2016-07-12 01:29:00 +02:00
Adolfo Gómez
d57ef0cc5e Update README.md 2016-07-11 22:20:07 +02:00
Adolfo Gómez García
105df6e0fb Merge remote-tracking branch 'origin/v2.0' 2016-07-11 22:17:47 +02:00
Adolfo Gómez García
d0e0418ede Fixed check due 2.0 just works only with opennebula 4.x due to api
changes on 5.x. 2.1 will cover both vversions
2016-07-11 22:16:46 +02:00
Adolfo Gómez García
cd859ca0cb Merge remote-tracking branch 'origin/v2.0' 2016-07-11 22:06:23 +02:00
Adolfo Gómez García
243cbbfd4b Fixed log removal for cache & assigned services admin tables 2016-07-11 22:04:58 +02:00
Adolfo Gómez García
5cb5b5f343 Adapted OpenNebula to work with version 4 & version 5 (more tests are
needed right now)
2016-07-11 21:46:42 +02:00
Adolfo Gómez García
e7984d5a8e Fixed javascript error 2016-07-11 14:14:10 +02:00
Adolfo Gómez García
eacce7adda fixed images on chrome 2016-07-11 13:44:27 +02:00
Adolfo Gómez García
622e8629ff Fixed image removal on service pool group 2016-07-11 12:43:22 +02:00
Adolfo Gómez García
f0049cb826 Removing oca python module and using xmlrpc to access opennebula (we have found problems with oca python accesing OpenNebula 5.0) 2016-07-11 03:44:38 +02:00
Adolfo Gómez García
643d8b40e1 Moved to 0023 migration for adding secure tickets 2016-07-10 21:00:49 +02:00
Adolfo Gómez García
e2db15ead7 Merged with 2.0 fixes 2016-07-10 20:59:31 +02:00
Adolfo Gómez García
50e368ee7a * Added owner to dbfile, so we can remove later them selectively
* Fixed samples
2016-07-10 20:56:32 +02:00
Adolfo Gómez García
6766fe41fe Signed-off-by: Adolfo Gómez García <dkmaster@dkmon.com> 2016-07-09 02:59:55 +02:00
Michael Jumper
24dbd884ad Restore use of WebSocket. 2016-07-08 15:45:36 -07:00
Michael Jumper
97fd0b8272 Migrate to Guice and upstream HTTP / WebSocket tunnel implementations. Clarify licensing. 2016-07-08 15:45:36 -07:00
Michael Jumper
6096313cae Add NOTICE file from upstream Apache Guacamole project. 2016-07-07 17:05:19 -07:00
Michael Jumper
6401ca3f05 Correct wording of readme.txt with respect to licensing and upstream project. 2016-07-07 17:03:52 -07:00
Michael Jumper
9f37956e99 Remove IDE-specific cruft. Ignore going forward. 2016-07-07 16:59:56 -07:00
Michael Jumper
0b48306f3e Remove definition for non-existent and unused servlet. 2016-07-07 14:41:06 -07:00
Adolfo Gómez
ba35968e8d Forgotten comma 2016-07-07 14:22:35 +02:00
Adolfo Gómez García
4adfac1c02 added comments field to index view 2016-07-07 13:10:18 +02:00
Adolfo Gómez García
437865b278 * Fixed a bug on Services Pool Groups Images
* Fixed a couple bugs on OpenNebula"
2016-07-05 15:40:26 +02:00
Adolfo Gómez García
83cdd9446b Fixing up password & rdp transport to allow working with tickets 2016-06-28 10:33:10 +02:00
Adolfo Gómez García
793b6c9004 Fixed RDP to allow freerdp from linux to select audio controller 2016-06-24 11:10:53 +02:00
Adolfo Gómez García
3f7fb77086 Started to implement a mechanism to allow a secure sso.
We have started a way for pass the credentials from UDS directly to
VM, without passing it to UDS.
  Currently we are working on a credential provider for windows, that
will interact with UDS. We will release this provider as soon as it is
functional ;-)
2016-06-17 12:15:07 +02:00
Adolfo Gómez García
2683fddfc1 * Added secure tickets, to be used only with secure known sources
(actors, tunnelers, ...)
2016-06-15 01:05:10 +02:00
Adolfo Gómez García
96bd117622 Comment fix 2016-06-15 00:58:33 +02:00
Adolfo Gómez García
8b2df76582 Small fix so HTML5 Transport remove leading/trailing whitespaces 2016-06-13 11:39:07 +02:00
Adolfo Gómez García
9c49158de2 * Updated translations
* Fixed some literals
2016-06-07 18:30:50 +02:00
Adolfo Gómez García
4196883bfb Fixed Timings on uds Actor
Fixed oVirt to allow USB Configuration on service (for spice). Defaults to not allow.
2016-06-04 20:02:34 +02:00
Adolfo Gómez García
8585d10623 Again, fixing deadline... 2016-06-02 09:57:43 +02:00
Adolfo Gómez García
c715b92ed0 fixed getDeadline 2016-06-01 11:12:12 +02:00
Adolfo Gómez García
a3726399f1 Fixed Calendars access restrictions 2016-05-31 12:04:53 +02:00
Adolfo Gómez García
8ce3efc7ee Fixed to allow 2.0 to work with 1.9 windows actor 2016-05-30 09:33:53 +02:00
Adolfo Gómez García
0bd3e1ac72 * Added alert icon for calender restricted services
* Fixed spice to add fullscreen support on transport definition & a bug
to allow using it.
* Fixed OS Detector to include "unknown" as an os on "all OSs"
2016-05-27 13:39:51 +02:00
Adolfo Gómez García
c2d4e995e7 Fixes & tests on UDS Actor for honoring max session duration (got from
calendars)
2016-05-24 07:40:53 +02:00
Adolfo Gómez García
1b71fef8b4 Fixed about to include build version && also upgraded it a bit 2016-05-20 13:34:53 +02:00
Adolfo Gómez García
074a4d525d Fixed up about dialog 2016-05-20 10:28:00 +02:00
Adolfo Gómez García
36e19574e0 Added version stamp 2016-05-20 09:50:53 +02:00
Adolfo Gómez García
ef9165b3a2 space :( 2016-05-20 09:39:19 +02:00
Adolfo Gómez García
14cddbb210 Forgot removing comments & try-catch block :) 2016-05-20 09:38:46 +02:00
Adolfo Gómez García
2d14884454 * Fixed time picker not working on chrome
* Added warn on service being replaced by new publication
2016-05-20 09:37:12 +02:00
Adolfo Gómez García
ba4eeffc77 * Fixed client to better show errors
* Adding new publication warn for currently logged in users
2016-05-19 13:50:52 +02:00
Adolfo Gómez García
59179b818e Added mechanics to recover in case of scheduler task that got stuck 2016-05-18 12:22:11 +02:00
Adolfo Gómez García
dbcdc84b3b * Now cleanUDS cleans up possible locks also.
This command is designed to be executed with UDS backend stopped, so be
care!! :)
* Added deadLine calculation to ServicePool based on access calendars
2016-05-18 10:31:43 +02:00
Adolfo Gómez García
c73dae361f Fixed headers replication on UDS Reports 2016-05-17 09:35:53 +02:00
Adolfo Gómez García
ec29371b41 Merge branch 'master' of github.com:dkmstr/openuds 2016-05-06 13:30:18 +02:00
Adolfo Gómez García
9365f5937b Advancend & sync 2016-05-06 13:30:06 +02:00
Adolfo Gómez García
971015d33a Advancend & sync 2016-05-06 13:29:29 +02:00
Adolfo Gómez García
7a742c043b Merge remote-tracking branch 'origin/v1.9' 2016-05-03 08:15:20 +02:00
Adolfo Gómez García
c08a0cb0ed Fixed a bug not allowing linux machines to register when using an case sensitive database0 2016-05-03 08:15:12 +02:00
Adolfo Gómez García
b5926dec6f Fixed a bug on free edition not allowing to register correctly linux machines 2016-05-03 08:14:14 +02:00
Adolfo Gómez García
2fdcdb014f Merge remote-tracking branch 'origin/v1.9' 2016-04-29 11:16:13 +02:00
Adolfo Gómez García
bd70a6290e fixed to work correctly on free 2016-04-29 11:15:07 +02:00
Adolfo Gómez García
3afa96f1c5 Fixed spice scripts 2016-04-28 12:50:30 +02:00
Adolfo Gómez García
5da12a8091 Fixed & Tested that now we can open multiple redirections over same
tunnel.
2016-04-28 12:49:23 +02:00
Adolfo Gómez García
08eeff5604 Fixed duplicate declaration 2016-04-28 10:55:34 +02:00
Adolfo Gómez García
169a946a03 Fixed small bug on return clone 2016-04-28 09:34:43 +02:00
Adolfo Gómez García
94842ce0ef A better implementation for shared connections 2016-04-28 09:34:03 +02:00
Adolfo Gómez García
0fb7d5ed1b * Fixed service pool group setup bug
* Fix to allow some kind of connections to (as spice), to open two
different tunnels (We have to test the fix)
2016-04-28 08:34:47 +02:00
Adolfo Gómez García
2021fd69ec *Merged fixes for UDS Client 2016-04-27 09:59:09 +02:00
Adolfo Gómez García
813764a100 Fixed UDS Client to allow host names with unicode characters 2016-04-27 09:43:08 +02:00
Adolfo Gómez García
cbd9330907 * Fixed Login with only one authenticator (not working before)
* Added cache flush on start for FileStorage to avoid problems
2016-04-27 06:59:34 +02:00
Adolfo Gómez García
a250cf4aef Fixed calendar access cache 2016-04-26 16:04:29 +02:00
Adolfo Gómez García
50bc3cd3ef Fixing up things 2016-04-26 15:13:54 +02:00
Adolfo Gómez García
4fb863cfa7 * Fixed several literals
* Added config type field for "choices"
* removed old version snippets
2016-04-25 12:39:58 +02:00
Adolfo Gómez García
3a1bd1eed3 Fixed query to obtain restraineds 2016-04-25 11:16:47 +02:00
Adolfo Gómez García
bce3e429cf Fixed ammend 2016-04-22 15:16:05 +02:00
Adolfo Gómez García
b5baea184f Merged 1.9 update for behind-proxy support 2016-04-22 15:12:28 +02:00
Adolfo Gómez García
42cbad4117 Merged 1.9 update for behind-proxy support 2016-04-22 15:04:36 +02:00
Adolfo Gómez García
09f329db62 Allow UDS behind a proxy 2016-04-22 15:03:06 +02:00
Adolfo Gómez García
6b5f9d266d Allow UDS behind a proxy 2016-04-22 14:59:34 +02:00
Adolfo Gómez García
242d9b5e6e Advancing with semantic 2016-04-22 07:05:04 +02:00
Adolfo Gómez García
99b17e573c adding semantic 2016-04-22 05:20:30 +02:00
Adolfo Gómez García
701edb91f1 adding semantic 2016-04-22 05:19:52 +02:00
Adolfo Gómez García
f0627db09f Removed legacy html templates.
Added select rendering to template so we can use whatever styles we like
2016-04-22 03:06:00 +02:00
Adolfo Gómez García
56a579e11b Fixed spanish translations 2016-04-21 10:40:36 +02:00
Adolfo Gómez García
4427448eca Updated translations & added proxy support for reverse auth, etc... 2016-04-20 15:25:41 +02:00
Adolfo Gómez García
203e2fcdd0 Added fast navigation to administration interface 2016-04-20 11:37:04 +02:00
Adolfo Gómez García
f7fa92e6c1 Added info to services 2016-04-19 11:17:34 +02:00
Adolfo Gómez García
425257a464 adding information to services, so we can figure whats going on from services list 2016-04-19 10:04:44 +02:00
Adolfo Gómez García
0acc07ebb3 Fixed log table 2016-04-19 05:11:34 +02:00
Adolfo Gómez García
030078a619 Added tabs to a bunch of forms on administration (forms are getting too
big right now)
2016-04-18 11:50:54 +02:00
Adolfo Gómez García
0e6ca4c188 Fixing translations 2016-04-18 07:09:03 +02:00
Adolfo Gómez García
c7d5a1c928 Updated translations 2016-04-18 07:01:51 +02:00
Adolfo Gómez García
e636a4afcd fixhed weblogout 2016-04-15 16:57:16 +02:00
Adolfo Gómez García
8b76324ffc Squashed migration from 1 to 16 (until v1.9). Will keep old migrations until 2.1 release 2016-04-14 14:17:20 +02:00
Adolfo Gómez García
8fe1e55770 Removed RGS migration from 2.0. You will need to at least upgrade to 1.7 before going to 2.0 2016-04-14 13:50:00 +02:00
Adolfo Gómez García
caae694628 Merge branch 'master' of github.com:dkmstr/openuds 2016-04-13 21:32:51 -07:00
Adolfo Gómez García
268e9d551a syntax fixes 2016-04-13 21:32:42 -07:00
Adolfo Gómez García
07137c2416 Several improvements to UDS Client connector 2016-04-14 06:01:41 +02:00
Adolfo Gómez García
273b2a59c4 fixed an error with edit list 2016-04-14 05:14:58 +02:00
Adolfo Gómez García
63364f4e72 added wait to forwarthread for rdp tunnel 2016-04-13 08:05:46 +02:00
Adolfo Gómez García
abc9622d53 Fixed 2.0 client bugs 2016-04-13 07:24:41 +02:00
Adolfo Gómez García
9cd7e2f67b Added a few adds to client & Updated required version for 2.0.0 server to 2.0.0 client 2016-04-12 11:22:29 +02:00
Adolfo Gómez García
9277d3b5fb ignoring binaries 2016-04-11 06:38:58 +02:00
Adolfo Gómez García
6f46e16be8 upgrade to use guacamole 0.9.9 2016-04-11 06:38:32 +02:00
Adolfo Gómez García
0b390e406a New generation of pam files for tunneler based on cmake 2016-04-08 09:44:19 +02:00
Adolfo Gómez García
f301e4654a Updating pam tunneler module 2016-04-08 07:45:52 +02:00
Adolfo Gómez García
62481899a1 fixed tunnel field order on admin interface 2016-04-07 10:28:23 +02:00
Adolfo Gómez García
869dfc8c06 * More translations update
* Added custom limits to providers that allow it
2016-04-07 07:16:15 +02:00
Adolfo Gómez García
939d456b9d Added memcached setting to sample file && minor fixes 2016-04-06 06:13:22 +02:00
Adolfo Gómez García
9c70fb3caf Added caching to FileStorage 2016-04-06 06:02:51 +02:00
Adolfo Gómez García
baf4a677dd Added shared files storage 2016-04-05 04:59:56 +02:00
Adolfo Gómez García
4c4820f166 Chaged a bit the default ssl behaviour 2016-04-04 19:30:23 +02:00
Adolfo Gómez García
2749bfc40c fixed an js translation 2016-04-04 18:33:54 +02:00
Adolfo Gómez García
704e0607eb * Fixed scheduler action to make these execute under a transaction
* Removed xmlrpc url
2016-04-04 18:27:38 +02:00
Adolfo Gómez García
401fbac63e Removed last remaining xmlrcp part 2016-04-04 11:00:51 +02:00
Adolfo Gómez García
7f1252a70a Updating translation & fixing translations errors 2016-04-04 09:42:51 +02:00
Adolfo Gómez García
2df103a348 fixed taglist template for production (javascript must be "nice" and cannot have comments on this templates) 2016-04-04 08:27:59 +02:00
Adolfo Gómez García
489bb44c92 Fixing up for 2.0 release 2016-04-04 07:24:30 +02:00
Adolfo Gómez García
c606b6f00e Fixing up for 2.0 release 2016-04-04 07:12:38 +02:00
Adolfo Gómez García
0b4b38abe7 Fixed model of Calandars && finished Scheduled calendar actions 2016-04-01 07:18:42 +02:00
Adolfo Gómez García
40b71fa983 Fixed to use new datatables 2016-03-31 10:47:59 +02:00
Adolfo Gómez García
6116db5147 basic scheduled actions working (needs backedn worker to be done) 2016-03-30 11:23:23 +02:00
Adolfo Gómez García
e979c6e1e2 Now we can create (but not edit) scheduled actions 2016-03-29 15:45:34 +02:00
Adolfo Gómez García
8f9d042cdd Now we can create (but not edit) scheduled actions 2016-03-29 15:42:41 +02:00
Adolfo Gómez García
fcf030e693 Advanfing on action editing for services pools 2016-03-29 05:30:05 +02:00
Adolfo Gómez García
31e6e01cad fixed deletion of service on validation error 2016-03-28 06:22:03 +02:00
Adolfo Gómez García
1aad0c85a4 Merge remote-tracking branch 'origin/v1.9' 2016-03-28 06:02:23 +02:00
Adolfo Gómez García
e6e16334b3 fixed deleting service on edition & not being valid 2016-03-28 06:02:04 +02:00
Adolfo Gómez García
6544a61f72 fixed deleting element on edition instead of new 2016-03-28 06:00:43 +02:00
Adolfo Gómez García
8a285fddfa Merge remote-tracking branch 'origin/v1.9' 2016-03-19 02:30:34 +01:00
Adolfo Gómez García
c069f51e8d Fixed UDS Version download for clients 2016-03-19 02:29:06 +01:00
Adolfo Gómez García
c9a690fe8c Removed nonsense public folder from templates 2016-03-18 02:01:17 +01:00
Adolfo Gómez García
847821c66c fixed core version 2016-03-18 01:49:29 +01:00
Adolfo Gómez García
b5387d4922 * Fixed Actions Calendars migrations
* Started support for actions calendars edition on dashboard
2016-03-16 11:30:56 +01:00
Adolfo Gómez García
b0a6807ea4 Merge remote-tracking branch 'origin/v1.9'
# Conflicts:
#	VERSION
#	actors/linux/build-packages.sh
#	actors/linux/debian/changelog
#	actors/linux/debian/files
#	client/linux/debian/changelog
#	client/linux/debian/files
2016-03-14 12:16:52 +01:00
Adolfo Gómez García
2e96074961 Upgrades for 2.0
* Added support for /uuid REST method
* Now the http server is relocated on IP Change detection
2016-03-14 12:12:56 +01:00
Adolfo Gómez García
f275a91a43 Adding retry capability to interactWithBroker 2016-03-14 09:52:41 +01:00
Adolfo Gómez García
135392d245 Added get next event from a given date to calendar 2016-03-10 11:46:22 +01:00
Adolfo Gómez García
ff622bb9cd * Added optimization for serialization/deserialization (now it get cached with db object)
* Fixed model so now we invoke initGui before getting values on fillInstanceFields
* Upgraded Max creating & Max removing limits so now they can be tied to an specific provider instead of a global variable
* Tested & Fixed OpenStack. Now it seems to work as it should do.
* Several minor fixes/improvements
2016-03-09 11:42:44 +01:00
Adolfo Gómez García
608c1317d7 Updated OpenStack client & added caching features
Added counters to Cache (maybe somtime will store them on db to keep track on performance
2016-03-08 12:36:42 +01:00
Adolfo Gómez García
9f4ef20dc1 OpenStack working (initially) 2016-03-07 18:28:32 +01:00
Adolfo Gómez García
73bd3cc28e several fixes & adaptions for 1.9.1 2016-03-06 17:24:42 +01:00
Adolfo Gómez García
ea9eb04461 minor version upgrade to contain all patches 2016-03-04 15:06:10 +01:00
Adolfo Gómez García
c45833c252 Advancing on openstack a bit more 2016-03-04 14:51:44 +01:00
Adolfo Gómez García
e260fc9790 Advancing toward Openstack provider at a nice pace.
We have decided finally to use directly the REST api instead of any
available API, because we need a fustfill of things only, and we have
this way a better control. (And it's not difficult to implement)
2016-03-04 13:33:36 +01:00
Adolfo Gómez García
cc6ba2ff41 Updated to start with identity api v3 instead of v2, and advanced a lot 2016-03-03 21:33:17 +01:00
Adolfo Gómez García
bec74ddc99 UDS Client for openstack 2016-03-03 19:35:19 +01:00
Adolfo Gómez García
7af7d11c8a * New Clients Versions
* Refactoring
* Minor fixes
2016-02-26 14:16:13 +01:00
Adolfo Gómez García
8934d978fe Almost finished calendars access 2016-02-23 11:23:49 +01:00
Adolfo Gómez García
8376e81532 Adding Access calendars admin 2016-02-23 09:44:40 +01:00
Adolfo Gómez García
6587d9ba2c Fixed downloads to point to 2.0 clients 2016-02-19 09:58:15 +01:00
Adolfo Gómez García
2654036fd2 fixed uds client to work correctly with firefox on kunbuntu 2016-02-19 09:46:22 +01:00
Adolfo Gómez García
f9226e7deb Fixed login fail messages for django 1.9 2016-02-19 08:37:22 +01:00
Adolfo Gómez García
56ac8aece9 Upgrade to Django 1.9 and advances on advances on states fixes (cosmetic fixes to better identify what we refer to) 2016-02-19 08:16:55 +01:00
Adolfo Gómez García
12737df530 Advancing on calendar access & scheduling 2016-02-18 11:03:38 +01:00
Adolfo Gómez García
7b9c835562 Advancing on calendar access & scheduling 2016-02-18 11:03:25 +01:00
Adolfo Gómez García
cbb809db77 * Improved cache for calendars checkings
* Added calentar access & actions models
* Started calendar-pool integration
2016-02-17 10:55:51 +01:00
Adolfo Gómez García
4f9085f0a2 Almost finished grouping services 2016-02-16 07:00:14 +01:00
Adolfo Gómez García
389cf62150 Experimenting & adavancing on services grouping 2016-02-15 11:04:21 +01:00
Adolfo Gómez García
44c367bf8f Addind public template for working on int 2016-02-15 02:34:46 +01:00
Adolfo Gómez García
efb0083161 removing dist from list 2016-02-15 01:38:02 +01:00
Adolfo Gómez García
16c1aba3e7 Added tags to search filter on admin, and also added "tabindex" to input fields 2016-02-12 10:58:57 +01:00
Adolfo Gómez García
07ed8b9762 Fixed Images & pools groups (added priority and enhaced visual on admin 2016-02-12 09:53:33 +01:00
Adolfo Gómez García
fbd0a59a70 Removed whitspaces from tags on addition 2016-02-12 04:52:23 +01:00
Adolfo Gómez García
a08fe53383 * Added "Service Pool Group" full logic, so new we can add services pools to groups, so we can visualzize them grouped. (already needs the visualizarion part)
* Finished basic taglist edition (fixed a bug & added the possibility of insert serveral comma separated values at once')
2016-02-12 04:47:44 +01:00
Adolfo Gómez García
e1b8c43cca Added "tag editing" admin control 2016-02-11 05:44:38 +01:00
Adolfo Gómez García
60f20e64f3 testing link on uds.css 2016-02-10 07:38:51 +01:00
Adolfo Gómez García
6bb1109fe1 Adding tags & tag edition to mayor elemets of uds administration (for filtering, etc..) 2016-02-10 03:53:51 +01:00
Adolfo Gómez García
134f2059dd Added tagging capability to most entities 2016-02-10 01:51:05 +01:00
Adolfo Gómez García
ec93e5c9cc Merge remote-tracking branch 'origin/v1.9' 2016-02-09 12:53:10 +01:00
Adolfo Gómez García
1487c21e1e Fixed .desktop to make it work from chrome 2016-02-09 12:51:30 +01:00
Adolfo Gómez García
fd6b0c9458 Another big step forward for OpenNebula provider 2016-02-09 09:45:36 +01:00
Adolfo Gómez García
c41648748a Fixed CoRD on mac with a domain 2016-02-08 09:33:56 +01:00
Adolfo Gómez García
de4aef3a5c * Important advances on OpenNebula service provider
* several semantic changes
* Minor improvements & fixes
2016-02-08 09:33:17 +01:00
Adolfo Gómez García
d024d74529 Merged 1.9 fixes 2016-02-01 17:55:42 +01:00
Adolfo Gómez García
6eb5a7ccc8 Fixed security check 2016-02-01 17:47:34 +01:00
Adolfo Gómez García
335fd338bd several fixes 2016-01-25 11:38:39 +01:00
Adolfo Gómez García
d7ac59f257 Merge remote-tracking branch 'origin/v1.9' 2016-01-20 10:05:29 +01:00
Adolfo Gómez García
1ff09a1a04 Added Header elements to UDSGeraldoReport to be added to "base" report 2016-01-20 10:04:09 +01:00
Adolfo Gómez García
ca54c2c099 Merge remote-tracking branch 'origin/v1.9' 2016-01-20 09:34:30 +01:00
Adolfo Gómez García
76d209aa25 New report by pool 2016-01-20 09:34:00 +01:00
Adolfo Gómez García
491a33421d csv test 2016-01-19 17:22:22 +01:00
Adolfo Gómez García
f1cbcf86e1 Adding report to see user access time/duration 2016-01-19 15:24:19 +01:00
Adolfo Gómez García
e2e0f96d3e Refactoring states for easier reading 2016-01-08 09:37:00 +01:00
Adolfo Gómez García
4be5d8d6e5 Added host verification to uds client (so urls are approved at least
first time by users)
2016-01-08 09:34:20 +01:00
Adolfo Gómez García
0365376ab0 Fixed not rebooting machine on join domain on windows XP 2015-11-26 08:06:15 +01:00
Adolfo Gómez García
b9929566f6 Merge remote-tracking branch 'origin/v1.9' 2015-11-25 17:18:13 +01:00
Adolfo Gómez García
f463f586a3 Added 'in use' to true to Phisical Machines as soon as they are assigned, so they kept the assignation forever 2015-11-25 17:14:02 +01:00
Adolfo Gómez García
f6492256a8 Merge remote-tracking branch 'origin/v1.9' 2015-11-19 11:49:21 +01:00
Adolfo Gómez García
6fe734f67e Fixed issues on windows32 for client on users that has disabled 8dot3names and has non ASCII characters on its user name 2015-11-19 11:17:37 +01:00
Adolfo Gómez García
66d2c63a20 Merge remote-tracking branch 'origin/v1.9' 2015-11-18 14:59:20 +01:00
Adolfo Gómez García
06f2faff35 Merge branch 'v1.9' of github.com:dkmstr/openuds into v1.9 2015-11-18 09:28:55 +01:00
Adolfo Gómez García
57bd5e8149 Instead of leaving a removed deployed service once it is removed in the list, we now erase it as soon as it removal process has finished 2015-11-18 09:28:42 +01:00
Adolfo Gómez
11b9d07aef fixed hidding in mac os x 2015-11-17 15:15:47 +01:00
Adolfo Gómez García
b6f582d84e Merger 1.9 fixes 2015-11-16 20:25:06 +01:00
Adolfo Gómez García
b777919f52 A few improvements 2015-11-16 20:22:58 +01:00
Adolfo Gómez García
6371a24d23 Fixed an small bug when checking service is in maintenance 2015-11-16 20:17:51 +01:00
Adolfo Gómez García
d94cc70eff Merge remote-tracking branch 'origin/v1.9' 2015-11-16 12:45:12 +01:00
Adolfo Gómez García
7d02f3682d Fixed so empty credentials are tested 2015-11-16 12:36:52 +01:00
Adolfo Gómez García
51fb42db10 Fixed so empty credentials are tested 2015-11-16 12:35:12 +01:00
Adolfo Gómez García
a352059ddc Added logging capability to client, in windows, take a look at https://github.com/paramiko/paramiko/issues/613 because some issues on windows 32 bits 2015-11-12 18:21:46 +01:00
Adolfo Gómez García
0187b94768 Made removal of user services more robust 2015-11-11 14:36:22 +01:00
Adolfo Gómez García
163245401b Merging 1.9 fixes 2015-11-11 12:15:41 +01:00
Adolfo Gómez García
7a0f28a227 Fixed so first service served from cache are fully usable instead of "waiting for os" 2015-11-11 12:10:30 +01:00
Adolfo Gómez García
0add4b4321 Fixed new service operations checker. Improved & easier to understand with this new model 2015-11-10 08:04:39 +01:00
Adolfo Gómez García
19fdcadbcd Upgrading the UserServiceOpChecker to a new & clearer one 2015-11-06 12:04:44 +01:00
Adolfo Gómez García
7b85adaddf Updated version for master 2015-11-06 05:57:26 +01:00
Adolfo Gómez García
d8a0a2f80a Merged 2015-11-06 04:58:06 +01:00
Adolfo Gómez García
8ec6ce7edb An small fix to tiketauth 2015-11-06 04:15:56 +01:00
Adolfo Gómez García
0eab8d0f3f Added a couple of fixes for ticket authentication 2015-11-06 04:08:10 +01:00
Adolfo Gómez García
ae9a9534fc Merge remote-tracking branch 'origin/v1.9', cookie retrieval 2015-11-06 03:50:44 +01:00
Adolfo Gómez García
b56dbcfdfd Replace an uds direct cookie access by "getUdsCookie" 2015-11-06 03:50:22 +01:00
Adolfo Gómez García
1c1003eb41 Added merged from v1.9 that did not goes as expected... :) 2015-11-05 10:34:16 +01:00
Adolfo Gómez García
4bc6d88006 fixing 2015-11-05 10:31:46 +01:00
Adolfo Gómez García
fe6c701e44 Added better transpor selection for tickets 2015-11-05 10:28:10 +01:00
Adolfo Gómez García
f08593881f Merge remote-tracking branch 'origin/v1.9' 2015-11-05 08:16:54 +01:00
Adolfo Gómez García
9a59725504 added .gitignore to ignore .mo files 2015-11-05 08:16:42 +01:00
Adolfo Gómez García
30cf167e5b Merge remote-tracking branch 'origin/v1.9' 2015-11-05 08:15:55 +01:00
Adolfo Gómez García
88b7b365e7 Removed translations binaries 2015-11-05 08:13:46 +01:00
Adolfo Gómez García
064d881c1e Checking up javascript stuff 2015-11-05 07:30:06 +01:00
Adolfo Gómez García
c3f9d673bd Merge remote-tracking branch 'origin/v1.9' 2015-11-05 07:28:43 +01:00
Adolfo Gómez García
bbc2790ce0 Fixed an issue with singue quotes on base template for translations 2015-11-05 07:25:42 +01:00
Adolfo Gómez García
64970b57ca fixed sitecustomize 2015-11-02 01:21:53 +01:00
Adolfo Gómez García
4695dcaa0c Merge remote-tracking branch 'origin/v1.9' 2015-11-02 00:47:08 +01:00
Adolfo Gómez García
2b11d1715b Fixed unicode on network names for VMWare linked clones 2015-11-02 00:45:33 +01:00
Adolfo Gómez García
e23f22d92d Several fixes for dashboard && new command to clean up cache 2015-10-29 06:57:02 +01:00
Adolfo Gómez García
c8492a4c47 Removed url encoding for connfig. Not a good idea :) 2015-10-27 03:31:06 +01:00
Adolfo Gómez García
962f1fcc1c Merge remote-tracking branch 'origin/v1.9' 2015-10-27 01:53:44 +01:00
Adolfo Gómez García
2d6f4e4f2d Fixed config management param to do urldecode of parameters 2015-10-27 01:53:10 +01:00
Adolfo Gómez García
6bc70ff4de Several minor fixes & aditions 2015-10-24 10:32:51 +02:00
Adolfo Gómez García
aaf4b539d5 Merge remote-tracking branch 'origin/v1.9' 2015-10-20 19:49:34 +02:00
Adolfo Gómez García
83efb81966 Fixed Windows domain 2015-10-20 19:42:14 +02:00
Adolfo Gómez García
03d0fc2ba4 Merge remote-tracking branch 'origin/v1.9' 2015-10-19 06:36:57 +02:00
Adolfo Gómez García
41f128c2ad Updating guacamole 2015-10-19 06:07:45 +02:00
Adolfo Gómez García
bb09ef2a69 Updating guacamole 2015-10-19 05:59:14 +02:00
Adolfo Gómez García
407b0ebf55 Merge remote-tracking branch 'origin/v1.9' 2015-10-16 16:59:14 +02:00
Adolfo Gómez García
98d78d9a2e Another consinstence fix in case of db connection failure 2015-10-16 16:58:53 +02:00
Adolfo Gómez García
033ac0d1f6 Seems to finished updating tables. Need to check new working 2015-10-16 08:30:33 +02:00
Adolfo Gómez García
c9e9f60ed1 * Added a more aggresive cache for types, tables & guis (Less requests to server)
* Fixed ServicePools tables
* Fixed log tables
2015-10-16 07:43:03 +02:00
Adolfo Gómez García
162c84e21c Merge remote-tracking branch 'origin/v1.9' 2015-10-15 19:25:57 +02:00
Adolfo Gómez García
9f6d126484 Added images to memory cache instead of db cache 2015-10-15 19:25:48 +02:00
Adolfo Gómez García
f1e27f1364 Fixed sample settings & database recovery on backend 2015-10-15 18:54:36 +02:00
Adolfo Gómez García
06c7a46d2a Fixed connection lost to mysql 2015-10-15 11:17:12 +02:00
Adolfo Gómez García
0877cc01f4 Almost fixed all tables on dashboard 2015-10-06 11:32:47 +02:00
Adolfo Gómez García
00e85357cf Dashboard upgrade & enhacements 2015-10-06 07:14:40 +02:00
Adolfo Gómez García
cc72b3742f Addind multiselects & overviews to dashboard 2015-10-06 05:39:16 +02:00
Adolfo Gómez García
dff20bd6e1 Added several indexes to optimize some db queries\nFixed too many connections due to not being closed on threads termination\nAdvanced on new dashboard 2015-10-05 13:17:54 +02:00
Adolfo Gómez García
69b6f7d7d8 Merge remote-tracking branch 'origin/v1.9' 2015-10-05 11:48:22 +02:00
Adolfo Gómez García
02a2800a4b Added "connection.close" after job is done, so we use a lot of less
concurrent db connections
2015-10-05 11:46:45 +02:00
Adolfo Gómez García
9881df5117 Clean white squared admin with collapsable menu 2015-10-02 01:08:21 +02:00
Adolfo Gómez García
bc2f83c937 Clean white squared admin with collapsable menu 2015-10-02 00:56:46 +02:00
Adolfo Gómez García
fa78b4b295 Clean white squared admin with collapsable menu 2015-10-02 00:55:58 +02:00
Adolfo Gómez García
95230292c3 Experimenting with dashboard 2015-10-01 07:23:26 +02:00
Adolfo Gómez García
fdaf974009 Advancing on styling. Adding new functionality to dashboard 2015-09-25 17:27:46 +02:00
Adolfo Gómez García
26764c4cab Fixing datatables integration 2015-09-25 04:55:07 +02:00
Adolfo Gómez García
52d0e8977c Styling dashboard 2015-09-24 07:33:52 +02:00
Adolfo Gómez García
1d7df7814c Merge remote-tracking branch 'origin/v1.9' 2015-09-23 17:50:13 +02:00
Adolfo Gómez García
1551fa8efa Updated client to work fine on windows 32 bits 2015-09-23 17:39:24 +02:00
Adolfo Gómez García
7e9a37e768 advancing & gui-element tables 2015-09-23 10:43:45 +02:00
Adolfo Gómez García
80bf6d77f1 Added "multiple deletions" feature 2015-09-23 03:31:26 +02:00
Adolfo Gómez García
2d7a2d6049 Advancing on new dashboard 2015-09-22 19:53:56 +02:00
Adolfo Gómez García
8363b41a68 Advancing on new dashboard look&feel 2015-09-22 09:46:28 +02:00
Adolfo Gómez García
9804678a30 Updating look&feel of admin dashboard 2015-09-22 04:13:15 +02:00
Adolfo Gómez García
1187c0aa5e * Added a template folder to work on admin design faster
* Updated Admin CSS (Testing new view)
* Minor fixes (typos)
2015-09-22 02:23:27 +02:00
Adolfo Gómez García
36adbe387c Bad resolve fixed 2015-09-22 01:04:32 +02:00
Adolfo Gómez García
df2dcf7acd Merge remote-tracking branch 'origin/v1.9'
# Conflicts:
#	server/src/uds/services/OVirt/OVirtProvider.py
#	server/src/uds/services/OVirt/client/oVirtClient.py

Conflicts resolved
2015-09-21 08:18:45 +02:00
Adolfo Gómez García
b64fa374d7 Updated ovirt engine so 3.5.4 works correctly with disk cloning (Bug has been fixed on oVirt) 2015-09-21 07:29:10 +02:00
Adolfo Gómez García
3fbb492921 Added summary when adding new calendar rule & merged migrations 2015-09-18 10:02:39 +02:00
Adolfo Gómez García
1b97e2015d More fixes to calendars 2015-09-18 08:06:07 +02:00
Adolfo Gómez García
3814986e41 Fixed calendar checking.\nUpdated CalendarRule model to allow different durations units 2015-09-18 00:47:21 +02:00
Adolfo Gómez García
037a4b523b Fixed calendar rules. Almost finished :-) 2015-09-17 06:53:35 +02:00
Adolfo Gómez García
522d493557 Advancing more on calendar rules edition 2015-09-15 10:43:26 +02:00
Adolfo Gómez García
2ac06f7345 Advancing more on calendar rules edition 2015-09-15 10:43:12 +02:00
Adolfo Gómez García
0745a7aa9a Advancing on rule editing 2015-09-13 04:43:59 +02:00
Adolfo Gómez García
7e419aed8d Updating components for 2.0 2015-09-13 03:30:48 +02:00
Adolfo Gómez García
baa9565140 Merge remote-tracking branch 'origin/v1.9' 2015-09-13 03:30:17 +02:00
Adolfo Gómez García
069dfb154a Updating components 2015-09-13 03:30:12 +02:00
Adolfo Gómez García
eea9db7a0d fixed incorrect position of datepickers 2015-09-13 03:29:38 +02:00
Adolfo Gómez García
485ed4d60b Merge remote-tracking branch 'origin/v1.9' 2015-09-12 22:11:13 +02:00
Adolfo Gómez García
44056dda3a Removed unused return 2015-09-12 22:09:47 +02:00
Adolfo Gómez García
4de3e83ade * Upgraded bootstrap-select
* Upgraded bootstrap-switch
2015-09-11 10:18:21 +02:00
Adolfo Gómez García
73713eac69 * Adding calendar (models, permissions, adm access, ....)
* Upgraded fontawesome
2015-09-11 01:39:01 +02:00
Adolfo Gómez García
6ed924655d Adding calendar/rules models 2015-09-09 10:01:48 +02:00
Adolfo Gómez García
7706262702 Merge remote-tracking branch 'origin/v1.9' 2015-09-08 19:46:31 +02:00
Adolfo Gómez García
d878d522d7 Fixed os manager edition on service pool 2015-09-08 19:27:19 +02:00
Adolfo Gómez García
e0843179cd Fixing up several minor lang issues 2015-09-07 21:40:12 +02:00
Adolfo Gómez García
c6683db6e6 Translations done 2015-09-04 11:59:36 +02:00
Adolfo Gómez García
063b062913 Added /sec:rdp to xfreerdp call 2015-08-31 17:49:25 +02:00
Adolfo Gómez García
3dd2521408 Removed "banner_timeout" parameter (not supported on old paramiko
versions, and not really needed)
2015-08-31 17:42:09 +02:00
Adolfo Gómez García
f8e61d475a Removed \n from VERSION 2015-08-09 09:41:25 +02:00
Adolfo Gómez García
e7cea4ff6e Fixing some VERSION dependant buildings to use a global file 2015-08-09 09:33:39 +02:00
Adolfo Gómez
33d37ec0c2 Added VERSION file 2015-08-09 09:25:35 +02:00
Adolfo Gómez García
512feaed81 Some minor inprovements to plugin 2015-08-09 09:21:42 +02:00
Adolfo Gómez García
93c6c1c20e Messages 2015-08-05 11:30:12 +02:00
Adolfo Gómez García
d2298f77b9 Some minor fixes 2015-08-03 02:27:20 +02:00
Adolfo Gómez García
6979d9bc17 Some improvements over REST api for actor 2015-07-14 12:47:03 +02:00
Adolfo Gómez García
d4135d527a Finished pools performance report 2015-07-07 19:39:44 +02:00
Adolfo Gómez García
91c678eb72 A couple of typos 2015-07-07 12:40:05 +02:00
Adolfo Gómez García
1ef2c7303f Updated Phisical machine to allow same ip on a service more than once
Fixed comment on UserServiceCleaner
Fixed edition of services without cache
2015-07-07 11:58:34 +02:00
Adolfo Gómez García
1b232d1113 Updating pools report 2015-07-07 03:40:34 +02:00
Adolfo Gómez García
78652b550b Started pool performace report 2015-07-02 11:40:44 +02:00
Adolfo Gómez García
95d0965503 Fixed services pools buttons 2015-07-02 11:40:06 +02:00
Adolfo Gómez García
d8f8815137 started new report & fixed init_cmd for mysql 5.6 2015-07-02 11:26:10 +02:00
Adolfo Gómez García
9bcf7076aa Fixed prefs 2015-06-22 14:47:30 +02:00
Adolfo Gómez García
ae71e2b4bd Latests update translations 2015-06-22 11:30:32 +02:00
Adolfo Gómez García
f8934acbe4 Added a couple csv reports 2015-06-21 21:51:36 +02:00
Adolfo Gómez García
abf6d3751b Fixed report & created "basic" report class 2015-06-21 12:21:59 +02:00
Adolfo Gómez García
b77fa7dfd6 Added changelog for publications to dashboard 2015-06-17 08:21:47 +02:00
Adolfo Gómez García
32a04edbf9 Added changelog at publish stage (needs to show it on admin) 2015-06-15 09:47:33 +02:00
Adolfo Gómez García
3ff281ffa3 * Started to add a "reason" for publication (an small changelog that
helps to keep track of reasonf for launching new publications)
* Removed non usable "Usage" report
2015-06-12 10:21:46 +02:00
Adolfo Gómez García
e07f1ae068 Updated uds __init__ & added several fixes 2015-06-09 16:32:26 +02:00
Adolfo Gómez García
119635862b Added "workaround" to oVirt 3.5 so publications can be made, but only on
the original machine storage (3.5 has a bug that does not allows to
relocate disks for templates using REST API).
2015-06-09 09:38:36 +02:00
Adolfo Gómez García
e553b904c5 Adding new tools libraries 2015-06-08 08:04:54 +02:00
Adolfo Gómez García
92db63d01d Added Basque to sample language list and fixed a literal on services 2015-06-05 13:01:30 +02:00
Adolfo Gómez García
3584ff189b Updated translations 2015-06-05 12:53:23 +02:00
Adolfo Gómez García
e8614cbf14 Added Basque lang support, but no translations are made (there is a collaborator company that will make it) 2015-06-05 10:23:33 +02:00
Adolfo Gómez García
399fc901fc Some minor fixes & aditions to "Storage"\nFixed EditList to correctly show tooltip 2015-06-02 22:13:55 +02:00
Adolfo Gómez García
524e234e6d Updated translations 2015-06-02 22:07:34 +02:00
Adolfo Gómez García
c14186fb4e Added hint on services about what kind of services they offers (VDI, VAPP, ..) 2015-05-29 09:21:36 +02:00
Adolfo Gómez García
eeea4a3f39 Added hint on services about what kind of services they offers (VDI, VAPP, ..) 2015-05-29 09:21:26 +02:00
Adolfo Gómez García
567f91414f Allows "respawn" of new services instead of existing one on service
launch
2015-05-27 09:51:30 +02:00
Adolfo Gómez García
e5710eb74c * Fixed log of "user logged in" and "user logged out"
* Small typo on debug log for windows os manager
* Added Headers to __init__ of windows os managers
2015-05-26 10:36:15 +02:00
Adolfo Gómez García
1733f142be * Several fixes to UDS Actor (minor ones)
* Minor adaptions to allow REST actor to connect with "tickets'
* Fix to TicketStore
2015-05-26 08:26:36 +02:00
Adolfo Gómez García
ccebca9748 Merge remote-tracking branch 'origin/v1.7' 2015-05-21 13:17:29 +02:00
Adolfo Gómez García
cb5d6ed771 small typo 2015-05-21 13:14:25 +02:00
Adolfo Gómez García
b9283c6778 Fixed ramdom password... {3} must be {2}!!! 2015-05-21 13:06:11 +02:00
Adolfo Gómez García
5dc2c16cbe Merge remote-tracking branch 'origin/v1.7' 2015-05-21 07:23:39 +02:00
Adolfo Gómez García
8d4f60b0fb Fixed a couple things for Linux random password 2015-05-21 07:23:18 +02:00
Adolfo Gómez García
b9175be480 A couple minor fixes for RDP transports 2015-05-18 10:02:29 +02:00
Adolfo Gómez García
884bbe7363 Updated translations 2015-05-17 22:17:51 +02:00
Adolfo Gómez García
98b9e6b659 more makeup 2015-05-17 21:35:31 +02:00
Adolfo Gómez García
1c4339f404 Adding some "beauty" icons 2015-05-15 10:41:19 +02:00
Adolfo Gómez García
0ffc9964d0 Merge remote-tracking branch 'origin/v1.7'
Conflicts:
	server/src/uds/REST/methods/providers.py
	server/src/uds/REST/methods/services.py
	server/src/uds/REST/methods/tickets.py
	server/src/uds/REST/model.py
	server/src/uds/web/views/service.py
2015-05-14 12:39:58 +02:00
Adolfo Gómez García
18c9406900 Several fixes... :) 2015-05-14 12:25:35 +02:00
Adolfo Gómez García
df498dd5bc Fixed several "case" uuids tests, so UDS can work with case sensitive
databases
2015-05-14 11:46:45 +02:00
Adolfo Gómez García
e7a3c7ebeb Removed transcomp (not user anymore) 2015-05-13 07:13:12 +02:00
Adolfo Gómez García
724aecd21c Updating translations 2015-05-13 07:12:55 +02:00
Adolfo Gómez García
b00a023f30 *Updated a new buch of icons
Changed reload method for main page
* Added cache support for some kinds of pages
2015-05-13 06:52:13 +02:00
Adolfo Gómez García
592510f0f3 * Added new "Global ID Generator"
* Added a single point for all unique generators (uds.core.util.unique)
2015-05-13 05:58:50 +02:00
Adolfo Gómez García
c96e566ebf * Updated a bunch of icons
* Changed modal of transport, now it says connections
* Removed old rdptransport from current version
* Fixed error view (was getting idError as string instead of integer)
* Started to add protocol dependency to services, so we can limit some kined of services to a protocol
2015-05-13 05:57:47 +02:00
Adolfo Gómez García
78526b3560 The index is now "static", so we reload it every minute for the user to
get the state of different services updated.
2015-05-10 07:33:12 +02:00
Adolfo Gómez García
04ec90ad61 * Transports associadted to Providers working correctly
* Spice transport added (EXPERIMENTAL version)
2015-05-10 07:19:57 +02:00
Adolfo Gómez García
e69914a9a5 Fixed os detection on request when no user agent is privided (defaults
to Unknown)
2015-05-10 06:40:23 +02:00
Adolfo Gómez García
c1c54f38cc Working on Spice protocol support.
* Added "provider specific" transport support
* Fixed dashboard to new transport support
2015-05-06 09:31:37 +02:00
Adolfo Gómez García
dad83c5c50 Merge remote-tracking branch 'origin/v1.7' 2015-05-06 05:47:23 +02:00
Adolfo Gómez García
b592e10126 After upgrade of python to 2.7.9, several HTTPS connections needed to be
fixed. This is about that
2015-05-06 05:36:03 +02:00
Adolfo Gómez García
a235e43c07 Fixed edition of ovirt service O.o 2015-05-06 04:27:14 +02:00
Adolfo Gómez García
eb7185b9e3 Fixed possition of base64 js. When using "compressor" on production, it was not working on prev place 2015-05-06 02:16:39 +02:00
Adolfo Gómez García
776702f971 Added own version to client REST request for required version 2015-05-06 01:53:21 +02:00
Adolfo Gómez García
6fb9b11f1b Fixing versions so they are shown on web interface 2015-05-05 08:17:59 +02:00
Adolfo Gómez García
d3e2ab85b8 Fixed building process of actor packages 2015-05-05 07:13:30 +02:00
Adolfo Gómez García
35a4dd659c Fixed building process of client packages 2015-05-05 07:08:57 +02:00
Adolfo Gómez García
e0d2abbbd6 fixing versions. Too much changes, we are going to give out it as 1.9.0 2015-05-05 07:01:09 +02:00
Adolfo Gómez García
5db3429b2c Added user access report
added ipython notebook notes (could be it helpfull?)
fixed datepicker locales loader (UDS one)
Several fixes for reporting
2015-05-05 06:49:31 +02:00
Adolfo Gómez García
dd0c605ff4 Added datepicker to complete "date" type gui field
Started login report
several minor fixes to adapt to reporting
2015-05-03 13:32:31 +02:00
Adolfo Gómez García
54d41c1931 * Added stat about accessing platform (OS, browser & browser version)
* Added bar informing about cookie usage by site
2015-05-03 03:58:50 +02:00
Adolfo Gómez García
9ee66cf6ed * Added "force" parameter to ticket request for ticket authenticated
access
* Added detection of browser to OSDetector, so now request always have
the current browser type/version
* Fixed decorator/template tag to use new request.os.Browser &
request.os.Version
2015-05-03 03:33:05 +02:00
Adolfo Gómez García
a34de035cb * Added creation date to user & group, so we can include "auto clean by age" mechanichs
* Added changelogs to Publications, so we can "store" if we like a text with every publication
* Added "ServiceNotReadyError" as method of controlling if a service is ready, instead of returning None
* Merged several migrations into one
* Updated message error so we include a "code" when service is not ready
* Added user getService to userServiceManager, that is where it must be
2015-04-30 13:03:32 +02:00
Adolfo Gómez García
1dac61ea69 Merge remote-tracking branch 'origin/v1.7' 2015-04-30 08:23:57 +02:00
Adolfo Gómez García
15c785d5fe Again, counter fix to 15 seconds (1 minuto seems too long for me right
now...)
2015-04-30 08:23:07 +02:00
Adolfo Gómez García
7c7c609ea8 fixex pydev for current version 2015-04-29 17:45:02 +02:00
Adolfo Gómez García
f8b34e1d23 Merge remote-tracking branch 'origin/v1.7' 2015-04-29 17:44:26 +02:00
Adolfo Gómez García
6295e7400d added virtualenv for pydev project for 1.7 2015-04-29 17:43:53 +02:00
Adolfo Gómez García
42a3df5c82 Merge remote-tracking branch 'origin/v1.7' 2015-04-29 17:19:55 +02:00
Adolfo Gómez García
54a2a0cb35 Added exception checking on service main loop for windows 2015-04-29 17:19:30 +02:00
Adolfo Gómez García
ec48f27792 Merge remote-tracking branch 'origin/v1.7' 2015-04-29 17:17:23 +02:00
Adolfo Gómez García
15554ab08f A couple of minor fixes 2015-04-29 17:17:06 +02:00
Adolfo Gómez García
c042ab6b31 * Updated following admin components:
- jquery
  - Filesaver
  - datatables
  
* Added full support for report generation, in dashboard & REST backend
2015-04-29 07:59:21 +02:00
Adolfo Gómez García
40641659a5 Started "definitive" reporting system for dashboard 2015-04-28 05:03:01 +02:00
Adolfo Gómez García
f7fbc5a0c4 Fixed systray icon of UDS and a couple of minor fixes 2015-04-27 22:13:34 +02:00
Adolfo Gómez García
4a6e21d1ec Upgraded UDS Actor systray icon. The "black" background was due i was saving images witg "transparent pixel color included" from gimp 2015-04-27 22:01:31 +02:00
Adolfo Gómez García
d6dcd265a4 * Tests on reports (will be added as REST methods, this is just tests..
:) )
* Small fix to REST udsactor (got VERSION from new part)
2015-04-27 20:40:06 +02:00
Adolfo Gómez García
8fe589fa75 Finished Ticket launching mechanics, used with some external plugins
(such as UMA's Moodles plugin for UDS)
2015-04-27 07:07:44 +02:00
Adolfo Gómez García
656f10a1ca Merge branch 'master' of github.com:dkmstr/openuds 2015-04-27 05:22:30 +02:00
Adolfo Gómez García
f39d780a88 Removed "util" ticket and adapted several 1.8 db model stuff (UnsavedForeignKey) 2015-04-27 05:17:25 +02:00
Adolfo Gómez
134e9c0b61 updated .gitignore for mac buildings 2015-04-26 06:41:20 -07:00
Adolfo Gómez García
f411eec5f4 towards 1.7.5 2015-04-26 03:27:06 +02:00
Adolfo Gómez García
a996562a5e Cleaning up thing for 1.7.5 2015-04-26 03:18:15 +02:00
Adolfo Gómez García
1ea3261b27 Restored autorun functionality 2015-04-24 17:32:15 +02:00
Adolfo Gómez García
a1bd7274f4 Advancing on basic reports 2015-04-24 04:19:43 +02:00
Adolfo Gómez García
3206390c9c Removing Java plugins related code 2015-04-23 07:08:08 +02:00
Adolfo Gómez García
4ed20850ae Added downloadables for clients 2015-04-23 07:07:14 +02:00
Adolfo Gómez García
ef302205bc some cleanups 2015-04-23 06:32:03 +02:00
Adolfo Gómez García
e651d3348d All existing transports are now ported to new model. Need to do more
tests, but conversion seems to be finished (or almost.. :) )
2015-04-22 06:39:09 +02:00
Adolfo Gómez García
cc3cce6038 Migrating from Java to New agent for NX 2015-04-21 19:13:15 +02:00
Adolfo Gómez García
5b3e5242d1 Merge remote-tracking branch 'origin/v1.7' 2015-04-21 12:29:32 +02:00
Adolfo Gómez García
60556ad4ec fixed RDP with user credentials 2015-04-21 12:29:10 +02:00
Adolfo Gómez García
8686741410 fixed build packages 2015-04-20 09:24:15 +02:00
Adolfo Gómez García
199e0d3559 Almost finished connector 2015-04-20 07:33:01 +02:00
Adolfo Gómez García
95b8969f5b * Fixed service ip checking access on access
* Added new "connection" REST method (Virginios request to make
"automated" connections with local clients)
2015-04-16 20:55:28 +02:00
Adolfo Gómez García
fc447e3ccf updated handlers.py from mainstream 2015-04-16 18:24:43 +02:00
Adolfo Gómez García
6b19e75ce7 Advancing on transports & client fixes 2015-04-14 08:33:10 +02:00
Adolfo Gómez García
c3316a4745 Fixed forwarding scheme so it works with all platforms... 2015-04-13 13:55:18 +02:00
Adolfo Gómez García
250441056b Initial version for linux packagers 2015-04-10 17:31:35 +02:00
Adolfo Gómez García
bdef8b2e8c * Simplified Transports after tests
* Added direct linux support for xfreerdp right now
2015-04-08 15:21:09 +02:00
Adolfo Gómez García
aef71ba48c Adding icons for windows and fixing up things 2015-04-07 18:17:21 +02:00
Adolfo Gómez
86e5b9fcaa added mac osx icons file 2015-04-07 03:34:53 -07:00
Adolfo Gómez García
8d01e77a94 advancing new transport system 2015-04-07 12:28:41 +02:00
Adolfo Gómez García
d34248b868 advancing new transport system 2015-04-07 12:28:31 +02:00
Adolfo Gómez
c15151a35d adding icons for macosx 2015-04-07 03:21:03 -07:00
Adolfo Gómez García
b5609a7b0c tunning up things 2015-04-07 12:02:45 +02:00
Adolfo Gómez García
4067de702c tunning uds client 2015-04-07 11:57:57 +02:00
Adolfo Gómez García
375f574e9e more fixes 2015-04-07 11:43:33 +02:00
Adolfo Gómez
ee59f45838 fixing up tunnel stuff 2015-04-07 02:41:59 -07:00
Adolfo Gómez
ae5fafae76 fixin up things on mac os x 2015-04-07 02:04:51 -07:00
Adolfo Gómez
dc1dd977fc Removed notes & added basic macosx info 2015-04-06 23:18:41 -07:00
Adolfo Gómez García
f8b95382b0 * Extracting script to "template" files for transports
* Fixes to UDS Client
2015-04-07 07:59:47 +02:00
Adolfo Gómez García
2f655dce16 Advancing on Mac OS RDP TRansport and a couple minor fixes to UDS Plugin 2015-04-02 09:36:46 +02:00
Adolfo Gómez García
c5138dbc9c First part seems to work fine on mac os x with Microsoft Remote Desktop 2015-04-01 09:44:41 +02:00
Adolfo Gómez García
8a17d5d017 More on mac 2015-04-01 09:36:52 +02:00
Adolfo Gómez García
089f62e6f8 More for mac related 2015-04-01 09:32:13 +02:00
Adolfo Gómez García
e4192e6064 Advancing on client for mac os x 2015-04-01 09:07:11 +02:00
Adolfo Gómez
646334ece5 test.rdp 2015-03-31 23:13:53 -07:00
Adolfo Gómez
2480a79450 adding more notes for mac os x 2015-03-31 23:13:25 -07:00
Adolfo Gómez García
f173146d8f * Implemented uds connector script for RDP (just for windows right now)
* Advanced a lot with java removal process
* Implemented usefull things on client part
2015-03-31 18:10:44 +02:00
Adolfo Gómez García
62f50304fe Advancing on uds client connector 2015-03-30 12:08:44 +02:00
Adolfo Gómez García
c70d94e866 Started client part 2015-03-30 08:11:29 +02:00
Adolfo Gómez García
dc006e7cbc using new method for client (more homogeneous) 2015-03-27 14:44:45 +01:00
Adolfo Gómez García
c5444f0df2 Almost done with web part of new model. Retired java checks from code & pages 2015-03-27 07:41:42 +01:00
Adolfo Gómez García
c7d3e4022f added bypass plugin detection to preferences 2015-03-26 17:31:40 +01:00
Adolfo Gómez García
151623e407 Advancing on web part of new no-java version of UDS 2015-03-26 14:24:03 +01:00
Adolfo Gómez García
67393e88db Merge remote-tracking branch 'origin/v1.7' 2015-03-25 10:10:54 +01:00
Adolfo Gómez García
2fe783e3ae Updated Filesaver && fixed exporting to excel 2015-03-25 10:10:34 +01:00
Adolfo Gómez García
d87f4de4ff Web part of new uds plugin almost done 2015-03-24 12:05:40 +01:00
Adolfo Gómez García
b69f56ecb8 Fixed servicepool deletion on image deletion 2015-03-24 11:22:28 +01:00
Adolfo Gómez García
b08fd3d60e Merge remote-tracking branch 'origin/v1.7' 2015-03-24 10:42:08 +01:00
Adolfo Gómez García
7d26463639 updated translations 2015-03-24 10:41:52 +01:00
Adolfo Gómez García
4d9d4bdbee Merge remote-tracking branch 'origin/v1.7' 2015-03-24 09:43:23 +01:00
Adolfo Gómez García
523ca37ee8 typo 2015-03-24 09:42:54 +01:00
Adolfo Gómez García
65c7b34ee0 Started client plugin 2015-03-24 08:05:51 +01:00
Adolfo Gómez García
2303861650 Advancing a bit more towards new uds transport model 2015-03-23 20:06:03 +01:00
Adolfo Gómez García
38b7ac892e Merge remote-tracking branch 'origin/v1.7' 2015-03-23 12:24:42 +01:00
Adolfo Gómez García
cfad948660 Added multiple monitor support for windows clients & servers 2015-03-23 12:22:45 +01:00
Adolfo Gómez García
ccf35fcd49 Advancing on uds client 2015-03-23 12:08:39 +01:00
Adolfo Gómez García
d6e031e9e6 Creating new ticketing model, based on an independent table 2015-03-23 02:27:56 +01:00
Adolfo Gómez García
7b29d698dc Merge remote-tracking branch 'origin/v1.7' 2015-03-23 02:23:56 +01:00
Adolfo Gómez García
989600e639 Fixed uuid model case 2015-03-23 02:22:54 +01:00
Adolfo Gómez García
9fa4bacc74 fixed case of uuids to lower 2015-03-23 02:22:17 +01:00
Adolfo Gómez García
e02b3ad881 Merge remote-tracking branch 'origin/v1.7' 2015-03-20 15:16:15 +01:00
Adolfo Gómez García
cc4619220a * Added a "preinit" to xscreensaver, to give some more oportunities on
linux to initialize this correctly.
* Fixed typos on dashboard
* Fixed not saving correctly textarea fields of configuration
2015-03-20 15:15:35 +01:00
Adolfo Gómez García
c71d86825c Added download page for new uds plugin 2015-03-20 13:30:52 +01:00
Adolfo Gómez García
7648e9c655 Added a reset to initIdleDuration 2015-03-18 15:30:13 +01:00
Adolfo Gómez García
bb8931e7d4 Merge remote-tracking branch 'origin/v1.7' 2015-03-18 11:08:06 +01:00
Adolfo Gómez García
695a67c2cb Fixed so image deletion does not deletes it associated deployed service 2015-03-18 11:07:26 +01:00
Adolfo Gómez García
011ba37d2a Several minor fixes and protocol detection seems to work 2015-03-17 12:34:32 +01:00
Adolfo Gómez García
d73c8f49cc Several minor fixes and protocol detection seems to work 2015-03-17 12:34:19 +01:00
Adolfo Gómez García
3ddf2f91ad converted sample from utf16 to utf8 2015-03-16 14:42:43 +01:00
Adolfo Gómez García
809aea2c87 UDS Client project 2015-03-16 14:40:19 +01:00
Adolfo Gómez García
4e2fce147f linux notes 2015-03-16 14:39:13 +01:00
Adolfo Gómez García
26e01af696 linux notes 2015-03-16 14:38:48 +01:00
Adolfo Gómez García
cb9359f9af Fixed checking permissions on custom methods of publications 2015-03-16 11:28:53 +01:00
Adolfo Gómez García
bad482b7f1 Test for windows schema registering 2015-03-15 11:34:13 +01:00
Adolfo Gómez García
a94f7b335b Merge branch 'master' of github.com:dkmstr/openuds 2015-03-15 11:32:46 +01:00
Admin
41b86509e0 testing building on mac os x 2015-03-15 02:35:57 -07:00
Adolfo Gómez García
27224fa8a1 Starting to work on reporting 2015-03-10 09:25:18 +01:00
Adolfo Gómez García
9656aab27d Merge remote-tracking branch 'origin/v1.7' 2015-03-09 16:53:46 +01:00
Adolfo Gómez García
cbf68030d3 Removed debug from oVirt 2015-03-09 16:51:56 +01:00
Adolfo Gómez García
3e97481af2 fixed permissions tests 2015-03-09 16:08:16 +01:00
Adolfo Gómez García
705c3d7b76 Merge remote-tracking branch 'origin/v1.7' 2015-03-09 15:54:37 +01:00
Adolfo Gómez García
2470e88d55 added .pyo to ignore list 2015-03-09 15:51:47 +01:00
Adolfo Gómez García
f300770b29 Merge remote-tracking branch 'origin/v1.7' 2015-03-09 08:29:45 +01:00
Adolfo Gómez García
63278938c8 fixed translations 2015-03-09 08:29:18 +01:00
Adolfo Gómez García
5623c65763 Template 2015-03-06 09:52:48 +01:00
Adolfo Gómez García
5dca92ca5e * Added new "main dashboard" template for non admin (staff) users 2015-03-06 09:52:07 +01:00
Adolfo Gómez García
c1fd898d62 Some retouch on permissions delegation... seems nice right now :) 2015-03-05 19:10:46 +01:00
Adolfo Gómez García
2435f589b9 Needs more testing, but permission delegation seems to work right now. 2015-03-05 15:20:46 +01:00
Adolfo Gómez García
6387629e7e Almos finished permissions gui 2015-03-04 12:07:22 +01:00
Adolfo Gómez García
5bde71b117 Advancing on permissions 2015-03-03 16:58:49 +01:00
Adolfo Gómez García
b2eb7cc9c1 Advancing on permissions 2015-03-03 16:58:32 +01:00
Adolfo Gómez García
48df4390bd Started dashboard permissions edit 2015-03-02 17:02:02 +01:00
Adolfo Gómez García
9920af9c59 Adding permissions managing to objects 2015-03-02 11:51:20 +01:00
Adolfo Gómez García
681b1333d1 Advancing thought permissions delegation 2015-03-02 08:30:45 +01:00
Adolfo Gómez García
67b8955189 Started permission delegation 2015-03-01 22:04:52 +01:00
Adolfo Gómez García
d542503f55 * Adapting to new "near" auth groups 2015-02-28 12:00:57 +01:00
Adolfo Gómez García
be5ed5a70b Merge remote-tracking branch 'origin/v1.7' 2015-02-28 09:46:33 +01:00
Adolfo Gómez García
f751fff8ca Fixed using 169.254/16 as a valid IP for notifying to broker 2015-02-28 09:45:12 +01:00
Adolfo Gómez García
2d942fbac7 More minor fixes 2015-02-27 17:32:24 +01:00
Adolfo Gómez García
4bb4987937 minor fix related to grace time 2015-02-27 17:24:57 +01:00
Adolfo Gómez García
d371e3f7ac Fixed some posible "logging out too early" to users when using idle
checker
2015-02-27 17:23:26 +01:00
Adolfo Gómez García
033fb6eff2 * Fix to StatsManager so numeric fields can also be used
* Added remaining related cache elements on cache_hit & cache_miss
* pep fix to WidowsOsManger
* Reduced size of Dashboard sidebar
* Removed "AM/PM" from datetimes
2015-02-27 17:05:06 +01:00
Adolfo Gómez García
23819b77ee * Added cache hit/miss logging events 2015-02-27 09:28:04 +01:00
Adolfo Gómez García
fbcc2210b3 minor fix 2015-02-26 15:16:49 +01:00
Adolfo Gómez García
45b2e61631 * Added some debug logging to actor 2015-02-26 10:39:18 +01:00
Adolfo Gómez García
4fceb8609f Fixed log of pub manager\nModified default config of tunneler\nUpdated actor REST api to not allow less than 30 seconds of "max idle" configuration 2015-02-25 17:05:39 +01:00
Adolfo Gómez García
26c6b559a5 * Minor tuning 2015-02-25 11:15:08 +01:00
Adolfo Gómez García
90e34029f3 Fixing up rdp transport (tunneled) 2015-02-25 10:28:18 +01:00
Adolfo Gómez García
6895f602ab Just updated guacamole pom to use 0.9.4 2015-02-23 13:26:34 +01:00
Adolfo Gómez García
b1b8b613e6 Updated translations 2015-02-23 10:16:44 +01:00
Adolfo Gómez García
40ba837f70 Added logging of what caused the exception 2015-02-23 08:35:26 +01:00
Adolfo Gómez García
c075ae5a9c * Updated notification so, by default, is broker which "deduces" the
client IP and not the client who notifies it (this is left just for
"trusted" environments)
2015-02-22 09:31:56 +01:00
Adolfo Gómez García
8de49e5e94 * Removed "Trusted only" from manifest 2015-02-22 09:17:06 +01:00
Adolfo Gómez García
7887b7f3cc Fixed Linux applet to "show" wallpapers if required 2015-02-20 15:27:16 +01:00
Adolfo Gómez García
c81f162b90 Fixed "print" to "logger.debug" 2015-02-20 11:31:06 +01:00
Adolfo Gómez García
35a5a78220 updated requirements 2015-02-20 09:30:19 +01:00
Adolfo Gómez García
2bc0f64e34 Set a default ip for connection source on service connection request
(equals to request "deducted" ip...).
2015-02-18 14:45:08 +01:00
Adolfo Gómez García
19cb475e2d * Updated bootstrap switch to latest (and working) version
* Fixed displaying state "twice" in authenticators groups due to a
"developing" data left behind...
2015-02-17 23:46:56 +01:00
Adolfo Gómez García
ae4fc2d51a Removed log from user space actor for user login.. (Filtered out) 2015-02-17 22:18:01 +01:00
Adolfo Gómez García
06e886a366 * Fixed HTML5RDP to work correctly with new actor
* Fixed base transport to receive an "user" and not an "username"
2015-02-17 11:45:30 +01:00
Adolfo Gómez García
1497314a46 Fixing up windows service behavior 2015-02-17 09:51:51 +01:00
Adolfo Gómez García
e6998cb1f3 Added posibility to modify several OS Manager fields even if it is being used 2015-02-16 18:31:16 +01:00
Adolfo Gómez García
111782dffd removing binaries 2015-02-16 17:54:30 +01:00
Adolfo Gómez García
a86fbf83e8 removing binaries 2015-02-16 17:53:27 +01:00
Adolfo Gómez García
c9f6c17407 Fixed state notification when os manager is working 2015-02-16 15:58:38 +01:00
Adolfo Gómez García
c04037a4ea Fixed actor return error on DC not reachable 2015-02-16 14:58:27 +01:00
Adolfo Gómez García
d1adcebe4b Added "info" to mac users
Restored overview info to match item info
2015-02-11 11:22:56 +01:00
Adolfo Gómez García
3e5cbda861 Testing up manifest changes for signed applets on mac 2015-02-11 09:49:31 +01:00
Adolfo Gómez García
8a393c6717 Added "is in maintenance" method for userservice 2015-02-10 17:44:41 +01:00
Adolfo Gómez García
f235bc0796 If service is in maintenance, denies now new accesses (index page may be
outdated)
2015-02-10 17:26:27 +01:00
Adolfo Gómez García
2549510eaa * Fixed several "last hour" REST requests related to tickets
* Added OS Detector so if os is not detected before, tries it at request
moment
* Added a new error so services in maintenance mode are notified
2015-02-10 17:24:27 +01:00
Adolfo Gómez García
3fbcee60cb small fix 2015-02-10 10:29:01 +01:00
Adolfo Gómez García
20cc73dca8 * Added Manifest small fixes for applets
* Updated translations
* Added several "methods" support for sqlite3 db backend (on __init__ of
uds) such as max, min & ceil (needed for stats)
2015-02-10 09:54:45 +01:00
Adolfo Gómez García
375fe6551c Some minor cosmetic fixes to scheduler runner 2015-02-03 18:26:25 +01:00
Adolfo Gómez García
f74524d947 * Fixed HTML5 RDP
* Updated translations
* Fixed Scheduler to ensure that when started up, all "owned" tasks are
released
2015-02-03 18:19:21 +01:00
Adolfo Gómez García
e1f26d2157 * Fixed "double cancel" of a publication (cancelling over an already
cancelling publication will "force" the cancellation, meaning that no
check is done, it simply stops publication and mark it as "cancelled"
(leaving a log on service pool, ofc)
2015-02-03 06:30:27 +01:00
Adolfo Gómez García
7d44bd7b65 Some more minor fixes to literals & translations 2015-02-02 11:43:56 +01:00
Adolfo Gómez García
ab5f51a3b1 * Fixed several bad formed literal strings
* Updated translations
2015-02-02 11:31:59 +01:00
Adolfo Gómez García
d1e2e98099 Fixed rpm actors download path 2015-02-02 07:13:17 +01:00
Adolfo Gómez García
f94bbaad67 Fixed mime types por rpm actors packages 2015-02-01 06:18:37 +01:00
Adolfo Gómez García
7143682062 * Fixed cancelation of a publication on dashboard
* Now allows "forced cancel" after a cancel is requested
2015-02-01 06:17:11 +01:00
Adolfo Gómez García
17a087ed4a * Removed binaries for NX from git (we have source code..)
* Fixed downloadable list for administrators with actors
2015-02-01 05:53:54 +01:00
Adolfo Gómez García
762138ca57 Fixed so new publications are not allowed while a provider is in
maintenance mode
2015-02-01 05:41:24 +01:00
Adolfo Gómez García
1fb46003fc Several minor actor fixed to manage some workarounds in a better way 2015-02-01 04:07:46 +01:00
Adolfo Gómez García
e1bbbece43 * Added minimun values for Service Pool form numeric fields
* Added support for key "minValue" for numeric ui fields
* Fixed cache updater to take into account those services pools that has
initial or l1 cache to 0
* Fixed old (legacy) uds actor logging
* Fixed index view for pools that do not have assigned services
*
2015-01-31 11:14:24 +01:00
Adolfo Gómez García
e3e652d4e1 Fixed cache updater, so now we can select "0 elements" for cache,
initials, etc..
2015-01-31 10:18:12 +01:00
Adolfo Gómez García
b8a1fc31f3 Adding colours to failed services 2015-01-28 09:15:08 +01:00
Adolfo Gómez García
d5034c9971 * Restored "missing" services that where in maintenance mode. Now they
got displayed but with some transparency & can't be clicked
* Added "slightly" blue color & tooptip to indicate that a service is
currently with an opened session
2015-01-28 08:16:48 +01:00
Adolfo Gómez García
215c8f8f3e Split views across several source files to easier "maintenance" 2015-01-28 06:30:57 +01:00
Adolfo Gómez García
b2bf4bd0db * Added some more docstrings
* Fixed how logs of user login/logout on services are done
2015-01-27 07:03:38 +01:00
Adolfo Gómez García
1d2c4c8282 Fixed requests version detection
Fixed warnings so they are no more logged to console (for urllib3
mainly)
2015-01-27 07:02:24 +01:00
Adolfo Gómez García
70fc09b21a * Added service known IP to services list
* Optimized service retrieval for dashboard
* Added group regex expressions
* Added pool in maintenance mode for pools list
* Upgraded visibility of "warned" pools (couoling them)
* Improved base service list on new pool (added provider in front of
service)
2015-01-26 09:30:25 +01:00
Adolfo Gómez García
9a529b8f5b Added experimental support for pattern in group names (using pat:... as group name) 2015-01-23 08:54:52 +01:00
Adolfo Gómez García
4a2401b622 Added fld4 to stats events. Added validators to providers 2015-01-22 11:47:01 +01:00
Adolfo Gómez García
3feb502fec Started to use events stats system 2015-01-22 03:32:26 +01:00
Adolfo Gómez García
e75c86ad58 Stabilizing for 1.7
* Fixed several IDE "false errors"
* Added several needed comments
* Added logging to base os manager to login/logout process
* Fixed Linux & Windows managers to allow use of new base os manager
feature
* Fixed coffe script error that do not allows to create e new service
2015-01-21 13:30:37 +01:00
Adolfo Gómez García
9a95d39156 * added admin dashboard link for administrator to "old" interface 2015-01-21 10:14:38 +01:00
Adolfo Gómez García
cc48b50dcb Minor code fixes & updates 2015-01-21 08:36:35 +01:00
Adolfo Gómez García
32b1ac71a9 Log fixing 2015-01-21 08:20:53 +01:00
Adolfo Gómez García
bd98349dc4 Added missing resolutions to select in preferences screen 2015-01-15 18:14:07 +01:00
Adolfo Gómez García
cf6602033d Fixed LDAP authenticators so they scape "inputs" from unknown source
(basically the username).
2015-01-15 18:11:37 +01:00
Adolfo Gómez García
2959a878af Fixed navbar to not allow "root" user to access preferences (root user
will never own services)
2015-01-15 09:24:58 +01:00
Adolfo Gómez García
ea087fce53 fixed upload directory permissions on sample settings 2015-01-14 19:55:38 +01:00
Adolfo Gómez García
9335c73003 Added config initialization on config command 2015-01-14 19:35:59 +01:00
Adolfo Gómez García
e11867a55e Added config initialization on config command 2015-01-14 19:21:01 +01:00
Adolfo Gómez García
c72a8d3950 * Added new resolutions to RDP
* Added logging of generated password to service log
* Small "pepe" corrections
2015-01-13 14:50:49 +01:00
Adolfo Gómez García
ddd8df3b26 small fix 2015-01-13 05:48:59 +01:00
Adolfo Gómez García
c491dc78ab Added TODO.txt to not forget what is next :) & updated (again) translations 2015-01-13 05:37:53 +01:00
Adolfo Gómez García
fd4fe245c6 Added CoRD custom build & update download link for Mac 2015-01-13 05:06:22 +01:00
Adolfo Gómez García
cbd8a17cc4 Updated translations 2015-01-13 04:58:53 +01:00
Adolfo Gómez García
9356fc3559 Advanced on events stats 2014-12-21 12:56:21 +01:00
Adolfo Gómez García
243e627827 Added "Maintenance mode" to providers (by Seville University request..
thanks for the advice ;-) ), that marks a provider as "on Maintenance
Mode". In this mode, every operation depending on this provider will be
"paused", and deployed services will be "hidden" from users...
2014-12-20 16:47:19 +01:00
Adolfo Gómez García
bb408a31a2 Fixed OS Managers & New Services presentation 2014-12-17 21:45:48 +01:00
Adolfo Gómez García
3035360ce7 * Changed "tiled" list of services for a... better one??
* Added a switch to the service pool so we can disable the show of
alternative transports (so only main is available...)
2014-12-12 00:43:36 +01:00
Adolfo Gómez García
cdaf5a17fa * Upgraded Java Detection js
* Added generic icon of UDS
2014-12-11 16:21:20 +01:00
Adolfo Gómez García
f97e02e867 Changed "key" generation on actor to use a random 48 chars strings
instead of an uuid
2014-12-10 12:08:13 +01:00
Adolfo Gómez García
101aa6fc39 Fixed tipo "eror" :) 2014-12-09 17:30:18 +01:00
Adolfo Gómez García
8e7a6af3ad Removed old actors 2014-12-09 17:17:36 +01:00
Adolfo Gómez García
22bf17f080 fixed Windows Actor onLogout 2014-12-09 17:15:52 +01:00
Adolfo Gómez García
35b27acee3 Fixed OS Managers to work "nice" with new Actors (and olders) 2014-12-09 15:50:35 +01:00
Adolfo Gómez García
722c8b2b61 * Set logging to INFO by default
* Added messages to Actor User Space
2014-12-09 12:03:50 +01:00
Adolfo Gómez García
bc6d500898 Removed "debug" line" 2014-12-08 13:19:18 +01:00
Adolfo Gómez García
c9ec31f258 * Added a "delay" before starting using IPC, so secondary thread is
ensured to be running

Tests seems to work perfectly now.. Have to be tested intensibely in all
platforms, but seems to be almost finished (actor).
2014-12-08 13:11:07 +01:00
Adolfo Gómez García
e9f38b044f Now correctly adds user to Remote Desktop Group before connection, so
access is granted for user (Note: user must exist in machine/domain)
2014-12-08 12:54:25 +01:00
Adolfo Gómez García
06a00d00b9 Moved several transports to newer "form storage" model, much more simple
than "hand made" marshalling/unmarshallig (Note: Nx has been keeped
using "old" method because it will be not be updated anymore, we are
moving to use x2go instead in future releas)
2014-12-08 12:14:36 +01:00
Adolfo Gómez García
7c916397e4 Fixing up a bit transports 2014-12-08 08:55:23 +01:00
Adolfo Gómez García
903664b7c5 * Removed send script from OS Manager (it's a nonsense, after a few
tests..)
* Some typos fixes
2014-12-07 21:35:13 +01:00
Adolfo Gómez García
bda104d94e Added "pre connect" & "post connect" messages 2014-12-07 21:33:53 +01:00
Adolfo Gómez García
e8b16a7e9d Updated Script Executor thread 2014-12-05 10:54:23 +01:00
Adolfo Gómez García
c7d3984289 Adding "Add User To Remote Desktop Group" as option to Windows OS
Manager
2014-12-05 10:53:00 +01:00
Adolfo Gómez García
038e37fe39 Fixing up thing 2014-12-04 13:12:01 +01:00
Adolfo Gómez García
ce2250bb2c Forgot to fix LinuxOsManagers :) 2014-12-04 13:11:26 +01:00
Adolfo Gómez García
c32222ec8a Merge branch 'master' of github.com:dkmstr/openuds 2014-12-04 13:07:19 +01:00
Adolfo Gómez García
9a86682c9d Adding support for pre-access scripts so UDS can support certain
operations (i.e. add an user to an specific group, or allowing user to
access using specific protocol, thanks to José Luis Sepúlveda from upv
for the feedback ;-)
2014-12-04 13:03:58 +01:00
Adolfo Gómez García
2159e0f29d Added support for OpenSuse also (and created a build script)
Fixed up & tuning of actor
2014-12-04 12:49:40 +01:00
Adolfo Gómez García
3057f454dd Added support for OpenSuse also (and created a build script)
Fixed up & tuning of actor
2014-12-04 12:46:51 +01:00
Adolfo Gómez García
42e8213442 Tuning a bit more actors 2014-12-02 22:07:14 +01:00
Adolfo Gómez García
29aa6be5dc Tuning up User Space Tools 2014-12-02 21:42:14 +01:00
Adolfo Gómez García
8cf6815e8e * Added comm url as property
* Moved values from storage() to properties table
* Added support for idle times to Windows & Linux OS Managers
* Fixed configurations objects, so if get() is invoked before DB is
accesible, returns default value and, later, will be executed "in fact"
2014-12-02 19:39:26 +01:00
Adolfo Gómez García
d77a56f953 * Adjunsting actors to manage idle time of users 2014-12-02 19:37:34 +01:00
Adolfo Gómez García
229ed2345b Fixing to add idle to actors & os managers 2014-12-01 13:18:02 +01:00
Adolfo Gómez García
d68f5332d1 * Added dependency on libxss (on debian right now)
* Removed dummy CheckSystray
* Added get idle duration for Linux

Note that we have to endure that ScreenSaver Duration is LONGER that
defined time in
2014-12-01 11:38:19 +01:00
Adolfo Gómez García
8ded065fc5 Removed transport binaries from git (the can be built from sources, also
in git.. :-) )
2014-12-01 10:24:47 +01:00
Adolfo Gómez García
4c6159e431 Pylint fixes 2014-11-28 11:29:12 +01:00
Adolfo Gómez García
d22531da7d Big change on cache updater. Now it runs "as a whole", and tries to update all pending caches at once. This might be too hard for some servers, but can be mitigated with the provided configurations flags... 2014-11-27 20:57:43 +01:00
Adolfo Gómez García
0a10f81cb7 * removed log (excesive) from services_pool
* Added simple comment to gui-d-servicespools
2014-11-27 19:16:31 +01:00
Adolfo Gómez García
b3e2d2264a Removed debug from configuration.html
fixed "publish on creation" switch
2014-11-27 18:38:33 +01:00
Adolfo Gómez García
500347d878 Several minor fixes 2014-11-27 12:57:55 +01:00
Adolfo Gómez García
2096ad085a * Moved workers "import & load" to where they are used in fact
* Added frecuency_cfg to Jobs, so frequency can be set from db
* Fixed workers to use frecuency_cfg when needed
2014-11-26 11:12:30 +01:00
Adolfo Gómez García
41b40d8458 * Fixed locking manager to make it work with sqlite (basically uses
"basic" locking and no lock table instruction)
* Basic improvement to getSqlDatetime
* Uncommented "deletion" of stuck cleaner... :)
2014-11-26 07:56:26 +01:00
Adolfo Gómez García
eb844a0c88 * Added "required" to choice fields that needs it
* Fixed jquery-validate not validating select (because of being hidden 
due to selectpicker)
2014-11-25 20:31:55 +01:00
Adolfo Gómez García
44e6a3b50c * Fixed Properties to be unique for every user service, not globally
* Minor adjunst to StuckCleaner
2014-11-25 11:53:01 +01:00
Adolfo Gómez García
531c6d983d * Fixed Configuration Initialization to fit Django 1.7 model
* Added "Stuck removal" process to check & removel "Too long time stuck
in a transitional state" user states
2014-11-25 11:02:43 +01:00
Adolfo Gómez García
8a138f9cd8 * Bug fix on debian based removal script
* Removed IPC backend task start to notify login/logout
2014-11-24 12:12:46 +01:00
Adolfo Gómez García
1cbb7d1ae3 fixed table name for user service properties 2014-11-24 08:15:33 +01:00
Adolfo Gómez García
de0447bbc3 * Added "properties" to user services. Properties are less often used
fields that we may want to store attached to an user service
2014-11-24 01:34:49 +01:00
Adolfo Gómez García
609a982c92 * Added version to "init" REST method 2014-11-24 01:33:07 +01:00
Adolfo Gómez García
cca8fee453 * Fixed the fact that Centos has an old release of six, that does not
support, for example, byte2int method..
* Added some logs and minor fixes
* Added callbacks for LOGIN/LOGOUT client messages
2014-11-24 00:47:08 +01:00
Adolfo Gómez García
c72f0dd46e Generated xrdp component for uds actor for rh based distros 2014-11-23 09:31:39 +01:00
Adolfo Gómez García
da93da5782 Added all debian packages under one builder 2014-11-23 08:56:12 +01:00
Adolfo Gómez García
7afa2b8042 Creating multiple files for actor 2014-11-23 08:33:19 +01:00
Adolfo Gómez García
0c8a1447bf added renamer for RH based, testing now 2014-11-22 10:36:49 +01:00
Adolfo Gómez García
493792aace Addint about & fixing up thingg 2014-11-21 12:42:43 +01:00
Adolfo Gómez García
2fb06c06f6 * Fixed requests "verify" parameter detection
* Fixed .desktop files icon paths
Seems to work under Centos7 also, but have to "fix" "operations" on
Centos (mostly create a "renamer" for Centos)
2014-11-20 17:20:38 +01:00
Adolfo Gómez García
66653b0602 * Added script to build rpm for RH based distros
* Added spec file to create rpm (more work needs to be done)
* Making compatible Linux Actor with RH based distros
* A lot of work :)
2014-11-20 11:54:19 +01:00
Adolfo Gómez García
58e77aa4f3 Some more fixes to add UDS User space tool at session startup under
gnome & kde (more tests to go)
2014-11-19 06:48:52 +01:00
Adolfo Gómez García
818c317724 Debian and related distros package seems to work fine right now (maybe
need some little fixes)
2014-11-19 05:40:02 +01:00
Adolfo Gómez García
91a40dcc76 Advanced a bit more, now actor works but need the "user space script" to
communicate login/logouts
2014-11-18 20:56:45 +01:00
Adolfo Gómez García
dca366b334 Linux actor seems to start working, a bit to go anyway to finish debian
package (fix init scripts, create a couple of shell scripts to "easy"
management, etc..)
2014-11-18 20:16:45 +01:00
Adolfo Gómez García
15ef761d47 Debian package seems to work fine right now, will revise changelog and
make scripts work correctly, but packaging is done :)
2014-11-18 19:21:48 +01:00
Adolfo Gómez García
4b96c7936e Updating Readme.md 2014-11-18 18:20:43 +01:00
Adolfo Gómez García
3cdce63405 Updating Readme.md 2014-11-18 18:20:11 +01:00
Adolfo Gómez García
d1a5329780 Updating Readme.md 2014-11-18 18:18:57 +01:00
Adolfo Gómez García
043f65efdc Updating Readme.md 2014-11-18 18:16:16 +01:00
Adolfo Gómez García
62fca626b7 Updating new debian installer 2014-11-18 18:15:22 +01:00
Adolfo Gómez García
d2234a4daa * Building debian package and related stuff
* Some fixes to make actor work correctly an least on Ubuntu 12.x
2014-11-17 10:33:06 +01:00
Adolfo Gómez García
029ae69353 More actor fixes & updates 2014-11-14 06:51:22 +01:00
Adolfo Gómez García
a29dc53956 * Extracted common actors part to a common base class
* Fixed Windows class to make use of this common class
2014-11-13 02:40:48 +01:00
Adolfo Gómez García
c7e98fdde9 Advancing on Linux Actor with very similar structure to windows actor 2014-11-13 01:57:51 +01:00
Adolfo Gómez García
74781c14c0 * Added daemonizer for linux, adapted from old uds actor to work with
python 3 & 2.7, and a few fixes
2014-11-12 08:12:18 +01:00
Adolfo Gómez García
7a3692cc43 Fixed to use lowercase for uuids (as rfc 4122 says that they will be) 2014-11-12 07:28:50 +01:00
Adolfo Gómez García
7f049a80de Merge branch 'master' of git@github.com:dkmstr/openuds.git
Conflicts:
	actors/src/udsactor/utils.py
2014-11-12 06:25:44 +01:00
Adolfo Gómez García
fe15642254 Now configurator gives more "useful" error messages, and seems to work
under python 3.x and python 2.7

Also updated linuxActor source (PEPified)
2014-11-12 06:14:09 +01:00
Adolfo Gómez García
f3e4e9d267 Now configurator gives more "useful" error messages, and seems to work
under python 3.x and python 2.7
2014-11-12 06:12:57 +01:00
Adolfo Gómez García
5bca96a882 * Moved UDSActorService inside windows module
* Fixed httpserver exec
2014-11-12 04:41:03 +01:00
Adolfo Gómez García
47e615b7b2 * Fixed File Upload
* Added "case insensitive" to factory lookups for transports,
authenticators, osmanagers & providers
2014-11-12 04:15:24 +01:00
Adolfo Gómez García
154533b4cb Provider factory is now Case Insensitive 2014-11-12 03:55:57 +01:00
Adolfo Gómez García
43796e44ae * Old actor fixes 2014-11-11 07:10:13 +01:00
Adolfo Gómez García
418fac20e5 * Adding actors support for linux (based on old actor) 2014-11-11 07:09:53 +01:00
Adolfo Gómez García
85a32cf667 * Fixed an issue with tunneled transport for NX
* Some minor code fixes
2014-11-11 06:29:00 +01:00
Adolfo Gómez García
0c0ec581c0 * Lots of fixes towards python 3 2014-11-11 06:08:29 +01:00
Adolfo Gómez García
c56ef185b6 Adapting actors code to be compatible with python 2.7 y python 3.x 2014-11-10 22:01:00 +01:00
Adolfo Gómez García
449b3df02a * Added logger and first simple tests worked :) 2014-11-10 06:43:11 +01:00
Adolfo Gómez García
1f519308a1 Started Linux Actors part 2014-11-10 06:29:18 +01:00
Adolfo Gómez García
12c93732da general rearrange of actors 2014-11-10 05:01:32 +01:00
Adolfo Gómez García
a02d9561c3 Renaming windowsActor to Actor (will be for both platforms) 2014-11-10 04:35:48 +01:00
Adolfo Gómez García
a3760c0e8a Updating to guacamole 0.9.3 (only references updated right now, have to
check how this works now)
2014-11-09 17:09:31 +01:00
Adolfo Gómez García
8ccf48564a Fixing admin table colors & some PEPify 2014-11-09 00:24:46 +01:00
Adolfo Gómez García
727f455e99 Changed admin panels to a more formal "widget" 2014-11-07 06:44:52 +01:00
Adolfo Gómez García
99038a61f1 Changing 3d buttons to new style 2014-11-07 05:40:25 +01:00
Adolfo Gómez García
102a4b35ee Updated glyphicons & fontawesome 2014-11-07 04:59:51 +01:00
Adolfo Gómez García
97787b7eba Finished (i hope... :-) ) Image Gallery & Service Pools usage 2014-11-06 22:08:22 +01:00
Adolfo Gómez García
42845e6243 Fixing & optimizing image gallery 2014-11-06 18:11:05 +01:00
Adolfo Gómez García
43f17a3945 Added gallery to UDS administration interface 2014-11-06 11:32:32 +01:00
Adolfo Gómez García
c0669bc1f2 Added missing gallery files :-) 2014-11-06 04:01:54 +01:00
Adolfo Gómez García
5f377762b5 Added dashboard table for gallery 2014-11-06 03:59:32 +01:00
Adolfo Gómez García
df7c27dbf6 Bootstrap switch 3.2 does not seem to work fine with firefox on modals, so switched back to 3.1 2014-11-06 02:47:50 +01:00
Adolfo Gómez García
5bc650eaa9 Upgrading components & removing unused stuff 2014-11-06 01:00:30 +01:00
Adolfo Gómez García
638817f98b * Replaced default "pixelated" image from services to UDS Image
* Added image to Services Pools, so we can select our image
2014-11-05 10:51:23 +01:00
Adolfo Gómez García
825e88e1f1 Fixed REST model to allow a different overview "set" to be returned 2014-11-05 04:02:53 +01:00
Adolfo Gómez García
971f56c62a Added REST interface to images & fixed it 2014-11-05 03:53:08 +01:00
Adolfo Gómez García
d2d7291c19 Started image gallery (for ServicePools right now, but maybe other thins in near future) 2014-11-04 21:48:00 +01:00
Adolfo Gómez García
7137f151fb minor ticket fixes 2014-11-04 04:37:41 +01:00
Adolfo Gómez García
f23c68d7bf Fixed wsgi.py to work with apache2 again 2014-11-04 03:06:28 +01:00
Adolfo Gómez García
6b8f8f5211 updated sample settings 2014-11-03 20:04:25 +01:00
Adolfo Gómez García
f4414233f8 Removed unused stuff from sample settings file 2014-11-03 19:59:46 +01:00
Adolfo Gómez García
c2243b8f48 Ticket system seems to work 2014-11-03 05:14:25 +01:00
Adolfo Gómez García
dd5b35b354 Updated getUDSCookie for "early" generation and "forced" storing on
response
2014-11-02 05:11:04 +01:00
Adolfo Gómez García
a8bba8da48 due to use of uuids, i think that scrambling ids is no more necessary,
because now it's not possible to "infer" others ids in base to the one
provided
2014-11-02 05:01:50 +01:00
Adolfo Gómez García
a685f78561 * Ensures uuids are upper case on database
* REST access will convert uuids to upper case before access (if fact,
this mustn't be necessary, because uuids are provided by broker, but in
any case...)
2014-11-02 03:10:10 +01:00
Adolfo Gómez García
5fc6710a45 * Fixed tickets
* Added ServicePool "alias" to DeployedService (will finish refactoring in a future)
* Fixed LinuxRandomPassOsManager (was bugged)
2014-10-31 07:13:04 +01:00
Adolfo Gómez García
a4df05e428 Upated & ficed admin interface 2014-10-31 05:23:19 +01:00
Adolfo Gómez García
d1ccdfa686 Upated & ficed admin interface 2014-10-31 05:23:04 +01:00
Adolfo Gómez García
f7b3e8853f Fixed Meta groups matching 2014-10-30 18:29:25 +01:00
Adolfo Gómez García
063f433696 * More fixes raised during tests 2014-10-30 07:25:33 +01:00
Adolfo Gómez García
6fbe86b218 Fixed ifbelongs (forgot to commit on previous) 2014-10-30 06:06:07 +01:00
Adolfo Gómez García
550967d6d7 * Lots of fixes :-)
* Changed parent user (for internaldb, for "derived" users from a single
parent) to uuid
* Fixed authenticators users/groups administration
* Fixed some javascript errors (for example, ifbelongs didn't work
correctly)
* Updated global requests to get ident from correct place
*
2014-10-30 06:05:31 +01:00
Adolfo Gómez García
02443aabde Fixed a typo on gui description creation (introduced on a refactoring...
:-) )
2014-10-30 02:30:03 +01:00
Adolfo Gómez García
2ecb274ed6 * Small fixes to authenticator (pip related mostly)
* Adding docstrings and fixing some REST related issues
2014-10-29 19:35:33 +01:00
Adolfo Gómez García
ce52ac4acc Added filtering to GET methods (via filter optional parameter) 2014-10-29 08:32:23 +01:00
Adolfo Gómez García
e6150b0b07 * Added some pydev fixups
* Updated cache cleanup to be database agnostic :)
2014-10-28 23:09:02 +01:00
Adolfo Gómez García
bbbc14f860 * Added optional parameters to REST login method
* Fixed sample settings to make tables always in innodb (with correct
server parameters, they are almost as fast as myisam)
2014-10-28 08:29:15 +01:00
Adolfo Gómez García
a2d81b138d Working (not implemented already the user desktop part) windows actor 2014-10-27 18:40:18 +01:00
Adolfo Gómez García
74148210a9 * Fixed ticket to accept also "auth" name
* started to add filters to models
* removed import from deprecated getIp
* added tickets url
* added ticket view
2014-10-27 18:39:31 +01:00
Adolfo Gómez García
3cec0f94e5 Added "ticketing" method to allow third party integration with uds
authentication.

Basically it "register" an event, and returns a ticket. This event will
tell UDS how to authenticate an user (maybe even a fake user), and in
which groups to include it.
2014-10-27 10:46:47 +01:00
Adolfo Gómez García
a738f3afbf * Due to the fact that we only need SSL on actor for "garbling" data, the certificate is included inside the application itself
* The other side certificate verify can't verify host
2014-10-27 01:02:13 +01:00
Adolfo Gómez García
36ec5a7451 testing cert autogeneration 2014-10-27 00:51:35 +01:00
Adolfo Gómez García
87cec03254 added ipc to Windows Service 2014-10-26 13:47:25 +01:00
Adolfo Gómez García
8eec58997a more on new actor IPC 2014-10-24 10:43:17 +02:00
Adolfo Gómez García
b508c24b7d Advancing on uds actor client comms server 2014-10-23 17:32:52 +02:00
Adolfo Gómez García
2b73e0356c * Added a windows "check idle" method
* Added a request for information message from client (user desktop app) to server (daemon/service)
* Fixed rest so we can now notify a "call back" server (wil be an http/https one) and also can receive which interface has been recognized
* Some minor fixes
2014-10-22 08:32:50 +02:00
Adolfo Gómez García
d21993ceff Added migration (fogotten from previous commit) 2014-10-21 17:44:35 +02:00
Adolfo Gómez García
42feeacc86 Added "notifyComms" method to actor, so we can tell broker where to
connect back to us
2014-10-21 17:42:59 +02:00
Adolfo Gómez García
0ba2ccab33 ipc now fully working. Need to work on UDS-->Daemon(or service) right now 2014-10-21 07:02:00 +02:00
Adolfo Gómez García
bac8a651b0 internal ipc for windows actor seems to work 2014-10-21 04:36:05 +02:00
Adolfo Gómez García
97e4eb2394 adding ipc for desktop client part 2014-10-20 07:38:18 +02:00
Adolfo Gómez García
e0ad0185b7 cleanup 2014-10-18 00:45:50 +02:00
Adolfo Gómez García
53f1312537 Testing & fixing new uds actor (reboot fixed) 2014-10-17 02:51:42 +02:00
Adolfo Gómez García
bdf0d034fa Testing & fixing new uds actor 2014-10-17 02:36:17 +02:00
Adolfo Gómez García
15aeba101e Some minor fixes 2014-10-17 02:36:02 +02:00
Adolfo Gómez García
d771039daa * Added login/logout notitications. * A bit (or a lot) pep8 & pylint fixes 2014-10-16 04:21:47 +02:00
Adolfo Gómez García
35ca143690 Fixed a bug when invoking CoRD with username that contains a domain
(user@domain) or a password with a :
2014-10-15 05:00:50 +02:00
Adolfo Gómez García
7f8aea603f almost done 2014-10-14 10:51:04 +02:00
Adolfo Gómez García
97cde76157 Added debug to config dialog.\nAdded basic windows logging 2014-10-10 12:27:05 +02:00
Adolfo Gómez García
a38921975f added test to configuration tool 2014-10-10 10:24:00 +02:00
Adolfo Gómez García
01b47d128c reorganization of code 2014-10-10 09:31:36 +02:00
Adolfo Gómez García
4bc8150852 reorganization of code 2014-10-10 09:27:41 +02:00
Adolfo Gómez García
d846db17cf reorganization of code 2014-10-10 09:26:23 +02:00
Adolfo Gómez García
573e6b5d1f Fixed Names of ovirt providers to include RHEV (that also supports) 2014-10-09 11:11:38 +02:00
Adolfo Gómez García
1b3d156e6c moving packages to files 2014-10-09 08:16:52 +02:00
Adolfo Gómez García
cd78c6a388 moving packages to files 2014-10-09 08:16:10 +02:00
Adolfo Gómez García
1399767c22 moving packages to files 2014-10-09 08:14:37 +02:00
Adolfo Gómez
babdd9c925 Moving packages to files 2014-10-09 08:12:46 +02:00
Adolfo Gómez García
90b67ae3e6 advancing on new UDSActor service 2014-10-08 10:42:55 +02:00
Adolfo Gómez García
06d6b9fd24 added REST api client part, valid for windows & linux actors 2014-10-07 18:01:36 +02:00
Adolfo Gómez García
c9524191b1 * Added temporal test (and executable creation) for testing that windows calls are working
* Fixed joinDomain (now it works)
* Checked that renameComputer works fine
2014-10-07 12:07:14 +02:00
Adolfo Gómez García
a48cb597db Adding basic windows functions to actor 2014-10-06 22:05:30 +02:00
Adolfo Gómez García
cde89f1839 working service with SENS 2014-10-01 20:00:12 +02:00
Adolfo Gómez García
9451803ef7 more tests. Seems that not displaying icon is a "bug" with first icon ID in py2exe 2014-10-01 13:21:04 +02:00
Adolfo Gómez García
36b816be69 messing up with pyexe, icons and other stuff 2014-10-01 12:59:20 +02:00
Adolfo Gómez García
defe8490b1 messing up with pyexe, icons and other stuff 2014-10-01 12:57:48 +02:00
Adolfo Gómez García
10d85df2e1 Added sample py2exe and pyinstaller for exe generation 2014-10-01 12:22:14 +02:00
Adolfo Gómez García
f1593c0957 added simple debug logging message 2014-09-30 17:12:45 +02:00
Adolfo Gómez García
4e1af8a33f added rdp transport applet binary so /media get also mounted if drives are redirected 2014-09-30 16:01:08 +02:00
Adolfo Gómez García
49a512d274 Added that RDP transports also mounts /media, not only /home 2014-09-30 15:39:17 +02:00
Adolfo Gómez
92d746fed5 Removed optional (nonsense) custom encoder, because the encoder itself can be loaded by any python program and it's not a good protection 2014-09-30 04:24:50 +02:00
Adolfo Gómez García
722021820b removed user read permissions on uds key creation 2014-09-30 04:21:17 +02:00
Adolfo Gómez García
21177736f3 messing up with pyinstaller 2014-09-29 20:38:22 +02:00
Adolfo Gómez García
6e173b09f2 messing up with pyinstaller 2014-09-29 20:38:15 +02:00
Adolfo Gómez García
310e7c5b53 woring on actor configuration app 2014-09-29 18:19:23 +02:00
Adolfo Gómez García
bd7263307a started windows actor in python 2014-09-29 12:08:59 +02:00
Adolfo Gómez García
0689bafa9c fixed uds master key name and added global *_enterprise to .gitignore 2014-09-29 11:47:31 +02:00
Adolfo Gómez García
cc3cd7999d * Fixed xmlrpc actor server code to correctly mark "login" and "logout"
that was inversed
* Added IP logging & user loging to xmlrpc actor
2014-09-26 11:57:44 +02:00
Adolfo Gómez García
784845c626 A couple "typos", nothing important in fact 2014-09-25 18:40:24 +02:00
Adolfo Gómez García
946cb66f33 Advancing on new REST actor (making the existing XMLRPC actors
compatible anyway)
2014-09-25 18:39:39 +02:00
Adolfo Gómez García
5424d2b8b7 Fixed a bug that makes all actor messages to be logged as "DEBUG" 2014-09-25 18:38:15 +02:00
Adolfo Gómez García
17ec42fca5 Starting again with actor over REST and fixed a few Xen "typos" 2014-09-24 13:57:14 +02:00
Adolfo Gómez García
9896197c3c * Added migration to remove "uniqueness" contraint from
ManagedObjecModel (and from descendants), and fixed ManagedObjectModel
2014-09-16 12:18:43 +02:00
Adolfo Gómez García
f497a902b5 * Added ManagedObjectModel as base class for top level managed elements:
Provider, Service, OsManager & Transport
* Fixing up REST api, that is now a bit broken with change of "ids" for
"uuids"
2014-09-16 12:05:05 +02:00
Adolfo Gómez García
d6887c26ab Migrating "basic" ids from db (that was autoincrements on mysql) to uuid
based requests
2014-09-16 10:57:34 +02:00
Adolfo Gómez García
9feaad840f Finished adding uuid to models where they are convenient.
Next step is adapt REST api to use this uuids instead of "ids", and fix
code were ids are used to use new uuids
2014-09-16 09:43:56 +02:00
Adolfo Gómez García
507aa23df0 Adding UUIDs to several models that must have it 2014-09-16 08:19:59 +02:00
Adolfo Gómez García
fba0bf8631 Added "uuid" field to UserService so we set our own global unique
identifier for this service.
This will be used by uds actor
There is another field, unique_id, that is provided by ServiceProviders,
and that we do not control in any way it's format. This is used, for
example, by actor to locate it's own "uuid"
2014-09-16 02:38:40 +02:00
Adolfo Gómez García
bbe2b7d1c2 * Added xml_marshaller as a requirement
* advanced in REST actor service
* Added uuid capability to cryptomanager
* Used uuid capability from cryptomanager in downloads manager
* Fixed "old class" style forgot on Config :S
* State now uses ugettext_lazy instead o ugettext because can be used on
some classes and will fail with ugettext prior to translation
environment initialization
2014-09-15 18:41:02 +02:00
Adolfo Gómez García
d085f350e0 * Fixed up processors to identify correctly types
* Added (in previous commit) Actor REST api (just started to work on it)
* Fixed content type detection from url
2014-09-15 17:47:13 +02:00
Adolfo Gómez García
adbe1dd8cd Added xml marshaller 2014-09-15 17:28:02 +02:00
Adolfo Gómez García
bf103d5603 removed specific (and unused) .settings folders from eclipse projects) 2014-09-15 10:35:16 +02:00
Adolfo Gómez García
9741decb3b removed administration client code (it's on previous releases branches) 2014-09-15 10:26:20 +02:00
Adolfo Gómez García
084ad39fc9 * Efectively remove support for thick client from current version (code
removed)
2014-09-15 10:23:56 +02:00
Adolfo Gómez García
3562e4ca56 * Cleaning up things
* Using pylint to try to find potentials errors
2014-09-15 10:19:54 +02:00
Adolfo Gómez García
6dbe561512 Disabled all xmlrpc except actor communication (will remove also code in
a near future)
This makes that the "thick administration client" won't be usable
anymore
2014-09-15 08:19:17 +02:00
Adolfo Gómez García
9e1efff826 Adding six to modules, and fixing up a few related issues 2014-09-12 17:28:23 +02:00
Adolfo Gómez
42f8487e75 Create README.md
Basic description
2014-09-11 16:34:54 +02:00
Adolfo Gómez García
4f6ff538c2 removed .settings of main openuds project (did we really needed this?) 2014-09-11 16:17:38 +02:00
Adolfo Gómez García
14b24db532 Fix mistake on merge Ldap authenticator fix on 1.5 :-) 2014-09-11 16:14:33 +02:00
Adolfo Gómez García
d3c6312ed5 * Fix of unicode handling on hash method of cryptomanager
* minor refactoring of gui
* Bug fix on authenticator model
2014-09-10 14:32:48 +02:00
Adolfo Gómez García
d0f291c386 fixed a couple of minor bugs gettins headers information 2014-09-09 15:19:01 +02:00
Adolfo Gómez García
341a538503 Finished mitrating to 1.7 by removing efectively south migrations 2014-09-08 22:24:20 +02:00
Adolfo Gómez García
9a381cd333 Fixed bug on service image resolver, (mimetype is now content_type) 2014-09-08 15:21:08 +02:00
Adolfo Gómez García
1c30a5c46d fixed settings sample for running on 1.7 2014-09-08 15:17:02 +02:00
Adolfo Gómez García
6dc3f2a4dc Migrations from 1.5 onwards will be using django 1.7 migration engine
instead of south
2014-09-08 14:03:19 +02:00
Adolfo Gómez García
bd5b81eccc migrating to django 1.7 2014-09-08 13:20:44 +02:00
Adolfo Gómez García
9c77bb321f sync 2014-09-05 15:49:58 +02:00
Adolfo Gómez García
cc2d7f1d6b * Added new bootstrap switch versions
* Added option to change match mode for meta groups (ALL or ANY, before
was always ALL)
2014-09-05 13:52:47 +02:00
Adolfo Gómez García
3da574985f merged 2014-09-04 10:27:02 +02:00
Adolfo Gómez García
7a562ec946 fixed a typo 2014-09-04 10:25:53 +02:00
Adolfo Gómez García
a5158acca1 Added user preferences access control in configuration (Admin interface) 2014-09-03 19:58:34 +02:00
Adolfo Gómez García
5bf6f00425 merging with 1.5 for future hotfixes 2014-09-03 19:31:58 +02:00
Adolfo Gómez
3bc46de0a6 more fixes 2014-09-03 18:05:05 +02:00
Adolfo Gómez
5aa798fe26 fixing import stuff 2014-09-03 18:04:46 +02:00
Adolfo Gómez
7e6890c327 more initial work on imports 2014-09-03 14:50:23 +02:00
Adolfo Gómez
f64987a7b1 updating migration 2014-09-03 14:36:29 +02:00
Adolfo Gómez
2af27b86e8 Before start git migration 2014-09-03 09:19:16 +00:00
Adolfo Gómez
210c218d36 2014-09-02 13:50:47 +00:00
Adolfo Gómez
73d0ff01da * Added posibility to add messages to administration (version 0) 2014-09-01 11:59:16 +00:00
Adolfo Gómez
65418d4cb2 Fixed UDS Actor to check 2014-08-29 09:35:30 +00:00
Adolfo Gómez
ac1651dcf3 2014-08-21 10:54:34 +00:00
Adolfo Gómez
89f887c68c * REST fix to delete incompleted created service
* oVirtLinkedServiced added check to memory value (fix)
2014-08-19 08:57:24 +00:00
Adolfo Gómez
cf5e25796d removed console.log 2014-07-28 12:31:38 +00:00
Adolfo Gómez
04135b14c9 Fixed index.xhtml to work on be compatible with uds 1.5 (needs a minor change to client-ui.js to get paramaters from "query.ui" instead of from document.location.search 2014-07-28 12:02:34 +00:00
Adolfo Gómez
0643e44125 Fixed index.xhtml to work on be compatible with uds 1.5 2014-07-28 11:17:46 +00:00
Adolfo Gómez
c0c8cbf66d 2014-07-27 21:41:17 +00:00
Adolfo Gómez
775d59a621 Linux Actor Fixes 2014-07-17 10:27:35 +00:00
Adolfo Gómez
6a841a86df Updated to Guacamole 0.9.1, now closes the session correctly 2014-07-17 10:23:22 +00:00
Adolfo Gómez
c4958e808e new trasnports that if can't find nx 3.5 on Windows, looks for opennx 2014-07-11 14:37:25 +00:00
Adolfo Gómez
4a8d95eec9 Updated linux actor to allow random passwords 2014-07-11 14:35:15 +00:00
Adolfo Gómez
9333077187 2014-07-11 14:34:47 +00:00
Adolfo Gómez
a14b5fea59 Needs for uds actor to detect session open/close by user on XRDP 2014-07-11 14:32:48 +00:00
Adolfo Gómez
f9172258a4 Needs for uds actor to detect session open/close by user on XRDP 2014-07-11 14:31:30 +00:00
Adolfo Gómez
ce07adcc0d Updated to use alternative opennx if nomachine client not found 2014-07-08 11:46:01 +00:00
Adolfo Gómez
7b12f3e359 Updated to use alternative opennx if nomachine client not found 2014-07-08 11:45:44 +00:00
Adolfo Gómez
d4c065355c * Updated sample to add secondary auth
* Removed unused comments
* Added sypport for login using REST for any authenticator
* Added new icon (good one) to UDS
2014-06-30 12:10:20 +00:00
Adolfo Gómez
b10a0ac386 Updated icons!!! 2014-06-30 12:03:30 +00:00
Adolfo Gómez
60990ad64c Added "empty domain" option for rdp transports so domain can be always emptied (for linux & xrdp is needed right now) 2014-06-30 11:57:09 +00:00
Adolfo Gómez
acfbb0a3cb added provider_id to overview of services_pools 2014-06-26 19:17:42 +00:00
Adolfo Gómez
fd3930880d Simple REST sample 2014-06-26 19:14:36 +00:00
Adolfo Gómez
4b58ec4345 Added to linux actor capability to change passwords.. Unchecked anyway 2014-06-26 18:00:53 +00:00
Adolfo Gómez
c76d24c0f2 Started new Linux Random Password OS Manager 2014-06-26 17:40:58 +00:00
Adolfo Gómez
5fac9c3205 Updating actor 2014-06-26 17:38:57 +00:00
Adolfo Gómez
8c09ec9b74 * Fixed configuration, now it's more "friendly"
* Replaced numerics buttons with "better ones" :-)
2014-06-21 12:41:04 +00:00
Adolfo Gómez
0d6171bc0f Adding "user friendly" editors to Configuration... :-) 2014-06-20 13:24:18 +00:00
Adolfo Gómez
75c9313a0f Added a "Visual enhacements" configuration variable and a template tag (inside html5) to allow switching between enhanced display effects and no effects (it will depend on template) 2014-06-12 07:27:54 +00:00
Adolfo Gómez
0a3433b2f5 * renamed "translateProxy" to "acceptProxy" in IP authenticator
* Removed getIp from trustedSourceRequired auth decorator
* Added "remove request global cache" after being used by system
* Removed unused getIp from web & xmlrpc
2014-06-11 08:56:19 +00:00
Adolfo Gómez
ed602e9354 * Removed deprecated "getIp" method call from views
* Added option so requests Ips can be checked "behind" a proxy or not (increases security)
* Marqued getIp from auth as "deprecated" and generates a warning on logs
* Renamed Decorators to decorators, do not liked the initial "D"... :-)
* Added ip of request extraction to GlobalRequestMiddleware
* Fixed IPMachinesService.py so it adapts correctly to new fact that Storage readData returns "unicode" strings
* Added a default -99999 as min value to spinners (admin web interface)
*
2014-06-11 07:50:03 +00:00
Adolfo Gómez
d7f282cd88 added "deprecated" snippet to decorators 2014-06-11 07:32:31 +00:00
Adolfo Gómez
5d83ca29bc added "deprecated" snippet to decorators 2014-06-11 07:31:34 +00:00
Adolfo Gómez
0003a5fbf8 Some more fixes 2014-06-10 04:04:44 +00:00
Adolfo Gómez
33c2cbe666 * Refix of storage, so it will be compatible with previous versions of UDS
* Added new "development" package to include stuff for development/debug stage
* Ported fix for RDP/TSRDP transports from 1.5 to trunk
2014-06-03 12:26:32 +00:00
Adolfo Gómez
9712d271e7 Updated translations 2014-06-03 11:54:31 +00:00
Adolfo Gómez
3f97533e41 Fixed FQDN domain transport form 2014-06-03 11:50:58 +00:00
Adolfo Gómez
ce1a9b4b2f Updated settings to change cookie name for lang storage
fixed REST preprocessor for unicode stuff
fixed storage for unicode stuff
2014-06-03 08:48:14 +00:00
Adolfo Gómez
c1d26fb35e Fixed REST to get language from Accept-Language header instead of "messed-up" stuff i had done... Much easier, and works fine 2014-06-03 05:16:04 +00:00
Adolfo Gómez
376ed1f231 Several fixes related to cache && storage 2014-06-03 03:27:15 +00:00
Adolfo Gómez
53fda0af56 Adding "full support" to authenticators. After some testings, theese not work as expected in some situations and this has been fixed 2014-06-02 09:00:03 +00:00
Adolfo Gómez
03ac4dcaa7 More unicode related "bugs" 2014-06-02 04:47:02 +00:00
Adolfo Gómez
25f97a4b88 Adding "full" support to authenticators for unicode (a "must have been done before") 2014-06-02 03:42:57 +00:00
Adolfo Gómez
4b5f21b30e Added support for wallpaper on RDP if desired (all all user xperience in fact) 2014-05-29 13:30:23 +00:00
Adolfo Gómez
30fa98216e Added support for wallpaper on RDP if desired (all all user xperience in fact) 2014-05-29 13:21:22 +00:00
Adolfo Gómez
3181fdbf18 Added support for wallpaper on RDP if desired 2014-05-29 13:18:31 +00:00
Adolfo Gómez
eca08d6350 Fixed SimpleLDAP to "Work" 2014-05-29 06:18:57 +00:00
Adolfo Gómez
2108353d1e * Added min height to panel tables
* Added uds to cookies if not found on login
* Fixed html5 so if request is not in context, simply set user_agent to "Unknown"
* Updated auth/views to use new cookie "syntax"
2014-05-29 06:14:27 +00:00
Adolfo Gómez
14a2e0a02d Fixed unicode related problem (right now a quick fix removing "from future..." will return back to this later) 2014-05-29 05:09:20 +00:00
Adolfo Gómez
5a80efc852 Fixed debug match output 2014-05-29 03:40:53 +00:00
Adolfo Gómez
dc6af051ac Some more little fixes 2014-05-27 06:21:56 +00:00
Adolfo Gómez
b846940635 I have intention to start working on some tests, and not the "s***" i have done here, so i'll move out tests dirs until i have something more "usable" 2014-05-27 06:20:26 +00:00
Adolfo Gómez
a10550820b Some more little fixes 2014-05-27 06:19:15 +00:00
Adolfo Gómez
217e681cb4 Some more little fixes 2014-05-27 01:14:29 +00:00
Adolfo Gómez
a2d348962d Removed excesive "debug" logging 2014-05-24 03:08:01 +00:00
Adolfo Gómez
d535c5619a Updating linux actor 2014-05-24 02:53:35 +00:00
Adolfo Gómez
c479fc3fbd Updating linux actor 2014-05-24 02:30:18 +00:00
Adolfo Gómez
9bdfb4a7eb Updating linux actor 2014-05-24 02:02:20 +00:00
Adolfo Gómez
af2de4881f Improved cache max services assignations 2014-05-22 22:13:46 +00:00
Adolfo Gómez
cf07caa5cb Added atomic transaction to assignations to user from cache, so we ensure that one cached element is assigned to one user and only used once 2014-05-22 07:48:40 +00:00
Adolfo Gómez
47174aa961 Fixed "select_for_update" where not needed 2014-05-22 06:25:07 +00:00
Adolfo Gómez
4e7376a7f0 Adding plugins stuff to UDS 2014-05-21 08:36:34 +00:00
Adolfo Gómez
4cdc3d2ff0 2014-05-21 07:59:16 +00:00
Adolfo Gómez
6e812b2cce 2014-05-21 06:03:51 +00:00
Adolfo Gómez
6930509259 2014-05-20 07:59:46 +00:00
Adolfo Gómez
018e6d742c Added ValidationError catch for users 2014-05-19 09:59:25 +00:00
Adolfo Gómez
a2bf6c5799 Don't like plugins model... looking another way :) 2014-05-19 07:33:00 +00:00
Adolfo Gómez
49e367871e Don't like plugins model... looking another way :) 2014-05-19 07:32:21 +00:00
Adolfo Gómez
7d8072ca61 Checking plugins for models 2014-05-19 05:47:51 +00:00
Adolfo Gómez
ec46452610 Adding plugins model to models 2014-05-19 05:17:28 +00:00
Adolfo Gómez
d0f3992e80 2014-05-19 05:08:36 +00:00
Adolfo Gómez
212b99b831 Fixed so we MUST enter host:port form on tunnel nx transport 2014-05-16 05:51:51 +00:00
Adolfo Gómez
5de90f967e Fixed so we MUST enter host:port form on tunnel rdp transport 2014-05-16 05:50:46 +00:00
Adolfo Gómez
f6c67dab96 Added a spinner to numeric inputs to make "easier" using them 2014-05-14 08:43:00 +00:00
Adolfo Gómez
23694184bd Spinner don't seems to work nicely with bootstrap 3 2014-05-14 08:21:49 +00:00
Adolfo Gómez
827140dc21 * Fixed "about"
* Added "editspin"
* Initial working release of Xen Provider
2014-05-14 07:57:44 +00:00
Adolfo Gómez
52b78f11a3 Fix worker transaction 2014-05-14 07:40:59 +00:00
Adolfo Gómez
692e82f62f Advancing on XenServer Provider 2014-05-14 05:15:41 +00:00
Adolfo Gómez
c4e2f09dfc Advancing on XenServer Provider 2014-05-13 06:27:46 +00:00
Adolfo Gómez
462b676353 Advancing on XenServer Provider 2014-05-13 05:29:26 +00:00
Adolfo Gómez
09d1d646a5 Advancing on XenServer Provider 2014-05-13 04:48:16 +00:00
Adolfo Gómez
9978993c9b Advancing on XenServer Provider 2014-05-12 06:23:08 +00:00
Adolfo Gómez
a66d75bdc5 Advancing on XenServer Provider 2014-05-12 06:13:47 +00:00
Adolfo Gómez
87a795cd8b Advancing on XenServer Provider 2014-05-12 05:35:42 +00:00
Adolfo Gómez
4c66445998 Fixed java detection 2014-05-09 14:30:26 +00:00
Adolfo Gómez
051bf0358b Fixed "detect java" 2014-05-09 14:27:19 +00:00
Adolfo Gómez
a7f96d3933 Fixed Storage codec (was utf-8, not uft-8) 2014-05-09 09:57:40 +00:00
Adolfo Gómez
2e31d2ec1e A little fix 2014-05-09 09:56:18 +00:00
Adolfo Gómez
195e47f443 Fixes to standard install 2014-05-08 11:02:50 +00:00
Adolfo Gómez
1d0bb1798c Updating to 0.9.0 (base update, needs more work to allow file transfers) 2014-05-08 11:02:20 +00:00
Adolfo Gómez
15df5b8141 Fixed a couple incidences with UTF8 and SAML 2014-05-08 09:01:09 +00:00
Adolfo Gómez
7896dae178 Updating to 0.9.0 (base update, needs more work to allow file transfers) 2014-04-29 17:50:43 +00:00
Adolfo Gómez
e4beaf4584 Restored "compiled" documentation 2014-04-29 14:51:57 +00:00
Adolfo Gómez
5b383bb384 Restored "compiled" documentation 2014-04-29 14:51:12 +00:00
Adolfo Gómez
dc78222b88 Updated binary applet of tunnel transport for Mac OSX 2014-04-29 14:33:58 +00:00
Adolfo Gómez
0ef239a409 Updated binary applet of tunnel transport for Mac OSX 2014-04-29 14:33:41 +00:00
Adolfo Gómez
d0e6c98d2f my blame :( 2014-04-29 09:20:15 +00:00
Adolfo Gómez
e73fac22db * Fixed login issue on authenticator selector
* Fixed Regex authenticator (ldap lib does not supports unicode strings)
* Initial support for XenServer (non usable yet, just "forked" ovirt service and started adapting it)
2014-04-29 07:55:03 +00:00
Adolfo Gómez
de80b26880 Fixed a couple bugs with authenticators left behind in tests 2014-04-28 15:30:12 +00:00
Adolfo Gómez
78d0baf4af Done with models split (now needs testing to ensure that is at least as was before) 2014-04-24 08:03:12 +00:00
Adolfo Gómez
3d8fa98376 Done with models split (now needs testing to ensure that is at least as was before) 2014-04-23 14:05:27 +00:00
Adolfo Gómez
244302db58 Done with models split (now needs testing to ensure that is at least as was before) 2014-04-23 14:01:23 +00:00
Adolfo Gómez
a52c49ae5e Done with models split (now needs testing to ensure that is at least as was before) 2014-04-23 14:00:53 +00:00
Adolfo Gómez
46961c42c1 Splitting Loooooooong models.py in smaller and more usable pieces.. :) 2014-04-23 13:37:33 +00:00
Adolfo Gómez
f9bc653a8f Splitting models inside a package 2014-04-23 12:31:51 +00:00
Adolfo Gómez
9045989186 Tagging release 2014-04-23 12:26:55 +00:00
Adolfo Gómez
49063d4187 testing a couple things 2014-04-23 12:25:22 +00:00
Adolfo Gómez
922036112e testing a couple things 2014-04-23 12:24:55 +00:00
Adolfo Gómez
eb93ccde21 Actualizados los mensajes en español 2014-04-10 17:06:34 +00:00
Adolfo Gómez
90157e4d51 * Fixed xls export
* Fixed "cancel" on publications
* Fixed (minor) ovirt issues
* Removed "old-js" from trunk
2014-04-10 09:43:12 +00:00
Adolfo Gómez
23e3c385fd * Fixed xls export
* Fixed "cancel" on publications
* Fixed (minor) ovirt issues
* Removed "old-js" from trunk
2014-04-10 09:41:32 +00:00
Adolfo Gómez
63fc505bee A couple minor fixes 2014-04-08 09:02:18 +00:00
Adolfo Gómez
10201bd976 Updated translations 2014-04-04 06:32:41 +00:00
Adolfo Gómez
6bf1b8ad83 More about translations 2014-04-02 16:30:13 +00:00
Adolfo Gómez
79cdf4f68b Added a couple fields "forgotten" on web admin interface 2014-04-02 16:01:30 +00:00
Adolfo Gómez
86f789d3a5 Updated translations 2014-04-02 15:32:52 +00:00
Adolfo Gómez
4580e6c60a Fixed translations "mixed" :) 2014-04-02 15:32:05 +00:00
Adolfo Gómez
1c58aa116c 2014-04-02 15:28:39 +00:00
Adolfo Gómez
1ae23c327e Fixed some transactions
Removed some "dummy" select_for_update sentences
2014-03-30 19:03:57 +00:00
Adolfo Gómez
20a05371a3 Updated translations 2014-03-30 16:36:38 +00:00
Adolfo Gómez
21733cca17 Upgraded translations 2014-03-28 12:05:53 +00:00
Adolfo Gómez
9a28e53045 * Fixed space visualization of storages for oVirt
* Fixed a deployed service removal bug
2014-03-28 11:56:35 +00:00
Adolfo Gómez
86318a66c3 Added safety "min space" to oVirt an HyperV
Fixes related to pep
2014-03-28 11:00:51 +00:00
Adolfo Gómez
1140f1b4e6 More transaction fixed 2014-03-27 11:46:56 +00:00
Adolfo Gómez
50e04eda7d Added basic "en" structure (will not contain any translation) 2014-03-26 02:22:53 +00:00
Adolfo Gómez
b20c4c933c A bit of formating 2014-03-25 17:22:12 +00:00
Adolfo Gómez
978ab5772d Fixed html5 navbar.
Bootstrap navbars requires a container (using container-fluid to get full width)
2014-03-25 17:18:57 +00:00
Adolfo Gómez
87d798c92c * Added some more "__updated__"
* Fixed a little bit more coffescript
2014-03-22 20:54:37 +00:00
Adolfo Gómez
c62d30c506 * Fixed scheduler query for select what tasks are available
* Added more space to configuration labels
* Fixed WindowsOSManger unicode related problem
* pep8 to Actor.py (xmlrpc)
2014-03-20 20:05:05 +00:00
Adolfo Gómez
9302c0cd76 * Removed debug from gui
* fixed choice (removed debug info shown on select items...
2014-03-20 10:21:32 +00:00
Adolfo Gómez
7db14ec4b5 More fixes:
* No "base" elements show on dropdown when editing resource pools
* Downloads was broken
* Transports do not worked correctly if no network was selected
* Test button removed from Service (right now it's not used)
* New machine by IP was not working due to a commentary as "//" inserted on template field for edit_list
2014-03-20 10:09:33 +00:00
Adolfo Gómez
cf2051b8f2 Fixed staff dashboard showing
Added test method for services & authenticators
2014-03-19 02:39:56 +00:00
Adolfo Gómez
5d984fb94e Fixed icon size problem 2014-03-19 02:00:27 +00:00
Adolfo Gómez
4565f00174 Bug fix in LDAP & Regldap related to unicode literals
Fixes in new admin interface
2014-03-19 01:44:51 +00:00
Adolfo Gómez
b64928f1e6 Added UDSActor as downloadable, and removed from /static/... 2014-03-18 20:16:38 +00:00
Adolfo Gómez
944d9957d6 Activating sass on compressor 2014-03-18 02:36:29 +00:00
Adolfo Gómez
19936f7a84 Added translations & translations fixes 2014-03-18 02:24:46 +00:00
Adolfo Gómez
bf77ccc2ab Updated to add "about" page (inexistent before) 2014-03-18 02:09:21 +00:00
Adolfo Gómez
3afb36678c Fixed base html5 to reduce generated javascripts cache so downloads are faster.
Basically has created "common" compress and "custom" compress, for each page.

This way, browsers can cache "partial static" contents and browsing is faster
2014-03-18 01:14:43 +00:00
Adolfo Gómez
bf66bb1009 Fixed authenticators details tab change bug 2014-03-18 00:52:51 +00:00
Adolfo Gómez
366d340fd4 Removed jade test 2014-03-17 15:33:33 +00:00
Adolfo Gómez
095f21204d Fixed up new generated coffescript 2014-03-17 15:27:32 +00:00
Adolfo Gómez
5f329552af Moved old transformer js to coffescript into "old-js" folder for reference/bug fixing
Will remove in a future also this folder
2014-03-17 14:29:31 +00:00
Adolfo Gómez
3c248428eb moving away old js 2014-03-17 14:27:38 +00:00
Adolfo Gómez
7a0465fca5 Updated admin script to use coffescript instead of directly javascript 2014-03-17 14:26:07 +00:00
Adolfo Gómez
a1e5a1357a Added lesscss support for compressor 2014-03-09 17:38:18 +00:00
Adolfo Gómez
3094000c11 Fixed some tranlations to spanish
fixed some ugettext for ugettext_lazy
2014-03-07 10:28:25 +00:00
Adolfo Gómez
e05ae6e3eb fixed user services states strings 2014-03-07 10:05:06 +00:00
Adolfo Gómez
1189554a20 More fixes related to unicode full transition 2014-03-07 07:07:50 +00:00
Adolfo Gómez
7df74d264c Fixed linux os manager 2014-03-07 07:04:22 +00:00
Adolfo Gómez
41fba86f93 Fixed a little bug on form creation 2014-03-07 06:35:45 +00:00
Adolfo Gómez
55ce029b68 Fixed default sample settings with compressor 2014-03-07 06:13:10 +00:00
Adolfo Gómez
44007d311c Fixed template & added new view to serve "generic image" for service.
This way, we will not need to change the view on next release when "Custom" images can be added to services...
2014-03-03 05:31:40 +00:00
Adolfo Gómez
b2e16bd2e8 Now deletes correctly assigned services & cache 2014-02-28 14:23:45 +00:00
Adolfo Gómez
d943252a40 Now deletes correctly assigned services & cache 2014-02-28 13:57:08 +00:00
Adolfo Gómez
e7695f360e Fixing up things 2014-02-28 06:35:42 +00:00
Adolfo Gómez
72c9d27686 * Added auto-refresh on tab change
* Fixed "publish on save"
Several fixes
2014-02-28 06:29:27 +00:00
Adolfo Gómez
feccd388c4 Fixing up things 2014-02-28 04:49:04 +00:00
Adolfo Gómez
46af1b57dd Fixing up fixes 2014-02-27 13:10:38 +00:00
Adolfo Gómez
ddbcc5aec4 BIG work on pep8 adaption (easier to read, easier to maintain, etc..) 2014-02-25 03:57:29 +00:00
Adolfo Gómez
06ff8e32be BIG work on pep8 adaption (easier to read, easier to maintain, etc..) 2014-02-25 03:12:00 +00:00
Adolfo Gómez
89addaf585 More pep8 related fixes, also some refactoring 2014-02-19 15:17:55 +00:00
Adolfo Gómez
dab3e26223 Fixing up things to adapt to PEP8 2014-02-19 14:55:27 +00:00
Adolfo Gómez
72456baa8e fixed checkbox "beautifier" 2014-02-12 13:34:58 +00:00
Adolfo Gómez
6f4eca7da3 Fixed Service Pool removal from web interface 2014-02-11 18:35:37 +00:00
Adolfo Gómez
26c6ffdc8e Fixed more issues with transactions (they must be only where neded, not everywhere as i tried to "adapt" before...) 2014-02-11 11:34:47 +00:00
Adolfo Gómez
2fb857a870 Removed unnecesary binary (jar) from repository (created from jardesc file automatically) 2014-02-07 08:53:50 +00:00
Adolfo Gómez
d7219fcafc Removed unnecesary binary (jar) from repository (created from jardesc file automatically) 2014-02-07 08:52:22 +00:00
Adolfo Gómez
001cd91bf7 Removed unnecesary binary (jar) from repository (created from jardesc file automatically) 2014-02-07 08:50:16 +00:00
Adolfo Gómez
1f737a0f4e Removed unnecesary binary (jar) from repository (created from jardesc file automatically) 2014-02-07 08:49:28 +00:00
Adolfo Gómez
4f6071ddf8 Removed unnecesary binary (jar) from repository (created from jardesc file automatically) 2014-02-07 08:45:39 +00:00
Adolfo Gómez
c33d469304 Removed unnecesary binary (jar) from repository (created from jardesc file automatically) 2014-02-07 08:41:55 +00:00
Adolfo Gómez
e335fa88fa * Updated translations (still has work to be done)
* Almost finished aministration interface (needs "removing" cache & assigned, and a few more things)
2014-02-05 10:47:10 +00:00
Adolfo Gómez
83b8c474bd Adding "new group" functional form 2014-02-04 09:43:53 +00:00
Adolfo Gómez
b0756d8e3e Updated user services 2014-02-03 10:06:15 +00:00
Adolfo Gómez
03feee9ebc Updated to org.glyptodon.... 2014-01-30 06:45:17 +00:00
Adolfo Gómez
0304762fce Updated switches 2014-01-29 10:47:59 +00:00
Adolfo Gómez
93075e2cc3 Can create new services pools, needs more work on this anyway 2014-01-29 10:18:53 +00:00
Adolfo Gómez
3e036adbca 2014-01-29 07:24:30 +00:00
Adolfo Gómez
81439890e1 Added graphs for in use & assigned services 2014-01-28 10:02:32 +00:00
Adolfo Gómez
dcab2e120b Adding flot charts to administration 2014-01-28 09:29:16 +00:00
Adolfo Gómez
3bc044518f Adding first stats to admin interface 2014-01-28 06:59:45 +00:00
Adolfo Gómez
0a477cae68 aa 2014-01-28 06:28:00 +00:00
Adolfo Gómez
8a9f32dd03 Updated dashboared 2014-01-28 06:07:58 +00:00
Adolfo Gómez
0d3a724ab8 Advancing on admin interface 2014-01-27 06:57:42 +00:00
Adolfo Gómez
1e74a82a40 Configuration can now be saved 2014-01-25 10:58:53 +00:00
Adolfo Gómez
a50e1ecca8 Added configuration var editing to web admin (not saving right now) 2014-01-25 10:20:02 +00:00
Adolfo Gómez
5f99877bf7 Updated migration 18 (fixed) 2014-01-23 16:18:47 +00:00
Adolfo Gómez
3ad2a84d55 changed security var "allow web access" to a simpler one that can easily be used from command line 2014-01-23 06:01:29 +00:00
Adolfo Gómez
f5b4dd2ea6 Added loging capability from web to root user 2014-01-22 09:06:03 +00:00
Adolfo Gómez
e639911b38 * Added migration for moving "security" settings to "security" tab
* Fixed encryption (utf-8 related, not important)
2014-01-22 07:08:24 +00:00
Adolfo Gómez
ba1927b0fc Fixed a couple bugs on rest when running under apache 2014-01-21 09:19:59 +00:00
Adolfo Gómez
8ed7bd1cc0 Added "publish" method to publications, client && server part
Added "custom_methods" to detail handlers
2014-01-20 09:38:24 +00:00
Adolfo Gómez
cfc2dbb49e web admin interface progress 2014-01-15 06:29:20 +00:00
Adolfo Gómez
3b570f86df Fixed date columns sorting (marked as "uds-date" type, and made custom sorting methods for datatable) 2013-12-17 10:03:51 +00:00
Adolfo Gómez
edc03f4e7e Added logs
Added "restrained" info to services pool list
2013-12-17 09:28:36 +00:00
Adolfo Gómez
bf3dd99b63 Found a much better name for "Deployed Services", that is "Services Pools" (much accord with other VDI implementations, after almost 9 years of using a "custom" name ;-))
Advancing (a lot) with "Services pools"
2013-12-17 07:23:10 +00:00
Adolfo Gómez
363f8939d9 Advancing on deployed services 2013-12-16 09:27:57 +00:00
Adolfo Gómez
e925a2a356 Added support for custom "single" button to gui tables 2013-12-14 02:37:11 +00:00
Adolfo Gómez
53258f2d7b Fixed max services limited to 100 2013-12-13 15:16:51 +00:00
Adolfo Gómez
77127664af Added some more info to providers && services 2013-12-13 09:51:55 +00:00
Adolfo Gómez
2b7ad74f2f Started deployed services part 2013-12-13 01:15:25 +00:00
Adolfo Gómez
3cae37ca5c Keep solving some issues with new transaction.atomic 2013-12-12 20:59:09 +00:00
Adolfo Gómez
dbc001ea22 Added network edition (easy also.... :-) ) 2013-12-12 07:23:22 +00:00
Adolfo Gómez
895ef25b77 Basic transport new/edit done (easy this time, using all previous work... :-) ) 2013-12-11 22:59:26 +00:00
Adolfo Gómez
453be53125 Added all resources used in administration to admin (even duplicating them), to get full independence from User Interface 2013-12-11 21:59:48 +00:00
Adolfo Gómez
71d0cbaf8c 2013-12-11 09:59:48 +00:00
Adolfo Gómez
48dcd97f5c * Fixed another bug introduced with new transactions on Django 1.6
* Added all used js, even if duplicated, to "admin" so we do not depend on externals js
2013-12-11 09:59:17 +00:00
Adolfo Gómez
3c956e94df * Fixed dropdown to include icons (for "new")
* Added Os managers (client & server)
2013-12-10 23:21:29 +00:00
Adolfo Gómez
49dc0eb0c2 Finished Groups, and authenticators (hopefully.... :P) 2013-12-10 21:48:09 +00:00
Adolfo Gómez
de68a0cada Added group edition 2013-12-10 21:12:50 +00:00
Adolfo Gómez
a0ca068f54 Updated user & group form to be more consistent with editions 2013-12-10 19:52:47 +00:00
Adolfo Gómez
fb1a367e93 * Fixed current authenticators to use "real_name" instead of realName in createuser && modifyuser
* Finished (hopefully) Users add/edit
2013-12-10 03:16:58 +00:00
Adolfo Gómez
75a7a787b9 Updated "New" button with dropdown to a much better one 2013-12-10 00:14:34 +00:00
Adolfo Gómez
6676c62120 Advanced a lot with users part 2013-12-09 04:35:05 +00:00
Adolfo Gómez
db29667f4c Edit users done. I'll update the form, because now we can add all fields to 1 single tab 2013-12-09 02:10:55 +00:00
Adolfo Gómez
b3c6e46f0b * Fixed single user item get method in REST api
* Fixed single group item get method in REST api
* Divided gui-definition in several .js so it is more manageable
* Added method to convert several types on serialization to a more "standard" form
* Updated translations
2013-12-08 19:45:19 +00:00
Adolfo Gómez
828247831b 2013-12-08 07:31:00 +00:00
Adolfo Gómez
f3e7ec3be9 2013-12-08 07:22:16 +00:00
Adolfo Gómez
b9aff159d8 Improved Service providers section over administration client implementation. js now shows logs for providers & for services 2013-12-08 06:41:57 +00:00
Adolfo Gómez
744515f11f A little more organization 2013-12-08 04:41:52 +00:00
Adolfo Gómez
6eccaa9ddf Providers parts seems to be finished 2013-12-07 21:26:40 +00:00
Adolfo Gómez
52a8021e9d * Updated java detector plugin. Now it will not load ".jar" on loggin screen on some browsers (such as IE 11)
* Updated os detector to detect Windows Phone
2013-12-06 18:56:01 +00:00
Adolfo Gómez
735175badb * Fixed admin memory leak due to TableTools (fixed on section change in fact, removing all TableTools internal data)
* Fixed a bug with transactions on UserServiceManager
Now admin seems to work with stable memory... :-)
2013-12-06 18:45:36 +00:00
Adolfo Gómez
e071a1afbc Advancing on test buttons 2013-12-06 03:23:08 +00:00
Adolfo Gómez
c29e2d4dcb Adding the posibility to include custom buttons on modal footers, so we can for example add "test" buttons wherever they are needed 2013-12-05 05:34:35 +00:00
Adolfo Gómez
f5e5d88973 Improved js memory usage by deleting all datatables keep info on "page change" inside dashboard. This is not really necesary, because we have a limited number of different tables, but if we cleans up, memory comsumption will be lowered 2013-12-04 05:00:38 +00:00
Adolfo Gómez
64382b5afe * Added cache flush functionality to dashboard
* added rest method to flush cache
* Fixed tabletools "stuff" left behind, removing all this on any "main link" click
2013-12-04 04:12:06 +00:00
Adolfo Gómez
732840df42 Added choices & multichoices 2013-12-04 03:03:07 +00:00
Adolfo Gómez
61c9f4f975 Implemented callbacks for gui "fillers", that is, choices that calls server for information about how to fill other fields with returned values... 2013-12-04 01:57:33 +00:00
Adolfo Gómez
36bdbbfd37 * Added a few more tables to innodb, that will not impact access to platform 2013-12-03 18:17:03 +00:00
Adolfo Gómez
a6b3462748 * Fixed a bug with new transactions
* Added a few tables to innodb model
2013-12-03 18:12:49 +00:00
Adolfo Gómez
dcfee55122 * Editlist control finished
* fixed REST service put method
2013-12-03 04:26:23 +00:00
Adolfo Gómez
3c7a0b82d7 Updated DinamycFieldsManager to get new "EditList" format (as simple list)
Updated to be version 1.4

There is intention to remove this administration client once the Web admin interface is finished & usable. Probable, half of 2013 this admin interface will be removed and will only keep the "Web version"
2013-12-02 18:21:40 +00:00
Adolfo Gómez
ad69d8fa6c * Fixed a bug that makes all Instances of a specific "UserInterface" to share same "instance fields". This could be a problem if two access are done simultaneously (for example, 2 services of same type, or two authenticators of same class). Now every new "object" has its own UserInterface objects
* Changed the way the "EditList" are returned, now they are "lists", not "choices"

As always, a bit of refactoring
2013-12-02 18:01:12 +00:00
Adolfo Gómez
3ec517c90f 2013-12-02 15:17:01 +00:00
Adolfo Gómez
888f125dc6 Finished based model/detail methods 2013-12-02 03:43:17 +00:00
Adolfo Gómez
043b28cfb4 Advancing on table/model editing
More refactoring of code
2013-11-29 00:55:04 +00:00
Adolfo Gómez
c98e964bba Refactorized REST api (server) to be much more "coherent". URLs are much more coherent, we have fewer handlers to implement on models, fixed to register correctly methods, even when deriving from Handler, etc...
This gives better options to implement handlers based on models also
2013-11-28 11:55:40 +00:00
Adolfo Gómez
7ea7086ba9 * Implemented services REST part
* Added possibility of creating own types for DetailApi (useful for provicers/services, where services is a detail but also has types)
More refactoring
2013-11-27 11:14:53 +00:00
Adolfo Gómez
d46400c1f7 Done multi tab forms
Advancing on Transport new/edit (this & network will server as base for other tabs)
2013-11-27 00:41:03 +00:00
Adolfo Gómez
fa2335efd4 * Finished create/edit methods
* Added delete method
* a little more refactoring ( ofc :-) )
Need to debug a bit more this, and probably make some adaptions for models that do not serializes objects
2013-11-26 03:42:46 +00:00
Adolfo Gómez
63da672f30 * Adapted transactions on db to new django 1.6 model, much more versatile.
Removed all "autocommit, commit_on_success and commit_manually", and replaced with "transaction.atomic" calls. Of course, with code refinement in some parts to adapt to this new situation

* Added Changing Some table types from MyISAM to Mysql after migrations are done ALWAYS. This is not too slow, and will ensure that the database supports transactions where they are needed
2013-11-25 17:34:13 +00:00
Adolfo Gómez
8c04c88d86 A bit of refactoring with api, gui, etc...
solved some problems with PUT methods (need to solve a few ones anyway)
Create authenticator now works, but needs more elaboration
lots of changes i event remember.. :-)
2013-11-25 03:01:58 +00:00
Adolfo Gómez
a52e8dc548 * Added form validations (more work will be needed probably for numerics for example) 2013-11-23 22:39:07 +00:00
Adolfo Gómez
b7bfecf87c * Fixed Datatables tools width
* Refactoring of API (again...)
2013-11-22 11:33:54 +00:00
Adolfo Gómez
ceecb0823d Fixed read only "generic model editing" properties.
Also forgot in previous commits, i changed the template engine to Handlebars. Its much "versatile", and we need a bit of flexibility (such as conditionals, loops, etc...)
2013-11-22 02:33:06 +00:00
Adolfo Gómez
de4a9ff291 Advanced a lot with "generic model editing" 2013-11-22 02:22:41 +00:00
Adolfo Gómez
004e060aaf * Added modal to gui
* Advanced a bit with edition of components
2013-11-21 13:19:13 +00:00
Adolfo Gómez
127c36f364 * Added template "preload" ability
* Added caching templates as "compiled" templates
* moved table description panel to template
2013-11-21 11:01:30 +00:00
Adolfo Gómez
dbd4531376 Better pannels 2013-11-21 02:22:41 +00:00
Adolfo Gómez
17b20ab684 A cuople more fixes && refactoring 2013-11-20 11:31:23 +00:00
Adolfo Gómez
4b2eae58b1 Added gui basic elements
refactoring of existint javascript
translations of buttons moved to better place
added css class that will made button text dissapear for smaller displays
2013-11-20 11:09:30 +00:00
Adolfo Gómez
6144eb2f6a Fixing some js, started form renterer 2013-11-20 09:14:27 +00:00
Adolfo Gómez
2bf0c3e59a * Fixed a bunch of javascript things
* Added "gui" method to api, so we can get a description of what fields are needed for an specific item.
Added REST capacity to process gui requests
Updated translations
2013-11-20 03:16:56 +00:00
Adolfo Gómez
805b225552 I had 3d buttons not working (clicks events not fired). After a while of looking for why, i realized that in fact the button was moving, and the event was not fired sometimes for this reason.
So i have created a little "fix" on tools.js, where we use mousedown && mouse up events (on button & parent) to "simulate" a click over an static button.

Also, i have included a way of blocking UI (using jquery.blockUI plugin), so user know when something is going on.. 

hard work resolving the 3d buttons "bug" :-)
2013-11-19 11:26:27 +00:00
Adolfo Gómez
dbb4466c46 Advancing, but have a few probles with "cool 3d buttons". When pressed, many times click event seems not to be fired... O.o 2013-11-19 01:27:47 +00:00
Adolfo Gómez
67a691768e added "cute" 3d buttons :-) 2013-11-18 02:54:05 +00:00
Adolfo Gómez
96937a397c added xls, but i'm going to evolve it fast 2013-11-17 22:48:34 +00:00
Adolfo Gómez
47be643eac * Added responsive tables to admin
* Added language selection over REST API
* Added "renderers" so we can add icons or whatever to cells before rendering
* Lots of improvements
2013-11-17 03:48:05 +00:00
Adolfo Gómez
6bb538d941 * Finished (almost) details of master tables
* Added templating engine based on John Resig - http://ejohn.org/,
* Added capacity to scroll to make tables visible
* Added users detail view for authenticators
* added server template serving
2013-11-15 23:45:05 +00:00
Adolfo Gómez
d2cf0f6846 2013-11-15 21:14:46 +00:00
Adolfo Gómez
2615b5fca4 Added "details" to REST for children of certain elements (such as authenticators-->users, user services --> publications, cache, assignations, groups, transports, etc... 2013-11-15 16:04:51 +00:00
Adolfo Gómez
bf83de2f5e * Web Admin work
* Improved visualization & use of Generic Table for data visualization
2013-11-15 14:02:53 +00:00
Adolfo Gómez
e59ac8078d 2013-11-15 10:33:51 +00:00
Adolfo Gómez
caf250daa3 2013-11-15 10:33:21 +00:00
Adolfo Gómez
841580afda 2013-11-15 10:32:49 +00:00
Adolfo Gómez
0a0772a7c6 Advancing admin (in fact already playing around with components, but made some advances.. :-) ) 2013-11-14 17:02:30 +00:00
Adolfo Gómez
d68822eaf7 Advancing with very basic aspects of administration/REST api 2013-11-14 11:17:07 +00:00
Adolfo Gómez
6e0511add3 Updated checkbrowser to recognize ie, new ie (11), opera, safari, firefox & webkit based browsers 2013-11-13 22:52:14 +00:00
Adolfo Gómez
ae9f3c7e78 Some translations, and javascript catalog fixed so it gets correctly generated on each lang (and do not caches it) 2013-11-13 19:00:19 +00:00
Adolfo Gómez
89d27cbcd5 Playing around with administration interface, selecting components that seems to match what i'm looking for... :-) 2013-11-13 17:21:48 +00:00
Adolfo Gómez
59e9f65241 2013-11-12 01:10:03 +00:00
Adolfo Gómez
81d64162f4 Start the work over admin interface (Dashboard) in parallel with REST api 2013-11-12 01:09:17 +00:00
Adolfo Gómez
495ab90cc2 * Updated to django 1.6
* Ensured that, an user when has logged in from interface, has access to REST
The access will be restricted by user permissions of course (this is, simple user will have access to its services, preferences and little more... :-)) This part anyway, is not done yet
2013-11-11 20:08:23 +00:00
Adolfo Gómez
47dff34637 Started a REST api for UDS.
The idea is provide third party access to UDS, and try to use this as an starting point to make an web based administration, so we can deprecate .net administration tool (it is becoming an annoyance... :-) ), and web based admin is always more accesible than thin client admin
2013-11-11 19:38:23 +00:00
Adolfo Gómez
918259079a Some characters cause troubles on some devices (tablets, mobiles, ..) so we have removed anything outside ASCII 2013-11-11 00:12:39 +00:00
Adolfo Gómez
2bda255c2a * added popover on small names
* moved deployed services names under lauchn button
2013-11-09 09:11:15 +00:00
Adolfo Gómez
bfed62d833 * Basic htm5 template done
* Updated translations & texts
2013-11-08 14:40:52 +00:00
Adolfo Gómez
2b68a119e1 * Basic htm5 template done
* Updated translations & texts
2013-11-08 14:11:45 +00:00
Adolfo Gómez
7bbf86117b Updated templates, and started to simplify templates structure 2013-11-08 13:33:17 +00:00
Adolfo Gómez
aa2e532843 Advancing on html5 basic theme 2013-11-08 12:18:10 +00:00
Adolfo Gómez
fcc7bffb2e Advancing on html5 basic theme 2013-11-08 12:17:51 +00:00
Adolfo Gómez
b5aa6cd4b8 2013-11-08 11:31:39 +00:00
Adolfo Gómez
9dd35ebf1e * Fixed Html5RDP (guacamole) transport so it works on iphone/ipad (os now are recognized)
* Added css for using bootstrap on html5 part of UDS
2013-11-08 09:26:11 +00:00
Adolfo Gómez
aba57d8400 * Added support for Android OS
* Updated HTML5 part a bit
* Added printing support for guacamole
2013-11-05 22:00:12 +00:00
Adolfo Gómez
66d56dc6e5 Removed a few icons not used in this implementation 2013-11-05 21:21:03 +00:00
Adolfo Gómez
52c69a3521 After a close look at Guacomole, i noticed that i forgot a lot of things
Basically, i added the scripts, images, etc.. from Guacamole and this started to work fine!!! :-)

I had to fix a few thins that are not uset in this implementation, but not much..

* Added support for remote printing
* Added support for mobile devices
2013-11-05 21:19:15 +00:00
Adolfo Gómez
5fd0436ab6 Fixed a bit login form
trying things with services display
2013-11-05 11:15:42 +00:00
Adolfo Gómez
5cf101d3c8 Advancing on migrationg to HTML5
* Adding themes to UDS
2013-11-05 01:20:39 +00:00
Adolfo Gómez
36429e0443 2013-11-04 16:15:19 +00:00
Adolfo Gómez
e6d7944e2f * Started migration of user interface to HTML5, using bootstrap 2013-11-04 15:59:59 +00:00
Adolfo Gómez
15d7ca7a4b Updated sample settings to include new django var (for wsgi)
Updated NX Transport to show new url for downloading
Updated NX Tunneled Transport to show new url for downloading

Added a new configruation TAB, NX, that allows to change the download urls for MAC and Windows/Linux.
2013-10-18 08:20:48 +00:00
Adolfo Gómez
ea784bfeef Sorted alphabetically Services 2013-10-16 11:45:17 +00:00
Adolfo Gómez
fb463dee73 Updated so fixed credentials are correctly got 2013-10-16 11:32:16 +00:00
Adolfo Gómez
15011dea95 Added applet value to indicate permissions needed by applet 2013-10-16 10:48:01 +00:00
Adolfo Gómez
012dc2792b Updated to include permissions on manifest 2013-10-16 10:44:46 +00:00
Adolfo Gómez
a07e784af1 Updated to include permissions on manifest 2013-10-16 10:44:26 +00:00
Adolfo Gómez
59485e39de Updated to include permissions on manifest 2013-10-16 10:44:07 +00:00
Adolfo Gómez
b79cbcc4e8 Updated to include permissions on manifest 2013-10-16 10:43:28 +00:00
Adolfo Gómez
c7941017b5 Updated jars to include permissions on manifest 2013-10-16 10:43:02 +00:00
Adolfo Gómez
c5b3656d38 Integrated 1.2u1 with audio support selection 2013-10-02 03:05:39 +00:00
Adolfo Gómez
eda93e0be2 * Added by default to ignore certificates to RDP 2013-10-02 02:48:05 +00:00
Adolfo Gómez
53522724b3 * Updated to work with guacamole 0.8.3
* Added sound & video support to guacamole
2013-10-02 02:47:23 +00:00
Adolfo Gómez
a08b114aee Fixed a bug on utf conversión 2013-09-25 08:29:55 +00:00
Adolfo Gómez
79048a4271 Advancing on clustererd services providers 2013-09-20 05:56:43 +00:00
Adolfo Gómez
efb614ff10 Added new possible state for services: Balancing.
This state will only be triggered if a service can't be balanced if it is "in use"
2013-09-17 13:26:44 +00:00
Adolfo Gómez
650c13067d Removed caching of API connections to oVirt. Now it's opened/closed every time needed because this has given some problems.
Anyway, has to implement in a near future using REST a own api, because oVirt API does not work too "fine"
2013-09-17 12:47:15 +00:00
Adolfo Gómez
f220cf3651 * A couple of cosmetic changes :-) 2013-09-11 13:26:31 +00:00
Adolfo Gómez
46990f6b64 * added "extended" log for debug to insert operation into delayed tasks queue
* Created a delayed task thread that, is inserted after a publication is success, to remove "in use machine" after the configured time
* Advancing with clustering control
* Inserted "Cluster" tab into configuration, with required params
* Removed "display" param from ovirt
2013-09-11 13:24:32 +00:00
Adolfo Gómez
50b7a55be5 Started adding Automatic Cluster services support, so we can simplify using services as ProxMox, HyperV, ESXi (without VC), etc... as Providers.
This clusters are special type of providers, where that providers contains several nodes, and do not provide automatic placement of machines, etc...
2013-09-06 12:51:01 +00:00
Adolfo Gómez
81b1646458 Back to work :-)
* Fixed Domain part of credentials for HTML5RDP
* Fixed Domain part of credentials for RDP
* Fixed Domain part of credentials for Tunneler RDP
2013-09-02 10:45:21 +00:00
Adolfo Gómez
8f70298713 Fixed scroll bar not shown correctly on New deployed service, transports tab. 2013-07-09 23:23:29 +00:00
Adolfo Gómez
0b2e38a85d * Fixed a bug on oVirt
* Added devel support for "notify ready from os manager"
2013-07-05 11:06:33 +00:00
Adolfo Gómez
eb9993f607 Added "isDirty" to base module, so we can avoid "serializations" under some circunstances (work in progress, right now this does nothing) 2013-06-27 09:12:53 +00:00
Adolfo Gómez
5dbacb629b A couple of bug fixes on ovirt publication 2013-06-26 11:05:32 +00:00
Adolfo Gómez
c61ee0f72c 2013-06-26 10:15:11 +00:00
Adolfo Gómez
eea75c1736 2013-06-26 10:14:34 +00:00
Adolfo Gómez
0303fbf910 Fixed a possible bug with the use of the IP authenticator. Now it checks that the username "ip" is the same as request.ip 2013-06-25 15:42:05 +00:00
Adolfo Gómez
2cc81d2b8b Fixed a possible bug with the use of the IP authenticator. Now it checks that the username "ip" is the same as request.ip 2013-06-25 15:40:20 +00:00
Adolfo Gómez
8ca12ddbc6 Added Reference URL for .rdp files (just for not forgetting it) 2013-06-21 07:52:08 +00:00
Adolfo Gómez
278c091dac * Added "development menu", to help on development issues (needs to be activated with param --enableDevel or --enableDebug) 2013-06-20 09:19:57 +00:00
Adolfo Gómez
9b99b8f1bd * Added "development" method for user machines
* Fixed publications clean up on new publication & session expiration
* Added "forgotten" unicode method to DeployedPublication
2013-06-20 09:03:50 +00:00
Adolfo Gómez
32d951a43c 2013-06-19 10:58:34 +00:00
Adolfo Gómez
7ca448d926 Fixed a bug in UserServiceManager that on "checkForRemoval" it reloads the User Service, and looses the referenced passed in.
This makes that when the service must be removed, and a reference was passed in that was also saved later, the service was not marked correctly for removal.
2013-06-19 10:49:40 +00:00
Adolfo Gómez
4ee51ac268 Fixed duplicated configuration key (in fact, two different keys that means same thing... :-) ) 2013-06-19 10:02:40 +00:00
Adolfo Gómez
687d63556c Updated guacamole js part to 0.7.2 2013-06-19 08:45:42 +00:00
Adolfo Gómez
8d9b825237 * Added new global config var for time elapsed before services in use for old publications are removed
* Added support for removal of services from old publications in use once a configured time is elapsed
2013-06-19 08:33:15 +00:00
Adolfo Gómez
b2b747a099 Fixed length of username & groupname fields of regex ldap authenticator 2013-06-10 08:08:30 +00:00
Adolfo Gómez
9089065069 Fixed smartcard redirection on linux (forgot to add parameter in case of smartcards). Thanks to Virginio for reporting :-) 2013-06-04 14:07:58 +00:00
Adolfo Gómez
ed69006a84 Fixed smartcard redirection on linux (forgot to add parameter in case of smartcards). Thanks to Virginio for reporting :-) 2013-06-04 14:07:47 +00:00
Adolfo Gómez
34a4b8b4dc Fixed smartcard redirection on linux (forgot to add parameter in case of smartcards). Thanks to Virginio for reporting :-) 2013-05-30 12:11:30 +00:00
Adolfo Gómez
f16de6baf7 Fixed smartcard redirection on linux (forgot to add parameter in case of smartcards). Thanks to Virginio for reporting :-) 2013-05-30 12:11:15 +00:00
Adolfo Gómez
c733822caf * Updated jar to fix smartcards redirection on linux 2013-05-30 12:10:24 +00:00
Adolfo Gómez
d47823bbd2 * Fixed a bug that made deployed services from services that do not need publication appear as much times as valid groups for that deployed service
* Removed annoying exception logging (user creation for internaldb when user already exists, but error is managed so it do no have to be logged)
* Minor aesthetic fix on User class
* Fixed name generators so if it consumes all range, an exception is generated
* Fixed ovirt linked vm so it treats no more names error
* Fixed user modify operation, so if user is derived Groups are not saved (they will be got from parent user)
2013-05-16 10:37:33 +00:00
Adolfo Gómez
9642392d7c Fixed rdesktop folders redirection (signed jar only) 2013-05-14 17:39:20 +00:00
Adolfo Gómez
45ad85025d Fixed rdesktop folders redirection 2013-05-14 17:38:55 +00:00
Adolfo Gómez
a4cc0a47f2 Updated so, when a parent is deleted, all children are also deleted. 2013-05-14 12:16:33 +00:00
Adolfo Gómez
2271f73714 Fixed internal db with different user for each ip 2013-05-14 12:10:02 +00:00
Adolfo Gómez
6270119d2b Fixed groups on internal auth 2013-05-14 11:54:51 +00:00
Adolfo Gómez
1c31e01199 Location of Windows folder was Harcoded previously. Now it is fixed (thanks to Virginio) 2013-05-13 16:34:03 +00:00
Adolfo Gómez
4b9d21942c 2013-05-13 16:33:49 +00:00
Adolfo Gómez
256de48f60 Location of Windows folder was Harcoded previously. Now it is fixed (thanks to Virginio) 2013-05-13 16:30:13 +00:00
Adolfo Gómez
174106530c Cosmetic cleanup (spaces at eol) 2013-04-25 04:50:24 +00:00
Adolfo Gómez
bb6929d9c8 * Added Python 3 unicode to UserService
* Fixed user service to ignore empty forms (forms without extra fields)
* Updated service provider to unicode for Physical Machines
2013-04-25 04:49:30 +00:00
Adolfo Gómez
1785507b88 Some code cleanup (copy & paste from applets :-) ) and finished ignoring ssl certificates. This must be no a problem here, because this is an internal service designed to communicate with broker & only with broker. We will see if we restore certificates check at a future 2013-04-25 04:48:00 +00:00
Adolfo Gómez
cdd31fe812 Added ssl cerfificate ignore by default 2013-04-25 03:21:39 +00:00
Adolfo Gómez
ea93e978eb Added ssl cerfificate ignore by default 2013-04-25 03:20:50 +00:00
Adolfo Gómez
207eba5d7a 2013-04-24 15:15:56 +00:00
Adolfo Gómez
804669824f * Updated nxtuntransport to work with new java 1.7 upgrade 21
* Removed render extension, so nx works fine with ubuntu 12.10
2013-04-24 15:02:43 +00:00
Adolfo Gómez
a90e7c0ae4 Disabled render extension on NX to work correctly with Ubuntu 12.10 (and maybe others) 2013-04-24 14:47:39 +00:00
Adolfo Gómez
fefa4fb2e2 Updated applet to work correctly with java 1.7 upgrade 21 2013-04-24 14:45:35 +00:00
Adolfo Gómez
91799b6175 Typo on StatsCollector 2013-04-24 08:06:40 +00:00
Adolfo Gómez
f3338ee264 * Added check to getInt, so if invalid value is found it returns the default, and, if default is also invalid, returns -1.
* Added log of the exception (error log)
2013-04-24 04:39:15 +00:00
Adolfo Gómez
849ddb7512 * Some fixes to spanish translations 2013-04-22 04:25:15 +00:00
Adolfo Gómez
b51d918881 * Added new "Security" setting, so we can set up trusted sources for requests.
* Secured access from Tunneler to Broker. Now pam & html5 requests can only be done from trusted sources. (They will not work only from trusted hosts)
* Upgraded jars for transports to fix Mac NX functionallity
2013-04-20 03:46:03 +00:00
Adolfo Gómez
66461057ec Added patch so Mac version uses OpenNX Client instead NX Client.
This patch has been submited by Virginio from University of Murcia, and fixes the use of Linux Machines one newer MAC versions (Lion & Mountain Lion), that do not includes rosseta anymore, and can't execute NX client.
2013-04-20 03:41:15 +00:00
Adolfo Gómez
d84d138cb0 Added patch so Mac version uses OpenNX Client instead NX Client.
This patch has been submited by Virginio from University of Murcia, and fixes the use of Linux Machines one newer MAC versions (Lion & Mountain Lion), that do not includes rosseta anymore, and can't execute NX client.
2013-04-20 03:40:53 +00:00
Adolfo Gómez
126f80cb94 Fixed "Simple tunnel test" for "UDS" (title in index.xhtml) 2013-04-18 23:00:03 +00:00
Adolfo Gómez
9029c5e12c HTML Tunnel source check done 2013-04-18 21:36:32 +00:00
Adolfo Gómez
a7da230b0a * Added checking of autorun global config to be checked each time we need it
* Updated translations
2013-04-18 21:15:44 +00:00
Adolfo Gómez
0622159ad2 * Updated used guacamole version to 0.8 to solve RDP visualization problems 2013-04-18 21:14:54 +00:00
Adolfo Gómez
52be2f3d27 Removed "old" readme.txt from guacamole project (added a new one that will be shipped with web) 2013-04-18 10:30:22 +00:00
Adolfo Gómez
c2a5b9ee50 * Fixed connection unicode compatibility
* Fixed Internal DB auth literal
* Fixed sample settings to include "request" logger
2013-04-18 10:10:31 +00:00
Adolfo Gómez
38dd6e23c8 * Added translations to administration client
* Upgraded version to administration client
* Added support for new server characteristics
2013-04-17 08:59:24 +00:00
Adolfo Gómez
5538caa9bb * More default unicode literals
* Added support for new network input methods
* Fixed ip auth to support network input methods
* Added support for new network input & modification to transport networks
* Fixed some anoying warnings :-)
* Upgraded required administration client version to 1.2
*
2013-04-17 08:36:13 +00:00
Adolfo Gómez
7bc1207a6c Code cleanup (unused imports) 2013-04-17 08:28:51 +00:00
Adolfo Gómez
0bf1f510dd * Some code cleanup
* Added unicode_literals to more modules & tested it
2013-04-17 00:09:48 +00:00
Adolfo Gómez
616300decb * Added all network recognition cases
* Added test to network recognition (should have started to do Unit tests a long ago, but... :-) )
2013-04-16 10:05:42 +00:00
Adolfo Gómez
3a175ff29c Added reference to where to obtain source code and to guacamole 2013-04-16 00:52:29 +00:00
Adolfo Gómez
72f485647b Fixed little bug on internaldb 2013-04-08 03:11:57 +00:00
Adolfo Gómez
6bd242bb9d * Added so we can access requests from anywhere without having to pass it
* Added So we can transform user names on login
* Added the posibility to give a different user to each internal db user based on the source (IP or reversed ip)
* Added "ignore and notify" invalid serialized data. This is so we can migrate "all" modules to auto serialization/deserialization
2013-04-08 03:11:00 +00:00
Adolfo Gómez
3140dd0bca * Added new module "net" under uds.core.util
* Moved out some method from models to net
* Started a generic network validation/retrieval function
* Added security to html5 guacamole proxy to UDS, allowing to restrict requests for credentials from an IP
* Including "from __future__ import unicode_literals" (step forward python 3)
2013-04-03 02:54:35 +00:00
Adolfo Gómez
0bb7cecf8f Updated so properties can contain a reference to an external file as url container 2013-04-03 00:54:24 +00:00
Adolfo Gómez
72702db87d * Updated translations
* Fix to AuthenticatorForm
2013-04-02 23:11:49 +00:00
Adolfo Gómez
062337edd8 Added HTML5 RDP connector (and it works!!) using guacamole as tunneler 2013-03-20 20:01:20 +00:00
Adolfo Gómez
9b6ed31c56 Removed alerts && code cleanup 2013-03-20 20:00:23 +00:00
Adolfo Gómez
366de542a7 Fixed (c) noticed of transport (was not BSD 3-clauses) 2013-03-20 18:44:06 +00:00
Adolfo Gómez
67073b43c1 Removed old & unusable test 2013-03-20 08:49:22 +00:00
Adolfo Gómez
8308890329 Minor fixes 2013-03-20 08:29:22 +00:00
Adolfo Gómez
c9da25bed8 Replaced "len" with a more proper way (using hasValidGroups method) 2013-03-20 08:23:54 +00:00
Adolfo Gómez
f8c7026fcc Replaced "len" with a more proper way (using hasValidGroups method) 2013-03-19 15:09:53 +00:00
Adolfo Gómez
10843cbca2 now getValidGroups returns a generator, not a list, so it does not have len :-) 2013-03-19 15:00:30 +00:00
Adolfo Gómez
a319f82e64 * Passed credential stuff to a simple HTTP request to UDS to get connection properties. 2013-03-19 14:47:53 +00:00
Adolfo Gómez
6aa67c80a3 2013-03-14 12:25:47 +00:00
Adolfo Gómez
4a4c1a12d0 Needed for building 2013-03-14 10:58:52 +00:00
Adolfo Gómez
7a9b4ee454 * added storeValue & recoverValue to a deployed service
* Fixed log manager so repeated logs do not get logged by default (avoid duplicate log entries)
* Extracted "notifyRestraing" to a method, so it's easier to find/modify it :-)
2013-03-14 10:01:35 +00:00
Adolfo Gómez
38ced4fea9 * Fixed so unexpected errors now get logged
* Added order by so fields are get in order from db
2013-03-12 13:29:02 +00:00
Adolfo Gómez
99b2a3f076 Upgraded to client version 1.1 (admin) 2013-03-12 10:03:41 +00:00
Adolfo Gómez
595b786834 * Log on server
* Added retries on rename/join domain failures
2013-03-12 00:15:27 +00:00
Adolfo Gómez
70cb226c8c * Fixed some bugs related to meta groups
* Fixed a typo on WinDomainOsManager
* Fixed a typo on Authenticator creation by xmlrpc
2013-03-12 00:12:12 +00:00
Adolfo Gómez
de9124707e Added ALLOWED_HOSTS = ‘*’ to sample django settings. Every one can configure this at his own :-) 2013-03-11 14:33:19 +00:00
Adolfo Gómez
092b3bcbce Removed needing of restart for KEEP_INFO_TIME 2013-03-08 11:05:40 +00:00
Adolfo Gómez
3041e9d2cd Commented out parameters for auth (r they necessary?) 2013-03-08 10:05:33 +00:00
Adolfo Gómez
8558223518 * Added isOfType() to Service & Provider
* Continuing with "from __future__"...
* Added stamp to uniques ids, so we can purge them by date in some cases (Contention)
* DB Migrations to meta groups mixed with stamp of unique id
* Added more logs to some componets
* Added de posibility to authCallback to logout user with redirect
2013-03-08 05:31:21 +00:00
Adolfo Gómez
794b86563b Redoing migration 13 2013-03-07 13:19:46 +00:00
Adolfo Gómez
8eaec2c535 Right now, added de posibility to transfer a mac or name from an user service to an service.
This gives the posibility to to an user service to "reserve" (for now, indefinitely, but will add an "stamp" field to uniqueid database so we can clean up them from time to time) a mac or an name, so other deployed services do not uses them anymore.

One example of this is when a VM gets in error, and machine gets renamed. The mac is them reserved so no more machines clashes with this one reserved.
2013-03-06 15:41:09 +00:00
Adolfo Gómez
552e8b680b * Updated translations 2013-03-06 07:17:46 +00:00
Adolfo Gómez
1f987d1f4f * Updated translations 2013-03-06 07:12:07 +00:00
Adolfo Gómez
47be733839 * Fixed a few tooltips that has incorrect text (copy&paste) :-) 2013-03-06 07:06:48 +00:00
Adolfo Gómez
5554885593 * Globalconfig setting for number of fails in restrain time before a service is restrained
* Added a couple of needed methods to Storage (so it can pickle and store/retrieve in one step)
* Hanged cleaner implemented, seems to work now
* Restrained service is logged on deployed service as WARN not as arror
* Fixed service view so it accepts meta groups
2013-03-06 04:10:27 +00:00
Adolfo Gómez
dd45014231 * added log capability to deployed user services implementations
* Added log when service is restrained
2013-03-05 18:14:59 +00:00
Adolfo Gómez
56f4db54dd * Added comments that if a meta group is empty, all users belong to this meta group
* Fixed a bug where all HiddenFields where not serializable. Now we can mark a hidden field as serializable (on UserInterface)
* Added push_front to StateQueue
* Changed UniqueIDGenerator so first returns lower values
* Added Service as a log source
* Added state_date when services are marked for removal
* Code cleanup
2013-03-05 17:22:11 +00:00
Adolfo Gómez
7375290573 * Added meta groups support to administration interface 2013-03-05 02:24:36 +00:00
Adolfo Gómez
96ca4f4f14 * Started meta groups part, and in a very advanced stage yet :-) (has to do lots of tests before it's ready for production 2013-03-05 02:23:39 +00:00
Adolfo Gómez
aec33ae933 * Started meta groups part, and in a very advanced stage yet :-) (has to do lots of tests before it's ready for production 2013-03-05 02:22:10 +00:00
Adolfo Gómez
477151bf24 * Started UDS part of guacamole transport
* Added support for group editing
* Fixed a bug, where the "state_date" is not updated when moved from cache to assigned
2013-03-04 21:46:09 +00:00
Adolfo Gómez
c6b9924098 * Added support for group editing to admin client 2013-03-04 21:43:45 +00:00
Adolfo Gómez
38b03f22c0 2013-03-04 08:33:12 +00:00
Adolfo Gómez
12af8907a8 Done basic part on guacamole to allow a transport to be created on UDS
Now, it:
  * Allow register credentials from "trusted" sources (those knowing the secret ID of the server)
  * Access to remote desktop based on parameters registered with credentials
  * Return to the specified page on disconnection, if indicated.
  * Use of credentials just once, and forget them
  
With uds transport part, when done, people will have full desktop access using just html5 client over a browser.
2013-03-04 01:51:15 +00:00
Adolfo Gómez
ec0e3c6dee A few commits with structural fixes :(
* Html5 client based rcp/vnc client based on Guacamole Api.
The idea behind this is to use an URL as transport provider for Guacamole Transport inside UDS (not done already, but thinking about it...). Using the provided code (this code is under AGPLv3), we can:
1.- Broker will connect to a servlet here, passing in the needed credentials for connection.
2.- Broker will redirect user to index.xhtml, with credentials identification within URL
3.- Client will get this credentials & params, and make the connection
4.- On exit, it will return to broker
2013-03-03 23:44:55 +00:00
Adolfo Gómez
51f9a7992c 2013-03-03 23:44:20 +00:00
Adolfo Gómez
4870cb82b1 2013-03-03 23:41:03 +00:00
Adolfo Gómez
2d07cc3f04 2013-03-03 23:40:35 +00:00
Adolfo Gómez
9afbbc3efb * Testing guacamole with parameters (we need to pass in the url from where to get credentials, etc...) 2013-03-03 13:31:14 +00:00
Adolfo Gómez
7353155158 Initial samples & tests with guacamole 2013-03-03 04:20:32 +00:00
Adolfo Gómez
1114a027ae Initial samples & tests with guacamole 2013-03-03 04:09:46 +00:00
Adolfo Gómez
6eda0c7cf7 First version (example) of gucamole RDP tunnel 2013-03-03 03:54:32 +00:00
Adolfo Gómez
bcb91b72ac Fixed a bug on services movement between cache levels, that make broker loose their control 2013-03-01 14:55:39 +00:00
Adolfo Gómez
3ffac998a7 Fixed a bug on services movement between cache levels, that make broker loose their control 2013-03-01 14:55:20 +00:00
Adolfo Gómez
6be8a54af3 * Added label access to Form Field (admin)
* Added Cache purge method for owners
* Added improved LDAP Regex Auth
* Added to only process USABLE machines at worker for never getted machines
* Added check for port on server for tunnelers
2013-02-28 20:45:54 +00:00
Adolfo Gómez
3d6d478aed * Activated worker so we can automatically remove certain services (those assigned but not in use).
To do this, the os Manager must inform if it can "process" unused machines (assigned but not in use). If the os manager wants this, there is a background worker,
  that works every 10 minutes by default,that will pass every service in that state since more than the last execution of the background worker.
  With this, for example, linux and windows os managers, will set this if we mark the action on logout as "remove", and every machine assigned and not in use, for a os manager
  marked as "remove", will be removed automatically.
  
Has to test this extensively!!! :-)
2013-02-27 18:16:16 +00:00
Adolfo Gómez
510c69e6fc * Added support for authenticator small names
* Updated version to 1.1.1
* Several minor bugs fixed (potentially bugs)
2013-02-27 12:16:08 +00:00
Adolfo Gómez
eedef4aa11 * Added so we can:
- Disable "global login" page, where all authenticators appears in the list
  - Associate an authenticator with an smallName, that can be even the name of the host. Using this, we can access to different authenticators groups using:
    * Different host names (that matches against the smallNames and filters them)
    * Using the URL http:.../login/[smallName], same as before
* Added "force" parameters to getBool and getInt in Config class
* Fixed xmlrpc view so it works with Django 1.5
2013-02-27 11:44:58 +00:00
Adolfo Gómez
765730ed47 * Removed unique index from small name 2013-02-27 11:23:09 +00:00
Adolfo Gómez
ea4f44a9ae * Upgraded to work with Django 1.5
* Refactorized Configurations load
* Added "small_name" to authentications, so we can access an specifig auth directly by using url
* Upgraded templates to correctly work with 1.5
2013-02-27 09:55:54 +00:00
1961 changed files with 212263 additions and 221355 deletions

21
.gitignore vendored
View File

@@ -1,17 +1,19 @@
*.pyc
*.pyo
*.orig
*~
*.swp
.DS_Store
*_enterprise.*
.settings/
.ipynb_checkpoints
.idea/
# Debian buildings
*.debhelper*
*-stamp
*.substvars
nxtransport/bin/
nxtuntransport/bin/
rdptransport/java/bin/
server/src/log/
ssh-tunnel/tunnelLaucher/bin/
# /client/administration/
/client/administration/*.suo
@@ -64,7 +66,7 @@ ssh-tunnel/tunnelLaucher/bin/
/rdptransport/java/jar/*.jar
# /server/
/server/*_enterprise
*_enterprise
/server/openuds.sublime-project
/server/openuds.sublime-workspace
@@ -163,3 +165,6 @@ ssh-tunnel/tunnelLaucher/bin/
/udsService/udsgui/obj/Debug
/udsService/udsgui/obj/Release
/udsService/udsgui/obj/x86
.vscode
.mypy_cache

16
README.md Normal file
View File

@@ -0,0 +1,16 @@
![UDS Logo](https://www.udsenterprise.com/static//img/logoUDSNav.png)
openuds
=======
OpenUDS (Universal Desktop Services) is a multiplatform connection broker for:
- VDI: Windows and Linux virtual desktops administration and deployment
- App virtualization
- Desktop services consolidation
This is an Open Source Source project, initiated by Spanish Company Virtualcable and released Open Source with the help of several Spanish Universities.
Any help provided will be welcome.
**Note: Master version is always under heavy development and it is not recommended for use, it will probably have unfixed bugs.
For use, please use the latest stable branch.**

1
TODO.txt Normal file
View File

@@ -0,0 +1 @@

1
VERSION Normal file
View File

@@ -0,0 +1 @@
3.0.0

8
actor/.gitignore vendored Normal file
View File

@@ -0,0 +1,8 @@
# Debian source builds
udsactor_*.dsc
udsactor_*.tar.xz
udsactor_*.buildinfo
udsactor_*.changes
# And binaries
udsactor*.deb
udsactor*.rpm

4
actor/deps.txt Normal file
View File

@@ -0,0 +1,4 @@
Linux:
python3-prctl (recommended, but not required in fact)
python3-pyqt5

1
actor/linux/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/udsactor-*[1-9].*.spec

91
actor/linux/Makefile Normal file
View File

@@ -0,0 +1,91 @@
#!/usr/bin/make -f
# -*- makefile -*-
.PHONY: install-udsactor install-udsactor-unmanaged
# Directories
SOURCEDIR := ../src
LIBDIR := $(DESTDIR)/usr/share/UDSActor
BINDIR := $(DESTDIR)/usr/bin
SBINDIR = $(DESTDIR)/usr/sbin
APPSDIR := $(DESTDIR)/usr/share/applications
CFGDIR := $(DESTDIR)/etc/udsactor
SYSTEMDIR := $(DESTDIR)/etc/systemd/system
POLKITDIR := $(DESTDIR)/usr/share/polkit-1/actions/
XDGAUTOSTARTDIR := $(DESTDIR)/etc/xdg/autostart
KDEAUTOSTARTDIR := $(DESTDIR)/usr/share/autostart
PYC := $(shell find $(SOURCEDIR) -name '*.py[co]')
CACHES := $(shell find $(SOURCEDIR) -name '__pycache__' -o -name '.mypy_cache')
clean:
rm -rf $(PYC) $(CACHES) $(DESTDIR)
install-udsactor: udsactor
install-udsactor-unmanaged: udsactor udsactor-unmanaged
udsactor-unmanaged:
# Overwrite udsactor config is what to be done
cp scripts/UDSActorConfig-unmanaged $(SBINDIR)/UDSActorConfig
udsactor:
rm -rf $(DESTDIR)
mkdir -p $(LIBDIR)
mkdir -p $(BINDIR)
mkdir -p $(SBINDIR)
mkdir -p $(APPSDIR)
mkdir -p $(CFGDIR)
mkdir -p $(POLKITDIR)
mkdir -p $(XDGAUTOSTARTDIR)
mkdir -p $(KDEAUTOSTARTDIR)
mkdir $(LIBDIR)/img
# Cleans up .pyc and cache folders
rm -f $(PYC) $(CACHES)
cp -r $(SOURCEDIR)/udsactor $(LIBDIR)/udsactor
cp $(SOURCEDIR)/img/uds-icon.png $(LIBDIR)/img
cp $(SOURCEDIR)/actor_*.py $(LIBDIR)
# QT Dialogs & resources
cp -r $(SOURCEDIR)/ui $(LIBDIR)/ui
# Menu GUI app
cp desktop/UDS_Actor_Configuration.desktop $(APPSDIR)
# Autostart elements for gnome/kde
cp desktop/UDSActorTool.desktop $(XDGAUTOSTARTDIR)
cp desktop/UDSActorTool.desktop $(KDEAUTOSTARTDIR)
# scripts
cp scripts/udsactor $(BINDIR)
cp scripts/UDSActorConfig $(SBINDIR)
cp scripts/UDSActorConfig-pkexec $(SBINDIR)
cp scripts/UDSActorTool $(BINDIR)
cp scripts/UDSActorTool-startup $(BINDIR)
cp scripts/udsvapp ${BINDIR}
# Policy to run as administrator
cp policy/org.openuds.pkexec.UDSActorConfig.policy $(POLKITDIR)
# Fix permissions
chmod 755 $(BINDIR)/udsactor
chmod 755 $(BINDIR)/udsvapp
chmod 755 $(BINDIR)/UDSActorTool-startup
chmod 755 $(SBINDIR)/UDSActor*
chmod 755 $(LIBDIR)/actor_*.py
chmod 644 $(POLKITDIR)/org.openuds.pkexec.UDSActorConfig.policy
# If for red hat based, copy init.d
ifeq ($(DISTRO),rh)
mkdir -p $(SYSTEMDIR)
cp debian/udsactor.service $(SYSTEMDIR)/
endif
# chmod 0755 $(BINDIR)/udsactor
uninstall:
rm -rf $(LIBDIR)
# rm -f $(BINDIR)/udsactor
rm -rf $(CFGDIR)

36
actor/linux/build-packages.sh Executable file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
VERSION=`cat ../../VERSION`
RELEASE=1
top=`pwd`
# Debian based
dpkg-buildpackage -b
cat udsactor-template.spec |
sed -e s/"version 0.0.0"/"version ${VERSION}"/g |
sed -e s/"release 1"/"release ${RELEASE}"/g > udsactor-$VERSION.spec
# Now fix dependencies for opensuse
# Note that, although on opensuse the library is "libXss1" on newer,
# the LibXscrnSaver is a "capability" and gets libXss1 installed
# So right now, we only need 1 uds actor for both platforms.
# cat udsactor-template.spec |
# sed -e s/"version 0.0.0"/"version ${VERSION}"/g |
# sed -e s/"name udsactor"/"name udsactor-opensuse"/g |
# sed -e s/"libXScrnSaver"/"libXss1"/g > udsactor-opensuse-$VERSION.spec
#for pkg in udsactor-$VERSION.spec udsactor-opensuse-$VERSION.spec; do
for pkg in udsactor-$VERSION.spec; do
rm -rf rpm
for folder in SOURCES BUILD RPMS SPECS SRPMS; do
mkdir -p rpm/$folder
done
rpmbuild -v -bb --clean --buildroot=$top/rpm/BUILD/$pkg-root --target noarch $pkg 2>&1
done
rpm --addsign ../*rpm
#rm udsactor-$VERSION

2
actor/linux/debian/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/udsactor/
/udsactor-unmanaged/

View File

@@ -0,0 +1,53 @@
udsactor (3.0.0) stable; urgency=medium
* Upgraded to 3.0.0 release
-- Adolfo Gómez García <agomez@virtualcable.es> Wed, 10 Jul 2019 9:24:10 +0200
udsactor (2.2.1) stable; urgency=medium
* Upgraded to 2.2.1 release
-- Adolfo Gómez García <agomez@virtualcable.es> Thu, 2 Oct 2018 12:44:12 +0200
udsactor (2.2.0) stable; urgency=medium
* Upgraded to 2.2.0 release
-- Adolfo Gómez García <agomez@virtualcable.es> Thu, 19 Oct 2017 16:44:12 +0200
udsactor (2.1.0) stable; urgency=medium
* Fixes for 2.1.0 release
-- Adolfo Gómez García <agomez@virtualcable.es> Tue, 19 Jan 2017 08:00:22 +0200
udsactor (2.0.0) stable; urgency=medium
* Upgrade for 2.0.0
-- Adolfo Gómez García <agomez@virtualcable.es> Tue, 01 Mar 2016 03:39:21 +0100
udsactor (1.9.1) stable; urgency=medium
* Upgrade for 1.9.1
-- Adolfo Gómez García <agomez@virtualcable.es> Tue, 01 Mar 2016 03:19:21 +0100
udsactor (1.9.0) stable; urgency=medium
* Upgrade for 1.9.0 (fixed package version)
-- Adolfo Gómez García <agomez@virtualcable.es> Tue, 05 May 2015 07:10:27 +0200
udsactor (1.7.5) stable; urgency=medium
* Upgrade for 1.7.5
-- Adolfo Gómez García <agomez@virtualcable.es> Thu, 23 Apr 2015 06:08:53 +0200
udsactor (1.7.0) stable; urgency=medium
* Initial release.
-- Adolfo Gómez García <agomez@virtualcable.es> Mon, 17 Nov 2014 05:32:41 +0100

View File

@@ -0,0 +1 @@
10

View File

@@ -0,0 +1,26 @@
Source: udsactor
Section: admin
Priority: optional
Maintainer: Adolfo Gómez García <agomez@virtualcable.net>
Build-Depends: debhelper (>= 7), po-debconf, dh-systemd (>= 1.5)
Standards-Version: 4.1.4
Homepage: http://www.udsenterprise.com
Package: udsactor
Section: admin
Priority: optional
Architecture: all
Depends: policykit-1(>=0.100), python3-requests (>=0.8.2), python3-pyqt5 (>=4.9), python3-six(>=1.1), python3 (>=3.4), libxss1, xscreensaver, ${misc:Depends}
Recommends: python3-prctl(>=1.1.1)
Description: Actor for Universal Desktop Services (UDS) Broker
This package provides the required components to allow managed machines to work on an environment managed by UDS Broker.
Package: udsactor-unmanaged
Section: admin
Priority: optional
Architecture: all
Depends: policykit-1(>=0.100), python3-requests (>=0.8.2), python3-pyqt5 (>=4.9), python3-six(>=1.1), python3 (>=3.4), libxss1, xscreensaver, ${misc:Depends}
Recommends: python3-prctl(>=1.1.1)
Description: Actor for Universal Desktop Services (UDS) Broker Static Unmanaged machines
This package provides the required components to allow unmanaged machines (static, independent machines) to work on an environment managed by UDS Broker.

View File

@@ -1,10 +1,10 @@
Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135
Name: udsactor
Maintainer: Adolfo Gómez García
Source: http://www.virtualcable.es/
Source: http://www.udsenterprise.com/
Copyright: 2010 Virtual Cable S.L.
License: GPL-2+
Copyright: 2014-2019 Virtual Cable S.L.U.
License: BSD-3-clause
License: GPL-2+
This program is free software; you can redistribute it and/or modify

3
actor/linux/debian/files Normal file
View File

@@ -0,0 +1,3 @@
udsactor-unmanaged_3.0.0_all.deb admin optional
udsactor_3.0.0_all.deb admin optional
udsactor_3.0.0_amd64.buildinfo admin optional

47
actor/linux/debian/rules Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/make -f
# -*- makefile -*-
configure: configure-stamp
configure-stamp:
dh_testdir
touch configure-stamp
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
$(MAKE)
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
$(MAKE) DESTDIR=$(CURDIR)/debian/udsactor install-udsactor
$(MAKE) DESTDIR=$(CURDIR)/debian/udsactor-unmanaged install-udsactor-unmanaged
binary-arch: build install
# emptyness
binary-indep: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installdebconf
dh_systemd_enable
dh_installinit --no-restart-on-upgrade --no-start --name=udsactor
dh_systemd_start
dh_python2=python
dh_compress
dh_link
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep
.PHONY: build clean binary-indep binary install configure

View File

@@ -0,0 +1 @@
3.0 (native)

View File

@@ -0,0 +1 @@
udsactor.postinst

View File

@@ -0,0 +1 @@
udsactor.service

View File

@@ -0,0 +1,3 @@
#!/bin/sh -e
exit 0

View File

@@ -0,0 +1,28 @@
#!/bin/sh
. /usr/share/debconf/confmodule
set -e
case "$1" in
configure)
/usr/bin/python3 -m compileall /usr/share/UDSActor > /dev/nul 2>&1
# Fix perms so only root can access "masterKey"
chmod 0700 /etc/udsactor
# chmod 0600 /etc/udsactor/udsactor.cfg
chown root:root /etc/udsactor
# chown root:root /etc/udsactor/udsactor.cfg
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0

View File

@@ -0,0 +1,14 @@
#!/bin/sh -e
. /usr/share/debconf/confmodule
set -e
if [ "$1" = "purge" ] ; then
if [ -f /etc/udsactor/udsactor.cfg ]; then
mv /etc/udsactor/udsactor.cfg /etc/udsactor/udsactor.cfg.dpkg-backup
# Remove .pyc leaved behind
rm -rf /usr/share/UDSActor || true > /dev/null 2>&1
fi
fi

View File

@@ -0,0 +1 @@
#! /bin/bash -e

View File

@@ -0,0 +1,14 @@
[Unit]
Description=UDS Broker actor
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/usr/share/UDSActor
ExecStart=/usr/bin/python3 actor_service.py start-foreground
PrivateTmp=true
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,12 @@
[Desktop Entry]
Name=UDS Actor Tool
Comment=UDS Actor Userspace tools
Exec=/usr/bin/UDSActorTool-startup
Icon=/usr/share/UDSActor/img/uds-icon.png
Terminal=false
Type=Application
NoDisplay=true
X-KDE-autostart-after=panel
X-KDE-StartupNotify=false
X-DBUS-StartupType=None
X-KDE-UniqueApplet=false

View File

@@ -0,0 +1,11 @@
[Desktop Entry]
Name=UDS Actor Configuration
Version=1.0
Exec=/usr/sbin/UDSActorConfig-pkexec
Comment=UDS Actor Configuration Application. (Must be executed as root)
Icon=/usr/share/UDSActor/img/uds-icon.png
Type=Application
Terminal=false
StartupNotify=true
Encoding=UTF-8
Categories=Settings;System;

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.run-UDSActorConfig">
<description>Run UDS Actor Configuration Program</description>
<message>Authentication is required to run UDS Actor Configuration</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/UDSActorConfig</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
</policyconfig>

3
actor/linux/readme.txt Normal file
View File

@@ -0,0 +1,3 @@
UDSActor is the client actor needed to get machines managed by UDS Broker.
Please, visit http://www.udsenterprise.com for more information

View File

@@ -0,0 +1,6 @@
#!/bin/sh
FOLDER=/usr/share/UDSActor
cd $FOLDER
exec python3 actor_config.py $@

View File

@@ -0,0 +1,3 @@
#!/bin/sh
# pkexec env DISPLAY=$DISPLAY QT_X11_NO_MITSHM=1 "/usr/sbin/UDSActorConfig" "$@"
pkexec "/usr/sbin/UDSActorConfig" "$@"

View File

@@ -0,0 +1,6 @@
#!/bin/sh
FOLDER=/usr/share/UDSActor
cd $FOLDER
exec python3 actor_config_unmanaged.py $@

View File

@@ -0,0 +1,6 @@
#!/bin/sh
FOLDER=/usr/share/UDSActor
cd $FOLDER
exec python3 actor_client.py $@

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /usr/bin/UDSActorTool

View File

@@ -0,0 +1,13 @@
#!/bin/sh
env > /tmp/env.txt
if [ "$PAM_TYPE" = "open_session" ]; then
nohup /usr/bin/udsactor login $PAM_USER &
# Wait in backgroud to TTY to close (close_session is not being invoked right now)
nohup /usr/bin/uds-wait-session &
elif [ "$PAM_TYPE" = "close_session" ]; then
nohup /usr/bin/udsactor logout $PAM_USER &
fi
return 0

View File

@@ -0,0 +1,12 @@
#!/bin/sh
while :
do
sleep 5 # Wait 5 seconds between checks
found=`ps -f -u$PAM_USER | grep -v grep | grep -v uds-wait-session | grep "$PAM_TTY" | wc -l`
if [ "$found" = "0" ]; then
/usr/bin/udsactor logout $PAM_USER
exit 0
fi
done

6
actor/linux/scripts/udsactor Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
FOLDER=/usr/share/UDSActor
cd $FOLDER
exec python3 actor_service.py $@

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /usr/bin/udsactor login $2 &

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /usr/bin/udsactor logout $2 &

5
actor/linux/scripts/udsvapp Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
/usr/bin/udsactor login "$USER"
$@
/usr/bin/udsactor logout "$USER"

View File

@@ -0,0 +1,70 @@
%define _topdir %(echo $PWD)/rpm
%define name udsactor
%define version 0.0.0
%define release 1
%define buildroot %{_topdir}/%{name}-%{version}-%{release}-root
BuildRoot: %{buildroot}
Name: %{name}
Version: %{version}
Release: %{release}
Summary: Actor for Universal Desktop Services (UDS) Broker
License: BSD3
Group: Admin
Requires: python3-six python3-requests python3-qt5 libXScrnSaver
Vendor: Virtual Cable S.L.U.
URL: http://www.udsenterprise.com
Provides: udsactor
%define _rpmdir ../
%define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
%install
curdir=`pwd`
cd ../..
make DESTDIR=$RPM_BUILD_ROOT DISTRO=rh install-udsactor
cd $curdir
%clean
rm -rf $RPM_BUILD_ROOT
curdir=`pwd`
cd ../..
make DESTDIR=$RPM_BUILD_ROOT DISTRO=rh clean
cd $curdir
%post
systemctl enable udsactor.service > /dev/null 2>&1
%preun
systemctl disable udsactor.service > /dev/null 2>&1
systemctl stop udsactor.service > /dev/null 2>&1
%postun
# $1 == 0 on uninstall, == 1 on upgrade for preun and postun (just a reminder for me... :) )
if [ $1 -eq 0 ]; then
rm -rf /etc/udsactor
rm /var/log/udsactor.log
fi
# And, posibly, the .pyc leaved behind on /usr/share/UDSActor
rm -rf /usr/share/UDSActor > /dev/null 2>&1
%description
This package provides the required components to allow this machine to work on an environment managed by UDS Broker.
%files
%defattr(-,root,root)
/etc/udsactor
/etc/xdg/autostart/UDSActorTool.desktop
/etc/systemd/system/udsactor.service
/usr/bin/UDSActorTool-startup
/usr/bin/udsactor
/usr/bin/udsvapp
/usr/bin/UDSActorTool
/usr/sbin/UDSActorConfig
/usr/sbin/UDSActorConfig-pkexec
/usr/share/UDSActor/*
/usr/share/applications/UDS_Actor_Configuration.desktop
/usr/share/autostart/UDSActorTool.desktop
/usr/share/polkit-1/actions/org.openuds.pkexec.UDSActorConfig.policy

3
actor/src/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
dist
build
*.spec

77
actor/src/actor_client.py Executable file
View File

@@ -0,0 +1,77 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2020 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import sys
import os
import PyQt5 # pylint: disable=unused-import
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QMainWindow
from udsactor.log import logger, INFO
from udsactor.client import UDSClientQApp
from udsactor.platform import operations
if __name__ == "__main__":
logger.setLevel(INFO)
# Ensure idle operations is initialized on start
operations.initIdleDuration(0)
if 'linux' in sys.platform:
os.environ['QT_X11_NO_MITSHM'] = '1'
UDSClientQApp.setQuitOnLastWindowClosed(False)
qApp = UDSClientQApp(sys.argv)
if 'linux' not in sys.platform:
# The "hidden window" is only needed to process events on Windows
# Not needed on Linux
mw = QMainWindow()
mw.showMinimized() # Start minimized, will be hidden (not destroyed) as soon as qApp.init is invoked
qApp.setMainWindow(mw)
qApp.init()
# Crate a timer to a "dummy" function, so python can check signals from time to time by executing the python interpreter
# Note: Signals are only checked on python code execution, so we create a timer to force call back to python
timer = QTimer(qApp)
timer.start(1000)
timer.timeout.connect(lambda *a: None)
qApp.exec_()
# On windows, if no window is created, this point will never be reached.
qApp.end()
logger.debug('Exiting...')

195
actor/src/actor_config.py Executable file
View File

@@ -0,0 +1,195 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2020 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import sys
import os
import logging
import typing
import PyQt5 # pylint: disable=unused-import
from PyQt5.QtWidgets import QApplication, QDialog, QFileDialog, QMessageBox
import udsactor
from ui.setup_dialog_ui import Ui_UdsActorSetupDialog
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from PyQt5.QtWidgets import QLineEdit # pylint: disable=ungrouped-imports
logger = logging.getLogger('actor')
class UDSConfigDialog(QDialog):
_host: str = ''
def __init__(self) -> None:
QDialog.__init__(self, None)
# Get local config config
config: udsactor.types.ActorConfigurationType = udsactor.platform.store.readConfig()
self.ui = Ui_UdsActorSetupDialog()
self.ui.setupUi(self)
self.ui.host.setText(config.host)
self.ui.validateCertificate.setCurrentIndex(1 if config.validateCertificate else 0)
self.ui.postConfigCommand.setText(config.post_command or '')
self.ui.preCommand.setText(config.pre_command or '')
self.ui.runonceCommand.setText(config.runonce_command or '')
self.ui.logLevelComboBox.setCurrentIndex(config.log_level)
if config.host:
self.updateAuthenticators()
self.ui.username.setText('')
self.ui.password.setText('')
self.ui.testButton.setEnabled(bool(config.master_token and config.host))
@property
def api(self) -> udsactor.rest.UDSServerApi:
return udsactor.rest.UDSServerApi(self.ui.host.text(), self.ui.validateCertificate.currentIndex() == 1)
def browse(self, lineEdit: 'QLineEdit', caption: str) -> None:
name = QFileDialog.getOpenFileName(parent=self, caption=caption, directory=os.path.dirname(lineEdit.text()))[0]
if name:
if ' ' in name:
name = '"' + name + '"'
lineEdit.setText(os.path.normpath(name))
def browsePreconnect(self) -> None:
self.browse(self.ui.preCommand, 'Select Preconnect command')
def browseRunOnce(self) -> None:
self.browse(self.ui.runonceCommand, 'Select Runonce command')
def browsePostConfig(self) -> None:
self.browse(self.ui.postConfigCommand, 'Select Postconfig command')
def updateAuthenticators(self) -> None:
if self.ui.host.text() != self._host:
self._host = self.ui.host.text()
self.ui.authenticators.clear()
auth: udsactor.types.AuthenticatorType
auths = list(self.api.enumerateAuthenticators())
if auths:
for auth in auths:
self.ui.authenticators.addItem(auth.auth, userData=auth)
# Last, add "admin" authenticator (for uds root user)
self.ui.authenticators.addItem('Administration', userData=udsactor.types.AuthenticatorType('admin', 'admin', 'admin', 'admin', 1, False))
def textChanged(self) -> None:
enableButtons = bool(self.ui.host.text() and self.ui.username.text() and self.ui.password.text() and self.ui.authenticators.currentText())
self.ui.registerButton.setEnabled(enableButtons)
self.ui.testButton.setEnabled(False) # Only registered information can be checked
def finish(self) -> None:
self.close()
def testUDSServer(self) -> None:
config: udsactor.types.ActorConfigurationType = udsactor.platform.store.readConfig()
if not config.master_token or not config.host:
self.ui.testButton.setEnabled(False)
return
try:
api = udsactor.rest.UDSServerApi(config.host, config.validateCertificate)
if not api.test(config.master_token, udsactor.types.MANAGED):
QMessageBox.information(
self,
'UDS Test',
'Current configured token seems to be invalid for {}. Please, request a new one.'.format(config.host),
QMessageBox.Ok
)
else:
QMessageBox.information(
self,
'UDS Test',
'Configuration for {} seems to be correct.'.format(config.host),
QMessageBox.Ok
)
except Exception:
QMessageBox.information(
self,
'UDS Test',
'Configured host {} seems to be inaccesible.'.format(config.host),
QMessageBox.Ok
)
def registerWithUDS(self) -> None:
# Get network card. Will fail if no network card is available, but don't mind (not contempled)
data: udsactor.types.InterfaceInfoType = next(udsactor.platform.operations.getNetworkInfo())
try:
token = self.api.register(
self.ui.authenticators.currentData().auth,
self.ui.username.text(),
self.ui.password.text(),
udsactor.platform.operations.getComputerName(),
data.ip or '', # IP
data.mac or '', # MAC
self.ui.preCommand.text(),
self.ui.runonceCommand.text(),
self.ui.postConfigCommand.text(),
self.ui.logLevelComboBox.currentIndex() # Loglevel
)
# Store parameters on register for later use, notify user of registration
udsactor.platform.store.writeConfig(
udsactor.types.ActorConfigurationType(
actorType=udsactor.types.MANAGED,
host=self.ui.host.text(),
validateCertificate=self.ui.validateCertificate.currentIndex() == 1,
master_token=token,
pre_command=self.ui.preCommand.text(),
post_command=self.ui.postConfigCommand.text(),
runonce_command=self.ui.runonceCommand.text(),
log_level=self.ui.logLevelComboBox.currentIndex()
)
)
# Enables test button
self.ui.testButton.setEnabled(True)
# Informs the user
QMessageBox.information(self, 'UDS Registration', 'Registration with UDS completed.', QMessageBox.Ok)
except udsactor.rest.RESTError as e:
self.ui.testButton.setEnabled(False)
QMessageBox.critical(self, 'UDS Registration', 'UDS Registration error: {}'.format(e), QMessageBox.Ok)
if __name__ == "__main__":
# If to be run as "sudo" on linux, we will need this to avoid problems
if 'linux' in sys.platform:
os.environ['QT_X11_NO_MITSHM'] = '1'
app = QApplication(sys.argv)
if udsactor.platform.operations.checkPermissions() is False:
QMessageBox.critical(None, 'UDS Actor', 'This Program must be executed as administrator', QMessageBox.Ok)
sys.exit(1)
myapp = UDSConfigDialog()
myapp.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,156 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2020 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import sys
import os
import pickle
import logging
import typing
import PyQt5 # pylint: disable=unused-import
from PyQt5.QtWidgets import QApplication, QDialog, QMessageBox
import udsactor
from ui.setup_dialog_unmanaged_ui import Ui_UdsActorSetupDialog
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from PyQt5.QtWidgets import QLineEdit # pylint: disable=ungrouped-imports
logger = logging.getLogger('actor')
class UDSConfigDialog(QDialog):
_host: str = ''
_config: udsactor.types.ActorConfigurationType
def __init__(self) -> None:
QDialog.__init__(self, None)
# Get local config config
self._config = udsactor.platform.store.readConfig()
self.ui = Ui_UdsActorSetupDialog()
self.ui.setupUi(self)
self.ui.host.setText(self._config.host)
self.ui.validateCertificate.setCurrentIndex(1 if self._config.validateCertificate else 0)
self.ui.logLevelComboBox.setCurrentIndex(self._config.log_level)
self.ui.serviceToken.setText(self._config.master_token)
self.ui.testButton.setEnabled(bool(self._config.master_token and self._config.host))
@property
def api(self) -> udsactor.rest.UDSServerApi:
return udsactor.rest.UDSServerApi(self.ui.host.text(), self.ui.validateCertificate.currentIndex() == 1)
def finish(self) -> None:
self.close()
def configChanged(self, text: str) -> None:
self.ui.testButton.setEnabled(self.ui.host.text() == self._config.host and self.ui.serviceToken.text() == self._config.master_token)
def testUDSServer(self) -> None:
if not self._config.master_token or not self._config.host:
self.ui.testButton.setEnabled(False)
return
try:
api = udsactor.rest.UDSServerApi(self._config.host, self._config.validateCertificate)
if not api.test(self._config.master_token, udsactor.types.UNMANAGED):
QMessageBox.information(
self,
'UDS Test',
'Service token seems to be invalid . Please, check token validity.',
QMessageBox.Ok
)
else:
QMessageBox.information(
self,
'UDS Test',
'Configuration for {} seems to be correct.'.format(self._config.host),
QMessageBox.Ok
)
except Exception:
QMessageBox.information(
self,
'UDS Test',
'Configured host {} seems to be inaccesible.'.format(self._config.host),
QMessageBox.Ok
)
def saveConfig(self) -> None:
# Store parameters on register for later use, notify user of registration
self._config = udsactor.types.ActorConfigurationType(
actorType=udsactor.types.UNMANAGED,
host=self.ui.host.text(),
validateCertificate=self.ui.validateCertificate.currentIndex() == 1,
master_token=self.ui.serviceToken.text(),
log_level=self.ui.logLevelComboBox.currentIndex()
)
udsactor.platform.store.writeConfig(self._config)
# Enables test button
self.ui.testButton.setEnabled(True)
# Informs the user
QMessageBox.information(self, 'UDS Configuration', 'Configuration saved.', QMessageBox.Ok)
if __name__ == "__main__":
# If to be run as "sudo" on linux, we will need this to avoid problems
if 'linux' in sys.platform:
os.environ['QT_X11_NO_MITSHM'] = '1'
app = QApplication(sys.argv)
if udsactor.platform.operations.checkPermissions() is False:
QMessageBox.critical(None, 'UDS Actor', 'This Program must be executed as administrator', QMessageBox.Ok)
sys.exit(1)
if len(sys.argv) > 2:
if sys.argv[1] == 'export':
try:
with open(sys.argv[2], 'wb') as f:
pickle.dump(udsactor.platform.store.readConfig(), f, protocol=3)
except Exception as e:
print('Error exporting configuration file: {}'.format(e))
sys.exit(1)
sys.exit(0)
if sys.argv[1] == 'import':
try:
with open(sys.argv[2], 'rb') as f:
config = pickle.load(f)
udsactor.platform.store.writeConfig(config)
except Exception as e:
print('Error importing configuration file: {}'.format(e))
sys.exit(1)
sys.exit(0)
myapp = UDSConfigDialog()
myapp.show()
sys.exit(app.exec_())

40
actor/src/actor_service.py Executable file
View File

@@ -0,0 +1,40 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2020 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import sys
if sys.platform == 'win32':
from udsactor.windows import runner
else:
from udsactor.linux import runner
if __name__ == "__main__":
runner.run()

View File

@@ -0,0 +1,363 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Adolfo Gómez</author>
<class>UdsActorSetupDialog</class>
<widget class="QDialog" name="UdsActorSetupDialog">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>595</width>
<height>220</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Verdana</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="windowTitle">
<string>UDS Actor Configuration Tool</string>
</property>
<property name="windowIcon">
<iconset resource="uds.qrc">
<normaloff>:/img/img/uds-icon.png</normaloff>:/img/img/uds-icon.png</iconset>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
<property name="modal">
<bool>true</bool>
</property>
<widget class="QPushButton" name="saveButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>180</y>
<width>181</width>
<height>23</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>181</width>
<height>0</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="toolTip">
<string>Click to register Actor with UDS Broker</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Click on this button to register Actor with UDS Broker.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Save Configuration</string>
</property>
</widget>
<widget class="QPushButton" name="closeButton">
<property name="geometry">
<rect>
<x>410</x>
<y>180</y>
<width>171</width>
<height>23</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>171</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Closes UDS Actor Configuration (discard pending changes if any)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Exits the UDS Actor Configuration Tool&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Close</string>
</property>
</widget>
<widget class="QPushButton" name="testButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>210</x>
<y>180</y>
<width>181</width>
<height>23</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>181</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Click to test existing configuration (disabled if no config found)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Click on this button to test the server host and assigned toen.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Test configuration</string>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>571</width>
<height>161</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="verticalSpacing">
<number>16</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_security">
<property name="text">
<string>SSL Validation</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="validateCertificate">
<property name="toolTip">
<string>Select communication security with broker</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select the security for communications with UDS Broker.&lt;/p&gt;&lt;p&gt;The recommended method of communication is &lt;span style=&quot; font-weight:600;&quot;&gt;Use SSL&lt;/span&gt;, but selection needs to be acording to your broker configuration.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Ignore certificate</string>
</property>
</item>
<item>
<property name="text">
<string>Verify certificate</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_host">
<property name="text">
<string>UDS Server</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="host">
<property name="acceptDrops">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Uds Broker Server Addres. Use IP or FQDN</string>
</property>
<property name="whatsThis">
<string>Enter here the UDS Broker Addres using either its IP address or its FQDN address</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_serviceToken">
<property name="text">
<string>Service Token</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="serviceToken">
<property name="toolTip">
<string>UDS user with administration rights (Will not be stored on template)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Administrator user on UDS Server.&lt;/p&gt;&lt;p&gt;Note: This credential will not be stored on client. Will be used to obtain an unique token for this image.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_loglevel">
<property name="text">
<string>Log Level</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="logLevelComboBox">
<property name="currentIndex">
<number>1</number>
</property>
<property name="frame">
<bool>true</bool>
</property>
<item>
<property name="text">
<string notr="true">DEBUG</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">INFO</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">ERROR</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">FATAL</string>
</property>
</item>
</widget>
</item>
</layout>
<zorder>label_host</zorder>
<zorder>host</zorder>
<zorder>label_serviceToken</zorder>
<zorder>serviceToken</zorder>
<zorder>validateCertificate</zorder>
<zorder>label_security</zorder>
<zorder>label_loglevel</zorder>
<zorder>logLevelComboBox</zorder>
</widget>
</widget>
<resources>
<include location="uds.qrc"/>
</resources>
<connections>
<connection>
<sender>closeButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>finish()</slot>
<hints>
<hint type="sourcelabel">
<x>315</x>
<y>165</y>
</hint>
<hint type="destinationlabel">
<x>231</x>
<y>161</y>
</hint>
</hints>
</connection>
<connection>
<sender>testButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>testUDSServer()</slot>
<hints>
<hint type="sourcelabel">
<x>300</x>
<y>281</y>
</hint>
<hint type="destinationlabel">
<x>294</x>
<y>153</y>
</hint>
</hints>
</connection>
<connection>
<sender>saveButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>saveConfig()</slot>
<hints>
<hint type="sourcelabel">
<x>100</x>
<y>191</y>
</hint>
<hint type="destinationlabel">
<x>297</x>
<y>109</y>
</hint>
</hints>
</connection>
<connection>
<sender>host</sender>
<signal>textChanged(QString)</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>configChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>341</x>
<y>61</y>
</hint>
<hint type="destinationlabel">
<x>297</x>
<y>109</y>
</hint>
</hints>
</connection>
<connection>
<sender>serviceToken</sender>
<signal>textChanged(QString)</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>configChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>341</x>
<y>100</y>
</hint>
<hint type="destinationlabel">
<x>297</x>
<y>109</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>finish()</slot>
<slot>saveConfig()</slot>
<slot>testUDSServer()</slot>
<slot>configChanged()</slot>
</slots>
</ui>

View File

@@ -0,0 +1,660 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Adolfo Gómez</author>
<class>UdsActorSetupDialog</class>
<widget class="QDialog" name="UdsActorSetupDialog">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>590</width>
<height>307</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Verdana</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="windowTitle">
<string>UDS Actor Configuration Tool</string>
</property>
<property name="windowIcon">
<iconset resource="uds.qrc">
<normaloff>:/img/img/uds-icon.png</normaloff>:/img/img/uds-icon.png</iconset>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
<property name="modal">
<bool>true</bool>
</property>
<widget class="QPushButton" name="registerButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>270</y>
<width>181</width>
<height>23</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>181</width>
<height>0</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="toolTip">
<string>Click to register Actor with UDS Broker</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Click on this button to register Actor with UDS Broker.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Register with UDS</string>
</property>
</widget>
<widget class="QPushButton" name="closeButton">
<property name="geometry">
<rect>
<x>410</x>
<y>270</y>
<width>171</width>
<height>23</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>171</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Closes UDS Actor Configuration (discard pending changes if any)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Exits the UDS Actor Configuration Tool&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Close</string>
</property>
</widget>
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>571</width>
<height>241</height>
</rect>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_uds">
<attribute name="title">
<string>UDS Server</string>
</attribute>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>551</width>
<height>191</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="verticalSpacing">
<number>16</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="label_host">
<property name="text">
<string>UDS Server</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="host">
<property name="acceptDrops">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Uds Broker Server Addres. Use IP or FQDN</string>
</property>
<property name="whatsThis">
<string>Enter here the UDS Broker Addres using either its IP address or its FQDN address</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_auth">
<property name="text">
<string>Authenticator</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="authenticators">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select the UDS Broker authenticator for credentials validation&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_username">
<property name="text">
<string>Username</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="username">
<property name="toolTip">
<string>UDS user with administration rights (Will not be stored on template)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Administrator user on UDS Server.&lt;/p&gt;&lt;p&gt;Note: This credential will not be stored on client. Will be used to obtain an unique token for this image.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_password">
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="password">
<property name="toolTip">
<string>Password for user (Will not be stored on template)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Administrator password for the user on UDS Server.&lt;/p&gt;&lt;p&gt;Note: This credential will not be stored on client. Will be used to obtain an unique key for this image.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="validateCertificate">
<property name="toolTip">
<string>Select communication security with broker</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select the security for communications with UDS Broker.&lt;/p&gt;&lt;p&gt;The recommended method of communication is &lt;span style=&quot; font-weight:600;&quot;&gt;Use SSL&lt;/span&gt;, but selection needs to be acording to your broker configuration.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Ignore certificate</string>
</property>
</item>
<item>
<property name="text">
<string>Verify certificate</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_security">
<property name="text">
<string>SSL Validation</string>
</property>
</widget>
</item>
</layout>
<zorder>label_host</zorder>
<zorder>host</zorder>
<zorder>label_auth</zorder>
<zorder>label_username</zorder>
<zorder>username</zorder>
<zorder>label_password</zorder>
<zorder>password</zorder>
<zorder>validateCertificate</zorder>
<zorder>label_security</zorder>
<zorder>authenticators</zorder>
</widget>
</widget>
<widget class="QWidget" name="tab_advanced">
<attribute name="title">
<string>Advanced</string>
</attribute>
<widget class="QWidget" name="layoutWidget_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>551</width>
<height>161</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="verticalSpacing">
<number>16</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_host_2">
<property name="text">
<string>Preconnect</string>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>4</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="preCommand">
<property name="acceptDrops">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Pre connection command. Executed just before the user is connected to machine.</string>
</property>
<property name="whatsThis">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="browsePreconnectButton">
<property name="text">
<string>Browse</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_username_2">
<property name="text">
<string>Runonce</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>4</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="runonceCommand">
<property name="toolTip">
<string>Run once command. Executed on first boot, just before UDS does anything.</string>
</property>
<property name="whatsThis">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="browseRunOnceButton">
<property name="text">
<string>Browse</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_password_2">
<property name="text">
<string>Postconfig</string>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>4</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="postConfigCommand">
<property name="toolTip">
<string>Command to execute after UDS finalizes the VM configuration.</string>
</property>
<property name="whatsThis">
<string/>
</property>
<property name="echoMode">
<enum>QLineEdit::Normal</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="browsePostConfigButton">
<property name="text">
<string>Browse</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_loglevel">
<property name="text">
<string>Log Level</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="logLevelComboBox">
<property name="currentIndex">
<number>1</number>
</property>
<property name="frame">
<bool>true</bool>
</property>
<item>
<property name="text">
<string notr="true">DEBUG</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">INFO</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">ERROR</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">FATAL</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
<widget class="QPushButton" name="testButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>210</x>
<y>270</y>
<width>181</width>
<height>23</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>181</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Click to test existing configuration (disabled if no config found)</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Click on this button to test the server host and assigned toen.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Test configuration</string>
</property>
</widget>
</widget>
<resources>
<include location="uds.qrc"/>
</resources>
<connections>
<connection>
<sender>closeButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>finish()</slot>
<hints>
<hint type="sourcelabel">
<x>315</x>
<y>165</y>
</hint>
<hint type="destinationlabel">
<x>231</x>
<y>161</y>
</hint>
</hints>
</connection>
<connection>
<sender>registerButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>registerWithUDS()</slot>
<hints>
<hint type="sourcelabel">
<x>239</x>
<y>132</y>
</hint>
<hint type="destinationlabel">
<x>285</x>
<y>185</y>
</hint>
</hints>
</connection>
<connection>
<sender>host</sender>
<signal>textChanged(QString)</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>textChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>239</x>
<y>59</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>username</sender>
<signal>textChanged(QString)</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>textChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>239</x>
<y>98</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>password</sender>
<signal>textChanged(QString)</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>textChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>239</x>
<y>137</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>browsePreconnectButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>browsePreconnect()</slot>
<hints>
<hint type="sourcelabel">
<x>430</x>
<y>60</y>
</hint>
<hint type="destinationlabel">
<x>243</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>browsePostConfigButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>browsePostConfig()</slot>
<hints>
<hint type="sourcelabel">
<x>430</x>
<y>142</y>
</hint>
<hint type="destinationlabel">
<x>243</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>browseRunOnceButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>browseRunOnce()</slot>
<hints>
<hint type="sourcelabel">
<x>430</x>
<y>101</y>
</hint>
<hint type="destinationlabel">
<x>243</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>host</sender>
<signal>editingFinished()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>updateAuthenticators()</slot>
<hints>
<hint type="sourcelabel">
<x>343</x>
<y>98</y>
</hint>
<hint type="destinationlabel">
<x>294</x>
<y>153</y>
</hint>
</hints>
</connection>
<connection>
<sender>authenticators</sender>
<signal>currentTextChanged(QString)</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>textChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>343</x>
<y>137</y>
</hint>
<hint type="destinationlabel">
<x>294</x>
<y>153</y>
</hint>
</hints>
</connection>
<connection>
<sender>testButton</sender>
<signal>clicked()</signal>
<receiver>UdsActorSetupDialog</receiver>
<slot>testUDSServer()</slot>
<hints>
<hint type="sourcelabel">
<x>300</x>
<y>281</y>
</hint>
<hint type="destinationlabel">
<x>294</x>
<y>153</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>textChanged()</slot>
<slot>finish()</slot>
<slot>registerWithUDS()</slot>
<slot>browsePreconnect()</slot>
<slot>browseRunOnce()</slot>
<slot>browsePostConfig()</slot>
<slot>updateAuthenticators()</slot>
<slot>testUDSServer()</slot>
</slots>
</ui>

View File

@@ -0,0 +1,5 @@
<RCC>
<qresource prefix="img">
<file>../img/uds-icon.png</file>
</qresource>
</RCC>

16
actor/src/designer/update.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
function process {
# pyuic4 about-dialog.ui -o about_dialog_ui.py -x
# pyuic4 message-dialog.ui -o message_dialog_ui.py
pyuic5 setup-dialog.ui -o ../ui/setup_dialog_ui.py --import-from=ui
pyuic5 setup-dialog-unmanaged.ui -o ../ui/setup_dialog_unmanaged_ui.py --import-from=ui
}
pyrcc5 uds.qrc -o ../ui/uds_rc.py
# process current directory ui's
process

BIN
actor/src/img/uds-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
actor/src/img/uds.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
from . import types
from . import rest
from . import platform
__title__ = 'udsactor'
__author__ = 'Adolfo Gómez <dkmaster@dkmon.com>'
__license__ = "BSD 3-clause"
__copyright__ = "Copyright 2014-2020 VirtualCable S.L.U."

View File

@@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import tempfile
import os.path
import secrets
import typing
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from . import types
def saveCertificate(certInfo: 'types.CertificateInfoType') -> typing.Tuple[str, str]:
"""
Returns CertificateFile, Password tuple generated from certInfo
"""
certFile = os.path.join(tempfile.gettempdir(), secrets.token_hex(16))
with open(certFile, "w") as f:
f.write(certInfo.private_key+certInfo.server_certificate)
return certFile, certInfo.password

View File

@@ -0,0 +1,245 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import threading
import time
import datetime
import signal
import typing
from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5.QtCore import QByteArray, QBuffer, QIODevice, pyqtSignal
from . import rest
from . import tools
from . import platform
from .log import logger
from .http import client
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from . import types
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QMainWindow
class UDSClientQApp(QApplication):
_app: 'UDSActorClient'
_initialized: bool
_mainWindow: typing.Optional['QMainWindow']
message = pyqtSignal(str, name='message')
def __init__(self, args) -> None:
super().__init__(args)
self._mainWindow = None
self._initialized = False
# This will be invoked on session close
self.commitDataRequest.connect(self.end) # Will be invoked on session close, to gracely close app
# self.aboutToQuit.connect(self.end)
self.message.connect(self.showMessage)
# Execute backgroup thread for actions
self._app = UDSActorClient(self)
def init(self) -> None:
# Notify loging and mark it
logger.debug('Starting APP')
if self._mainWindow:
self._mainWindow.hide()
self._app.start()
self._initialized = True
def end(self, sessionManager=None) -> None: # pylint: disable=unused-argument
if not self._initialized:
return
self._initialized = False
logger.debug('Stopping app thread')
self._app.stop()
self._app.join()
def showMessage(self, message: str) -> None:
QMessageBox.information(None, 'Message', message)
def setMainWindow(self, mw: 'QMainWindow'):
self._mainWindow = mw
class UDSActorClient(threading.Thread): # pylint: disable=too-many-instance-attributes
_running: bool
_forceLogoff: bool
_extraLogoff: str
_qApp: UDSClientQApp
_listener: client.HTTPServerThread
_loginInfo: typing.Optional['types.LoginResultInfoType']
_notified: bool
_sessionStartTime: datetime.datetime
api: rest.UDSClientApi
def __init__(self, qApp: QApplication):
super().__init__()
self.api = rest.UDSClientApi() # Self initialized
self._qApp = qApp
self._running = False
self._forceLogoff = False
self._extraLogoff = ''
self._listener = client.HTTPServerThread(self)
self._loginInfo = None
self._notified = False
# Capture stop signals..
logger.debug('Setting signals...')
signal.signal(signal.SIGINT, self.stopSignal)
signal.signal(signal.SIGTERM, self.stopSignal)
def stopSignal(self, signum, frame) -> None: # pylint: disable=unused-argument
logger.info('Stop signal received')
self.stop()
def checkDeadLine(self):
if self._loginInfo is None or not self._loginInfo.dead_line: # No deadline check
return
remainingTime = self._loginInfo.dead_line - (datetime.datetime.now() - self._sessionStartTime).total_seconds()
logger.debug('Remaining time: {}'.format(remainingTime))
if not self._notified and remainingTime < 300: # With five minutes, show a warning message
self._notified = True
self._showMessage('Your session will expire in less that 5 minutes. Please, save your work and disconnect.')
return
if remainingTime <= 0:
logger.debug('Session dead line reached. Logging out')
self._running = False
self._forceLogoff = True
def checkIdle(self) -> None:
if self._loginInfo is None or not self._loginInfo.max_idle: # No idle check
return
idleTime = platform.operations.getIdleDuration()
remainingTime = self._loginInfo.max_idle - idleTime
logger.debug('Idle: %s Remaining: %s', idleTime, remainingTime)
if remainingTime > 120: # Reset show Warning dialog if we have more than 5 minutes left
self._notified = False
return
if not self._notified and remainingTime < 120: # With two minutes, show a warning message
self._notified = True
self._showMessage('You have been idle for too long. The session will end if you don\'t resume operations.')
if remainingTime <= 0:
logger.info('User has been idle for too long, exiting from session')
self._extraLogoff = ' (idle: {} vs {})'.format(int(idleTime), self._loginInfo.max_idle)
self._running = False
self._forceLogoff = True
def run(self) -> None:
logger.debug('UDS Actor thread')
self._listener.start() # async listener for service
self._running = True
self._sessionStartTime = datetime.datetime.now()
time.sleep(0.4) # Wait a bit before sending login
try:
# Notify loging and mark it
self._loginInfo = self.api.login(platform.operations.getCurrentUser(), platform.operations.getSessionType())
if self._loginInfo.max_idle:
platform.operations.initIdleDuration(self._loginInfo.max_idle)
while self._running:
# Check Idle & dead line
self.checkIdle()
self.checkDeadLine()
time.sleep(1.3) # Sleeps between loop iterations
self._loginInfo = None
self.api.logout(platform.operations.getCurrentUser() + self._extraLogoff)
except Exception as e:
logger.error('Error on client loop: %s', e)
self._listener.stop() # async listener for service
# Notify exit to qt
QApplication.quit()
if self._forceLogoff:
time.sleep(1.3) # Wait a bit before forcing logoff
platform.operations.loggoff()
def _showMessage(self, message: str) -> None:
self._qApp.message.emit(message)
def stop(self) -> None:
logger.debug('Stopping client Service')
self._running = False
def logout(self) -> typing.Any:
self._forceLogoff = True
self._running = False
return 'ok'
def message(self, msg: str) -> typing.Any:
threading.Thread(target=self._showMessage, args=(msg,)).start()
return 'ok'
def screenshot(self) -> typing.Any:
'''
On windows, an RDP session with minimized screen will render "black screen"
So only when user is using RDP connection will return an "actual" screenshot
'''
pixmap: 'QPixmap' = self._qApp.primaryScreen().grabWindow(0)
ba = QByteArray()
buffer = QBuffer(ba)
buffer.open(QIODevice.WriteOnly)
pixmap.save(buffer, 'PNG')
buffer.close()
scrBase64 = bytes(ba.toBase64()).decode()
logger.debug('Screenshot length: %s', len(scrBase64))
return scrBase64 # 'result' of JSON will contain base64 of screen
def script(self, script: str) -> typing.Any:
tools.ScriptExecutorThread(script).start()
return 'ok'

View File

@@ -0,0 +1,7 @@
from .. import types
defaultCertificate = types.CertificateInfoType(
private_key='-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFHTBPBgkqhkiG9w0BBQ0wQjApBgkqhkiG9w0BBQwwHAQIfG2+iMYJBswCAggA\nMAwGCCqGSIb3DQIJBQAwFQYJKwYBBAGXVQECBAhCusU5R8ulZQSCBMgheyZ81Qkq\n+TcbPeBlUGCFllSUOo7xQ/OuwYSmzLx8LpN0hQNv4azF6MYH+I8eMSPd3A547yW3\nJE4GjIBfRvcq2X1UZ2FQfECU9UP0ShPuPrVhIh6ZZklmlRjbIF8hGfSzXAuafQb+\n4wXXsofahi/SPgqK1Gw65nRiMcoeRZchJkx8pBgKVWED6Cbh6aAkeqkVKPnsebiV\n6kE+0C7+hgNUbyRd46R+/5NXzPjg4ItfSak+PLzQ1KeRv4Cu6DdzRKJ4V9/MlNdU\nNNEkSVSEaRn4sv+eByU4uxBMaSmD1tLc/A7OmaAeRpIQvls3Zcf2+V0+anAtjbjd\n6eIb2nceey+dKFm4ewlR4mXuzj1QowRTHceOIkvKIrOODxdy9M5hNBZ7VLum29tY\nRhqtmEH2BZZJ8SpM2SsEZzPxqJFiVZbvpeOKjxlMyn1dFWn1rP8uMnfuMKqBaj5D\nd5clOPlwebYw5UpM6Vvawu4nGqxECTSWcfNlDYO5U/0Fsm9+JIrJ7Buukgv2+rhs\nD/6oUK9NB8AW9qnDr7UxbC/ujhkKQG3woaZlPbiMs5WQaS+DrTg4N49wPzS0h+ME\nF8ZzuPnd6+sMGQioCIrQAZ08rk54oCijBhFh8/EQhQKGsMFw2swi9t6+FVU5Bvil\nlhmBd3LA5EuQ5y1X0jRL/+GDiUiZw1gOJP8d/XzhUJL9AmamdqJ6/rAU7lUTNWkM\ndzmFonUO2Mh2zgEEudHsTOH8udZ2l64LIHc6fCkDmM8QzghjrEFyci6R8333DSSM\nwbM0MvyTLM7TTqZUD60EgD+Ihyr/wJcBZY7GVn7hTq7ee14zeI+dZFmTMYOnt0mA\ngof19t0naPPZU+zyl/ambNF5mmSkGOAl4IBHNvPt5ztEVbNpwW3DHbmdYW71Ax+z\nCDlr4iKZahv21o1PCesPV2IlaHZFD6aBRt0DxzMqtq9cpWsI1g7aEaAjRbSvqhMY\npUeqFXz/GfR9rjRkufr48//ll0/Q/Ogx7m1TjQ6mAEQrklI7pa2W0u3H0BpSZSis\nR6ST3ulE+wfsp8cau6q2er+BSsDhBjSn9FeCUjHzY56u9ud/kb6/jLEdgxNpj0na\n3WVqCCCL/dAFSWznBmdracZsRMXapXInHCiiOEkXXbXIXvRKiTPJXdN+w2/U2j2B\nwXZuazVSpmM+xAZTAS9dtBUQJo+5px9b6P09uagvTA32ezbpPXf+hSfmTdUwbmAY\nrmE9SW85tzX+cD17loygBBRrjOr4uQy/s/9FqLx8bM73jly05rdOmX28ECKwEA05\n8aCFkfqrl9J9doVapaUlywpJVPFtE6W6tCF+ULMfb16vEjT1du1+epEnbGGLRQxg\n3aFLyKlvFaNvR38fiQFUGtBgGOaBN3rhGpbMwjch3oReXv9X/4UCL6sVIiOH2H3c\nVSZdC3O5g6CMVe4zckUe1k9mLDb5524IHDFfptZ6Bw+uzrqIy3GHW8dJF2AK471b\nMUnCojTpdbFHaUs2u/rNKVUyY+vLf8hkyP+znBUoPxSJtty53EWNukxjjsxx0lx3\niZGqN72lXlXuSFZAIxi307+xxE21cbzDsMidyJkbKKGm/F4BOKvX9jWmAyYmBG6A\n1L3yNRouFWsYDwYAX2nZ1is=\n-----END ENCRYPTED PRIVATE KEY-----\n',
server_certificate='-----BEGIN CERTIFICATE-----\nMIIDcTCCAlkCBDfnXU8wDQYJKoZIhvcNAQELBQAwfTELMAkGA1UEBhMCRVMxDzAN\nBgNVBAgMBk1hZHJpZDEPMA0GA1UEBwwGTWFkcmlkMREwDwYDVQQKDAhVRFMgQ2Vy\ndDERMA8GA1UECwwIVURTIENlcnQxEjAQBgNVBAMMCTEyNy4wLjAuMTESMBAGA1Ud\nEQwJMTI3LjAuMC4xMB4XDTIwMDIxNzExNTkzMloXDTMwMDIxNDExNTkzMlowfTEL\nMAkGA1UEBhMCRVMxDzANBgNVBAgMBk1hZHJpZDEPMA0GA1UEBwwGTWFkcmlkMREw\nDwYDVQQKDAhVRFMgQ2VydDERMA8GA1UECwwIVURTIENlcnQxEjAQBgNVBAMMCTEy\nNy4wLjAuMTESMBAGA1UdEQwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEA2e1cW7YtRpNLazR3f/LqLv8OB0rKh8cUPH4wuQhbBTkee8Wu\n5eMSadRCIyRbKj4b8dtVfI9QW0SrmhGuMx1KCh3CsYd9XsWiKbGkiRBHIDOn5pkF\n6PUayDJ8KjnGbfnZjp0AmxXP4r1OO8jUPqzKS9Ubf5PgwcwdFiUKVfVPwGwctwt5\nt9YpSRONw0rTsCjVHvO2dd9h6EopskLCWxpN8l9kNLwLM/6t0IqVKmn5/IYPKKN2\nCX8a7IXpxwoiUs4sBZYhUMBWikB1hKQRSYafp1Xvc5PeTFXTFqGANnqz0NoZ8tqL\n8qjQUN/PCdtzhfcP5RgT2g1qyS2RBCMYH7Zs0wIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQCUt+qlLA1N9VXMwDQAYG4Kt6/UlMHCXAajHQQGtjdyGJ4++m7EIjI96hMU\n3Cx2gp2ggR3JGnuSR+DdBvPl5iGku7J8KV0JiJg30gTY8JuUIy/PMLZWloYKrBHV\nlin2GujQ4OsIt3dbr4XtcKW1Wd7L6fBzHlq7Xyxh+gcTzTvTmq67Q9XKlBWsegMf\nv4FKy0lfcSFK3vTzswQtuTontG4TqLiT/4AnMt3D0cTQ6b6KoZwUUX/TDNhau06d\nQ4Ilz8X61ka+4HBkFSR5ahP9noCVhwO329h+6epO141E5Tep3OLc/GCF4oaKOlMR\nfqxf5f2bghU0fxmtEoNJTZkBsN1S\n-----END CERTIFICATE-----\n',
password='Pw7qbatz5u-y-Z5ora2D2ZuBCm95AHnKRcpze53k8tw'
)

View File

@@ -0,0 +1,166 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import threading
import http.server
import secrets
import json
import typing
from ..log import logger
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from ..client import UDSActorClient
class HTTPServerHandler(http.server.BaseHTTPRequestHandler):
protocol_version = 'HTTP/1.0'
server_version = 'UDS Actor Server'
sys_version = ''
_id: typing.ClassVar[str] # Random id for server
_app: typing.ClassVar['UDSActorClient']
def sendJsonResponse(self, result: typing.Optional[typing.Any] = None, error: typing.Optional[str] = None, code: int = 200) -> None:
data = json.dumps({'result': result, 'error': error})
self.send_response(code)
self.send_header('Content-type', 'application/json')
self.send_header('Content-Length', str(len(data)))
self.send_header('Server: ', self.server_version)
self.end_headers()
try:
self.wfile.write(data.encode())
except Exception:
pass # Evict "broken pipe" when sending errors
def do_POST(self) -> None:
# Only allows requests from localhost
if self.client_address[0][:3] != '127':
self.sendJsonResponse(error='Forbidden', code=403)
# Very simple path & params splitter
path = self.path.split('?')[0][1:].split('/')
if len(path) != 2 or path[0] != HTTPServerHandler._id:
self.sendJsonResponse(error='Forbidden', code=403)
try:
length = int(str(self.headers.get('content-length', '0')))
content = self.rfile.read(length)
params: typing.MutableMapping[str, str] = json.loads(content or '{}')
except Exception as e:
logger.error('Got exception executing POST {}: {}'.format(self.path, str(e)))
self.sendJsonResponse(error='Invalid request', code=400)
return
try:
result = getattr(self, 'method_' + path[1])(params) # last part of path is method
except AttributeError as e:
logger.error('Invoked invalid method: %s: %s', path[1], e)
self.sendJsonResponse(error='Invalid request', code=400)
return
except Exception as e:
logger.error('Got exception executing {}: {}'.format('/'.join(path), str(e)))
self.sendJsonResponse(error='Internal error', code=500)
return
self.sendJsonResponse(result)
# Internal methods
def method_ping(self, params: typing.MutableMapping[str, str]) -> typing.Any:
return 'pong'
def method_logout(self, params: typing.MutableMapping[str, str]) -> typing.Any:
return self._app.logout()
def method_message(self, params: typing.MutableMapping[str, str]) -> typing.Any:
return self._app.message(params['message'])
def method_screenshot(self, params: typing.MutableMapping[str, str]) -> typing.Any:
return self._app.screenshot()
def method_script(self, params: typing.MutableMapping[str, str]) -> typing.Any:
return self._app.script(params['script'])
def do_GET(self) -> None:
self.sendJsonResponse(error='Forbidden', code=403)
def log_error(self, format: str, *args): # pylint: disable=redefined-builtin
logger.error(format, *args)
def log_message(self, format: str, *args): # pylint: disable=redefined-builtin
logger.debug(format, *args)
class HTTPServerThread(threading.Thread):
_server: typing.Optional[http.server.HTTPServer]
_app: 'UDSActorClient'
port: int
id: str
def __init__(self, app: 'UDSActorClient'):
super().__init__()
self._server = None
self._app = app
self.port = -1
self.id = secrets.token_urlsafe(16)
@property
def url(self) -> str:
return 'http://127.0.0.1:{}/{}'.format(self.port, self.id)
def stop(self) -> None:
if self._server:
logger.debug('Stopping Http-client Service')
try:
self._app.api.unregister(self.url)
except Exception as e:
logger.error('Error unregistering on actor service: %s', e)
self._server.shutdown()
self._server = None
def run(self):
HTTPServerHandler._app = self._app # pylint: disable=protected-access
HTTPServerHandler._id = self.id # pylint: disable=protected-access
self._server = http.server.HTTPServer(('127.0.0.1', 0), HTTPServerHandler)
self.port = self._server.socket.getsockname()[1]
# Register using app api
logger.debug('Registered %s', self.url)
try:
self._app.api.register(self.url)
except Exception as e:
logger.error('Error registering on actor service: %s', e)
self._server.serve_forever()

View File

@@ -0,0 +1,98 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import json
import typing
import requests
from ..log import logger
# For avoid proxy on localhost connections
NO_PROXY = {
'http': None,
'https': None,
}
class UDSActorClientPool:
_clientUrl: typing.List[str]
def __init__(self) -> None:
self._clientUrl = []
def _post(self, method: str, data: typing.MutableMapping[str, str], timeout=2) -> typing.List[requests.Response]:
removables: typing.List[str] = []
result: typing.List[typing.Any] = []
for clientUrl in self._clientUrl:
try:
result.append(requests.post(clientUrl + '/' + method, data=json.dumps(data), verify=False, timeout=timeout, proxies=NO_PROXY))
except Exception as e:
# If cannot request to a clientUrl, remove it from list
logger.info('Could not connect with client %s: %s. Removed from registry.', e, clientUrl)
removables.append(clientUrl)
# Remove failed connections
for clientUrl in removables:
self.unregister(clientUrl)
return result
def register(self, clientUrl: str) -> None:
# Remove first if exists, to avoid duplicates
self.unregister(clientUrl)
# And add it again
self._clientUrl.append(clientUrl)
def unregister(self, clientUrl: str) -> None:
self._clientUrl = list((i for i in self._clientUrl if i != clientUrl))
def executeScript(self, script: str) -> None:
self._post('script', {'script': script}, timeout=30)
def logout(self) -> None:
self._post('logout', {})
def message(self, message: str) -> None:
self._post('message', {'message': message})
def ping(self) -> bool:
if not self._clientUrl:
return True # No clients, ping ok
self._post('ping', {}, timeout=1)
return bool(self._clientUrl) # There was clients, but they are now lost!!!
def screenshot(self) -> typing.Optional[str]: # Screenshot are returned as base64
for r in self._post('screenshot', {}, timeout=3):
try:
return r.json()['result']
except Exception:
pass
return None

View File

@@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import typing
if typing.TYPE_CHECKING:
from ..service import CommonService
class Handler:
_service: 'CommonService'
_method: str
_params: typing.MutableMapping[str, str]
def __init__(self, service: 'CommonService', method: str, params: typing.MutableMapping[str, str]):
self._service = service
self._method = method
self._params = params

View File

@@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import typing
from . import handler
if typing.TYPE_CHECKING:
from ..service import CommonService
class LocalProvider(handler.Handler):
def post_login(self) -> typing.Any:
result = self._service.login(self._params['username'], self._params['session_type'])
return result._asdict()
def post_logout(self) -> typing.Any:
self._service.logout(self._params['username'])
return 'ok'
def post_ping(self) -> typing.Any:
return 'pong'
def post_register(self) -> typing.Any:
self._service._clientsPool.register(self._params['callback_url']) # pylint: disable=protected-access
return 'ok'
def post_unregister(self) -> typing.Any:
self._service._clientsPool.unregister(self._params['callback_url']) # pylint: disable=protected-access

View File

@@ -0,0 +1,87 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import typing
from .. import tools
from . import handler
from ..log import logger
if typing.TYPE_CHECKING:
from ..service import CommonService
class PublicProvider(handler.Handler):
def post_logout(self) -> typing.Any:
logger.debug('Sending LOGOFF to clients')
self._service._clientsPool.logout() # pylint: disable=protected-access
return 'ok'
# Alias
post_logoff = post_logout
def post_message(self) -> typing.Any:
logger.debug('Sending MESSAGE to clients')
if 'message' not in self._params:
raise Exception('Invalid message parameters')
self._service._clientsPool.message(self._params['message']) # pylint: disable=protected-access
return 'ok'
def post_script(self) -> typing.Any:
logger.debug('Received script: {}'.format(self._params))
if 'script' not in self._params:
raise Exception('Invalid script parameters')
if self._params.get('user', False):
logger.debug('Sending SCRIPT to client')
self._service._clientsPool.executeScript(self._params['script']) # pylint: disable=protected-access
else:
# Execute script at server space, that is, here
# as a parallel thread
th = tools.ScriptExecutorThread(self._params['script'])
th.start()
return 'ok'
def post_preConnect(self) -> typing.Any:
logger.debug('Received Pre connection')
if 'user' not in self._params or 'protocol' not in self._params:
raise Exception('Invalid preConnect parameters')
return self._service.preConnect(self._params['user'], self._params['protocol'], self._params.get('ip', 'unknown'), self._params.get('hostname', 'unknown'))
def get_information(self) -> typing.Any:
# Return something useful? :)
return 'UDS Actor Secure Server'
def get_screenshot(self) -> typing.Any:
return self._service._clientsPool.screenshot() # pylint: disable=protected-access
def get_uuid(self) -> typing.Any:
if self._service.isManaged():
return self._service._cfg.own_token # pylint: disable=protected-access
return ''

View File

@@ -0,0 +1,166 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import os
import threading
import http.server
import json
import ssl
import typing
from ..log import logger
from .. import certs
from .. import rest
from .public import PublicProvider
from .local import LocalProvider
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from ..service import CommonService
from .handler import Handler
class HTTPServerHandler(http.server.BaseHTTPRequestHandler):
protocol_version = 'HTTP/1.0'
server_version = 'UDS Actor Server'
sys_version = ''
_service: typing.Optional['CommonService'] = None
def sendJsonResponse(self, result: typing.Optional[typing.Any] = None, error: typing.Optional[str] = None, code: int = 200) -> None:
data = json.dumps({'result': result, 'error': error})
self.send_response(code)
self.send_header('Content-type', 'application/json')
self.send_header('Content-Length', str(len(data)))
self.send_header('Server: ', self.server_version)
self.end_headers()
self.wfile.write(data.encode())
def process(self, method: str, params: typing.MutableMapping[str, str]) -> None:
if not self._service:
self.sendJsonResponse(error='Not initialized', code=500)
return
# Very simple path & params splitter
path = self.path.split('?')[0][1:].split('/')
logger.debug('Path: %s, params: %s', path, params)
handlerType: typing.Optional[typing.Type['Handler']] = None
if len(path) == 3 and path[0] == 'actor' and path[1] == self._service._secret: # pylint: disable=protected-access
# public method
handlerType = PublicProvider
elif len(path) == 2 and path[0] == 'ui':
# private method, only from localhost
if self.client_address[0][:3] == '127':
handlerType = LocalProvider
if not handlerType:
self.sendJsonResponse(error='Forbidden', code=403)
return
try:
result = getattr(handlerType(self._service, method, params), method + '_' + path[-1])() # last part of path is method
except AttributeError:
self.sendJsonResponse(error='Method not found', code=404)
return
except Exception as e:
logger.error('Got exception executing {} {}: {}'.format(method, '/'.join(path), str(e)))
self.sendJsonResponse(error=str(e), code=500)
return
self.sendJsonResponse(result)
def do_GET(self) -> None:
try:
params = {v.split('=')[0]: v.split('=')[1] for v in self.path.split('?')[1].split('&')}
except Exception:
params = {}
self.process('get', params)
def do_POST(self) -> None:
try:
length = int(str(self.headers.get('content-length', '0')))
content = self.rfile.read(length)
params: typing.MutableMapping[str, str] = json.loads(content)
except Exception as e:
logger.error('Got exception executing POST {}: {}'.format(self.path, str(e)))
self.sendJsonResponse(error='Invalid parameters', code=400)
return
self.process('post', params)
def log_error(self, format, *args): # pylint: disable=redefined-builtin
logger.error(format, *args)
def log_message(self, format, *args): # pylint: disable=redefined-builtin
logger.debug(format, *args)
class HTTPServerThread(threading.Thread):
_server: typing.Optional[http.server.HTTPServer]
_service: 'CommonService'
_certFile: typing.Optional[str]
def __init__(self, service: 'CommonService'):
super().__init__()
self._server = None
self._service = service
self._certFile = None
def stop(self) -> None:
logger.debug('Stopping Http-server Service')
if self._server:
self._server.shutdown()
self._server = None
if self._certFile:
try:
os.unlink(self._certFile)
except Exception as e:
logger.error('Error removing certificate file: %s', e)
logger.debug('Http-server stopped')
def run(self):
HTTPServerHandler._service = self._service # pylint: disable=protected-access
self._certFile, password = certs.saveCertificate(self._service._certificate) # pylint: disable=protected-access
self._server = http.server.HTTPServer(('0.0.0.0', rest.LISTEN_PORT), HTTPServerHandler)
# self._server.socket = ssl.wrap_socket(self._server.socket, certfile=self.certFile, server_side=True)
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.options = ssl.CERT_NONE
context.load_cert_chain(certfile=self._certFile, password=password)
self._server.socket = context.wrap_socket(self._server.socket, server_side=True)
self._server.serve_forever()

View File

@@ -0,0 +1 @@
VERSION = '3.0.0'

View File

@@ -1,32 +1,31 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2013 Virtual Cable S.L.
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''

View File

@@ -0,0 +1,173 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import sys
import os
import time
import atexit
from signal import SIGTERM, SIGKILL
from udsactor.log import logger
class Daemon:
"""
A generic daemon class.
Usage: subclass the Daemon class and override the run() method
"""
def __init__(self, pidfile: str, stdin: str = '/dev/null', stdout: str = '/dev/null', stderr: str = '/dev/null'):
self.stdin = stdin
self.stdout = stdout
self.stderr = stderr
self.pidfile = pidfile
def daemonize(self) -> None:
"""
do the UNIX double-fork magic, see Stevens' "Advanced
Programming in the UNIX Environment" for details (ISBN 0201563177)
http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16
"""
try:
pid = os.fork()
if pid > 0:
# exit first parent
sys.exit(0)
except OSError as e:
logger.error("fork #1 error: {}".format(e))
sys.stderr.write("fork #1 failed: {}\n".format(e))
sys.exit(1)
# decouple from parent environment
os.chdir("/")
os.setsid()
os.umask(0)
# do second fork
try:
pid = os.fork()
if pid > 0:
# exit from second parent
sys.exit(0)
except OSError as e:
logger.error("fork #2 error: {}".format(e))
sys.stderr.write("fork #2 failed: {}\n".format(e))
sys.exit(1)
# redirect standard file descriptors
sys.stdout.flush()
sys.stderr.flush()
si = open(self.stdin, 'r')
so = open(self.stdout, 'ab+')
se = open(self.stderr, 'ab+', 0)
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
# write pidfile
atexit.register(self.removePidFile)
pidStr = str(os.getpid())
with open(self.pidfile, 'w+') as f:
f.write("{}\n".format(pidStr))
def removePidFile(self) -> None:
try:
os.remove(self.pidfile)
except Exception:
# Not found/not permissions or whatever, ignore it
pass
def start(self) -> None:
"""
Start the daemon
"""
logger.debug('Starting daemon')
# Check for a pidfile to see if the daemon already runs
if os.path.exists(self.pidfile):
message = "pidfile {} already exist. Daemon already running?\n".format(self.pidfile)
logger.error(message)
sys.stderr.write(message)
sys.exit(1)
# Start the daemon
self.daemonize()
try:
self.run()
except Exception as e:
logger.error('Exception running process: {}'.format(e))
self.removePidFile()
def stop(self) -> None:
"""
Stop the daemon
"""
# Get the pid from the pidfile
try:
pf = open(self.pidfile, 'r')
pid = int(pf.read().strip())
pf.close()
except IOError:
message = "pidfile {} does not exist. Daemon not running?\n".format(self.pidfile)
logger.error(message)
# sys.stderr.write(message)
return # not an error in a restart
# Try killing the daemon process
try:
cnt = 10
while cnt:
cnt -= 1
os.kill(pid, SIGTERM)
time.sleep(1)
if not cnt:
os.kill(pid, SIGKILL)
except OSError as err:
if err.errno == 3: # No such process
if os.path.exists(self.pidfile):
os.remove(self.pidfile)
else:
sys.stderr.write('Error: {}'.format(err))
sys.exit(1)
def restart(self) -> None:
"""
Restart the daemon
"""
self.stop()
self.start()
# Overridables
def run(self) -> None:
"""
override this to provide your own daemon
"""

View File

@@ -0,0 +1,73 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import os
import tempfile
import logging
import typing
class LocalLogger: # pylint: disable=too-few-public-methods
linux = False
windows = True
logger: typing.Optional[logging.Logger]
def __init__(self) -> None:
# tempdir is different for "user application" and "service"
# service wil get c:\windows\temp, while user will get c:\users\XXX\temp
# Try to open logger at /var/log path
# If it fails (access denied normally), will try to open one at user's home folder, and if
# agaim it fails, open it at the tmpPath
for logDir in ('/var/log', os.path.expanduser('~'), tempfile.gettempdir()):
try:
fname = os.path.join(logDir, 'udsactor.log')
logging.basicConfig(
filename=fname,
filemode='a',
format='%(levelname)s %(asctime)s %(message)s',
level=logging.DEBUG
)
self.logger = logging.getLogger('udsactor')
os.chmod(fname, 0o0600)
return
except Exception:
pass
# Logger can't be set
self.logger = None
def log(self, level: int, message: str) -> None:
# Debug messages are logged to a file
# our loglevels are 0 (other), 10000 (debug), ....
# logging levels are 10 (debug), 20 (info)
# OTHER = logging.NOTSET
if self.logger:
self.logger.log(int(level / 1000), message)

View File

@@ -0,0 +1,196 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import configparser
import platform
import socket
import fcntl # Only available on Linux. Expect complains if edited from windows
import os
import subprocess
import struct
import array
import typing
from .. import types
from .renamer import rename
from . import xss
def _getMacAddr(ifname: str) -> typing.Optional[str]:
'''
Returns the mac address of an interface
Mac is returned as unicode utf-8 encoded
'''
ifnameBytes = ifname.encode('utf-8')
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
info = bytearray(fcntl.ioctl(s.fileno(), 0x8927, struct.pack(str('256s'), ifnameBytes[:15])))
return str(''.join(['%02x:' % char for char in info[18:24]])[:-1]).upper()
except Exception:
return None
def _getIpAddr(ifname: str) -> typing.Optional[str]:
'''
Returns the ip address of an interface
Ip is returned as unicode utf-8 encoded
'''
ifnameBytes = ifname.encode('utf-8')
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return str(socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack(str('256s'), ifnameBytes[:15])
)[20:24]))
except Exception:
return None
def _getInterfaces() -> typing.List[str]:
'''
Returns a list of interfaces names coded in utf-8
'''
max_possible = 128 # arbitrary. raise if needed.
space = max_possible * 16
if platform.architecture()[0] == '32bit':
offset, length = 32, 32
elif platform.architecture()[0] == '64bit':
offset, length = 16, 40
else:
raise OSError('Unknown arquitecture {0}'.format(platform.architecture()[0]))
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
names = array.array(str('B'), b'\0' * space)
outbytes = struct.unpack(str('iL'), fcntl.ioctl(
s.fileno(),
0x8912, # SIOCGIFCONF
struct.pack(str('iL'), space, names.buffer_info()[0])
))[0]
namestr = names.tobytes()
# return namestr, outbytes
return [namestr[i:i + offset].split(b'\0', 1)[0].decode('utf-8') for i in range(0, outbytes, length)]
def _getIpAndMac(ifname: str) -> typing.Tuple[typing.Optional[str], typing.Optional[str]]:
ip, mac = _getIpAddr(ifname), _getMacAddr(ifname)
return (ip, mac)
def checkPermissions() -> bool:
return os.getuid() == 0 # getuid only available on linux. Expect "complaioins" if edited from Windows
def getComputerName() -> str:
'''
Returns computer name, with no domain
'''
return socket.gethostname().split('.')[0]
def getNetworkInfo() -> typing.Iterator[types.InterfaceInfoType]:
for ifname in _getInterfaces():
ip, mac = _getIpAndMac(ifname)
if mac != '00:00:00:00:00:00' and mac and ip and ip.startswith('169.254') is False: # Skips local interfaces & interfaces with no dhcp IPs
yield types.InterfaceInfoType(name=ifname, mac=mac, ip=ip)
def getDomainName() -> str:
return ''
def getLinuxOs() -> str:
try:
with open('/etc/os-release', 'r') as f:
data = f.read()
cfg = configparser.ConfigParser()
cfg.read_string('[os]\n' + data)
return cfg['os'].get('id', 'unknown').replace('"', '')
except Exception:
return 'unknown'
def reboot(flags: int = 0):
'''
Simple reboot using os command
'''
subprocess.call(['/sbin/shutdown', 'now', '-r'])
def loggoff() -> None:
'''
Right now restarts the machine...
'''
subprocess.call(['/usr/bin/pkill', '-u', os.environ['USER']])
# subprocess.call(['/sbin/shutdown', 'now', '-r'])
# subprocess.call(['/usr/bin/systemctl', 'reboot', '-i'])
def renameComputer(newName: str) -> bool:
'''
Changes the computer name
Returns True if reboot needed
'''
rename(newName)
return True # Always reboot right now. Not much slower but much more better
def joinDomain(domain: str, ou: str, account: str, password: str, executeInOneStep: bool = False):
pass
def changeUserPassword(user: str, oldPassword: str, newPassword: str) -> None:
'''
Simple password change for user using command line
'''
os.system('echo "{1}\n{1}" | /usr/bin/passwd {0} 2> /dev/null'.format(user, newPassword))
def initIdleDuration(atLeastSeconds: int) -> None:
xss.initIdleDuration(atLeastSeconds)
def getIdleDuration() -> float:
return xss.getIdleDuration()
def getCurrentUser() -> str:
'''
Returns current logged in user
'''
return os.environ['USER']
def getSessionType() -> str:
'''
Known values:
* Unknown -> No SESSIONNAME environment variable
* Console -> Local session
* RDP-Tcp#[0-9]+ -> RDP Session
'''
return 'xrdp' if 'XRDP_SESSION' in os.environ else os.environ.get('XDG_SESSION_TYPE', 'unknown')
def forceTimeSync() -> None:
return

View File

@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
from .common import rename
# Import packages
from . import debian, opensuse, redhat, alt

View File

@@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Alexey Shabalin, shaba at altlinux dot org
'''
import os
from .common import renamers
from ...log import logger
def rename(newName: str) -> bool:
'''
ALT, ALTLinux, BaseALT Renamer
Expects new host name on newName
Host does not needs to be rebooted after renaming
'''
logger.debug('using ALT renamer')
with open('/etc/hostname', 'w') as hostname:
hostname.write(newName)
# Force system new name
os.system('/bin/hostname {}'.format(newName))
os.system('/usr/bin/hostnamectl set-hostname {}'.format(newName))
# add name to "hosts"
with open('/etc/hosts', 'r') as hosts:
lines = hosts.readlines()
with open('/etc/hosts', 'w') as hosts:
hosts.write("127.0.1.1\t{}\n".format(newName))
for l in lines:
if l[:9] != '127.0.1.1': # Skips existing 127.0.1.1. if it already exists
hosts.write(l)
with open('/etc/sysconfig/network', 'r') as net:
lines = net.readlines()
with open('/etc/sysconfig/network', 'w') as net:
net.write('HOSTNAME={}\n'.format(newName))
for l in lines:
if l[:8] != 'HOSTNAME':
net.write(l)
return True
# All names in lower case
renamers['altlinux'] = rename
renamers['alt'] = rename
renamers['basealt'] = rename

View File

@@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import os
import sys
import pkgutil
import typing
from .. import operations
from ...log import logger
renamers: typing.MutableMapping[str, typing.Callable[[str], bool]] = {}
# Renamers now are for IPv4 only addresses
def rename(newName: str) -> bool:
distribution = operations.getLinuxOs().lower().strip()
if distribution in renamers:
logger.info('Renaming to {}'.format(newName))
return renamers[distribution](newName)
# Try Debian renamer, simplest one
logger.info('Renamer for platform "{0}" not found, trying debian renamer'.format(distribution))
return renamers['debian'](newName)

View File

@@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import os
from .common import renamers
from ...log import logger
def rename(newName: str) -> bool:
'''
Debian renamer
Expects new host name on newName
Host does not needs to be rebooted after renaming
'''
with open('/etc/hostname', 'w') as hostname:
hostname.write(newName)
# Force system new name
os.system('/bin/hostname {}'.format(newName))
os.system('/usr/bin/hostnamectl set-hostname {}'.format(newName))
# add name to "hosts"
with open('/etc/hosts', 'r') as hosts:
lines = hosts.readlines()
with open('/etc/hosts', 'w') as hosts:
hosts.write("127.0.1.1\t%s\n" % newName)
for l in lines:
if l[:9] == '127.0.1.1': # Skips existing 127.0.1.1. if it already exists
continue
hosts.write(l)
return True
# All names in lower case
renamers['debian'] = rename
renamers['ubuntu'] = rename

View File

@@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import os
from .common import renamers
from ...log import logger
def rename(newName: str) -> bool:
'''
RH, Centos, Fedora Renamer
Expects new host name on newName
Host does not needs to be rebooted after renaming
'''
logger.debug('using SUSE renamer')
with open('/etc/hostname', 'w') as hostname:
hostname.write(newName)
# Force system new name
os.system('/bin/hostname {}'.format(newName))
os.system('/usr/bin/hostnamectl set-hostname {}'.format(newName))
# add name to "hosts"
with open('/etc/hosts', 'r') as hosts:
lines = hosts.readlines()
with open('/etc/hosts', 'w') as hosts:
hosts.write("127.0.1.1\t{}\n".format(newName))
for l in lines:
if l[:9] != '127.0.1.1': # Skips existing 127.0.1.1. if it already exists
hosts.write(l)
return True
# All names in lower case
renamers['opensuse'] = rename
renamers['suse'] = rename
renamers['opensuse-leap'] = rename

View File

@@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import os
from .common import renamers
from ...log import logger
def rename(newName: str) -> bool:
'''
RH, Centos, Fedora Renamer
Expects new host name on newName
Host does not needs to be rebooted after renaming
'''
logger.debug('using RH renamer')
with open('/etc/hostname', 'w') as hostname:
hostname.write(newName)
# Force system new name
os.system('/bin/hostname {}'.format(newName))
os.system('/usr/bin/hostnamectl set-hostname {}'.format(newName))
# add name to "hosts"
with open('/etc/hosts', 'r') as hosts:
lines = hosts.readlines()
with open('/etc/hosts', 'w') as hosts:
hosts.write("127.0.1.1\t{}\n".format(newName))
for l in lines:
if l[:9] != '127.0.1.1': # Skips existing 127.0.1.1. if it already exists
hosts.write(l)
with open('/etc/sysconfig/network', 'r') as net:
lines = net.readlines()
with open('/etc/sysconfig/network', 'w') as net:
net.write('HOSTNAME={}\n'.format(newName))
for l in lines:
if l[:8] != 'HOSTNAME':
net.write(l)
return True
# All names in lower case
renamers['centos linux'] = rename
renamers['centos'] = rename
renamers['fedora'] = rename

View File

@@ -0,0 +1,76 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2020 Virtual Cable S.L.U.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import sys
from .. import rest
from .. import platform
from ..log import logger
from .service import UDSActorSvc
def usage():
sys.stderr.write('usage: udsactor start|stop|restart|login "username"|logout "username"\n')
sys.exit(2)
def run() -> None:
logger.setLevel(20000)
if len(sys.argv) == 3 and sys.argv[1] in ('login', 'logout'):
logger.debug('Running client udsactor')
try:
client: rest.UDSClientApi = rest.UDSClientApi()
if sys.argv[1] == 'login':
r = client.login(sys.argv[2], platform.operations.getSessionType())
print('{},{},{},{}\n'.format(r.ip, r.hostname, r.max_idle, r.dead_line or ''))
elif sys.argv[1] == 'logout':
client.logout(sys.argv[2])
except Exception as e:
logger.exception()
logger.error('Got exception while processing command: %s', e)
sys.exit(0)
elif len(sys.argv) != 2:
usage()
daemonSvr = UDSActorSvc()
if len(sys.argv) == 2:
# Daemon mode...
if sys.argv[1] == 'start':
daemonSvr.start()
elif sys.argv[1] == 'stop':
daemonSvr.stop()
elif sys.argv[1] == 'restart':
daemonSvr.restart()
elif sys.argv[1] == 'start-foreground':
daemonSvr.run() # Execute in foreground
else:
usage()
sys.exit(0)
else:
usage()

View File

@@ -0,0 +1,106 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import signal
from . import daemon
from ..log import logger
from ..service import CommonService
try:
from prctl import set_proctitle # @UnresolvedImport
except ImportError: # Platform may not include prctl, so in case it's not available, we let the "name" as is
def set_proctitle(_):
pass
class UDSActorSvc(daemon.Daemon, CommonService):
def __init__(self) -> None:
daemon.Daemon.__init__(self, '/run/udsactor.pid')
CommonService.__init__(self)
# Captures signals so we can stop gracefully
signal.signal(signal.SIGINT, self.markForExit)
signal.signal(signal.SIGTERM, self.markForExit)
def markForExit(self, signum, frame) -> None: # pylint: disable=unused-argument
self._isAlive = False
def joinDomain( # pylint: disable=unused-argument, too-many-arguments
self,
name: str,
domain: str,
ou: str,
account: str,
password: str
) -> None:
logger.info('Join domain is not supported on linux platforms right now. Just renaming.')
self.rename(name)
def run(self) -> None:
logger.debug('Running Daemon: {}'.format(self._isAlive))
set_proctitle('UDSActorDaemon')
# Linux daemon will continue running unless something is requested to
# Unmanaged services does not initializes "on start", but rather when user logs in (because userservice does not exists "as such" before that)
if self.isManaged():
if not self.initialize():
self.finish()
return # Stop daemon if initializes told to do so
# logger.debug('Initialized, setting ready')
# Initialization is done, set machine to ready for UDS, communicate urls, etc...
self.setReady()
else:
if not self.initializeUnmanaged():
self.finish()
return
# Start listening for petitions
self.startHttpServer()
# *********************
# * Main Service loop *
# *********************
# Counter used to check ip changes only once every 10 seconds, for
# example
counter = 0
while self._isAlive:
counter += 1
try:
if counter % 5 == 0:
self.loop()
except Exception as e:
logger.error('Got exception on main loop: %s', e)
# In milliseconds, will break
self.doWait(1000)
self.finish()

View File

@@ -0,0 +1,102 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import os
import configparser
import base64
import pickle
from .. import types
CONFIGFILE = '/etc/udsactor/udsactor.cfg'
def readConfig() -> types.ActorConfigurationType:
try:
cfg = configparser.ConfigParser()
cfg.read(CONFIGFILE)
uds: configparser.SectionProxy = cfg['uds']
# Extract data:
base64Config = uds.get('config', None)
config = pickle.loads(base64.b64decode(base64Config.encode())) if base64Config else None
base64Data = uds.get('data', None)
data = pickle.loads(base64.b64decode(base64Data.encode())) if base64Data else None
return types.ActorConfigurationType(
actorType=uds.get('type', types.MANAGED),
host=uds.get('host', ''),
validateCertificate=uds.getboolean('validate', fallback=False),
master_token=uds.get('master_token', None),
own_token=uds.get('own_token', None),
pre_command=uds.get('pre_command', None),
runonce_command=uds.get('runonce_command', None),
post_command=uds.get('post_command', None),
log_level=int(uds.get('log_level', '2')),
config=config,
data=data
)
except Exception:
return types.ActorConfigurationType('', False)
def writeConfig(config: types.ActorConfigurationType) -> None:
cfg = configparser.ConfigParser()
cfg.add_section('uds')
uds: configparser.SectionProxy = cfg['uds']
uds['host'] = config.host
uds['validate'] = 'yes' if config.validateCertificate else 'no'
def writeIfValue(val, name):
if val:
uds[name] = val
writeIfValue(config.actorType, 'type')
writeIfValue(config.master_token, 'master_token')
writeIfValue(config.own_token, 'own_token')
writeIfValue(config.pre_command, 'pre_command')
writeIfValue(config.post_command, 'post_command')
writeIfValue(config.runonce_command, 'runonce_command')
uds['log_level'] = str(config.log_level)
if config.config: # Special case, encoded & dumped
uds['config'] = base64.b64encode(pickle.dumps(config.config)).decode()
if config.data: # Special case, encoded & dumped
uds['data'] = base64.b64encode(pickle.dumps(config.data)).decode()
# Ensures exists destination folder
dirname = os.path.dirname(CONFIGFILE)
if not os.path.exists(dirname):
os.mkdir(dirname, mode=0o700) # Will create only if route to path already exists, for example, /etc (that must... :-))
with open(CONFIGFILE, 'w') as f:
cfg.write(f)
os.chmod(CONFIGFILE, 0o0600) # Ensure only readable by root
def useOldJoinSystem() -> bool:
return False

View File

@@ -0,0 +1,128 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import ctypes
import ctypes.util
import subprocess
xlib = None
xss = None
display = None
xssInfo = None
initialized = False
class XScreenSaverInfo(ctypes.Structure): # pylint: disable=too-few-public-methods
_fields_ = [('window', ctypes.c_long),
('state', ctypes.c_int),
('kind', ctypes.c_int),
('til_or_since', ctypes.c_ulong),
('idle', ctypes.c_ulong),
('eventMask', ctypes.c_ulong)]
class c_ptr(ctypes.c_void_p):
pass
def _ensureInitialized():
global xlib, xss, xssInfo, display, initialized # pylint: disable=global-statement
if initialized:
return
initialized = True
try:
xlibPath = ctypes.util.find_library('X11')
xssPath = ctypes.util.find_library('Xss')
xlib = xss = None
if not xlibPath or not xssPath:
raise Exception('Library Not found!!')
xlib = ctypes.cdll.LoadLibrary(xlibPath)
xss = ctypes.cdll.LoadLibrary(xssPath)
# Fix result type to XScreenSaverInfo Structure
xss.XScreenSaverQueryExtension.restype = ctypes.c_int
xss.XScreenSaverQueryExtension.argtypes = [
ctypes.c_void_p,
ctypes.POINTER(ctypes.c_int),
ctypes.POINTER(ctypes.c_int)
]
xss.XScreenSaverAllocInfo.restype = ctypes.POINTER(XScreenSaverInfo) # Result in a XScreenSaverInfo structure
xss.XScreenSaverQueryInfo.argtypes = [
ctypes.c_void_p,
ctypes.c_void_p,
ctypes.POINTER(XScreenSaverInfo)
]
xlib.XOpenDisplay.argtypes = [ctypes.c_char_p]
xlib.XOpenDisplay.restype = c_ptr
display = xlib.XOpenDisplay(None)
if not display.value:
raise Exception('Display not found!') # Invalid display, not accesible
xssInfo = xss.XScreenSaverAllocInfo()
# Ensures screen saver extension is available
event_base = ctypes.c_int()
error_base = ctypes.c_int()
available = xss.XScreenSaverQueryExtension(display, ctypes.byref(event_base), ctypes.byref(error_base))
if available != 1:
raise Exception('ScreenSaver not available')
except Exception: # Libraries not accesible, not found or whatever..
xlib = xss = display = xssInfo = None
def initIdleDuration(atLeastSeconds: int) -> None:
_ensureInitialized()
if atLeastSeconds:
subprocess.call(['/usr/bin/xset', 's', '{}'.format(atLeastSeconds + 30)])
# And now reset it
subprocess.call(['/usr/bin/xset', 's', 'reset'])
def getIdleDuration() -> float:
'''
Returns idle duration, in seconds
'''
if not initialized or not xlib or not xss or not xssInfo:
return 0 # Libraries not available
xss.XScreenSaverQueryInfo(display, xlib.XDefaultRootWindow(display), xssInfo)
# States: 0 = off, 1 = On, 2 = Cycle, 3 = Disabled, ...?
if xssInfo.contents.state == 1: # state = 1 means "active", so idle is not a valid state
return 3600 * 100 * 1000 # If screen saver is active, return a high enough value
return xssInfo.contents.idle / 1000.0

117
actor/src/udsactor/log.py Normal file
View File

@@ -0,0 +1,117 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import traceback
import sys
import typing
if sys.platform == 'win32':
from .windows.log import LocalLogger
else:
from .linux.log import LocalLogger
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from . import rest
# Valid logging levels, from UDS Broker (uds.core.utils.log)
from .loglevel import OTHER, DEBUG, INFO, WARN, ERROR, FATAL
class Logger:
remoteLogger: typing.Optional['rest.UDSServerApi']
own_token: str
logLevel: int
localLogger: LocalLogger
def __init__(self) -> None:
self.logLevel = INFO
self.localLogger = LocalLogger()
self.remoteLogger = None
self.own_token = ''
def setLevel(self, level: typing.Union[str, int]) -> None:
'''
Sets log level filter (minimum level required for a log message to be processed)
:param level: Any message with a level below this will be filtered out
'''
self.logLevel = int(level) # Ensures level is an integer or fails
def setRemoteLogger(self, remoteLogger: 'rest.UDSServerApi', own_token: str) -> None:
self.remoteLogger = remoteLogger
self.own_token = own_token
def enableServiceLogger(self):
if self.localLogger.windows:
self.localLogger.serviceLogger = True
def log(self, level: typing.Union[str, int], message: str, *args) -> None:
level = int(level)
if level < self.logLevel: # Skip not wanted messages
return
msg = message % args
# If remote logger is available, notify message to it (except DEBUG messages OFC)
try:
if self.remoteLogger and level >= DEBUG:
self.remoteLogger.log(self.own_token, level, msg)
except Exception as e:
self.localLogger.log(DEBUG, 'Log to broker: {}'.format(e))
self.localLogger.log(level, msg)
def debug(self, message: str, *args) -> None:
self.log(DEBUG, message, *args)
def warn(self, message: str, *args) -> None:
self.log(WARN, message, *args)
def info(self, message: str, *args) -> None:
self.log(INFO, message, *args)
def error(self, message: str, *args) -> None:
self.log(ERROR, message, *args)
def fatal(self, message: str, *args) -> None:
self.log(FATAL, message, *args)
def exception(self) -> None:
try:
tb = traceback.format_exc()
except Exception:
tb = '(could not get traceback!)'
self.log(DEBUG, tb)
def flush(self) -> None:
pass
logger = Logger()

View File

@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2020 Virtual Cable S.L.U.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
OTHER, DEBUG, INFO, WARN, ERROR, FATAL = (10000 * x for x in range(6))

View File

@@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
import sys
name = sys.platform
if sys.platform == 'win32':
from .windows import operations, store # pylint: disable=unused-import
else:
from .linux import operations, store # pylint: disable=unused-import

382
actor/src/udsactor/rest.py Normal file
View File

@@ -0,0 +1,382 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019-2021 Virtual Cable S.L.U.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L.U. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import warnings
import json
import logging
import typing
import requests
from . import types
from .info import VERSION
# Default public listen port
LISTEN_PORT = 43910
# Default timeout
TIMEOUT = 5 # 5 seconds is more than enought
# Constants
UNKNOWN = 'unknown'
class RESTError(Exception):
ERRCODE = 0
class RESTConnectionError(RESTError):
ERRCODE = -1
# Errors ""raised"" from broker
class RESTInvalidKeyError(RESTError):
ERRCODE = 1
class RESTUnmanagedHostError(RESTError):
ERRCODE = 2
class RESTUserServiceNotFoundError(RESTError):
ERRCODE = 3
class RESTOsManagerError(RESTError):
ERRCODE = 4
# For avoid proxy on localhost connections
NO_PROXY = {
'http': None,
'https': None,
}
#
# Basic UDS Api
#
class UDSApi: # pylint: disable=too-few-public-methods
"""
Base for remote api accesses
"""
_host: str
_validateCert: bool
_url: str
def __init__(self, host: str, validateCert: bool) -> None:
self._host = host
self._validateCert = validateCert
self._url = "https://{}/uds/rest/".format(self._host)
# Disable logging requests messages except for errors, ...
logging.getLogger("requests").setLevel(logging.CRITICAL)
logging.getLogger("urllib3").setLevel(logging.ERROR)
try:
warnings.simplefilter("ignore") # Disables all warnings
except Exception:
pass
@property
def _headers(self) -> typing.MutableMapping[str, str]:
return {
'Content-Type': 'application/json',
'User-Agent': 'UDS Actor v{}'.format(VERSION)
}
def _apiURL(self, method: str) -> str:
raise NotImplementedError
def _doPost(
self,
method: str, # i.e. 'initialize', 'ready', ....
payLoad: typing.MutableMapping[str, typing.Any],
headers: typing.Optional[typing.MutableMapping[str, str]] = None,
disableProxy: bool = False
) -> typing.Any:
headers = headers or self._headers
try:
result = requests.post(
self._apiURL(method),
data=json.dumps(payLoad),
headers=headers,
verify=self._validateCert,
timeout=TIMEOUT,
proxies=NO_PROXY if disableProxy else None # if not proxies wanted, enforce it
)
if result.ok:
j = result.json()
if not j.get('error', None):
return j['result']
except requests.ConnectionError as e:
raise RESTConnectionError(str(e))
except Exception as e:
raise RESTError(str(e))
try:
data = result.json()
except Exception:
data = result.content.decode()
raise RESTError(data)
#
# UDS Broker API access
#
class UDSServerApi(UDSApi):
def _apiURL(self, method: str) -> str:
return self._url + 'actor/v3/' + method
def enumerateAuthenticators(self) -> typing.Iterable[types.AuthenticatorType]:
try:
result = requests.get(self._url + 'auth/auths', headers=self._headers, verify=self._validateCert, timeout=4)
if result.ok:
for v in sorted(result.json(), key=lambda x: x['priority']):
yield types.AuthenticatorType(
authId=v['authId'],
authSmallName=v['authSmallName'],
auth=v['auth'],
type=v['type'],
priority=v['priority'],
isCustom=v['isCustom']
)
except Exception:
pass
def register( #pylint: disable=too-many-arguments, too-many-locals
self,
auth: str,
username: str,
password: str,
hostname: str,
ip: str,
mac: str,
preCommand: str,
runOnceCommand: str,
postCommand: str,
logLevel: int
) -> str:
"""
Raises an exception if could not register, or registers and returns the "authorization token"
"""
data = {
'username': username + '@' + auth,
'hostname': hostname,
'ip': ip,
'mac': mac,
'pre_command': preCommand,
'run_once_command': runOnceCommand,
'post_command': postCommand,
'log_level': logLevel
}
# First, try to login to REST api
try:
# First, try to login
authInfo = {'auth': auth, 'username': username, 'password': password}
headers = self._headers
result = requests.post(self._url + 'auth/login', data=json.dumps(authInfo), headers=headers, verify=self._validateCert)
if not result.ok or result.json()['result'] == 'error':
raise Exception() # Invalid credentials
headers['X-Auth-Token'] = result.json()['token']
result = requests.post(self._apiURL('register'), data=json.dumps(data), headers=headers, verify=self._validateCert)
if result.ok:
return result.json()['result']
except requests.ConnectionError as e:
raise RESTConnectionError(e)
except RESTError:
raise
except Exception as e:
raise RESTError('Invalid credentials')
raise RESTError(result.content.decode())
def initialize(self, token: str, interfaces: typing.Iterable[types.InterfaceInfoType], actorType: typing.Optional[str]) -> types.InitializationResultType:
# Generate id list from netork cards
payload = {
'type': actorType or types.MANAGED,
'token': token,
'version': VERSION,
'id': [{'mac': i.mac, 'ip': i.ip} for i in interfaces]
}
r = self._doPost('initialize', payload)
os = r['os']
return types.InitializationResultType(
own_token=r['own_token'],
unique_id=r['unique_id'].lower() if r['unique_id'] else None,
os=types.ActorOsConfigurationType(
action=os['action'],
name=os['name'],
username=os.get('username'),
password=os.get('password'),
new_password=os.get('new_password'),
ad=os.get('ad'),
ou=os.get('ou')
) if r['os'] else None
)
def ready(self, own_token: str, secret: str, ip: str, port: int) -> types.CertificateInfoType:
payload = {
'token': own_token,
'secret': secret,
'ip': ip,
'port': port
}
result = self._doPost('ready', payload)
return types.CertificateInfoType(
private_key=result['private_key'],
server_certificate=result['server_certificate'],
password=result['password']
)
def notifyIpChange(self, own_token: str, secret: str, ip: str, port: int) -> types.CertificateInfoType:
payload = {
'token': own_token,
'secret': secret,
'ip': ip,
'port': port
}
result = self._doPost('ipchange', payload)
return types.CertificateInfoType(
private_key=result['private_key'],
server_certificate=result['server_certificate'],
password=result['password']
)
def notifyUnmanagedCallback(self, master_token: str, secret: str, interfaces: typing.Iterable[types.InterfaceInfoType], port: int) -> types.CertificateInfoType:
payload = {
'id': [{'mac': i.mac, 'ip': i.ip} for i in interfaces],
'token': master_token,
'secret': secret,
'port': port
}
result = self._doPost('unmanaged', payload)
return types.CertificateInfoType(
private_key=result['private_key'],
server_certificate=result['server_certificate'],
password=result['password']
)
def login(self, own_token: str, username: str, sessionType: typing.Optional[str] = None) -> types.LoginResultInfoType:
if not own_token:
return types.LoginResultInfoType(
ip='0.0.0.0',
hostname=UNKNOWN,
dead_line=None,
max_idle=None
)
payload = {
'token': own_token,
'username': username,
'session_type': sessionType or UNKNOWN
}
result = self._doPost('login', payload)
return types.LoginResultInfoType(
ip=result['ip'],
hostname=result['hostname'],
dead_line=result['dead_line'],
max_idle=result['max_idle']
)
def logout(self, own_token: str, username: str) -> None:
if not own_token:
return
payload = {
'token': own_token,
'username': username
}
self._doPost('logout', payload)
def log(self, own_token: str, level: int, message: str) -> None:
if not own_token:
return
payLoad = {
'token': own_token,
'level': level,
'message': message
}
self._doPost('log', payLoad) # Ignores result...
def test(self, master_token: str, actorType: typing.Optional[str]) -> bool:
payLoad = {
'type': actorType or types.MANAGED,
'token': master_token,
}
return self._doPost('test', payLoad) == 'ok'
class UDSClientApi(UDSApi):
def __init__(self) -> None:
super().__init__('127.0.0.1:{}'.format(LISTEN_PORT), False)
# Override base url
self._url = "https://{}/ui/".format(self._host)
def _apiURL(self, method: str) -> str:
return self._url + method
def post(
self,
method: str, # i.e. 'initialize', 'ready', ....
payLoad: typing.MutableMapping[str, typing.Any]
) -> typing.Any:
return self._doPost(method=method, payLoad=payLoad, disableProxy=True)
def register(self, callbackUrl: str) -> None:
payLoad = {
'callback_url': callbackUrl
}
self.post('register', payLoad)
def unregister(self, callbackUrl: str) -> None:
payLoad = {
'callback_url': callbackUrl
}
self.post('unregister', payLoad)
def login(self, username: str, sessionType: typing.Optional[str] = None) -> types.LoginResultInfoType:
payLoad = {
'username': username,
'session_type': sessionType or UNKNOWN,
}
result = self.post('login', payLoad)
return types.LoginResultInfoType(
ip=result['ip'],
hostname=result['hostname'],
dead_line=result['dead_line'],
max_idle=result['max_idle']
)
def logout(self, username: str) -> None:
payLoad = {
'username': username
}
self.post('logout', payLoad)
def ping(self) -> bool:
return self.post('ping', {}) == 'pong'

View File

@@ -0,0 +1,458 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import socket
import time
import secrets
import subprocess
import typing
from . import platform
from . import rest
from . import types
from .log import logger, DEBUG, INFO, ERROR, FATAL
from .http import clients_pool, server, cert
# def setup() -> None:
# cfg = platform.store.readConfig()
# if logger.logger.windows:
# # Logs will also go to windows event log for services
# logger.logger.serviceLogger = True
# if cfg.x:
# logger.setLevel(cfg.get('logLevel', 20000))
# else:
# logger.setLevel(20000)
class CommonService: # pylint: disable=too-many-instance-attributes
_isAlive: bool = True
_rebootRequested: bool = False
_loggedIn: bool = False
_initialized: bool = False
_cfg: types.ActorConfigurationType
_api: rest.UDSServerApi
_interfaces: typing.List[types.InterfaceInfoType]
_secret: str
_certificate: types.CertificateInfoType
_clientsPool: clients_pool.UDSActorClientPool
_http: typing.Optional[server.HTTPServerThread]
@staticmethod
def execute(cmdLine: str, section: str) -> bool:
try:
logger.debug('Executing command on {}: {}'.format(section, cmdLine))
res = subprocess.check_call(cmdLine, shell=True)
except Exception as e:
logger.error('Got exception executing: {} - {} - {}'.format(section, cmdLine, e))
return False
logger.debug('Result of executing cmd for {} was {}'.format(section, res))
return True
def __init__(self) -> None:
self._cfg = platform.store.readConfig()
self._interfaces = []
self._api = rest.UDSServerApi(self._cfg.host, self._cfg.validateCertificate)
self._secret = secrets.token_urlsafe(33)
self._clientsPool = clients_pool.UDSActorClientPool()
self._certificate = cert.defaultCertificate # For being used on "unmanaged" hosts only
self._http = None
# Initialzies loglevel and serviceLogger
# 0 = DEBUG, 1 = INFO, 2 = ERROR, 3 = FATAL in combobox
# BUT!!!:
# 0 = OTHER, 10000 = DEBUG, 20000 = WARN, 30000 = INFO, 40000 = ERROR, 50000 = FATAL
# So this comes:
logger.setLevel([DEBUG, INFO, ERROR, FATAL][self._cfg.log_level])
# If windows, enable service logger
logger.enableServiceLogger()
socket.setdefaulttimeout(20)
def startHttpServer(self):
# Starts the http thread
if self._http:
try:
self._http.stop()
except Exception:
pass
self._http = server.HTTPServerThread(self)
self._http.start()
def isManaged(self) -> bool:
return self._cfg.actorType != types.UNMANAGED # Only "unmanaged" hosts are unmanaged, the rest are "managed"
def serviceInterfaceInfo(self, interfaces: typing.Optional[typing.List[types.InterfaceInfoType]] = None) -> typing.Optional[types.InterfaceInfoType]:
"""
returns the inteface with unique_id mac or first interface or None if no interfaces...
"""
interfaces = interfaces or self._interfaces # Emty interfaces is like "no ip change" because cannot be notified
if self._cfg.config and interfaces:
try:
return next(x for x in interfaces if x.mac.lower() == self._cfg.config.unique_id)
except StopIteration:
return interfaces[0]
return None
def reboot(self) -> None:
# Reboot just after renaming
logger.info('Rebooting...')
self._rebootRequested = True
def setReady(self) -> None:
if not self._isAlive or not self.isManaged():
return
# Unamanged actor types does not set ready never (has no osmanagers, no needing for this)
# First, if postconfig is available, execute it and disable it
if self._cfg.post_command:
self.execute(self._cfg.post_command, 'postConfig')
self._cfg = self._cfg._replace(post_command=None)
platform.store.writeConfig(self._cfg)
if self._cfg.own_token and self._interfaces:
srvInterface = self.serviceInterfaceInfo()
if srvInterface:
# Rery while RESTConnectionError (that is, cannot connect)
counter = 60
logged = False
while self._isAlive:
counter -= 1
try:
self._certificate = self._api.ready(self._cfg.own_token, self._secret, srvInterface.ip, rest.LISTEN_PORT)
except rest.RESTConnectionError as e:
if not logged: # Only log connection problems ONCE
logged = True
logger.error('Error connecting with UDS Broker')
self.doWait(5000)
continue
except Exception as e:
logger.error('Unhandled exception while setting ready: %s', e)
if counter > 0:
self.doWait(10000) # A long wait on other error...
continue
platform.operations.reboot() # On too many errors, simply reboot
# Success or any error that is not recoverable (retunerd by UDS). if Error, service will be cleaned in a while.
break
else:
logger.error('Could not locate IP address!!!. (Not registered with UDS)')
# Do not continue if not alive...
if not self._isAlive:
return
# Cleans sensible data
if self._cfg.config:
self._cfg = self._cfg._replace(config=self._cfg.config._replace(os=None), data=None)
platform.store.writeConfig(self._cfg)
logger.info('Service ready')
def configureMachine(self) -> bool:
if not self._isAlive:
return False
if not self.isManaged():
return True
# First, if runonce is present, honor it and remove it from config
# Return values is "True" for keep service (or daemon) running, False if Stop it.
if self._cfg.runonce_command:
runOnce = self._cfg.runonce_command
self._cfg = self._cfg._replace(runonce_command=None)
platform.store.writeConfig(self._cfg)
if self.execute(runOnce, "runOnce"):
# If runonce is present, will not do anythin more
# So we have to ensure that, when runonce command is finished, reboots the machine.
# That is, the COMMAND itself has to restart the machine!
return False # If the command fails, continue with the rest of the operations...
# Retry configuration while not stop service, config in case of error 10 times, reboot vm
counter = 10
while self._isAlive:
counter -= 1
try:
if self._cfg.config and self._cfg.config.os:
osData = self._cfg.config.os
if osData.action == 'rename':
self.rename(osData.name, osData.username, osData.password, osData.new_password)
elif osData.action == 'rename_ad':
self.joinDomain(osData.name, osData.ad or '', osData.ou or '', osData.username or '', osData.password or '')
if self._rebootRequested:
try:
platform.operations.reboot()
except Exception as e:
logger.error('Exception on reboot: {}'.format(e))
return False # Stops service if reboot was requested ofc
break
except Exception as e:
logger.error('Got exception operating machine: {}'.format(e))
if counter > 0:
self.doWait(5000)
else:
platform.operations.reboot()
return False
return True
def initializeUnmanaged(self) -> bool:
# Notify UDS about my callback
self.getInterfaces() # Ensure we have interfaces
if self._cfg.master_token:
try:
self._certificate = self._api.notifyUnmanagedCallback(self._cfg.master_token, self._secret, self._interfaces, rest.LISTEN_PORT)
except Exception as e:
logger.error('Couuld not notify unmanaged callback: %s', e)
return True
def getInterfaces(self) -> None:
if self._interfaces:
return
while self._isAlive:
self._interfaces = list(platform.operations.getNetworkInfo())
if self._interfaces:
break
self.doWait(5000)
def initialize(self) -> bool:
if self._initialized or not self._cfg.host or not self._isAlive: # Not configured or not running
return False
self._initialized = True
# Force time sync, just in case...
if self.isManaged():
platform.operations.forceTimeSync()
# Wait for Broker to be ready
# Ensure we have intefaces...
self.getInterfaces()
while self._isAlive:
try:
# If master token is present, initialize and get configuration data
if self._cfg.master_token:
initResult: types.InitializationResultType = self._api.initialize(self._cfg.master_token, self._interfaces, self._cfg.actorType)
if not initResult.own_token: # Not managed
logger.debug('This host is not managed by UDS Broker (ids: {})'.format(self._interfaces))
return False
# Only removes token for managed machines
master_token = None if self.isManaged() else self._cfg.master_token
self._cfg = self._cfg._replace(
master_token=master_token,
own_token=initResult.own_token,
config=types.ActorDataConfigurationType(
unique_id=initResult.unique_id,
os=initResult.os
)
)
# On first successfull initialization request, master token will dissapear for managed hosts so it will be no more available (not needed anyway)
if self.isManaged():
platform.store.writeConfig(self._cfg)
# Setup logger now
if self._cfg.own_token:
logger.setRemoteLogger(self._api, self._cfg.own_token)
break # Initial configuration done..
except rest.RESTConnectionError as e:
logger.info('Trying to inititialize connection with broker (last error: {})'.format(e))
self.doWait(5000) # Wait a bit and retry
except rest.RESTError as e: # Invalid key?
logger.error('Error validating with broker. (Invalid token?): {}'.format(e))
return False
return self.configureMachine()
def uninitialize(self):
self._initialized = False
self._cfg = self._cfg._replace(own_token=None) # Ensures assigned token is cleared
def finish(self) -> None:
if self._http:
self._http.stop()
# If logged in, notify UDS of logout (daemon stoped = no control = logout)
if self._loggedIn and self._cfg.own_token:
self._loggedIn = False
try:
self._api.logout(self._cfg.own_token, '')
except Exception as e:
logger.error('Error notifying final logout to UDS: %s', e)
self.notifyStop()
def checkIpsChanged(self) -> None:
if not self.isManaged():
return # Unamanaged hosts does not changes ips. (The full initialize-login-logout process is done in a row, so at login the IP is correct)
try:
if not self._cfg.own_token or not self._cfg.config or not self._cfg.config.unique_id:
# Not enouth data do check
return
currentInterfaces = list(platform.operations.getNetworkInfo())
old = self.serviceInterfaceInfo()
new = self.serviceInterfaceInfo(currentInterfaces)
if not new or not old:
raise Exception('No ip currently available for {}'.format(self._cfg.config.unique_id))
if old.ip != new.ip:
self._certificate = self._api.notifyIpChange(self._cfg.own_token, self._secret, new.ip, rest.LISTEN_PORT)
# Now store new addresses & interfaces...
self._interfaces = currentInterfaces
logger.info('Ip changed from {} to {}. Notified to UDS'.format(old.ip, new.ip))
# Stop the running HTTP Thread and start a new one, with new generated cert
self.startHttpServer()
except Exception as e:
# No ip changed, log exception for info
logger.warn('Checking ips failed: {}'.format(e))
def rename(
self,
name: str,
userName: typing.Optional[str] = None,
oldPassword: typing.Optional[str] = None,
newPassword: typing.Optional[str] = None
) -> None:
'''
Invoked when broker requests a rename action
default does nothing
'''
hostName = platform.operations.getComputerName()
if hostName.lower() == name.lower():
logger.info('Computer name is already {}'.format(hostName))
return
# Check for password change request for an user
if userName and newPassword:
logger.info('Setting password for configured user')
try:
platform.operations.changeUserPassword(userName, oldPassword or '', newPassword)
except Exception as e:
raise Exception('Could not change password for user {} (maybe invalid current password is configured at broker): {} '.format(userName, str(e)))
if platform.operations.renameComputer(name):
self.reboot()
def loop(self):
# Main common loop
try:
# Checks if ips has changed
self.checkIpsChanged()
# Now check if every registered client is already there (if logged in OFC)
if self._loggedIn and not self._clientsPool.ping():
self.logout('client_unavailable')
except Exception as e:
logger.error('Exception on main service loop: %s', e)
# ******************************************************
# Methods that can be overriden by linux & windows Actor
# ******************************************************
def joinDomain( # pylint: disable=unused-argument, too-many-arguments
self,
name: str,
domain: str,
ou: str,
account: str,
password: str
) -> None:
'''
Invoked when broker requests a "domain" action
default does nothing
'''
logger.debug('Base join invoked: {} on {}, {}'.format(name, domain, ou))
# Client notifications
def login(self, username: str, sessionType: typing.Optional[str] = None) -> types.LoginResultInfoType:
result = types.LoginResultInfoType(ip='', hostname='', dead_line=None, max_idle=None)
self._loggedIn = True
if not self.isManaged():
self.initialize()
if self._cfg.own_token:
result = self._api.login(self._cfg.own_token, username, sessionType)
return result
def logout(self, username: str) -> None:
self._loggedIn = False
if self._cfg.own_token:
self._api.logout(self._cfg.own_token, username)
self.onLogout(username)
if not self.isManaged():
self.uninitialize()
# ****************************************
# Methods that CAN BE overriden by actors
# ****************************************
def doWait(self, miliseconds: int) -> None:
'''
Invoked to wait a bit
CAN be OVERRIDEN
'''
seconds = miliseconds / 1000.0
# So it can be broken by "stop"
while self._isAlive and seconds > 1:
time.sleep(1)
seconds -= 1
time.sleep(seconds)
def notifyStop(self) -> None:
'''
Overriden to log stop (on windows, notify to service manager)
'''
logger.info('Service stopped')
def preConnect(self, userName: str, protocol: str, ip: str, hostname: str) -> str: # pylint: disable=unused-argument
'''
Invoked when received a PRE Connection request via REST
Base preconnect executes the preconnect command
'''
if self._cfg.pre_command:
self.execute(self._cfg.pre_command + ' {} {} {} {}'.format(userName.replace('"', '%22'), protocol, ip, hostname), 'preConnect')
return 'ok'
def onLogout(self, userName: str) -> None:
logger.debug('On logout invoked for {}'.format(userName))

View File

@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import threading
from udsactor.log import logger
class ScriptExecutorThread(threading.Thread):
def __init__(self, script: str) -> None:
super(ScriptExecutorThread, self).__init__()
self.script = script
def run(self) -> None:
try:
logger.debug('Executing script: {}'.format(self.script))
exec(self.script, globals(), None) # pylint: disable=exec-used
except Exception as e:
logger.error('Error executing script: {}'.format(e))
logger.exception()

View File

@@ -0,0 +1,63 @@
import typing
MANAGED = 'managed'
UNMANAGED = 'unmanaged'
class InterfaceInfoType(typing.NamedTuple):
name: str
mac: str
ip: str
class AuthenticatorType(typing.NamedTuple):
authId: str
authSmallName: str
auth: str
type: str
priority: int
isCustom: bool
class ActorOsConfigurationType(typing.NamedTuple):
action: str
name: str
username: typing.Optional[str] = None
password: typing.Optional[str] = None
new_password: typing.Optional[str] = None
ad: typing.Optional[str] = None
ou: typing.Optional[str] = None
class ActorDataConfigurationType(typing.NamedTuple):
unique_id: typing.Optional[str] = None
os: typing.Optional[ActorOsConfigurationType] = None
class ActorConfigurationType(typing.NamedTuple):
host: str
validateCertificate: bool
actorType: typing.Optional[str] = None
master_token: typing.Optional[str] = None
own_token: typing.Optional[str] = None
pre_command: typing.Optional[str] = None
runonce_command: typing.Optional[str] = None
post_command: typing.Optional[str] = None
log_level: int = 2
config: typing.Optional[ActorDataConfigurationType] = None
data: typing.Optional[typing.Dict[str, typing.Any]] = None
class InitializationResultType(typing.NamedTuple):
own_token: typing.Optional[str] = None
unique_id: typing.Optional[str] = None
os: typing.Optional[ActorOsConfigurationType] = None
class LoginResultInfoType(typing.NamedTuple):
ip: str
hostname: str
dead_line: typing.Optional[int]
max_idle: typing.Optional[int] # Not provided by broker
class CertificateInfoType(typing.NamedTuple):
private_key: str
server_certificate: str
password: str

View File

@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''

View File

@@ -0,0 +1,82 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import logging
import os
import tempfile
import typing
import servicemanager # pylint: disable=import-error
# Valid logging levels, from UDS Broker (uds.core.utils.log).
from .. import loglevel
class LocalLogger: # pylint: disable=too-few-public-methods
linux = False
windows = True
logger: typing.Optional[logging.Logger]
def __init__(self):
# tempdir is different for "user application" and "service"
# service wil get c:\windows\temp, while user will get c:\users\XXX\temp
try:
logging.basicConfig(
filename=os.path.join(tempfile.gettempdir(), 'udsactor.log'),
filemode='a',
format='%(levelname)s %(asctime)s %(message)s',
level=logging.DEBUG
)
except Exception:
logging.basicConfig() # basic init
self.logger = logging.getLogger('udsactor')
self.serviceLogger = False
def log(self, level: int, message: str) -> None:
# Debug messages are logged to a file
# our loglevels are 0 (other), 10000 (debug), ....
# logging levels are 10 (debug), 20 (info)
# OTHER = logging.NOTSET
if self.logger:
self.logger.log(int(level / 1000), message)
if level < loglevel.ERROR or self.serviceLogger is False: # Only information and above will be on event log
return
# In fact, we have restricted level in windows event log to ERROR or FATAL
# but left the code for just a case in the future...
if level < loglevel.WARN: # Info
servicemanager.LogInfoMsg(message)
elif level < loglevel.ERROR: # WARN
servicemanager.LogWarningMsg(message)
else: # Error & Fatal
servicemanager.LogErrorMsg(message)

View File

@@ -0,0 +1,251 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014-2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import os
import subprocess
import ctypes
from ctypes.wintypes import DWORD, LPCWSTR
import typing
import win32com.client
from win32com.shell import shell # pylint: disable=no-name-in-module,import-error
import win32net
import win32security
import win32api
import win32con
from .. import types
from ..log import logger
def checkPermissions() -> bool:
return shell.IsUserAnAdmin()
def getErrorMessage(resultCode: int = 0) -> str:
# sys_fs_enc = sys.getfilesystemencoding() or 'mbcs'
msg = win32api.FormatMessage(resultCode)
return msg
def getComputerName() -> str:
return win32api.GetComputerNameEx(win32con.ComputerNamePhysicalDnsHostname)
def getNetworkInfo() -> typing.Iterator[types.InterfaceInfoType]:
obj = win32com.client.Dispatch("WbemScripting.SWbemLocator")
wmobj = obj.ConnectServer("localhost", "root\\cimv2")
adapters = wmobj.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IpEnabled=True")
try:
for obj in adapters:
for ip in obj.IPAddress:
if ':' in ip: # Is IPV6, skip this
continue
if ip is None or ip == '' or ip.startswith('169.254') or ip.startswith('0.'): # If single link ip, or no ip
continue
yield types.InterfaceInfoType(name=obj.Caption, mac=obj.MACAddress, ip=ip)
except Exception:
return
def getDomainName() -> str:
'''
Will return the domain name if we belong a domain, else None
(if part of a network group, will also return None)
'''
# Status:
# 0 = Unknown
# 1 = Unjoined
# 2 = Workgroup
# 3 = Domain
domain, status = win32net.NetGetJoinInformation()
if status != 3:
domain = None
return domain
def getWindowsVersion() -> typing.Tuple[int, int, int, int, str]:
return win32api.GetVersionEx()
EWX_LOGOFF = 0x00000000
EWX_SHUTDOWN = 0x00000001
EWX_REBOOT = 0x00000002
EWX_FORCE = 0x00000004
EWX_POWEROFF = 0x00000008
EWX_FORCEIFHUNG = 0x00000010
def reboot(flags: int = EWX_FORCEIFHUNG | EWX_REBOOT) -> None:
hproc = win32api.GetCurrentProcess()
htok = win32security.OpenProcessToken(hproc, win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY)
privs = ((win32security.LookupPrivilegeValue(None, win32security.SE_SHUTDOWN_NAME), win32security.SE_PRIVILEGE_ENABLED),)
win32security.AdjustTokenPrivileges(htok, 0, privs)
win32api.ExitWindowsEx(flags, 0)
def loggoff() -> None:
win32api.ExitWindowsEx(EWX_LOGOFF)
def renameComputer(newName: str) -> bool:
'''
Changes the computer name
Returns True if reboot needed
'''
# Needs admin privileges to work
if ctypes.windll.kernel32.SetComputerNameExW(DWORD(win32con.ComputerNamePhysicalDnsHostname), LPCWSTR(newName)) == 0: # @UndefinedVariable
# win32api.FormatMessage -> returns error string
# win32api.GetLastError -> returns error code
# (just put this comment here to remember to log this when logger is available)
error = getErrorMessage()
computerName = win32api.GetComputerNameEx(win32con.ComputerNamePhysicalDnsHostname)
raise Exception('Error renaming computer from {} to {}: {}'.format(computerName, newName, error))
return True
NETSETUP_JOIN_DOMAIN = 0x00000001
NETSETUP_ACCT_CREATE = 0x00000002
NETSETUP_ACCT_DELETE = 0x00000004
NETSETUP_WIN9X_UPGRADE = 0x00000010
NETSETUP_DOMAIN_JOIN_IF_JOINED = 0x00000020
NETSETUP_JOIN_UNSECURE = 0x00000040
NETSETUP_MACHINE_PWD_PASSED = 0x00000080
NETSETUP_JOIN_WITH_NEW_NAME = 0x00000400
NETSETUP_DEFER_SPN_SET = 0x1000000
def joinDomain(domain: str, ou: str, account: str, password: str, executeInOneStep: bool = False) -> None:
'''
Joins machine to a windows domain
:param domain: Domain to join to
:param ou: Ou that will hold machine
:param account: Account used to join domain
:param password: Password of account used to join domain
:param executeInOneStep: If true, means that this machine has been renamed and wants to add NETSETUP_JOIN_WITH_NEW_NAME to request so we can do rename/join in one step.
'''
# If account do not have domain, include it
if '@' not in account and '\\' not in account:
if '.' in domain:
account = account + '@' + domain
else:
account = domain + '\\' + account
# Do log
flags: typing.Any = NETSETUP_ACCT_CREATE | NETSETUP_DOMAIN_JOIN_IF_JOINED | NETSETUP_JOIN_DOMAIN
if executeInOneStep:
flags |= NETSETUP_JOIN_WITH_NEW_NAME
flags = DWORD(flags)
lpDomain = LPCWSTR(domain)
# Must be in format "ou=.., ..., dc=...,"
lpOu = LPCWSTR(ou) if ou is not None and ou != '' else None
lpAccount = LPCWSTR(account)
lpPassword = LPCWSTR(password)
res = ctypes.windll.netapi32.NetJoinDomain(None, lpDomain, lpOu, lpAccount, lpPassword, flags)
# Machine found in another ou, use it and warn this on log
if res == 2224:
flags = DWORD(NETSETUP_DOMAIN_JOIN_IF_JOINED | NETSETUP_JOIN_DOMAIN)
res = ctypes.windll.netapi32.NetJoinDomain(None, lpDomain, None, lpAccount, lpPassword, flags)
if res:
# Log the error
error = getErrorMessage(res)
if res == 1355:
error = "DC Is not reachable"
logger.error('Error joining domain: {}, {}'.format(error, res))
raise Exception('Error joining domain {}, with credentials {}/*****{}: {}, {}'.format(domain, account, ', under OU {}'.format(ou) if ou is not None else '', res, error))
def changeUserPassword(user: str, oldPassword: str, newPassword: str) -> None:
# lpUser = LPCWSTR(user)
# lpOldPassword = LPCWSTR(oldPassword)
# lpNewPassword = LPCWSTR(newPassword)
# res = ctypes.windll.netapi32.NetUserChangePassword(None, lpUser, lpOldPassword, lpNewPassword)
# Try to set new password "a las bravas", ignoring old one. This will not work with domain users
res = win32net.NetUserSetInfo(None, user, 1003, {'password': newPassword})
if res:
# Log the error, and raise exception to parent
error = getErrorMessage(res)
raise Exception('Error changing password for user {}: {} {}'.format(user, res, error))
class LASTINPUTINFO(ctypes.Structure): # pylint: disable=too-few-public-methods
_fields_ = [
('cbSize', ctypes.c_uint),
('dwTime', ctypes.c_uint),
]
def initIdleDuration(atLeastSeconds: int): # pylint: disable=unused-argument
'''
In windows, there is no need to set screensaver
'''
return
def getIdleDuration() -> float:
try:
lastInputInfo = LASTINPUTINFO()
lastInputInfo.cbSize = ctypes.sizeof(lastInputInfo) # pylint: disable=attribute-defined-outside-init
if ctypes.windll.user32.GetLastInputInfo(ctypes.byref(lastInputInfo)) == 0:
return 0
current = ctypes.c_uint(ctypes.windll.kernel32.GetTickCount()).value
if current < lastInputInfo.dwTime:
current += 4294967296 # If current has "rolled" to zero, adjust it so it is greater than lastInputInfo
millis = current - lastInputInfo.dwTime # @UndefinedVariable
return millis / 1000.0
except Exception as e:
logger.error('Getting idle duration: {}'.format(e))
return 0
def getCurrentUser() -> str:
'''
Returns current logged in username
'''
return os.environ['USERNAME']
def getSessionType() -> str:
'''
Known values:
* Unknown -> No SESSIONNAME environment variable
* Console -> Local session
* RDP-Tcp#[0-9]+ -> RDP Session
'''
return os.environ.get('SESSIONNAME', 'unknown')
def writeToPipe(pipeName: str, bytesPayload: bytes, waitForResponse: bool) -> typing.Optional[bytes]:
# (str, bytes, bool) -> Optional[bytes]
try:
with open(pipeName, 'r+b', 0) as f:
f.write(bytesPayload)
# f.seek(0) # As recommended on intenet, but seems to work fin without thos
if waitForResponse:
return f.read()
return b'ok'
except Exception:
return None
def forceTimeSync() -> None:
try:
subprocess.call([r'c:\WINDOWS\System32\w32tm.exe', ' /resync']) # , '/rediscover'])
except Exception as e:
logger.error('Error invoking time sync command: %s', e)

View File

@@ -0,0 +1,73 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import sys
import win32service
import win32serviceutil
import servicemanager
import win32timezone # pylint: disable=unused-import
from .service import UDSActorSvc
def setupRecoverService():
svc_name = UDSActorSvc._svc_name_ # pylint: disable=protected-access
try:
hscm = win32service.OpenSCManager(None, None, win32service.SC_MANAGER_ALL_ACCESS)
try:
hs = win32serviceutil.SmartOpenService(hscm, svc_name, win32service.SERVICE_ALL_ACCESS)
service_failure_actions = {
'ResetPeriod': 864000, # Time in ms after which to reset the failure count to zero.
'RebootMsg': u'', # Not using reboot option
'Command': u'', # Not using run-command option
'Actions': [
(win32service.SC_ACTION_RESTART, 5000), # action, delay in ms
(win32service.SC_ACTION_RESTART, 5000)
]
}
win32service.ChangeServiceConfig2(hs, win32service.SERVICE_CONFIG_FAILURE_ACTIONS, service_failure_actions)
finally:
win32service.CloseServiceHandle(hs)
finally:
win32service.CloseServiceHandle(hscm)
def run() -> None:
if len(sys.argv) == 1:
servicemanager.Initialize()
servicemanager.PrepareToHostSingle(UDSActorSvc)
servicemanager.StartServiceCtrlDispatcher()
elif sys.argv[1] == '--setup-recovery':
setupRecoverService()
else:
win32serviceutil.HandleCommandLine(UDSActorSvc)

View File

@@ -0,0 +1,252 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import struct
import typing
import win32serviceutil
import win32service
import win32security
import win32net
import win32event
import pythoncom
import servicemanager
from . import operations
from . import store
from ..service import CommonService
from ..log import logger
REMOTE_USERS_SID = 'S-1-5-32-555' # Well nown sid for remote desktop users
class UDSActorSvc(win32serviceutil.ServiceFramework, CommonService):
'''
This class represents a Windows Service for managing actor interactions
with UDS Broker and Machine
'''
# ServiceeFramework related
_svc_name_ = "UDSActorNG"
_svc_display_name_ = "UDS Actor Service"
_svc_description_ = "UDS Actor Management Service"
_svc_deps_ = ['EventLog']
_user: typing.Optional[str]
_hWaitStop: typing.Any
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
CommonService.__init__(self)
self._hWaitStop = win32event.CreateEvent(None, 1, 0, None)
self._user = None
def SvcStop(self) -> None:
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
self._isAlive = False
win32event.SetEvent(self._hWaitStop)
SvcShutdown = SvcStop
def notifyStop(self) -> None:
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STOPPED, (self._svc_name_, ''))
super().notifyStop()
def doWait(self, miliseconds: int) -> None:
win32event.WaitForSingleObject(self._hWaitStop, miliseconds)
# On windows, and while on tasks, ensure that our app processes waiting messages on "wait times"
pythoncom.PumpWaitingMessages() # pylint: disable=no-member
def oneStepJoin(self, name: str, domain: str, ou: str, account: str, password: str) -> None: # pylint: disable=too-many-arguments
'''
Ejecutes the join domain in exactly one step
'''
currName = operations.getComputerName()
# If name is desired, simply execute multiStepJoin, because computer
# name will not change
if currName.lower() == name.lower():
self.multiStepJoin(name, domain, ou, account, password)
return
operations.renameComputer(name)
logger.debug('Computer renamed to {} without reboot'.format(name))
operations.joinDomain(domain, ou, account, password, executeInOneStep=True)
logger.debug('Requested join domain {} without errors'.format(domain))
self.reboot()
def multiStepJoin(self, name: str, domain: str, ou: str, account: str, password: str) -> None: # pylint: disable=too-many-arguments
currName = operations.getComputerName()
if currName.lower() == name.lower():
currDomain = operations.getDomainName()
if currDomain:
# logger.debug('Name: "{}" vs "{}", Domain: "{}" vs "{}"'.format(currName.lower(), name.lower(), currDomain.lower(), domain.lower()))
logger.debug('Machine {} is part of domain {}'.format(name, domain))
self.setReady()
else:
operations.joinDomain(domain, ou, account, password, executeInOneStep=False)
self.reboot()
else:
operations.renameComputer(name)
logger.info('Rebooting computer for activating new name {}'.format(name))
self.reboot()
def joinDomain( # pylint: disable=unused-argument, too-many-arguments
self,
name: str,
domain: str,
ou: str,
account: str,
password: str
) -> None:
versionData = operations.getWindowsVersion()
versionInt = versionData[0] * 10 + versionData[1]
logger.debug('Starting joining domain {} with name {} (detected operating version: {})'.format(domain, name, versionData))
# Accepts one step joinDomain, also remember XP is no more supported by
# microsoft, but this also must works with it because will do a "multi
# step" join
if versionInt >= 60 and not store.useOldJoinSystem():
self.oneStepJoin(name, domain, ou, account, password)
else:
logger.info('Using multiple step join because configuration requests to do so')
self.multiStepJoin(name, domain, ou, account, password)
def preConnect(self, userName: str, protocol: str, ip: str, hostname: str) -> str:
logger.debug('Pre connect invoked')
if protocol == 'rdp': # If connection is not using rdp, skip adding user
# Well known SSID for Remote Desktop Users
groupName = win32security.LookupAccountSid(None, win32security.GetBinarySid(REMOTE_USERS_SID))[0]
useraAlreadyInGroup = False
resumeHandle = 0
while True:
users, _, resumeHandle = win32net.NetLocalGroupGetMembers(None, groupName, 1, resumeHandle, 32768)
if userName.lower() in [u['name'].lower() for u in users]:
useraAlreadyInGroup = True
break
if resumeHandle == 0:
break
if not useraAlreadyInGroup:
logger.debug('User not in group, adding it')
self._user = userName
try:
userSSID = win32security.LookupAccountName(None, userName)[0]
win32net.NetLocalGroupAddMembers(None, groupName, 0, [{'sid': userSSID}])
except Exception as e:
logger.error('Exception adding user to Remote Desktop Users: {}'.format(e))
else:
self._user = None
logger.debug('User {} already in group'.format(userName))
return super().preConnect(userName, protocol, ip, hostname)
def ovLogon(self, username: str, password: str) -> str:
"""
Logon on oVirt agent
currently not used.
"""
# Compose packet for ov
usernameBytes = username.encode()
passwordBytes = password.encode()
packet = struct.pack('!I', len(usernameBytes)) + usernameBytes + struct.pack('!I', len(passwordBytes)) + passwordBytes
# Send packet with username/password to ov pipe
operations.writeToPipe("\\\\.\\pipe\\VDSMDPipe", packet, True)
return 'done'
def onLogout(self, userName) -> None:
logger.debug('Windows onLogout invoked: {}, {}'.format(userName, self._user))
try:
p = win32security.GetBinarySid(REMOTE_USERS_SID)
groupName = win32security.LookupAccountSid(None, p)[0]
except Exception:
logger.error('Exception getting Windows Group')
return
if self._user:
try:
win32net.NetLocalGroupDelMembers(None, groupName, [self._user])
except Exception as e:
logger.error('Exception removing user from Remote Desktop Users: {}'.format(e))
def SvcDoRun(self) -> None: # pylint: disable=too-many-statements, too-many-branches
'''
Main service loop
'''
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_, ''))
# call the CoInitialize to allow the registration to run in an other
# thread
logger.debug('Initializing coms')
pythoncom.CoInitialize() # pylint: disable=no-member
# Unmanaged services does not initializes "on start", but rather when user logs in (because userservice does not exists "as such" before that)
if self.isManaged():
if not self.initialize():
logger.info('Service stopped due to init')
self.finish()
win32event.WaitForSingleObject(self._hWaitStop, 5000)
return # Stop daemon if initializes told to do so
# Initialization is done, set machine to ready for UDS, communicate urls, etc...
self.setReady()
else:
if not self.initializeUnmanaged():
self.finish()
return
# Start listening for petitions
self.startHttpServer()
# *********************
# * Main Service loop *
# *********************
# Counter used to check ip changes only once every 10 seconds
counter = 0
while self._isAlive:
counter += 1
try:
pythoncom.PumpWaitingMessages() # pylint: disable=no-member
if counter % 5 == 0: # Once every 5 seconds
self.loop()
except Exception as e:
logger.error('Got exception on main loop: %s', e)
# Continue after a while...
# In milliseconds, will break if event hWaitStop is set
win32event.WaitForSingleObject(self._hWaitStop, 1000)
logger.debug('Exited main loop')
self.finish()

View File

@@ -0,0 +1,96 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# pylint: disable=invalid-name
import pickle
import winreg as wreg
import win32security
from .. import types
PATH = 'Software\\UDSActor'
BASEKEY = wreg.HKEY_LOCAL_MACHINE
def fixRegistryPermissions(handle) -> None:
# Fix permissions so users can't read this key
v = win32security.GetSecurityInfo(handle, win32security.SE_REGISTRY_KEY, win32security.DACL_SECURITY_INFORMATION)
dacl = v.GetSecurityDescriptorDacl()
n = 0
# Remove all normal users access permissions to the registry key
while n < dacl.GetAceCount():
if str(dacl.GetAce(n)[2]) == 'PySID:S-1-5-32-545': # Whell known Users SID
dacl.DeleteAce(n)
else:
n += 1
win32security.SetSecurityInfo(
handle,
win32security.SE_REGISTRY_KEY,
win32security.DACL_SECURITY_INFORMATION | win32security.PROTECTED_DACL_SECURITY_INFORMATION,
None,
None,
dacl,
None
)
def readConfig() -> types.ActorConfigurationType:
try:
key = wreg.OpenKey(BASEKEY, PATH, 0, wreg.KEY_QUERY_VALUE)
data, _ = wreg.QueryValueEx(key, '')
wreg.CloseKey(key)
return pickle.loads(data)
except Exception:
return types.ActorConfigurationType('', False)
def writeConfig(config: types.ActorConfigurationType) -> None:
try:
key = wreg.OpenKey(BASEKEY, PATH, 0, wreg.KEY_ALL_ACCESS)
except Exception:
key = wreg.CreateKeyEx(BASEKEY, PATH, 0, wreg.KEY_ALL_ACCESS)
fixRegistryPermissions(key.handle)
wreg.SetValueEx(key, "", 0, wreg.REG_BINARY, pickle.dumps(config))
wreg.CloseKey(key)
def useOldJoinSystem() -> bool:
try:
key = wreg.OpenKey(BASEKEY, PATH, 0, wreg.KEY_QUERY_VALUE)
try:
data, _ = wreg.QueryValueEx(key, 'join')
except Exception:
data = ''
wreg.CloseKey(key)
except Exception:
data = ''
return data == 'old'

View File

@@ -0,0 +1,248 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'setup-dialog.ui'
#
# Created by: PyQt5 UI code generator 5.13.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_UdsActorSetupDialog(object):
def setupUi(self, UdsActorSetupDialog):
UdsActorSetupDialog.setObjectName("UdsActorSetupDialog")
UdsActorSetupDialog.setWindowModality(QtCore.Qt.WindowModal)
UdsActorSetupDialog.resize(590, 307)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(UdsActorSetupDialog.sizePolicy().hasHeightForWidth())
UdsActorSetupDialog.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Verdana")
font.setPointSize(9)
UdsActorSetupDialog.setFont(font)
UdsActorSetupDialog.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/img/img/uds-icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
UdsActorSetupDialog.setWindowIcon(icon)
UdsActorSetupDialog.setAutoFillBackground(False)
UdsActorSetupDialog.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
UdsActorSetupDialog.setSizeGripEnabled(False)
UdsActorSetupDialog.setModal(True)
self.registerButton = QtWidgets.QPushButton(UdsActorSetupDialog)
self.registerButton.setEnabled(False)
self.registerButton.setGeometry(QtCore.QRect(10, 270, 181, 23))
self.registerButton.setMinimumSize(QtCore.QSize(181, 0))
self.registerButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.registerButton.setObjectName("registerButton")
self.closeButton = QtWidgets.QPushButton(UdsActorSetupDialog)
self.closeButton.setGeometry(QtCore.QRect(410, 270, 171, 23))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.closeButton.sizePolicy().hasHeightForWidth())
self.closeButton.setSizePolicy(sizePolicy)
self.closeButton.setMinimumSize(QtCore.QSize(171, 0))
self.closeButton.setObjectName("closeButton")
self.tabWidget = QtWidgets.QTabWidget(UdsActorSetupDialog)
self.tabWidget.setGeometry(QtCore.QRect(10, 10, 571, 241))
self.tabWidget.setObjectName("tabWidget")
self.tab_uds = QtWidgets.QWidget()
self.tab_uds.setObjectName("tab_uds")
self.layoutWidget = QtWidgets.QWidget(self.tab_uds)
self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 551, 191))
self.layoutWidget.setObjectName("layoutWidget")
self.formLayout = QtWidgets.QFormLayout(self.layoutWidget)
self.formLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setVerticalSpacing(16)
self.formLayout.setObjectName("formLayout")
self.label_host = QtWidgets.QLabel(self.layoutWidget)
self.label_host.setObjectName("label_host")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_host)
self.host = QtWidgets.QLineEdit(self.layoutWidget)
self.host.setAcceptDrops(False)
self.host.setObjectName("host")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.host)
self.label_auth = QtWidgets.QLabel(self.layoutWidget)
self.label_auth.setObjectName("label_auth")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_auth)
self.authenticators = QtWidgets.QComboBox(self.layoutWidget)
self.authenticators.setObjectName("authenticators")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.authenticators)
self.label_username = QtWidgets.QLabel(self.layoutWidget)
self.label_username.setObjectName("label_username")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_username)
self.username = QtWidgets.QLineEdit(self.layoutWidget)
self.username.setObjectName("username")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.username)
self.label_password = QtWidgets.QLabel(self.layoutWidget)
self.label_password.setObjectName("label_password")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_password)
self.password = QtWidgets.QLineEdit(self.layoutWidget)
self.password.setEchoMode(QtWidgets.QLineEdit.Password)
self.password.setObjectName("password")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.password)
self.validateCertificate = QtWidgets.QComboBox(self.layoutWidget)
self.validateCertificate.setObjectName("validateCertificate")
self.validateCertificate.addItem("")
self.validateCertificate.addItem("")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.validateCertificate)
self.label_security = QtWidgets.QLabel(self.layoutWidget)
self.label_security.setObjectName("label_security")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_security)
self.label_host.raise_()
self.host.raise_()
self.label_auth.raise_()
self.label_username.raise_()
self.username.raise_()
self.label_password.raise_()
self.password.raise_()
self.validateCertificate.raise_()
self.label_security.raise_()
self.authenticators.raise_()
self.tabWidget.addTab(self.tab_uds, "")
self.tab_advanced = QtWidgets.QWidget()
self.tab_advanced.setObjectName("tab_advanced")
self.layoutWidget_2 = QtWidgets.QWidget(self.tab_advanced)
self.layoutWidget_2.setGeometry(QtCore.QRect(10, 10, 551, 161))
self.layoutWidget_2.setObjectName("layoutWidget_2")
self.formLayout_2 = QtWidgets.QFormLayout(self.layoutWidget_2)
self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_2.setContentsMargins(0, 0, 0, 0)
self.formLayout_2.setVerticalSpacing(16)
self.formLayout_2.setObjectName("formLayout_2")
self.label_host_2 = QtWidgets.QLabel(self.layoutWidget_2)
self.label_host_2.setObjectName("label_host_2")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_host_2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setContentsMargins(-1, 0, -1, -1)
self.horizontalLayout.setSpacing(4)
self.horizontalLayout.setObjectName("horizontalLayout")
self.preCommand = QtWidgets.QLineEdit(self.layoutWidget_2)
self.preCommand.setAcceptDrops(False)
self.preCommand.setWhatsThis("")
self.preCommand.setObjectName("preCommand")
self.horizontalLayout.addWidget(self.preCommand)
self.browsePreconnectButton = QtWidgets.QPushButton(self.layoutWidget_2)
self.browsePreconnectButton.setAutoDefault(False)
self.browsePreconnectButton.setFlat(False)
self.browsePreconnectButton.setObjectName("browsePreconnectButton")
self.horizontalLayout.addWidget(self.browsePreconnectButton)
self.formLayout_2.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
self.label_username_2 = QtWidgets.QLabel(self.layoutWidget_2)
self.label_username_2.setObjectName("label_username_2")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_username_2)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setContentsMargins(-1, 0, -1, -1)
self.horizontalLayout_2.setSpacing(4)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.runonceCommand = QtWidgets.QLineEdit(self.layoutWidget_2)
self.runonceCommand.setWhatsThis("")
self.runonceCommand.setObjectName("runonceCommand")
self.horizontalLayout_2.addWidget(self.runonceCommand)
self.browseRunOnceButton = QtWidgets.QPushButton(self.layoutWidget_2)
self.browseRunOnceButton.setAutoDefault(False)
self.browseRunOnceButton.setObjectName("browseRunOnceButton")
self.horizontalLayout_2.addWidget(self.browseRunOnceButton)
self.formLayout_2.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
self.label_password_2 = QtWidgets.QLabel(self.layoutWidget_2)
self.label_password_2.setObjectName("label_password_2")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_password_2)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setContentsMargins(-1, 0, -1, -1)
self.horizontalLayout_3.setSpacing(4)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.postConfigCommand = QtWidgets.QLineEdit(self.layoutWidget_2)
self.postConfigCommand.setWhatsThis("")
self.postConfigCommand.setEchoMode(QtWidgets.QLineEdit.Normal)
self.postConfigCommand.setObjectName("postConfigCommand")
self.horizontalLayout_3.addWidget(self.postConfigCommand)
self.browsePostConfigButton = QtWidgets.QPushButton(self.layoutWidget_2)
self.browsePostConfigButton.setAutoDefault(False)
self.browsePostConfigButton.setObjectName("browsePostConfigButton")
self.horizontalLayout_3.addWidget(self.browsePostConfigButton)
self.formLayout_2.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
self.label_loglevel = QtWidgets.QLabel(self.layoutWidget_2)
self.label_loglevel.setObjectName("label_loglevel")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_loglevel)
self.logLevelComboBox = QtWidgets.QComboBox(self.layoutWidget_2)
self.logLevelComboBox.setFrame(True)
self.logLevelComboBox.setObjectName("logLevelComboBox")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(0, "DEBUG")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(1, "INFO")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(2, "ERROR")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(3, "FATAL")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.logLevelComboBox)
self.tabWidget.addTab(self.tab_advanced, "")
self.testButton = QtWidgets.QPushButton(UdsActorSetupDialog)
self.testButton.setEnabled(False)
self.testButton.setGeometry(QtCore.QRect(210, 270, 181, 23))
self.testButton.setMinimumSize(QtCore.QSize(181, 0))
self.testButton.setObjectName("testButton")
self.retranslateUi(UdsActorSetupDialog)
self.tabWidget.setCurrentIndex(0)
self.logLevelComboBox.setCurrentIndex(1)
self.closeButton.clicked.connect(UdsActorSetupDialog.finish)
self.registerButton.clicked.connect(UdsActorSetupDialog.registerWithUDS)
self.host.textChanged['QString'].connect(UdsActorSetupDialog.textChanged)
self.username.textChanged['QString'].connect(UdsActorSetupDialog.textChanged)
self.password.textChanged['QString'].connect(UdsActorSetupDialog.textChanged)
self.browsePreconnectButton.clicked.connect(UdsActorSetupDialog.browsePreconnect)
self.browsePostConfigButton.clicked.connect(UdsActorSetupDialog.browsePostConfig)
self.browseRunOnceButton.clicked.connect(UdsActorSetupDialog.browseRunOnce)
self.host.editingFinished.connect(UdsActorSetupDialog.updateAuthenticators)
self.authenticators.currentTextChanged['QString'].connect(UdsActorSetupDialog.textChanged)
self.testButton.clicked.connect(UdsActorSetupDialog.testUDSServer)
QtCore.QMetaObject.connectSlotsByName(UdsActorSetupDialog)
def retranslateUi(self, UdsActorSetupDialog):
_translate = QtCore.QCoreApplication.translate
UdsActorSetupDialog.setWindowTitle(_translate("UdsActorSetupDialog", "UDS Actor Configuration Tool"))
self.registerButton.setToolTip(_translate("UdsActorSetupDialog", "Click to register Actor with UDS Broker"))
self.registerButton.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Click on this button to register Actor with UDS Broker.</p></body></html>"))
self.registerButton.setText(_translate("UdsActorSetupDialog", "Register with UDS"))
self.closeButton.setToolTip(_translate("UdsActorSetupDialog", "Closes UDS Actor Configuration (discard pending changes if any)"))
self.closeButton.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Exits the UDS Actor Configuration Tool</p></body></html>"))
self.closeButton.setText(_translate("UdsActorSetupDialog", "Close"))
self.label_host.setText(_translate("UdsActorSetupDialog", "UDS Server"))
self.host.setToolTip(_translate("UdsActorSetupDialog", "Uds Broker Server Addres. Use IP or FQDN"))
self.host.setWhatsThis(_translate("UdsActorSetupDialog", "Enter here the UDS Broker Addres using either its IP address or its FQDN address"))
self.label_auth.setText(_translate("UdsActorSetupDialog", "Authenticator"))
self.authenticators.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Select the UDS Broker authenticator for credentials validation</p></body></html>"))
self.label_username.setText(_translate("UdsActorSetupDialog", "Username"))
self.username.setToolTip(_translate("UdsActorSetupDialog", "UDS user with administration rights (Will not be stored on template)"))
self.username.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Administrator user on UDS Server.</p><p>Note: This credential will not be stored on client. Will be used to obtain an unique token for this image.</p></body></html>"))
self.label_password.setText(_translate("UdsActorSetupDialog", "Password"))
self.password.setToolTip(_translate("UdsActorSetupDialog", "Password for user (Will not be stored on template)"))
self.password.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Administrator password for the user on UDS Server.</p><p>Note: This credential will not be stored on client. Will be used to obtain an unique key for this image.</p></body></html>"))
self.validateCertificate.setToolTip(_translate("UdsActorSetupDialog", "Select communication security with broker"))
self.validateCertificate.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Select the security for communications with UDS Broker.</p><p>The recommended method of communication is <span style=\" font-weight:600;\">Use SSL</span>, but selection needs to be acording to your broker configuration.</p></body></html>"))
self.validateCertificate.setItemText(0, _translate("UdsActorSetupDialog", "Ignore certificate"))
self.validateCertificate.setItemText(1, _translate("UdsActorSetupDialog", "Verify certificate"))
self.label_security.setText(_translate("UdsActorSetupDialog", "SSL Validation"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_uds), _translate("UdsActorSetupDialog", "UDS Server"))
self.label_host_2.setText(_translate("UdsActorSetupDialog", "Preconnect"))
self.preCommand.setToolTip(_translate("UdsActorSetupDialog", "Pre connection command. Executed just before the user is connected to machine."))
self.browsePreconnectButton.setText(_translate("UdsActorSetupDialog", "Browse"))
self.label_username_2.setText(_translate("UdsActorSetupDialog", "Runonce"))
self.runonceCommand.setToolTip(_translate("UdsActorSetupDialog", "Run once command. Executed on first boot, just before UDS does anything."))
self.browseRunOnceButton.setText(_translate("UdsActorSetupDialog", "Browse"))
self.label_password_2.setText(_translate("UdsActorSetupDialog", "Postconfig"))
self.postConfigCommand.setToolTip(_translate("UdsActorSetupDialog", "Command to execute after UDS finalizes the VM configuration."))
self.browsePostConfigButton.setText(_translate("UdsActorSetupDialog", "Browse"))
self.label_loglevel.setText(_translate("UdsActorSetupDialog", "Log Level"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_advanced), _translate("UdsActorSetupDialog", "Advanced"))
self.testButton.setToolTip(_translate("UdsActorSetupDialog", "Click to test existing configuration (disabled if no config found)"))
self.testButton.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Click on this button to test the server host and assigned toen.</p></body></html>"))
self.testButton.setText(_translate("UdsActorSetupDialog", "Test configuration"))
from ui import uds_rc

View File

@@ -0,0 +1,142 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'setup-dialog-unmanaged.ui'
#
# Created by: PyQt5 UI code generator 5.13.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_UdsActorSetupDialog(object):
def setupUi(self, UdsActorSetupDialog):
UdsActorSetupDialog.setObjectName("UdsActorSetupDialog")
UdsActorSetupDialog.setWindowModality(QtCore.Qt.WindowModal)
UdsActorSetupDialog.resize(595, 220)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(UdsActorSetupDialog.sizePolicy().hasHeightForWidth())
UdsActorSetupDialog.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Verdana")
font.setPointSize(9)
UdsActorSetupDialog.setFont(font)
UdsActorSetupDialog.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/img/img/uds-icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
UdsActorSetupDialog.setWindowIcon(icon)
UdsActorSetupDialog.setAutoFillBackground(False)
UdsActorSetupDialog.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
UdsActorSetupDialog.setSizeGripEnabled(False)
UdsActorSetupDialog.setModal(True)
self.saveButton = QtWidgets.QPushButton(UdsActorSetupDialog)
self.saveButton.setEnabled(True)
self.saveButton.setGeometry(QtCore.QRect(10, 180, 181, 23))
self.saveButton.setMinimumSize(QtCore.QSize(181, 0))
self.saveButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.saveButton.setObjectName("saveButton")
self.closeButton = QtWidgets.QPushButton(UdsActorSetupDialog)
self.closeButton.setGeometry(QtCore.QRect(410, 180, 171, 23))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.closeButton.sizePolicy().hasHeightForWidth())
self.closeButton.setSizePolicy(sizePolicy)
self.closeButton.setMinimumSize(QtCore.QSize(171, 0))
self.closeButton.setObjectName("closeButton")
self.testButton = QtWidgets.QPushButton(UdsActorSetupDialog)
self.testButton.setEnabled(False)
self.testButton.setGeometry(QtCore.QRect(210, 180, 181, 23))
self.testButton.setMinimumSize(QtCore.QSize(181, 0))
self.testButton.setObjectName("testButton")
self.layoutWidget = QtWidgets.QWidget(UdsActorSetupDialog)
self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 571, 161))
self.layoutWidget.setObjectName("layoutWidget")
self.formLayout = QtWidgets.QFormLayout(self.layoutWidget)
self.formLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setVerticalSpacing(16)
self.formLayout.setObjectName("formLayout")
self.label_security = QtWidgets.QLabel(self.layoutWidget)
self.label_security.setObjectName("label_security")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_security)
self.validateCertificate = QtWidgets.QComboBox(self.layoutWidget)
self.validateCertificate.setObjectName("validateCertificate")
self.validateCertificate.addItem("")
self.validateCertificate.addItem("")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.validateCertificate)
self.label_host = QtWidgets.QLabel(self.layoutWidget)
self.label_host.setObjectName("label_host")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_host)
self.host = QtWidgets.QLineEdit(self.layoutWidget)
self.host.setAcceptDrops(False)
self.host.setObjectName("host")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.host)
self.label_serviceToken = QtWidgets.QLabel(self.layoutWidget)
self.label_serviceToken.setObjectName("label_serviceToken")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_serviceToken)
self.serviceToken = QtWidgets.QLineEdit(self.layoutWidget)
self.serviceToken.setObjectName("serviceToken")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.serviceToken)
self.label_loglevel = QtWidgets.QLabel(self.layoutWidget)
self.label_loglevel.setObjectName("label_loglevel")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_loglevel)
self.logLevelComboBox = QtWidgets.QComboBox(self.layoutWidget)
self.logLevelComboBox.setFrame(True)
self.logLevelComboBox.setObjectName("logLevelComboBox")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(0, "DEBUG")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(1, "INFO")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(2, "ERROR")
self.logLevelComboBox.addItem("")
self.logLevelComboBox.setItemText(3, "FATAL")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.logLevelComboBox)
self.label_host.raise_()
self.host.raise_()
self.label_serviceToken.raise_()
self.serviceToken.raise_()
self.validateCertificate.raise_()
self.label_security.raise_()
self.label_loglevel.raise_()
self.logLevelComboBox.raise_()
self.retranslateUi(UdsActorSetupDialog)
self.logLevelComboBox.setCurrentIndex(1)
self.closeButton.clicked.connect(UdsActorSetupDialog.finish)
self.testButton.clicked.connect(UdsActorSetupDialog.testUDSServer)
self.saveButton.clicked.connect(UdsActorSetupDialog.saveConfig)
self.host.textChanged['QString'].connect(UdsActorSetupDialog.configChanged)
self.serviceToken.textChanged['QString'].connect(UdsActorSetupDialog.configChanged)
QtCore.QMetaObject.connectSlotsByName(UdsActorSetupDialog)
def retranslateUi(self, UdsActorSetupDialog):
_translate = QtCore.QCoreApplication.translate
UdsActorSetupDialog.setWindowTitle(_translate("UdsActorSetupDialog", "UDS Actor Configuration Tool"))
self.saveButton.setToolTip(_translate("UdsActorSetupDialog", "Click to register Actor with UDS Broker"))
self.saveButton.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Click on this button to register Actor with UDS Broker.</p></body></html>"))
self.saveButton.setText(_translate("UdsActorSetupDialog", "Save Configuration"))
self.closeButton.setToolTip(_translate("UdsActorSetupDialog", "Closes UDS Actor Configuration (discard pending changes if any)"))
self.closeButton.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Exits the UDS Actor Configuration Tool</p></body></html>"))
self.closeButton.setText(_translate("UdsActorSetupDialog", "Close"))
self.testButton.setToolTip(_translate("UdsActorSetupDialog", "Click to test existing configuration (disabled if no config found)"))
self.testButton.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Click on this button to test the server host and assigned toen.</p></body></html>"))
self.testButton.setText(_translate("UdsActorSetupDialog", "Test configuration"))
self.label_security.setText(_translate("UdsActorSetupDialog", "SSL Validation"))
self.validateCertificate.setToolTip(_translate("UdsActorSetupDialog", "Select communication security with broker"))
self.validateCertificate.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Select the security for communications with UDS Broker.</p><p>The recommended method of communication is <span style=\" font-weight:600;\">Use SSL</span>, but selection needs to be acording to your broker configuration.</p></body></html>"))
self.validateCertificate.setItemText(0, _translate("UdsActorSetupDialog", "Ignore certificate"))
self.validateCertificate.setItemText(1, _translate("UdsActorSetupDialog", "Verify certificate"))
self.label_host.setText(_translate("UdsActorSetupDialog", "UDS Server"))
self.host.setToolTip(_translate("UdsActorSetupDialog", "Uds Broker Server Addres. Use IP or FQDN"))
self.host.setWhatsThis(_translate("UdsActorSetupDialog", "Enter here the UDS Broker Addres using either its IP address or its FQDN address"))
self.label_serviceToken.setText(_translate("UdsActorSetupDialog", "Service Token"))
self.serviceToken.setToolTip(_translate("UdsActorSetupDialog", "UDS user with administration rights (Will not be stored on template)"))
self.serviceToken.setWhatsThis(_translate("UdsActorSetupDialog", "<html><head/><body><p>Administrator user on UDS Server.</p><p>Note: This credential will not be stored on client. Will be used to obtain an unique token for this image.</p></body></html>"))
self.label_loglevel.setText(_translate("UdsActorSetupDialog", "Log Level"))
from ui import uds_rc

195
actor/src/ui/uds_rc.py Normal file
View File

@@ -0,0 +1,195 @@
# -*- coding: utf-8 -*-
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.13.2)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x08\x7c\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\
\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\
\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe2\x0a\
\x04\x07\x27\x0a\x6d\xd5\xd2\x21\x00\x00\x08\x1b\x49\x44\x41\x54\
\x68\xde\xed\x9a\x6d\x8c\x54\xd5\x19\xc7\x7f\xe7\xbe\xee\x2e\xfb\
\xbe\x3a\x60\x2d\x52\xd6\x62\xac\x52\x23\x68\xc7\x97\xb4\x46\x8c\
\xca\x04\x6c\x2d\xad\x56\x4d\x5d\x5a\x9b\x5a\x8d\xfd\x60\xd2\x12\
\x9b\x94\x56\xb4\x76\xc4\xa6\x68\xda\x68\xb5\x04\x62\x90\xd1\xb8\
\xc1\x12\xab\x06\x98\x6a\x33\x60\x41\x83\x53\x17\x50\x16\x10\xa5\
\xb2\x14\xd4\x65\x16\x96\x65\x67\x77\xe6\xce\x7d\x3b\xfd\xb0\xb3\
\xeb\xec\xee\xec\xb0\xb3\x77\xfa\xa1\x49\xff\xc9\x64\x66\xce\xb9\
\xf7\x9e\xe7\xbf\xcf\xcb\x79\xce\x7f\x16\xfe\xc7\x21\x2a\xfd\xc0\
\x78\x32\xa4\x01\x9a\xa2\xa0\x9d\xdf\xaa\x29\x5f\x68\xd2\x94\x23\
\xdd\x8e\x78\x27\xe9\xf0\xc1\x87\x0e\xdd\x3d\x3e\x5d\x47\x1c\x5f\
\x0c\xad\xec\x00\xd9\x44\xbb\x25\xff\xeb\x04\xe2\xc9\x90\x02\xa8\
\x80\x96\x7f\x3f\x07\x58\x04\x2c\x00\xae\x04\xa6\x0f\x5f\xeb\x79\
\xe0\x38\x92\x5d\x7b\x6c\xf6\x76\x3a\x9c\xea\xf3\xc9\x1b\x3c\xf2\
\x5e\x04\x27\x80\x38\x10\x03\x76\x00\x1e\x60\x9f\x89\x9c\x98\x84\
\xe1\x17\x00\xeb\x81\x56\xa0\x2e\x4f\x40\x2b\x76\xad\x94\xb0\x7a\
\x6d\x9a\xf4\x80\x44\x4a\x80\xe1\xb5\x25\x82\xcf\xed\x90\x88\x31\
\x4b\x17\x35\xc3\x06\xfa\x81\x87\x13\xed\xd6\x53\x65\x11\x88\x27\
\x43\x73\x81\x35\xc0\x45\x40\xfd\x64\x3c\x34\x38\x28\xf9\xd3\xea\
\x34\x00\x86\xb4\x38\x6a\xdc\x43\xbf\x3a\x1f\x57\x34\xe2\x63\x22\
\x45\x01\x67\xcf\xc6\x6c\xa8\x47\xaf\x56\x51\xdc\x5e\x0c\xb7\x9b\
\xba\x81\xd7\x69\xe8\x7f\x05\x09\x78\xaa\x39\xd6\xb4\xd3\xc0\xef\
\x12\xed\xd6\xca\x33\x12\x88\x27\x43\x6b\x80\x1f\x97\x1b\x8b\x07\
\x3e\x70\x78\x6d\xd3\x20\xbd\xfa\xcd\x74\x99\x0f\x20\x51\x11\xb8\
\x05\x5e\x18\x0e\x21\x81\x7e\xf6\x2c\x14\x73\x1a\x79\x37\x21\x51\
\x90\x8a\x81\x14\x1a\xd5\xd6\x01\x6a\x32\x6f\x51\x3b\x98\xa0\xb9\
\xef\x45\xdc\xd1\x64\xfe\x96\x68\xb7\x22\x13\x12\x88\x27\x43\xcf\
\x02\x77\x4d\x25\x99\x8e\xa7\x3c\x9e\x59\x57\xc5\xfe\x86\x2d\x28\
\x64\x8b\xbb\x5b\xd3\x30\x67\xcc\x99\x54\x6a\x4a\x61\x20\xa4\xc7\
\x79\x9f\xdc\x49\x5d\xfa\x15\xa4\xd0\x87\x27\xb7\x27\xda\xad\x6b\
\x86\xbf\xa8\xc3\x1f\x36\x6e\x3b\xcb\x30\x74\xf1\x62\xe1\x58\x39\
\x68\x6e\x52\x39\xd1\xdf\xc4\xbe\x53\xdf\x42\x88\xf1\x79\x27\x84\
\x82\x79\xee\x85\xe3\x3c\x32\x31\x05\x0f\xf0\xe9\x6b\xb8\x15\x44\
\x15\xb5\x99\x04\xa0\x00\xcc\x9a\x3d\x57\x7b\xfe\x70\xa7\x7b\x8a\
\xe1\x11\x80\xf5\x2f\x9f\x52\xb3\x96\xaf\x4c\xb5\x9c\xd9\xb6\xe4\
\x96\x85\x29\x66\x36\x1d\x2d\x3a\x6f\x9c\x7b\x01\x48\xbf\xfc\x32\
\x29\x1d\x52\x67\xfd\x9c\xbe\x86\xa5\x85\xc3\xef\x0f\x7f\x18\x31\
\xb8\xbe\x56\x91\x1b\xe3\xa7\xa5\xe7\x4d\xb9\x24\xe3\x49\x85\x55\
\xb7\xdd\x4b\x8d\x6e\x15\xd6\x26\xb4\xda\x66\x44\x80\x2d\x47\xc8\
\x1c\x3d\x2d\xcb\x50\xbd\x91\xe7\xd6\x5c\x77\x7b\x55\xf3\x28\x02\
\x40\x4e\x08\x78\x7d\xc7\x00\x9a\x16\x64\x7f\x93\xac\xfe\xc1\x9d\
\x05\x61\x24\xd0\x1a\xa7\x07\xde\x6f\x2d\xf3\x2b\xf8\x8a\x39\x2a\
\x6a\x47\x11\x88\x45\x1d\x09\x2c\x3c\x79\xca\x65\x57\x67\x06\x3d\
\x00\x09\x5d\xcd\xb1\x72\xc9\x32\x6c\xd7\x44\x28\x0a\x28\x0a\xc1\
\xe1\x63\x9b\x5f\x2e\x1c\x30\xc7\x7a\x80\x58\xd4\xd9\x2a\x04\xbb\
\x3a\x3a\xb3\x7c\x7c\xd4\x0e\xb4\xdc\xec\xd0\x41\xee\xbf\x7e\x15\
\x96\x63\x80\x2f\xa9\x04\x14\x3f\x33\x7e\x6c\xec\x40\x2c\xea\x5c\
\x66\xe8\x22\xb7\x75\x67\x1a\xcf\x0b\x10\x48\x52\x70\xc3\xc5\xaf\
\x71\xfb\xfc\x17\xf0\x5c\xb7\x12\xe6\x53\x65\x1d\x2e\x1c\xc8\x16\
\x25\x90\xc7\x52\x55\x11\xbc\xfc\x7a\x1f\x6a\x00\xef\xdb\xae\x49\
\xdb\xd7\x57\x73\x51\x55\x3c\xb0\xf9\x86\x7b\x6c\x6c\x01\xee\x9f\
\x90\x40\x2c\xea\x6c\x00\x7e\x9f\xb3\x25\x7f\xd9\xd2\x17\x68\x61\
\xdb\x35\xf9\xe5\xc2\xfb\x69\xa9\x3e\x1e\xa8\x30\xe8\xf6\x11\x0a\
\x8a\xbc\x5f\x92\x40\x9e\xc4\x03\xc0\xa7\x19\x4b\xf2\xee\xde\x6c\
\xa0\x3c\x94\xc0\x13\xd7\x5d\x4d\xad\xde\x3f\x75\x0f\xd8\x87\x0a\
\xab\x50\x6f\xa2\xdd\xb2\x4b\x12\xc8\xe3\x72\x80\x03\x87\x2c\x3e\
\x3d\xee\xa0\x88\x20\x24\x04\x4f\x2f\xbc\x94\x46\xf3\x64\xbe\x1b\
\x2d\xe7\x5e\x0d\xd3\x3e\x54\xd8\xf9\xfc\x71\xc2\x24\x1e\xe3\x85\
\xcf\x80\x9b\x14\x05\x36\x6f\x4b\xd3\x3f\xe0\x05\x2b\x84\x52\xe5\
\xa9\x1b\x2f\xa3\xb5\x7e\x3f\xae\xaf\x3b\x93\xdf\x06\x34\x4c\xfb\
\xa3\xc2\x91\xc9\x11\xc8\x93\xd8\x54\x6d\xea\x47\x4c\x43\xb0\xf9\
\xcd\x34\xaa\x4a\xa0\x58\x76\x7d\x8d\xe8\xb5\xd7\xf3\xdc\xa2\xd6\
\x27\xbb\x0f\xd6\x4d\xcb\x9f\x33\x6e\x03\x36\x03\x5d\x45\xef\x12\
\x2a\xc6\xe7\x04\x9c\xfc\xab\xf4\x81\x66\xdf\x91\xc5\x0a\x30\x0f\
\x78\xd1\x30\xb4\x39\xab\xd6\xfe\x9d\x8c\x65\x13\x6a\xd1\x58\x78\
\x4d\x1d\xbe\x4f\x25\xf0\x78\x24\x9c\x5a\x36\x76\x70\xc6\x8a\xfe\
\x5b\x80\x47\x81\x39\x00\xbe\x52\xcb\xdc\x03\xf5\x80\x0b\x30\x00\
\x34\x24\xda\x2d\x7f\x42\x02\xfb\x8e\x2c\x5e\x01\xfc\xaa\xf0\xe4\
\x65\xdb\x69\x1e\x5b\xf3\x36\xba\x26\x68\x9d\x69\x70\xf5\x65\xd3\
\x2a\x75\x8c\xfe\x75\x24\x9c\xfa\x6d\xb1\x89\x19\x2b\xfa\xeb\x80\
\xcf\x84\x94\xd3\xbe\xba\xbf\x01\x57\xab\x02\xd8\x9d\x68\xb7\xe6\
\x4f\x18\x42\x3f\x7c\xd0\x4c\xbe\xd5\xf1\xf1\x43\x9a\xaa\x68\x02\
\x1f\x01\x6c\xda\x7b\x1f\x8f\xbe\x91\x40\x34\xaf\x44\x08\x87\x8f\
\x8f\xda\x9c\xec\xf3\x2a\x45\xe0\x91\x78\x32\x74\x47\xb1\x89\xee\
\x87\xeb\xd3\x9a\x7b\xac\xb9\x36\xb3\xd5\x2d\x28\xa1\xb1\x92\x27\
\xb2\xb6\xe5\xfa\x33\x9e\xe7\xdf\x5b\x53\x05\xad\x97\x6e\xa0\xe3\
\xd8\x77\xf0\x25\x28\x02\xa4\x80\xaa\x93\xb7\xa2\xe6\x5e\x45\x4a\
\xc9\x1d\xdf\x6c\x44\x55\x2b\x26\x6c\xcc\x8f\x84\x53\xbb\x8b\x4d\
\x5c\x75\xd7\x37\xb6\x54\x67\xdf\x89\x80\x42\xa2\xdd\x12\x25\x5b\
\x09\x60\xad\xaa\x2a\xe4\x6c\x8f\xdd\x5d\xf3\x86\x2e\x1a\x56\x14\
\x24\xe4\x9a\xd6\x01\x43\x2a\xc3\xc6\xf8\xe9\x4a\x2a\x32\xbb\xe2\
\xc9\xd0\xf4\x78\x32\x34\xee\x2f\x52\x9d\x4d\xda\x79\x53\x8f\x4d\
\xa6\x17\xea\x18\x99\x74\xde\x2a\x52\xd2\xa6\x91\x0d\x75\x81\x74\
\x70\x5c\xc9\x3b\x7b\x32\x01\x2b\xd3\x28\xec\x8d\x84\x53\xb2\x68\
\x1d\x85\x34\xb0\x7d\x52\xaa\x44\xdb\x72\xfd\x3d\xf0\x2f\xf1\xaa\
\x96\x90\x6b\x7a\xa9\xa8\x96\xa1\xa7\x9f\x40\x4f\xff\x02\x5f\x0a\
\xae\x9a\x57\xc3\x9c\x59\x26\x95\xe9\x39\xd9\x10\x09\xa7\x6e\x9b\
\x7c\x8b\x57\x1c\x3b\x41\x41\x78\x5d\x13\xf6\x06\x4e\xed\xcf\x90\
\xea\x6c\x14\x21\xf9\x47\x72\x90\x8c\xe5\x57\xca\x0b\xdf\x8b\x27\
\x43\x37\x04\x25\xf0\x18\x80\xe2\x1e\x2a\x29\x7d\x65\xa7\x7f\x08\
\xa2\x1e\xd3\x10\x6c\xde\xd6\x1f\xe8\x10\x34\x06\x7f\x0e\x44\x20\
\x16\x75\x0e\x03\x5b\xf1\xfb\xd0\x06\xd7\x95\xec\xd2\xac\x96\x37\
\x11\xd2\x21\x6b\x49\x36\x6f\xeb\xaf\xcc\xe1\x0b\x5a\xe3\xc9\xd0\
\x45\x41\x3c\x00\xf0\x07\x84\x8e\x71\xfa\xbe\xbc\x4c\x39\x41\x7f\
\xa3\xcf\xc5\xae\x7b\x08\x21\x1c\x8e\x9f\x70\xf9\xa8\xcb\xae\x94\
\x17\xa2\x81\x08\xc4\xa2\xce\xab\x40\x0f\x38\xa8\xb9\x1d\xa5\x7b\
\xfe\x86\x15\xf8\xfa\xd7\x10\x02\xde\xee\x18\xc0\xb6\x2b\x92\xce\
\x97\x07\xf5\x00\xc0\xb5\x20\x30\x4f\x5c\x8b\x90\x13\xf7\xf2\xc2\
\x87\x5c\xcb\x1b\x20\x1d\x14\x45\xf0\xd2\x96\xbe\x52\x2a\xf4\x64\
\x51\x5f\x6c\x4f\x28\x8b\x40\x2c\xea\xec\x07\xb6\xa2\xe8\x18\x7d\
\x3f\x2d\x99\xd0\x52\x34\x90\x0d\x75\x0e\x37\x5c\x74\x74\x66\x83\
\xe6\xc3\xbf\x8a\xef\x09\xe5\x79\x00\xe0\x46\xc0\x57\xb3\xcf\xa3\
\x65\x5e\x28\xdd\x2c\x6b\x17\xe3\xd6\x3e\x0a\x48\x3a\x0f\x66\xe9\
\x4e\x05\x3a\xcc\x3f\x3d\x39\xc5\x68\x12\x68\x5b\xae\x5f\x02\xbc\
\x07\x0e\x56\xcb\x4e\x7c\x23\x3c\xe1\xad\x52\x40\xcd\xf1\xf3\x11\
\xde\xbf\x51\x55\x85\x3b\xbf\xdd\x84\xeb\x96\x9d\x13\x27\x23\xe1\
\xd4\x59\x95\xc8\x81\xe1\x50\x7a\x1f\xf8\x0d\x18\x54\xf5\x46\x10\
\xde\x67\x25\x64\x40\xb0\xce\xfe\x10\x30\x70\x5d\x49\xe2\xed\xf4\
\x54\x42\x29\xf0\x46\x56\x8c\xc4\x0a\x90\x1b\x90\x19\xaa\x7b\x2e\
\x44\xc8\x74\x89\x7c\x50\xc9\x35\xc5\x10\x38\x74\x7d\xe2\xd0\x7b\
\xba\xac\xd6\x7b\x29\xb0\x67\xf2\xa2\x63\x99\x68\x5b\xae\xef\x04\
\xae\x40\xba\x64\xcf\xe9\x47\x8a\xda\x09\xaf\x35\x7b\xbf\x8b\x9a\
\x7b\x0d\x5d\x17\xdc\x71\x53\x23\xde\x99\xbb\x8d\x45\x91\x70\x6a\
\x4b\x79\x72\x57\x99\x88\x45\x9d\x2b\x81\x83\x08\x8d\xea\xee\x46\
\x84\xdf\x3d\xe1\xb5\x4e\xc3\xe3\x20\x1d\x6c\x5b\x72\xf8\xcc\x52\
\xe5\xc5\xe5\x1a\x3f\x25\x02\x79\x12\x17\x0e\x1d\xc2\x15\xaa\x8f\
\xb7\xa2\x59\x7f\x2d\xea\x4b\x4f\xff\x12\xd2\x18\xda\xe0\xb6\xbf\
\x3b\x58\xca\xdd\x33\x23\xe1\xd4\xfe\xa9\x09\x8e\x53\x44\x2c\xea\
\x2c\x06\x1e\x01\x17\xa3\x77\x09\x46\xdf\xdd\xe3\x9e\x26\x7c\x70\
\xcd\xdb\x47\xbe\x0f\x64\xc6\xc5\xd0\x1e\xa0\x36\x12\x4e\x1d\x9b\
\xba\x62\x1a\x00\xb1\xa8\xf3\x20\xf0\x13\x84\xee\x68\x99\x67\xa9\
\xf9\xa4\x0e\xd5\xda\x34\xe2\x0d\xa9\x80\xe2\x6c\xfd\x5c\xcc\x1c\
\xad\x2b\xad\x8b\x84\x53\xf3\x22\xe1\xd4\x60\x10\x1b\x2a\xd2\xff\
\xb6\x2d\xd7\x67\x00\xff\x04\xbe\x38\x24\xd9\xd4\x90\x6b\x8c\xa1\
\x59\xaf\xa2\x5a\xcf\x01\x43\x3f\xd0\x2d\x5e\x50\x4f\x63\xbd\x6a\
\x03\x77\x47\xc2\xa9\xf5\x95\x58\xbb\xa2\xff\x6a\xd0\xb6\x5c\x5f\
\x0a\xac\x1d\xb1\x78\xcc\x42\xdf\xbf\xb9\xd9\xf1\xa4\xdf\xb8\xe8\
\x8a\x9e\x4c\xa5\xd6\x54\x2a\x49\x20\x16\x75\xd6\x33\xf4\x6b\xfe\
\x8f\x46\x19\x2f\x60\xf1\x82\xfa\x65\xaa\x46\x75\x25\x8d\xaf\xb8\
\x07\xc6\x78\x43\x07\xce\x93\x12\xf3\xfc\x59\x46\xcf\xc3\xf7\x0c\
\xf6\xf0\x7f\x8c\xc7\x7f\x00\xf4\xc5\x17\xbc\x3a\x13\xef\x97\x00\
\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
"
qt_resource_name = b"\
\x00\x03\
\x00\x00\x70\x37\
\x00\x69\
\x00\x6d\x00\x67\
\x00\x0c\
\x09\x57\x90\xa7\
\x00\x75\
\x00\x64\x00\x73\x00\x2d\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x6e\x86\x31\xef\xa3\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:
rcc_version = 2
qt_resource_struct = qt_resource_struct_v2
def qInitResources():
QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
def qCleanupResources():
QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()

4
client-py3/full/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
/bin
/udsclient*
/udsclient-*.tar.gz
/*.rpm

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>linuxActor</name>
<name>UDSclient</name>
<comment></comment>
<projects>
</projects>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?><pydev_project>
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/${PROJECT_DIR_NAME}/src</path>
</pydev_pathproperty>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">system-2.7</pydev_property>
</pydev_project>

4
client-py3/full/linux/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
/udsclient-opensuse-[0-9]*.spec
/udsclient-[0-9]*.spec
/debian/udsclient
/targz

View File

@@ -0,0 +1,53 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Version
# VERSION := 1.7.5
# Directories
SOURCEDIR := ../src
LIBDIR := $(DESTDIR)/usr/lib/UDSClient
BINDIR := $(DESTDIR)/usr/bin
SBINDIR = $(DESTDIR)/usr/sbin
APPSDIR := $(DESTDIR)/usr/share/applications
PYC := $(shell find $(SOURCEDIR) -name '*.py[co]')
CACHES := $(shell find $(SOURCEDIR) -name '__pycache__')
clean:
rm -rf $(PYC) $(CACHES) $(DESTDIR)
install:
rm -rf $(DESTDIR)
mkdir -p $(LIBDIR)
#mkdir -p $(BINDIR)
#mkdir -p $(SBINDIR)
mkdir -p $(APPSDIR)
mkdir $(LIBDIR)/uds
# Cleans up .pyc and cache folders
rm -f $(PYC) $(CACHES)
cp $(SOURCEDIR)/uds/*.py $(LIBDIR)/uds
cp $(SOURCEDIR)/UDS*.py $(LIBDIR)
# URL Catchers elements for gnome/kde
cp desktop/UDSClient.desktop $(APPSDIR)
chmod 755 $(LIBDIR)/UDSClient.py
ifeq ($(DISTRO),targz)
cp installer.sh $(DESTDIR)/install.sh
tar czvf ../udsclient3-$(VERSION).tar.gz -C $(DESTDIR) .
endif
ifeq ($(DISTRO),rh)
endif
# chmod 0755 $(BINDIR)/udsclient
uninstall:
rm -rf $(LIBDIR)
# rm -f $(BINDIR)/udsclient
# rm -rf $(CFGDIR)

Some files were not shown because too many files have changed in this diff Show More