Compare commits

...

1865 Commits

Author SHA1 Message Date
Pierre Donias
c24eb9778e feat(complex-matcher): 0.5.0 2018-10-31 15:48:31 +01:00
Pierre Donias
eb079b1360 feat(fs): 0.4.0 2018-10-31 15:46:49 +01:00
Pierre Donias
120a519303 chore(@xen-orchestra/log): packages should not be private 2018-10-31 15:32:17 +01:00
Pierre Donias
95def95678 feat(log): 0.1.0 2018-10-31 15:26:58 +01:00
Pierre Donias
8274a00f91 feat(xo-common): 0.1.2 2018-10-31 15:21:09 +01:00
Pierre Donias
3c6c4976cd feat(xo-server-backup-reports): 0.15.0 2018-10-31 15:19:21 +01:00
Julien Fontanet
0fd35b1679 feat(xo-web/xoa): product version and pkgs list (#3621)
Fixes #3560
2018-10-31 10:49:10 +01:00
Enishowk
3c931604be fix(xo-web/backup-ng/utils/FormFeedback): fix incorrect prop type (#3604)
See #2578
2018-10-31 10:14:41 +01:00
Julien Fontanet
02dddbd662 chore(xo-web/xoa/update): rewrite (#3620) 2018-10-31 09:46:44 +01:00
Julien Fontanet
675763d039 chore(xo-web): mutualize chain decoration 2018-10-30 18:40:21 +01:00
Julien Fontanet
63acc7ef32 fix(xo-server/bin): import → require 2018-10-30 17:45:02 +01:00
Enishowk
cbd78bdfef chore(xo-server): use @xen-orchestra/log to handle global errors (#3618)
Fixes #3616
2018-10-30 17:38:24 +01:00
Julien Fontanet
a09a2ed6c3 chore(log/configure): explicit test 2018-10-30 17:14:44 +01:00
Enishowk
7d18a6d8a9 fix(xo-web/Home/NoObjects): only subscribe to servers if admin (#3613)
Fixes #2335
2018-10-30 15:58:06 +01:00
Julien Fontanet
65a5984d4c fix(cron): prevent exceptions from breaking the job (#3617)
Fixes support#1038
2018-10-30 15:26:46 +01:00
badrAZ
d5f519bf5a feat(backup-ng): display logs for backup restoration (#3609)
Fixes #2511
2018-10-30 15:26:26 +01:00
badrAZ
bede39c8f3 fix(xo-server-usage-report): handle SR without container (#3614)
This is a work-around for an XO bug.

Related to #3600
2018-10-30 14:07:50 +01:00
badrAZ
a9e3682776 fix(xo-server-usage-report): all SRs display issue (#3615)
Introduced by #3508
2018-10-30 13:54:57 +01:00
Enishowk
87c3c8732f fix(xo-server/jobs): emit job:terminated even if job throws (#3593)
Fixes #3458
2018-10-30 13:39:49 +01:00
Enishowk
0011bfea8c feat(travis/tests): run tests on files that differs from master (#3599)
Fixes #2703
2018-10-30 11:57:26 +01:00
Pierre Donias
e047649c3b fix(xo-web/patches): ignore CDs with detached VBD (#3611)
Fixes support#1032
2018-10-30 09:53:11 +01:00
badrAZ
de397b63c5 feat(xo-web/sorted-table): "valuePath" property (#3607)
Fixes #3606
2018-10-30 09:42:13 +01:00
Julien Fontanet
75b7726fca chore: format YAML with Prettier 2018-10-29 13:29:30 +01:00
Julien Fontanet
d83a2366c2 chore(ci): dont test on Node 6 2018-10-26 16:47:33 +02:00
Julien Fontanet
2d4d653c55 chore: re-format code 2018-10-26 16:40:00 +02:00
badrAZ
c7a1d55f6f chore: rename freactal to reaclette (#3601) 2018-10-26 15:24:50 +02:00
Enishowk
46b5c5ccd1 feat(xo-server): Replace debug with @xen-orchestra/log for basic logging (#3579)
Fixes #3555
2018-10-26 14:14:17 +02:00
Jon Sands
4607417e7a chore(docs/backup troubleshooting): Parse Error with Delta Backup (#3588)
Also add note about OVA failure with xo-cli.
2018-10-25 23:52:48 +02:00
Julien Fontanet
76887c7e25 chore(xo-web/self/_getIpPoolPredicate): dont use include
`O(n)` → `O(1)`
2018-10-25 16:02:28 +02:00
Julien Fontanet
ab7cae5816 fix(xo-web/self): fix IP pool predicate selector (#3598) 2018-10-25 15:58:23 +02:00
badrAZ
b1ce389ad8 fix(xo-web/backup-ng): don't submit when retention is undefined (#3487) 2018-10-25 15:44:35 +02:00
badrAZ
52aa5ff780 feat(xo-server-backup-reports): support task warnings (#3596) 2018-10-25 12:22:35 +02:00
badrAZ
30372e511e feat(xo-server/backup-ng): consolidation of the restore logs (#3537) 2018-10-25 12:21:28 +02:00
Rajaa.BARHTAOUI
dc15a6282a feat(xo-web/sr/hosts, xo-web/host/srs): use SortedTable actions (#3539)
See #3179
2018-10-25 10:47:21 +02:00
badrAZ
97dcc204ef feat(xo-web/backup-ng/logs): support task warnings (#3591)
Fixes #3589
2018-10-25 09:31:23 +02:00
Julien Fontanet
ecda3e0174 feat(lint-staged): add formatting changes before testing (#3595)
So there won't be stylistic diffs between files and index if the test fails.
2018-10-25 09:16:21 +02:00
Rajaa.BARHTAOUI
8342bb2bc8 fix(xo-web/SortedTable): broken individual actions
Introduced by cdced7cdc1
2018-10-24 16:53:19 +02:00
badrAZ
51a137c4e5 feat(xo-server/schemas/log): task warning (#3590)
See #3589
2018-10-24 10:58:56 +02:00
Enishowk
a26ced5de9 chore(xo-web/backup-ng): rework the Schedule view (#3586)
Fixes #3491
2018-10-24 10:13:09 +02:00
badrAZ
85f0c69c03 chore(xo-server): use reaclette instead of @julien-f/freactal (#3587) 2018-10-23 17:57:00 +02:00
Julien Fontanet
3aac757ef5 feat(xo-web/selectors): cache ACLs resolution (#3584)
Fixes #3578
2018-10-23 14:50:09 +02:00
badrAZ
91541d0ba4 feat(xo-web/log): disable filters with no entries (#3442)
Fixes #3438
2018-10-23 12:01:26 +02:00
badrAZ
dfd66a56c3 feat(xo-server-usage-report): ability to send daily (#3582)
Fixes #3544
2018-10-23 09:20:11 +02:00
badrAZ
60f9393d29 fix(xo-web/scheduling): fix unselecting single value (#3577)
Fixes #3574
2018-10-22 23:36:44 +02:00
Rajaa.BARHTAOUI
cdced7cdc1 feat(xo-web/SortedTable): sort action by level (#3545)
Fixes #3168
2018-10-22 13:53:12 +02:00
Julien Fontanet
69709009ed fix(xo-web/backup-ng/new): fix timeout unit (#3575)
Fixes issue introduced in aa5b3dc42
2018-10-20 16:10:36 +02:00
Julien Fontanet
bf14560709 feat(xo-web/form/range): handle undefined value 2018-10-19 16:30:54 +02:00
Julien Fontanet
775b629ee9 fix(xo-web/form/range): fix required prop type 2018-10-19 16:30:54 +02:00
Julien Fontanet
ec9717dafb chore(xo-web/scheduling): compute TimePicker max step (#3568) 2018-10-19 16:22:25 +02:00
Julien Fontanet
0cd84ee250 chore(xo-server): move LVM start hook to file restore NG
Otherwise, I have a feeling that we may forget to migrate this code when
legacy backup code will be retired.
2018-10-19 11:10:36 +02:00
Pierre Donias
b3681e7c39 fix(xo-server/recomputeResourceSetsLimits): omit CR and DR VMs (#3561)
Fixes #3064
2018-10-19 09:58:39 +02:00
Pierre Donias
a7a7597d9a feat(xo-web/backup-ng/restore): show job in backup select (#3564)
Fixes #3264
2018-10-19 09:48:55 +02:00
badrAZ
bed3da81e1 feat(xo-web/scheduling): merge selection and interval tabs (#3519)
Fixes #1902
2018-10-19 09:20:51 +02:00
Pierre Donias
c43dc31a55 fix(CHANGELOG): missing PR links (#3562) 2018-10-18 18:50:19 +02:00
Enishowk
c5a21922d1 chore(backup-ng): collapse advanced settings by default (#3559)
Fixes #3551
2018-10-18 14:28:35 +02:00
Pierre Donias
2ae660a46b fix(xo-web/settings/acls): freactal to fix lifecycle issues (#3548) 2018-10-18 13:47:48 +02:00
Julien Fontanet
f6fcae4489 chore(xo-server/utils): remove unused pDebug 2018-10-18 10:53:55 +02:00
Enishowk
e0a3b8ace8 feat(xo-web/backup-ng/overview): show advanced settings with non-default values (#3554)
Fixes #3549
2018-10-18 10:46:15 +02:00
badrAZ
b67231c56b feat(xo-server/backup-ng): report missing VMs (#3522)
Fixes #3434
2018-10-18 10:23:56 +02:00
Enishowk
aa5b3dc426 chore(xo-web/backup-ng): timeout is in hours (#3553)
Fixes #3550
2018-10-17 19:24:47 +02:00
Enishowk
1a528adfbb feat(complex-matcher) : raw numbers can match strings (#3552)
Fixes #2906
2018-10-17 18:24:49 +02:00
Enishowk
64d295ee3f chore(xo-web): remove unnecessary prop-types-decorator (#3542) 2018-10-17 16:30:57 +02:00
Julien Fontanet
b940ade902 fix(xo-common/api-errors): predicate is optional (#3543) 2018-10-17 15:49:27 +02:00
Pierre Donias
37a906a233 fix(xo-server/VM/create): compute quotas from user inputs (#3546)
Fixes #2683
2018-10-17 14:55:48 +02:00
Rajaa.BARHTAOUI
e76603ce7e feat(xo-web/settings/acls): use SortedTable actions (#3536)
See #3179
2018-10-17 14:07:42 +02:00
Nicolas Raynaud
aca9aa0a7a feat(vhd-lib/createReadableSparseStream): expose stream.length (#3526) 2018-10-16 17:16:59 +02:00
Pierre Donias
6d20ef5d51 fix(xo-server/disk.create): handle resource set not found (#3530)
Fixes #2814
2018-10-16 16:58:13 +02:00
Pierre Donias
4d18ab1ae0 fix(xo-web/new VM): missing cloud configs in some cases (#3535)
Fixes #3532
2018-10-16 14:14:46 +02:00
Julien Fontanet
fa5c707fbc fix(xo-server/worker): use Bluebird as Promise (#3538)
Similar to 6c6dfa9ac4 but for the worker processes.
2018-10-16 11:53:41 +02:00
Rajaa.BARHTAOUI
37b9d8ec10 feat(xo-web/settings/logs): use SortedTable actions (#3528)
See #3179
2018-10-16 11:52:05 +02:00
Enishowk
61db0269a2 feat(fs): add timeouts to atomic operations (#3534)
Fixes #3467
2018-10-16 10:38:46 +02:00
Rajaa.BARHTAOUI
a8ad13f60e feat(xo-web/settings/users): use SortedTable actions (#3531)
See #3179
2018-10-16 10:31:29 +02:00
badrAZ
f14dd04ea7 feat(xo-server/backup-ng): log the restore tasks (#3452) 2018-10-15 18:08:46 +02:00
badrAZ
0add8cd5a3 fix(CHANGELOG): missing PR/issue link (#3529) 2018-10-15 14:55:49 +02:00
Pierre Donias
16cc539a57 fix(xo-web/pool/patches): missing withRef (#3527)
Fixes #3523
2018-10-15 09:49:31 +02:00
Julien Fontanet
5ba25a34cb chore(xo-server/jobs): move plugins:registered listener out of start 2018-10-12 14:02:46 +02:00
Julien Fontanet
61de65fc21 chore(xo-server/jobs): handle failing getLogger 2018-10-12 14:01:54 +02:00
Julien Fontanet
5195539a95 chore(xo-server): remove testing on disabled remotes 2018-10-12 13:40:59 +02:00
Julien Fontanet
ce93fb0e4c fix(xo-server): fix removing broken remotes (#3521)
Fixes #3327
2018-10-12 11:36:40 +02:00
badrAZ
3cb58ed700 fix(xo-web/backup-ng): deleted remote issue (#3520) 2018-10-12 11:32:41 +02:00
Julien Fontanet
bb48c960fe feat(vhd-lib/createSyntheticStream): add length property to stream (#3517)
Expose the file size on the VHD stream, necessary to be compatible with a future version of vhd-tool (f978789dc4).
2018-10-11 17:57:31 +02:00
Nicolas Raynaud
286a0031dd VHD: add test on stream length 2018-10-11 08:40:00 -07:00
Nicolas Raynaud
dcbd7e1113 remove intellij file 2018-10-11 08:36:44 -07:00
Nicolas Raynaud
0a43454c8a VHD: add test on stream length 2018-10-11 08:23:45 -07:00
Julien Fontanet
f5f1491e47 fix(changelog): packages by publish order
Or inverse dependebcy order.
2018-10-11 16:50:49 +02:00
Julien Fontanet
e935ae567f async createSyntheticStream is a breaking change 2018-10-11 16:50:04 +02:00
Julien Fontanet
3f08f099fe fix sync uses of createSyntheticStream 2018-10-11 16:49:29 +02:00
Nicolas Raynaud
18a5ba0029 VHD: remove unnecessary rounding 2018-10-11 07:17:15 -07:00
Nicolas Raynaud
c426d0328f VHD: revert version increment 2018-10-11 07:15:50 -07:00
Nicolas Raynaud
91b2456c15 VHD: expose file length on the stream object 2018-10-10 18:36:54 -07:00
Nicolas Raynaud
585aa74e0c Merge branch 'master' into nr-vhd-stream-length
# Conflicts:
#	CHANGELOG.md
2018-10-10 18:35:20 -07:00
Nicolas Raynaud
eefaec5abd VHD: expose file length on the stream object 2018-10-10 16:35:46 -07:00
Nicolas Raynaud
c7a5eebff6 VHD: expose file length on the stream object 2018-10-10 16:28:59 -07:00
badrAZ
f077528936 feat(xo-server-usage-report): add top 3 IOPS VM usage (#3463)
Fixes #3308
2018-10-10 16:40:26 +02:00
badrAZ
39728974b1 feat(xo-server-backup-reports): add job and run ID (#3516)
Fixes #3488
2018-10-10 16:00:27 +02:00
badrAZ
e14585895b fix(xo-server-usage-report): handle fetching missing patches failure (#3515)
Fixes #3510
2018-10-10 15:39:06 +02:00
badrAZ
0999042718 feat(xo-web/backup-ng/new): link to plugins setting (#3514)
Fixes #3457
2018-10-10 14:45:28 +02:00
badrAZ
4e2e669533 feat(xo-web/new-vm): display warning when memory < static_min (#3513)
Fixes #3496
2018-10-10 14:16:37 +02:00
badrAZ
de266ae6a8 chore(xo-server-usage-report): rename top VMs/hosts header (#3511) 2018-10-10 11:27:22 +02:00
badrAZ
d7cd87a6e4 feat(xo-server-usage-report): add top 3 SRs by IOPS (#3508)
Fixes #3306
2018-10-10 11:26:33 +02:00
Julien Fontanet
c5aabbadc2 feat(xo-web/self): order resource sets by name (#3507)
Fixes support#984.
2018-10-09 16:38:06 +02:00
badrAZ
36a5e3c2ab feat(xo-server-usage-report): add VM IOPS read/write/total (#3455)
Fixes #3309
2018-10-08 17:18:22 +02:00
badrAZ
f475261b9a chore(xo-server-usage-report): improve implementation (#3472) 2018-10-08 16:51:56 +02:00
Julien Fontanet
62dce8f92a chore(package): update dependencies 2018-10-08 13:50:50 +02:00
Julien Fontanet
e6d90d2154 feat(xen-api): _wrapRecord() (#3448)
Objectives:

- reduced memory usage and perf enhancement due to:
   - mutualization of fields and methods via prototype
   - mutualization of hidden classes
- easier manipulation via helper methods:
   - `await pool.set_name_label('my pool')`
   - `await pool.update_other_config({ foo: 'bar', baz: null })`
2018-10-08 10:58:03 +02:00
badrAZ
b5d823ec1a fix(xo-server-usage-report): dont show evolution if 0 (#3471) 2018-10-08 10:27:15 +02:00
badrAZ
a786c68e8b fix(xo-server-usage-report): fix HTML (#3473) 2018-10-05 16:37:14 +02:00
Pierre Donias
e6fa00c4d8 chore(CHANGELOG): 5.28.0 2018-10-05 14:03:50 +02:00
Pierre Donias
5721fac793 feat(xo-web): 5.28.0 2018-10-05 14:01:32 +02:00
Pierre Donias
674ed4384a feat(xo-server): 5.28.0 2018-10-05 14:00:27 +02:00
Pierre Donias
1d7d83f8c6 feat(xo-acl-resolver): 0.3.0 2018-10-05 13:51:18 +02:00
Pierre Donias
f812cc2729 feat(xo-server-usage-report): 0.6.0 2018-10-05 13:49:36 +02:00
Pierre Donias
abc50a5e84 feat(xo-vmdk-to-vhd): 0.1.5 2018-10-05 13:47:44 +02:00
Pierre Donias
e94cae3044 feat(vhd-lib): 0.3.2 2018-10-05 13:45:06 +02:00
Pierre Donias
0b35a35576 feat(xo-server/vm.clone): add admin ACL and allocate Self resources (#3493)
Fixes #3139
2018-10-05 12:07:28 +02:00
badrAZ
0253c63db3 feat(acls): allow VM operators to create/delete snapshots (#3482)
Fixes #3443
2018-10-05 11:48:42 +02:00
Julien Fontanet
0d3b2bc814 fix(vhd-lib,xo-vmdk-to-vhd): add polyfill for Symbol.asyncIterator (#3492)
Fixes part of #3468.
Fixes tests on CI.
2018-10-05 10:44:03 +02:00
Julien Fontanet
65307e5bc7 fix(xo-server/xapi#exportVm): destroy snapshot on getResource failure 2018-10-05 09:51:48 +02:00
Julien Fontanet
90de47d708 chore(xo-server/xapi#exportVm): minor code improvement 2018-10-05 09:51:48 +02:00
Julien Fontanet
72a4179c03 chore(xo-server/xapi): add metadata to {export,import}Vm errors 2018-10-05 09:51:48 +02:00
badrAZ
4eee195d21 fix(CHANGELOG): add entries related to #3475 (#3489) 2018-10-04 16:56:17 +02:00
badrAZ
9488711406 feat(xo-server-usage-report): top 3 used SRs instead of big SRs (#3475)
Fixes #3307
2018-10-04 16:08:18 +02:00
Julien Fontanet
4cf04aca72 feat(cr-seed-cli): 0.2.0 2018-10-04 15:09:22 +02:00
Julien Fontanet
410d6762bf fix(cr-seed-cli): set xo:backup:exported on snapshot
Related to bdefd0bcd
2018-10-04 15:08:16 +02:00
Julien Fontanet
0a95426e63 fix(xo-server/delta NG): detection of removed disks
Related to eb9655125
2018-10-04 14:53:33 +02:00
Julien Fontanet
4ec4970d49 chore(async-map): build for tests 2018-10-03 21:27:56 +02:00
Julien Fontanet
e57ae0a8ce chore(xo-server): add support for ?? 2018-10-03 16:00:24 +02:00
badrAZ
1e7852369f feat(xo-server/xapi-stats): expose VM IOPS metric (#3454) 2018-10-03 15:50:35 +02:00
Julien Fontanet
bdefd0bcd8 feat(xo-server/delta NG): mark successfully exported snapshots (#3485)
Allows runs after failure/interruption to be deltas.
Also, allows some schedules to only do rolling snapshots without breaking the exports.

Thanks a lot to @Samuel-BF for PR #3466.
2018-10-03 15:36:08 +02:00
badrAZ
fa88e1789c fix(xo-web/backup-ng/new): fix retention default value (#3486) 2018-10-03 15:26:48 +02:00
Pierre Donias
df90094cae feat(xo-web/pool/patches): extra modal before bulk install (#3484)
Fixes #3252
2018-10-03 15:15:04 +02:00
Pierre Donias
efdbc18a0a feat(xo-web/home/pool): show # of *unique* available patches (#3483)
Fixes #3321
2018-10-03 09:17:35 +02:00
Julien Fontanet
fc1dd3ce09 chore(xo-cli): got → http-request-plus 2018-10-02 20:19:43 +02:00
Julien Fontanet
10aff53d2c chore(xo-server-cloud): superagent → http-request-plus 2018-10-02 19:57:27 +02:00
Pierre Donias
85c3d64c04 feat(xo-web/host/network): private networks (#3481)
Fixes #3387
2018-10-02 14:42:24 +02:00
badrAZ
5a71ab53be feat(xo-acl-resolver): allow ACLs on VM snapshots (#3480)
Related to #3443
2018-10-02 13:33:26 +02:00
Julien Fontanet
d022b40732 chore: update dependencies 2018-10-02 12:01:14 +02:00
Pierre Donias
e105c0aad1 feat(xo-web/host/networks): remove "Add network" button (#3478)
Fixes #3386
2018-10-02 11:38:28 +02:00
Julien Fontanet
eb9655125c fix(xo-server/delta NG): handle removed disks (#3479) 2018-10-02 11:31:11 +02:00
Julien Fontanet
a10fea2823 chore(xo-server/xapi/utils): remove NULL_REF in favor of xen-api 2018-10-02 11:07:19 +02:00
badrAZ
0c05d89d3f fix(xo-web/VM/snapshot): allow VM admin to access snapshot tab (#3477) 2018-10-02 10:52:36 +02:00
Pierre Donias
d600d4cc28 chore(CHANGELOG): 5.27.1 2018-09-28 17:08:42 +02:00
Pierre Donias
4f0e5317ed feat(xo-web): 5.27.1 2018-09-28 17:05:40 +02:00
Pierre Donias
fce7c7fd49 feat(xo-server): 5.27.2 2018-09-28 17:04:48 +02:00
Pierre Donias
929ca767ca feat(xo-vmdk-to-vhd): 0.1.4 2018-09-28 17:01:43 +02:00
Pierre Donias
342c1bc6fa feat(vhd-lib): 0.3.1 2018-09-28 16:58:46 +02:00
Pierre Donias
317e301067 feat(fs): 0.3.1 2018-09-28 16:56:01 +02:00
Julien Fontanet
ac5741a341 fix(xo-server/deleteVm): build disks list before deleting VM (#3465)
Otherwise there is a race condition and VBD records might have been removed from cache before listing the VM disks due to destroying the VM.
2018-09-28 16:48:21 +02:00
badrAZ
3f1fb7092b fix(xo-web/modal#form): prevent default behavior of submit (#3462) 2018-09-28 11:42:47 +02:00
Julien Fontanet
7298a8b8f0 fix(fs/NfsHandler): race conds on sync() (#3460)
Fixes #3380
2018-09-28 11:40:12 +02:00
Julien Fontanet
856924c970 chore(log): remove @babel-polyfill dep 2018-09-26 17:41:43 +02:00
Julien Fontanet
9a285d280f chore(fs/NfsHandler): merge _loadRealMounts and _matchesRealMount in _sync 2018-09-26 17:00:47 +02:00
Julien Fontanet
9c3fc56d4a chore(fs/NfsHandler#_umount): remove unused remote param 2018-09-26 17:00:47 +02:00
Julien Fontanet
aaaee45eeb chore(xo-server): remove @babel/polyfill (#3453)
Fixes #2580
Fixes #2820
2018-09-26 14:22:02 +02:00
Nicolas Raynaud
ac2ab21826 fix(vhd-lib): fix geometry computation for more than 2^28 sectors (#3451)
Fixes https://gitlab.com/vates/xoa-support/issues/942
It was a bug in the disk geometry computation.
2018-09-25 14:51:17 +02:00
badrAZ
b22514646e feat(xo-web/backup-ng/overview): display the schedule's name (#3445)
Fixes #3444
2018-09-24 13:43:49 +02:00
Julien Fontanet
c7ab1ddb0c chore: update dependencies 2018-09-24 13:39:31 +02:00
Pierre Donias
7ddc595a1c fix(xo-web/file-restore): incorrect line-through on similar filenames (#3447) 2018-09-24 11:09:45 +02:00
Pierre Donias
4147800266 fix(xo-web/file-restore): ensure folder path trailing slash (#3446) 2018-09-24 10:52:48 +02:00
Pierre Donias
99e6d54647 chore(CHANGELOG): 5.27.0 2018-09-24 10:01:39 +02:00
Julien Fontanet
dac5901c6b feat(xo-server): 5.27.1 2018-09-22 14:01:24 +02:00
Julien Fontanet
308928a7d4 feat(xen-api): 0.19.0 2018-09-22 14:00:55 +02:00
Julien Fontanet
e6e3d2cd52 chore: update http-request-plus to 0.6.0 2018-09-22 13:06:30 +02:00
Pierre Donias
2e01de7ff8 feat(xo-web): 5.27.0 2018-09-21 18:02:57 +02:00
Pierre Donias
90f94da4e4 feat(xo-server): 5.27.0 2018-09-21 18:01:27 +02:00
Pierre Donias
29b5acef3f chore(xo): packages should not be private 2018-09-21 17:50:49 +02:00
Pierre Donias
599b094b50 feat(xo-server-backup-reports): 0.14.0 2018-09-21 17:43:41 +02:00
Julien Fontanet
7c6e423d24 fix(Backup NG): remove all unnecessary snapshots (#3439)
Even those from other schedules.

Fixes #3132
2018-09-21 17:37:49 +02:00
badrAZ
82956af785 fix(xo-web/logs): fix @xen-orchestra/log import (#3441) 2018-09-21 15:36:54 +02:00
badrAZ
6ca09dc9fe feat(xo-web/vm/tab-advanced): ability to set the NIC type (#3440)
Fixes #3423
2018-09-21 15:30:23 +02:00
badrAZ
e0ecbab841 feat(xo-server/vm): ability to change NIC type (#3437)
See #3423
2018-09-21 14:42:43 +02:00
Julien Fontanet
83d1a5ff13 feat(defined): helpers to deal with undefined (#3436)
Extracted from xo-web.
2018-09-21 11:56:33 +02:00
badrAZ
a71740d49a feat(backup-ng): ability to restart all failed VMs (#3420)
Fixes #3339
2018-09-20 17:05:57 +02:00
Julien Fontanet
0215c19d1d feat(xo-server/proxy-console): work around missing host (#3435)
Fixes #3432
2018-09-20 14:47:39 +02:00
Julien Fontanet
ea1c3ab54a fix(xo-server/delta NG): dont start export before all targets ready (#3427)
Fixes #3424
2018-09-20 14:38:45 +02:00
badrAZ
b98b618be8 fix(xo-server-backup-reports): handle log not found (#3430) 2018-09-20 14:34:29 +02:00
Julien Fontanet
5e363761a2 fix(xo-server/proxy-console): pass hostname to net.connect 2018-09-20 10:25:47 +02:00
Julien Fontanet
62d48bd59d fix(async-map): apply → call 😖
Fixes #3431
2018-09-20 10:04:09 +02:00
badrAZ
a0049bae8d fix(xo-web/backup-ng): make log value dynamic in copy/report buttons (#3360)
Fixes #3273
2018-09-18 15:15:59 +02:00
Julien Fontanet
18660cb0e1 fix(async-map): accept objects as collection 2018-09-18 12:10:44 +02:00
Julien Fontanet
e3c6c1c1ca chore(async-map): use lodash/map import 2018-09-18 12:10:43 +02:00
badrAZ
56114a7d18 feat(xo-server-backup-report): ability to test the plugin (#3421) 2018-09-17 17:23:45 +02:00
Julien Fontanet
0fe70b1a91 feat(log): new lib to help logging (#3414)
Fixes #2414
Related to #1669
2018-09-17 17:02:27 +02:00
Julien Fontanet
527eb0b1e6 feat(async-map): better Promise.all + map (#3422) 2018-09-17 16:37:49 +02:00
Julien Fontanet
cfd6fd722a feat(mixin): split a class in independant parts (#3415) 2018-09-17 16:33:21 +02:00
badrAZ
42591bd4bd feat(xo-web/VM): display the PVHVM status (#3418)
Fixes #3014
2018-09-17 11:06:19 +02:00
Julien Fontanet
8689cff26b feat(emit-async): handle async listeners (#3416)
Extracted from xo-server.
2018-09-17 10:42:22 +02:00
badrAZ
b4e4d32255 feat(xo-web/backup-ng/overview): display transferred and merged data size (#3408) 2018-09-14 17:21:06 +02:00
Julien Fontanet
18c88ba770 feat(cr-seed-cli): CLI to help CR seeding (#3346) 2018-09-14 17:04:55 +02:00
badrAZ
d212168f59 feat(xo-web/backup-ng/new): use a modal for creating/editing a schedule (#3359)
Fixes #3138
2018-09-14 15:53:28 +02:00
Julien Fontanet
3625477187 fix(xo-web/xoa-updater): wait trial request before checking state (#3412)
Fixes #3407
2018-09-14 12:26:41 +02:00
Pierre Donias
9be8525439 await xoaState 2018-09-14 12:04:19 +02:00
Pierre Donias
6e013a0dc5 PR 2018-09-14 11:54:39 +02:00
Pierre Donias
06d555d4f9 fix(xo-web/xoa-updater): wait for trial request before checking trial state
Fixes #3407
2018-09-14 11:51:43 +02:00
Julien Fontanet
63fe0f2c88 fix(xo-server/importDeltaVm): dont fail on empty VBDs (#3410) 2018-09-14 10:37:09 +02:00
Julien Fontanet
2a276dfb99 changelog 2018-09-14 10:36:49 +02:00
Julien Fontanet
1f009ca954 fix(xo-server/importDeltaVm): dont fail on empty VBDs 2018-09-13 17:27:11 +02:00
badrAZ
5cf1ba41f3 feat(xo-web/modal#form): support an additional icon to the title (#3409) 2018-09-13 16:58:03 +02:00
badrAZ
1ef205cb74 feat(xo-web/backup-ng/new): tip for creating vms on a thin-provisioned storage (#3402)
Fixes #3334
2018-09-13 16:23:51 +02:00
Julien Fontanet
1e59af3ab2 fix(xo-server/deleteVm): dont delete VDIs/VIFs if destroy is blocked (#3406) 2018-09-13 11:44:17 +02:00
badrAZ
bb88b420c1 chore(xo-web/backup-ng/new): make "setSchedule" support multiple params (#3404) 2018-09-12 13:53:37 +02:00
badrAZ
e8475d144c chore(xo-web/backup-ng/new): improve new schedule implementation (#3348) 2018-09-12 13:43:02 +02:00
badrAZ
dedac62269 feat(xo-web): implementation of the modal dedicated to forms (#3358) 2018-09-11 17:31:20 +02:00
badrAZ
f8fdd888c4 fix(xo-web/remotes): error appears twice on testing (#3399) 2018-09-11 17:27:10 +02:00
Julien Fontanet
d8bd30e355 feat(xo-web/remotes): use WORKGROUP as default SMB domain (#3398) 2018-09-11 10:46:52 +02:00
badrAZ
4fec816274 feat(xo-web/settings/remotes): test on creation/edition (#3397)
See #3323
2018-09-11 10:09:16 +02:00
badrAZ
1211447e81 fix(xo-web/settings/remotes): rename connect(ed)/disconnect(ed) to enable(d)/disable(d) (#3396)
See #3323
2018-09-10 17:15:33 +02:00
Julien Fontanet
ed78f4c5ee fix(xo-server/backup NG): third time is the charm (sigh) 2018-09-10 10:59:56 +02:00
Julien Fontanet
4a2e9d4c88 fix(xo-server/backup NG): CancelToken.race → .source 2018-09-10 10:51:05 +02:00
Julien Fontanet
1807917204 fix(xo-server/backup NG): CancelToken#fork() no longer exists
Issue introduced in b3004a38a
2018-09-10 10:47:53 +02:00
Julien Fontanet
b3004a38aa chore: update promise-toolbox to v0.10 (#3392) 2018-09-07 14:34:47 +02:00
Pierre Donias
0ad6c073ee chore(CHANGELOG): 5.26.0 2018-09-07 11:39:26 +02:00
Pierre Donias
0abaadb391 feat(xo-web): 5.26.0 2018-09-07 11:37:12 +02:00
Pierre Donias
b43cf27479 feat(xo-server): 5.26.0 2018-09-07 11:36:20 +02:00
Julien Fontanet
bcab6bb584 fix(xo-server/listReplicatedVms): dont use snapshot_time (#3394)
It is not always set on VMs imported from snapshots, add a new metadata in `other_config` and use the timestamp in the name_label a fallback.

Fixes #3391
2018-09-07 11:31:57 +02:00
Pierre Donias
8213601df6 chore(xo-web/VM,host,pool,SR): better UUID display (#3390) 2018-09-05 16:44:18 +02:00
Pierre Donias
e7ad577661 feat(xo-server,xo-web/VM): start on specific host (#3389)
Fixes #3191
2018-09-05 16:39:12 +02:00
Julien Fontanet
070213dd7f fix(xo-server/collection/redis): ignore undefined values (#3388)
Fixes #3385
2018-09-05 15:18:47 +02:00
Julien Fontanet
395cbb33ef chore: update dependencies 2018-09-05 09:42:10 +02:00
Julien Fontanet
a429a7aa35 feat(babel-config): same targets for all builds 2018-09-04 16:43:42 +02:00
Julien Fontanet
b70e09937b fix(babel-config): dont ignore pkg.browserslist entry 2018-09-04 16:41:28 +02:00
Pierre Donias
109ff4a4da feat(xo-web/backupNg): support restoring directories (#3384)
Fixes #1924
See #3300
2018-09-04 16:00:42 +02:00
Pierre Donias
0e185ab92a fix(xo-web/Backup NG): remove unsupported TAR file restore option (#3383) 2018-09-03 16:50:36 +02:00
Julien Fontanet
aefb76a4f6 fix(xo-server/file restore): support trailing slashes 2018-09-03 16:40:35 +02:00
Julien Fontanet
fe653dc7dd feat(xo-server): add job name in replicated VMs (#3379)
See support#891
2018-09-03 14:05:32 +02:00
Julien Fontanet
8b5c0e706c chore(xo-server/collection#first): returns undefined instead of null (#3382)
Fixes an issue introduced in 1407fb7bab in
`Remotes#getRemote()`.
2018-09-03 12:03:50 +02:00
Pierre Donias
d25584edf9 feat(xo-web/tasks): show finished tasks (#3377)
Fixes #3266
2018-08-31 17:19:03 +02:00
Pierre Donias
496ca2c716 fix(xo-web/XoItem): link should not open in new tab by default (#3376) 2018-08-31 14:40:00 +02:00
Julien Fontanet
4a09074a40 chore: update yarn.lock 2018-08-31 14:30:59 +02:00
Julien Fontanet
385fd80bb9 chore(xo-server-transport-xmpp): use Babel 7 2018-08-31 14:30:59 +02:00
Julien Fontanet
b6818abd0d chore(xo-server-transport-slack): use Babel 7 2018-08-31 14:30:59 +02:00
Julien Fontanet
45b5d10f1b chore(xo-server-transport-nagios): use Babel 7 2018-08-31 14:30:59 +02:00
Julien Fontanet
7866a265fe chore(xo-server-transport-email): use Babel 7 2018-08-31 14:30:59 +02:00
Julien Fontanet
774c0d09b1 chore(xo-server-auth-saml): use Babel 7 2018-08-31 14:30:59 +02:00
Julien Fontanet
df0029db3b chore(xo-server-auth-google): use Babel 7 2018-08-31 14:30:59 +02:00
Julien Fontanet
c1a5364448 chore(xo-server-auth-github): use Babel 7 2018-08-31 14:30:58 +02:00
Julien Fontanet
557ba1a4bc chore(xo-lib): use Babel 7 2018-08-31 14:30:58 +02:00
Julien Fontanet
bf932aada1 chore(xo-common): use Babel 7 2018-08-31 14:30:58 +02:00
Pierre Donias
2304deab3f fix(xo-web/vm/disks): individual actions 2018-08-31 14:18:14 +02:00
Julien Fontanet
ea9c0cfb10 fix(xo-web): export/import from Starter Edition 2018-08-31 13:14:31 +02:00
Pierre Donias
2fd5a6501b feat(xo-web/menu): hide Tasks entry for self users (#3373)
Fixes #3311
2018-08-30 15:44:30 +02:00
Pierre Donias
0ca5a32142 feat(xo-web/backup ng/restore): sort backups in select (#3374)
Fixes #3294
2018-08-30 13:38:02 +02:00
Julien Fontanet
f55f812d30 fix(linting): use legacy decorators 2018-08-30 11:53:27 +02:00
Julien Fontanet
98bbd53c28 fix(xo-server/log.delete): delSync does not exist
Fixes #3372
2018-08-29 18:21:48 +02:00
Julien Fontanet
1f0bfe2518 chore: update dependencies 2018-08-29 15:06:11 +02:00
Julien Fontanet
c5eae6e498 chore(xo-vmdk-to-vhd): remove unnecessary Babel runtime 2018-08-29 15:06:11 +02:00
Julien Fontanet
bfcdd29f10 chore(xo-collection): remove unnecessary Babel runtime 2018-08-29 15:06:11 +02:00
Julien Fontanet
8db0b59fe1 chore(fs): remove unnecessary Babel runtime 2018-08-29 15:06:10 +02:00
Julien Fontanet
6bc4c03b4c chore(vhd-cli): remove unnecessary Babel runtime 2018-08-29 15:06:10 +02:00
Julien Fontanet
4d63f93390 chore(vhd-lib): remove unnecessary Babel runtime 2018-08-29 15:06:10 +02:00
Pierre Donias
9722f2a5bd fix(xo-web/createVms): dont noop confirm modal rejection (#3371)
Fixes #3268
2018-08-29 13:14:07 +02:00
Pierre Donias
ee9c6817d6 fix(xo-web/new XOSAN): ignore detached local SRs (#3370) 2018-08-29 10:57:39 +02:00
Jon Sands
58564306ca (docu) fix backup grammar (#3369)
* (docu) fix backup grammar
2018-08-28 20:35:46 +02:00
Julien Fontanet
17c6f1762d chore: update dependencies 2018-08-28 20:29:29 +02:00
Julien Fontanet
17f13307bb fix(xo-server/listVmBackupsNg): dont fail on problematic remote (#3367)
Fixes #3365
2018-08-28 17:04:32 +02:00
Pierre Donias
a43c141ddd fix(xo-server/self): synchronize allocate and release together (#3368) 2018-08-28 16:54:17 +02:00
Pierre Donias
1e6da359cc fix(CHANGELOG): wrong xo-server version 2018-08-27 16:37:59 +02:00
Pierre Donias
626a9a777f feat(xo-web): 5.25.1 2018-08-27 16:35:04 +02:00
Pierre Donias
2768ad9e3b feat(xo-server): 5.25.2 2018-08-27 16:33:52 +02:00
Pierre Donias
3eec8f1a55 chore(CHANGELOG): 5.25.1 2018-08-27 16:28:36 +02:00
badrAZ
6148daa8b8 fix(CHANGELOG): move fix to correct release (#3357) 2018-08-27 16:17:54 +02:00
Julien Fontanet
338de7985f chore(docs/troubleshooting): must restart after memory setting 2018-08-27 15:59:33 +02:00
Julien Fontanet
df99528445 chore(CHANGELOG): improve import/export VDI entry 2018-08-27 14:41:10 +02:00
Julien Fontanet
890901366d fix(xo-server/{export,import}Vm): dont pass host (#3364)
Relies on redirection handling in `xen-api`.
2018-08-27 14:33:14 +02:00
Julien Fontanet
13271aa196 fix(CHANGELOG): move fix in next release 2018-08-27 11:45:59 +02:00
badrAZ
71aea20c7d fix(xo-server/jobs): fix race condition between end log and consolidation (#3238)
Fixes #3018
2018-08-27 11:44:50 +02:00
Julien Fontanet
b09da76b04 fix(xo-server/{export,import}Vdi): dont pass host (#3355)
Relies on redirection handling in `xen-api`.

Fixes #3354
2018-08-27 11:03:08 +02:00
Pierre Donias
ce35bbaeb4 fix(xo-server,xo-web): NFS remotes mount options (#3363)
Fixes #3361
2018-08-27 10:39:35 +02:00
Julien Fontanet
0034f0a1d3 feat(xo-server): 5.25.1 2018-08-23 13:47:52 +02:00
Julien Fontanet
e3391fa81f fix(xo-server/file restore): await addDirectory() 2018-08-23 13:47:30 +02:00
Pierre Donias
bacdc63c70 feat(xo-web): 5.25.0 2018-08-23 12:37:53 +02:00
Pierre Donias
b0285799c6 feat(xo-server): 5.25.0 2018-08-23 12:36:43 +02:00
Pierre Donias
f8b34c5d64 feat(@xen-orchestra/fs): 0.3.0 2018-08-23 12:33:21 +02:00
Pierre Donias
40f4a66bda feat(xo-server-backup-reports): 0.13.0 2018-08-23 12:30:56 +02:00
Pierre Donias
6125dae158 chore(CHANGELOG): 5.25.0 2018-08-23 12:26:45 +02:00
Pierre Donias
dfe4a934e9 feat(remotes): allow setting NFS mount options (#3353)
Fixes #1793
2018-08-23 11:34:56 +02:00
badrAZ
ecc33f46ab fix(xo-web/backup-ng/new): fix selected SRs issues (#3352)
Issue introduced in ec869ffd
2018-08-23 11:32:30 +02:00
Julien Fontanet
00d1985cf9 feat(xo-server/jobs): add job name to logs (#3351)
Fixes #3272
2018-08-23 11:29:42 +02:00
badrAZ
138aed8ae1 feat(xo-web/backup-ng/new): set default retention to 1 (#3290)
Fixes #3134
2018-08-23 10:18:29 +02:00
badrAZ
def9f947b7 feat(xo-web/new-vm): show error when getting coreOS default template fails (#3343)
Fixes #3227
2018-08-23 10:15:45 +02:00
Julien Fontanet
20dc4af4a4 fix(xo-server/importVdiContent): HOST → host 2018-08-22 18:07:57 +02:00
Julien Fontanet
4d2909567c feat(xo-server/snapshotVm): tag xo-disable-quiesce (#3350) 2018-08-22 15:15:05 +02:00
Julien Fontanet
92a93e4393 chore(xo-server): use xen-api 0.18.0 2018-08-21 18:27:45 +02:00
Julien Fontanet
389967d40c feat(xen-api): 0.18.0 2018-08-21 18:24:04 +02:00
Julien Fontanet
d66e8f29b7 feat(xen-api): add methods to mutate fields
- `setField()`
- `setFieldEntry()`
- `unsetFieldEntry()`
- `setFieldEntries()`
2018-08-21 18:15:38 +02:00
Julien Fontanet
3e9425bf79 feat(xen-api): add getRecordByUuid() 2018-08-21 17:49:37 +02:00
Julien Fontanet
41506e785e feat(xen-api/getRecord): add $id, $type and $ref props 2018-08-21 17:48:58 +02:00
Julien Fontanet
32d7ccfea5 feat(xen-api): expose null reference 2018-08-21 17:46:59 +02:00
Julien Fontanet
8a9f952ada feat(xen-api): support encoded credentials in URL 2018-08-21 17:46:18 +02:00
badrAZ
d15efae43f fix(xo-web/backup-ng/new): always show compression when full mode (#3345)
Fixes #3236
2018-08-21 10:12:36 +02:00
Julien Fontanet
627c06f4a8 fix(xo-acl-resolver): minor fixes
Due to 563969f2
2018-08-20 17:59:26 +02:00
Julien Fontanet
3e6201e93a chore(xo-server-auth-ldap): use Babel 7 2018-08-20 17:17:26 +02:00
Julien Fontanet
b941a649b5 chore(xo-server-usage-report): use Babel 7 2018-08-20 17:14:14 +02:00
Julien Fontanet
7b2b9ca618 chore(xo-server-load-balancer): use Babel 7 2018-08-20 17:12:33 +02:00
Julien Fontanet
404cf2b7e6 chore(xo-server-backup-reports): use Babel 7 2018-08-20 17:10:43 +02:00
Julien Fontanet
42698293de chore(xo-server-cloud): use Babel 7 2018-08-20 17:04:30 +02:00
Julien Fontanet
563969f2e9 chore(xo-acl-resolver): remove build step 2018-08-20 16:56:32 +02:00
Julien Fontanet
887e21daa5 chore: drop Node 4 compat for XO pkgs 2018-08-20 16:49:27 +02:00
badrAZ
b75a2a8dca feat(xo-web/backup-ng/new): move VMs' selection to dedicated card (#3338)
See #2711
2018-08-20 16:32:28 +02:00
badrAZ
31f32ba23c fix(xo-web/backup-ng/new): rename Export Ret. to Backup Ret. and Copy Ret. to Replication Ret. (#3337)
See #2711
2018-08-20 16:29:55 +02:00
badrAZ
936a4068d5 feat(xo-web/backup-ng/new): ignore replicated VMs by default in smart mode (#3312)
Fixes #2338
2018-08-20 16:29:10 +02:00
Julien Fontanet
266f287774 chore(xen-api): use Babel 7 2018-08-20 15:51:07 +02:00
badrAZ
5808485812 fix(CHANGELOG): missing release of backup-reports (#3341) 2018-08-20 13:51:46 +02:00
Olivier Lambert
b6dd83e32b feat: add local ext SR creation (#3335)
Fixes #3332
2018-08-19 17:12:36 +02:00
Julien Fontanet
2236bd71c4 chore: format with Prettier 2018-08-19 16:46:34 +02:00
badrAZ
ec869ffdd3 feat(xo-web/backup-ng/new): tip when thick-provisioned SR (#3333)
Fixes #3291
2018-08-17 15:31:06 +02:00
badrAZ
1aa4966a92 feat(xo-web/SelectTag): allow non existing tags (#3316) 2018-08-17 10:05:20 +02:00
badrAZ
235da199f9 chore(xo-web/backup-ng): remove useless computed (#3317) 2018-08-16 16:17:02 +02:00
badrAZ
4cad820271 fix(xo-web/select-objects): adding or removing an item from a select make the missing objects disappear (#3315) 2018-08-16 16:11:18 +02:00
Rajaa.BARHTAOUI
4a0b29e1f2 fix(xo-server/migrateVm): take VDIs of snapshot into account (#3298)
See #2557
2018-08-16 15:00:45 +02:00
badrAZ
1db9ca9e31 fix(xo-server/scheduling): default name should be an empty string (#3325) 2018-08-16 14:41:34 +02:00
Julien Fontanet
942ddfa742 feat(xo-server/remotes): sync on use (#3320)
Fixes #2852
2018-08-16 14:39:24 +02:00
Pierre Donias
355cddc044 feat(xo-web/VM): always show Convert button + better label (#3319)
Fixes #3201
2018-08-16 10:14:13 +02:00
Julien Fontanet
c23cccf2ce fix(xo-server/remotes): dont change enabled state on errors (#3318)
See #2852
2018-08-14 17:46:10 +02:00
Julien Fontanet
1407fb7bab chore(xo-server/remotes): merge _getRemote() and getRemote() 2018-08-14 17:10:18 +02:00
Julien Fontanet
4ba542b70f chore(xo-server/remotes): inline Remotes#create() 2018-08-14 17:10:18 +02:00
Julien Fontanet
76f75401ee chore(xo-server/remotes): store handler instances 2018-08-14 17:10:18 +02:00
Julien Fontanet
011cc7ad65 chore(xo-server/updateRemote): remove unused error param 2018-08-14 17:10:17 +02:00
Julien Fontanet
b966e6097f chore(xo-server/models/Remote): remove save() 2018-08-14 17:10:17 +02:00
Julien Fontanet
809e1a35cd chore(xo-server/models/Acl): inline create() and hash() 2018-08-14 17:10:17 +02:00
Julien Fontanet
8e7e1fccbe chore(xo-server/Model): remove unused validate() 2018-08-14 17:10:16 +02:00
Julien Fontanet
e86b30f205 chore(xo-server/Model): remove unused initialize() 2018-08-14 17:10:16 +02:00
Rajaa.BARHTAOUI
7dc0c4cf15 fix(xo-web/New VM): filter out SRs that are not in the template's pool (#3070)
Fixes #3068, fixes #3267
2018-08-14 16:51:32 +02:00
Rajaa.BARHTAOUI
561a9f140d feat(xo-web/host/logs): use SortedTable actions (#3313)
See #3179
2018-08-14 16:28:19 +02:00
badrAZ
ba56114e9f fix(xo-web/backup-ng/new): schedule's name overridden with undefined if it's not been edited (#3288)
Fixes #3286
2018-08-14 12:18:41 +02:00
Pierre Donias
11bd75d2fe feat(xo-web/tasks): remove empty message and let SortedTable handle it (#3305) 2018-08-13 17:21:18 +02:00
Julien Fontanet
ececbaf201 fix(xo-server/remotes): properly ignore async errors 2018-08-13 16:55:56 +02:00
Julien Fontanet
1985134d94 chore(xo-server/remotes): use Array#forEach() 2018-08-13 16:55:56 +02:00
Julien Fontanet
2cc59078b1 chore(xo-server/remotes): inline syncAllRemotes() and forgetAllRemotes() 2018-08-13 16:55:56 +02:00
Julien Fontanet
3d4d7db5da feat(xo-server/logs): double number of entries 2018-08-13 16:55:56 +02:00
Pierre Donias
dc40ceaafe feat(xo-web/SortedTable): always show filter input (#3296)
Fixes #3295
2018-08-13 16:44:31 +02:00
Rajaa.BARHTAOUI
0110e223ee feat(xo-web/Collapse): size prop (#3299) 2018-08-13 14:58:39 +02:00
Julien Fontanet
e7467dca8a feat(xo-server/backupNg): support restoring directories (#3300)
See #1924
2018-08-13 13:32:25 +02:00
Julien Fontanet
4a1e87b534 feat(xen-api/cli): add diff() helper 2018-08-13 11:53:56 +02:00
Olivier Lambert
5a32f904bc add no matching VMs error into troubleshooting for backup (#3297)
* add no matching VMs error into troubleshooting for backup
2018-08-12 10:43:13 +02:00
Julien Fontanet
14d023a9f5 feat(xo-server): 5.24.2 2018-08-10 16:50:43 +02:00
Julien Fontanet
2e5e81e93e feat(xen-api): 0.17.1 2018-08-10 16:50:11 +02:00
Julien Fontanet
c9cc106be6 feat(xo-server): 5.24.1 2018-08-10 12:57:31 +02:00
Julien Fontanet
29fc17f260 fix(xen-api/putResource): ensure taskRef is not sent on probing
This fix an issue introduced in ba6b9682

Fixes #3293.
2018-08-10 12:41:35 +02:00
Julien Fontanet
c7d16fd345 chore(vhd-lib): remove deprecated assert.equal 2018-08-10 11:37:47 +02:00
Julien Fontanet
ffe29b8957 feat(xo-server-cloud): 0.2.4 2018-08-10 11:23:38 +02:00
Julien Fontanet
be1bd9254d chore: update dependencies 2018-08-10 11:21:59 +02:00
Pierre Donias
6156649faa feat(xo-server-cloud): 0.2.3 2018-08-09 17:41:53 +02:00
Pierre Donias
2edddaa835 feat(xo-web): 5.24.0 2018-08-09 17:07:04 +02:00
Pierre Donias
d00fff3d4c feat(xo-server): 5.24.0 2018-08-09 17:05:10 +02:00
Pierre Donias
c0b84ae848 feat(@xen-orchestra/fs): 0.2.1 2018-08-09 16:59:43 +02:00
Pierre Donias
f68d1539aa feat(xen-api): 0.17.0 2018-08-09 16:55:25 +02:00
Pierre Donias
455e48596c chore(CHANGELOG): 5.24.0 2018-08-09 16:50:54 +02:00
badrAZ
ba6b968256 fix(xen-api/putResource): dont loose task ref on redirect (#3243)
Fixes #3245
2018-08-09 16:44:52 +02:00
Pierre Donias
8fbf2786fd feat(xo-server/patching): check date consistency before patching (#3292)
Fixes #3056
2018-08-09 16:10:13 +02:00
badrAZ
06d38808be feat(xo-server/jobs): send report for interrupted jobs on server start (#3164)
Fixes #2998
2018-08-09 15:45:28 +02:00
Olivier Lambert
49565a672b doc improvements and text fixes (#3289) 2018-08-08 17:05:15 +02:00
marcpezin
2d980f3d50 Supported version list (#3279)
* XCP/XS Supported version list
2018-08-08 14:58:56 +02:00
badrAZ
e29ba3e0cf feat(xo-web/backup-ng/new): remove previous backups first (#3260)
Fixes #3212
2018-08-08 14:32:28 +02:00
badrAZ
dff342d2bd feat(xo-web/backup-ng): rename "Export ret." to "Backup ret." and "Copy ret." to "Replication ret." (#3283)
See #2711
2018-08-08 14:11:22 +02:00
badrAZ
d38ad3a17f feat(xo-web/backup-ng/new): move compression in the advanced settings (#3281)
See #2711
2018-08-08 11:45:34 +02:00
Pierre Donias
ce21da4146 fix(xo-web/VM): missing data prop on Copiable (#3282) 2018-08-08 11:42:45 +02:00
badrAZ
09a381806b fix(xo-web/backup-ng/new): the compression default value should be false (#3280)
See #2711
2018-08-08 11:03:29 +02:00
badrAZ
0ca7b8539f chore(xo-web/backup-ng/new): better "settings" management (#3259) 2018-08-08 10:36:33 +02:00
Julien Fontanet
cc90d41be4 fix(fs/SMB): rename should replace existing files (#3278)
Fixes #3224
2018-08-08 10:32:08 +02:00
badrAZ
a7dd83772e feat(xo-web/backup-ng/overview): list the backup job's modes (#3277)
Fixes #3169
2018-08-07 17:22:12 +02:00
Rajaa.BARHTAOUI
eea52b5166 feat(xo-web/health/alarms): use SortedTable actions (#3271)
See #3179
2018-08-07 17:20:59 +02:00
Rajaa.BARHTAOUI
4c20e89a8b feat(xo-web/health/orphanedSnapshotVdis): use SortedTable actions (#3270)
See #3179
2018-08-07 16:53:57 +02:00
badrAZ
0d88a9f8f4 fix(xo-web/backup-ng/new): job's global settings can be undefined (#3275)
Introduced by the PR #3237
2018-08-07 16:15:02 +02:00
Rajaa.BARHTAOUI
7ad4fc0e6c feat(xo-web/health/orphanedVms): use SortedTable actions (#3274)
See #3179
2018-08-07 15:08:53 +02:00
badrAZ
c7c205d52f feat(xo-web/vm): move the copy clipboard of the VM's UUID to the header (#3248)
Fixes #3221
2018-08-07 14:17:47 +02:00
badrAZ
cdc43a6cde feat(xo-web/backup-ng/new): make the smart mode's toggle more visible (#3263)
See #2711
2018-08-06 11:50:01 +02:00
badrAZ
a58a9a9e6a feat(xo-web/ActionButton): ability to set the icon's color (#3258)
See PR: #3255
2018-08-06 11:11:58 +02:00
badrAZ
9d2f15cf33 chore(xo-web/backup-ng/new): better globalSettings management (#3237) 2018-08-06 11:06:32 +02:00
badrAZ
2d596af9a5 fix(xo-webpool/tab-advanced): GPU groups not filtered by pool (#3253)
Fixes #3176
2018-08-06 10:57:16 +02:00
badrAZ
f70a25e82f feat(xo-web/settings/remotes): make SMB subfolder field optional (#3250)
Fixes #3249
2018-08-06 10:35:39 +02:00
Pierre Donias
33859303bd Revert "fix(xen-api/getResource): softer backpressure to prevent XS75 error (#3234)"
This reverts commit b9f3313903.
2018-08-06 09:59:50 +02:00
bchool
1ed0c01add Extra packages XO needs for FLR on Debian (#3240)
This resolves #3239
2018-07-28 17:56:55 +02:00
Pierre Donias
dfcd41992a feat(xo-web): 5.23.0 2018-07-26 16:20:37 +02:00
Pierre Donias
26cb388c64 feat(xo-server): 5.23.0 2018-07-26 16:19:25 +02:00
Pierre Donias
b2be6e5d5b feat(xo-server-backup-reports): 0.12.3 2018-07-26 16:16:10 +02:00
Pierre Donias
2fec62968e feat(complex-matcher): 0.4.0 2018-07-26 16:11:39 +02:00
Pierre Donias
b15a6963e4 chore(@xen-orchestra/fs): use xo-remote-parser@0.5.0 2018-07-26 16:06:00 +02:00
Pierre Donias
f7b4f78c8d feat(xo-remote-parser): 0.5.0 2018-07-26 16:01:16 +02:00
Pierre Donias
9bebfe71ac feat(xen-api): 0.16.12 2018-07-26 14:10:59 +02:00
Pierre Donias
a7b3e8e59c chore(CHANGELOG): 5.23.0 2018-07-26 13:59:07 +02:00
Pierre Donias
b9f3313903 fix(xen-api/getResource): softer backpressure to prevent XS75 error (#3234)
Fixes #3205

https://bugs.xenserver.org/browse/XSO-873
2018-07-26 13:53:00 +02:00
Pierre Donias
9c4bd0d0dd feat(xo-web/backup NG): remove delete button on logs (#3235)
Fixes #3153
2018-07-26 11:49:59 +02:00
badrAZ
ac2e490569 feat(xo-web/settings/remotes): ability to edit/delete a remote with an invalid URL (#3226)
Fixes #3182
2018-07-26 11:29:33 +02:00
Jon Sands
114cf7ac7d (Documentation) Add password recovery step for web UI (#3233)
* fix XOSAN links

* Fix default SR command + cleanup

* add more coalesce debug info

* remove extra space

* add password recovery step
2018-07-25 23:45:08 +02:00
badrAZ
255e0c61d5 feat(xo-web): implementation of the pool item component (#3229)
See #2605
2018-07-25 14:57:43 +02:00
badrAZ
288868fe91 feat(xo-web/backup-ng/new): ability to set a job's timeout (#3222)
Fixes #2978
2018-07-25 14:43:35 +02:00
badrAZ
aba7b730f5 fix(xo-web/backup-ng/new): ability to edit a schedule's state (#3228)
Fixes #3223
2018-07-25 14:36:44 +02:00
badrAZ
b95fc86667 feat(xo-web/setting/remotes): ability to change the type of a remote (#3207) 2018-07-25 14:24:25 +02:00
badrAZ
0ed1df3af6 feat(xo-web/backup-ng/new): ability to edit a schedule's name (#3143)
See #2711
Fixes #3071
2018-07-25 14:08:02 +02:00
Jon Sands
eff38b9aee (Documentation) add more coalesce debug info (#3230)
* fix XOSAN links

* Fix default SR command + cleanup

* add more coalesce debug info

* remove extra space
2018-07-24 23:45:49 +02:00
Pierre Donias
53477be12d feat(xo-web/VM,SR): import VDI content (#3216)
See #2432
2018-07-23 09:24:44 +02:00
Julien Fontanet
d99555a4a8 feat(xo-server/backupNg): remove incomplete XVAs (#3215)
Fixes #3159
2018-07-20 15:29:38 +02:00
Julien Fontanet
f00be23e02 chore(package): update eslint-config-standard to 12.0.0-alpha.0 2018-07-20 14:57:13 +02:00
Julien Fontanet
ee6025f3ad fix(xo-server/backupNg/migration): migrate reportWhen (#3206)
Fixes #3180
2018-07-20 14:03:07 +02:00
Julien Fontanet
990c0e570d feat(xo-server/backup NG): disable vmTimeout 2018-07-20 13:58:45 +02:00
Julien Fontanet
b07b4e3744 Revert "fix(xo-server/jobs): serialize all fields"
This reverts commit d51527b2d8.

Causing too much issues, a new approach is developed in #3209.
2018-07-19 18:39:36 +02:00
Julien Fontanet
6d25e11f72 feat(xo-server/disk.exportContent): print stream errors 2018-07-19 17:35:55 +02:00
Julien Fontanet
16c250e122 chore(xo-server/backupNg/migration): use copyRetention for replication (#3204) 2018-07-19 14:48:17 +02:00
Julien Fontanet
e6a10e1ac2 feat(complex-matcher): update docs and changelog 2018-07-19 12:03:00 +02:00
Julien Fontanet
829beb84e2 feat(complex-matcher): regexp support (#3199) 2018-07-19 12:01:57 +02:00
badrAZ
c3066921ab chore(xo-web/settings/remotes): avoid creating functions in the render (#3203) 2018-07-19 11:28:00 +02:00
badrAZ
ca424f166b chore(xo-web/settings/remotes): pass formatMessage to SortedTable (#3202)
Instead of creating new components.
2018-07-19 10:25:41 +02:00
Julien Fontanet
4192abf3c2 fix(tests): workaround a Babel bug for Node 6 2018-07-19 10:21:39 +02:00
Julien Fontanet
d51527b2d8 fix(xo-server/jobs): serialize all fields
Otherwise some strings containing valid JSON syntax are incorrectly
transformed.
2018-07-19 10:15:45 +02:00
badrAZ
a1c829e393 chore(xo-web/settings/remotes): use groupBy (#3200) 2018-07-19 09:46:23 +02:00
Julien Fontanet
7dfb1635c2 feat(complex-matcher): add glob pattern support (#3198)
Fixes #3190
2018-07-18 15:06:33 +02:00
Julien Fontanet
e58d56a656 chore(complex-matcher/StringNode): bind lcValue to match 2018-07-18 12:37:33 +02:00
Pierre Donias
93037ee44f fix(xo-server/api): disk.importContent description, params & resolve (#3197) 2018-07-18 11:29:20 +02:00
Julien Fontanet
ecd8265098 chore(xo-web): downgrade modular-cssify to 12
Work around an issue with 14 which breaks in watch mode
2018-07-17 18:19:03 +02:00
Pierre Donias
4c73cfa423 feat(xo-web/VM,SR): export VDI content (#3194)
See #2432
2018-07-17 13:38:23 +02:00
Julien Fontanet
19b3c207c7 feat(xo-server/api): disk.importContent (#3193)
See #2432
2018-07-17 12:04:35 +02:00
Julien Fontanet
58d4408909 fix(xo-server/api/disk): coding style 2018-07-17 11:22:00 +02:00
Julien Fontanet
4925e678ed chore: update dependencies 2018-07-17 11:21:45 +02:00
Julien Fontanet
7d14705dcf feat(xo-server/api): disk.exportContent (#3192)
See #2432
2018-07-17 11:08:25 +02:00
Julien Fontanet
5d0040acd1 chore(xo-server/api/vm): remove unnecessary exports 2018-07-17 10:35:38 +02:00
Julien Fontanet
8aa6c6551b feat(vhd-cli/info): support incomplete file 2018-07-17 10:35:38 +02:00
badrAZ
c9f08a2f8f fix(xo-server-backup-reports): dont bail on successful VM with reportWhen failure (#3185)
Fixes #3181
2018-07-16 11:30:25 +02:00
Pierre Donias
70b17a6fa9 feat(xo-web): 5.22.1 2018-07-13 13:55:10 +02:00
Pierre Donias
c1a118f2a1 chore(CHANGELOG): 5.22.1 2018-07-13 13:52:47 +02:00
badrAZ
fa3eb1cdf5 fix(xo-web/select-objects#SelectRemote): gracefully ignore remotes with invalid URL (#3178) 2018-07-13 11:09:52 +02:00
Jon Sands
16a6902bd2 (Docu) Fix default SR command + cleanup (#3177)
* fix XOSAN links

* Fix default SR command + cleanup
2018-07-13 09:52:01 +02:00
Pierre Donias
296e30a40f feat(xo-web): 5.22.0 2018-07-12 15:25:44 +02:00
Pierre Donias
03f6e33fd2 feat(xo-server): 5.22.0 2018-07-12 15:24:28 +02:00
Pierre Donias
dde4410a1b feat(vhd-cli): 0.1.0 2018-07-12 15:22:07 +02:00
Pierre Donias
191af334e7 feat(vhd-lib): 0.3.0 2018-07-12 15:20:18 +02:00
Pierre Donias
69d5abc840 feat(fs): 0.2.0 2018-07-12 15:17:19 +02:00
Pierre Donias
0e4b0ce768 chore: use xo-remote-parser 0.4 2018-07-12 15:14:20 +02:00
Pierre Donias
d065887ffd feat(xo-remote-parser): 0.4.0 2018-07-12 15:03:27 +02:00
Pierre Donias
de33f33c0f chore(CHANGELOG): 5.22.0 2018-07-12 14:58:56 +02:00
Julien Fontanet
aa45032364 feat(fs/smb): implement open/read/close (#3175)
Fixes #3149
2018-07-12 14:55:11 +02:00
badrAZ
4f6c515cef feat(xo-web): add Turkish translation (#3174)
Thanks @rizaemet!
2018-07-12 14:54:36 +02:00
Rajaa.BARHTAOUI
3ed081f04c feat(xo-web/VM/Snapshots): add fast clone option when creating a VM (#3136)
Fixes #3120
2018-07-12 14:45:59 +02:00
badrAZ
3370014ddf feat(xo-web/backup-ng/logs): link XO objects (#3171)
See #2711 #2605
2018-07-12 13:22:38 +02:00
Julien Fontanet
3241c426a2 feat(xo-server): add AMAP data on VDI export/import errors (#3172)
Fixes #3157
2018-07-12 11:07:28 +02:00
badrAZ
961babe6a3 feat(xo-server-backup-reports): handle interrupted backups (#3154)
See #2998
2018-07-12 10:49:00 +02:00
Julien Fontanet
b654cba4b4 chore(xo-server/backups-ng): update TODO list 2018-07-12 10:40:22 +02:00
Julien Fontanet
4bf4de1979 chore(fs/local#_createReadStream): coding style 2018-07-12 10:39:50 +02:00
Julien Fontanet
c2c62b20f0 chore(fs/smb#_getClient): remove unnecessary param 2018-07-11 10:23:49 +02:00
badrAZ
f6e48adc28 fix(xo-web/settings/remotes): gracefully ignore remotes with invalid URL (#3167)
See #3158
2018-07-10 15:57:57 +02:00
Pierre Donias
80c1c81514 fix(xo-server/Xapi): createTemporaryVdiOnSr bad SR param (#3166) 2018-07-10 15:05:51 +02:00
badrAZ
16f8029e69 fix(xo-web/new-vm): only create cloud config drive when enabled (#3162)
This bug has been introduced by the PR: #3054

Fixes #3161
2018-07-09 11:07:43 +02:00
badrAZ
072dea71f0 fix(settings/remotes): port default value is undefined (#3160)
Fixes #3158
2018-07-09 09:51:29 +02:00
Jon Sands
ff1892057d fix XOSAN links (#3156) 2018-07-06 22:25:56 +02:00
badrAZ
cdc2ac2d9b feat(xo-web/VM/Snapshots): notify the result of reverting a VM (#3150)
Fixes #3095
2018-07-06 11:20:27 +02:00
badrAZ
de76387c8f fix(xo-server/cloud-config): templates be available to all users (#3148)
Fixes #3147
2018-07-05 17:15:06 +02:00
badrAZ
939b416d2e fix(xo-web): missing file from #3131 (#3146) 2018-07-05 17:14:16 +02:00
badrAZ
f1b1c4ae13 feat(xo-web/backup-ng/overview): display non-default advanced settings (#3145)
Fixes #3087
2018-07-05 14:40:07 +02:00
badrAZ
d38a4ccf08 feat(xo-web/backup-ng/new): add offline snapshot info (#3144) 2018-07-05 11:35:14 +02:00
badrAZ
fb1bf6a1e7 feat(NFS remote): allow optional port (#3131)
Fixes #2299
2018-07-05 11:09:34 +02:00
Julien Fontanet
46100729b0 feat(xo-web/settings/remotes): warning when creating a local remote (#3142)
Fixes #3105
2018-07-05 10:24:12 +02:00
Pierre Donias
4916643fdc PR 2018-07-04 15:46:21 +02:00
Pierre Donias
124d743052 feat(xo-web/settings/remotes): warning when creating a local remote
Fixes #3105
2018-07-04 15:41:25 +02:00
Pierre Donias
dfdc2a62ab fix(xo-web/settings/remotes): correctly reset form (#3141)
Fixes #3140
2018-07-04 15:29:16 +02:00
badrAZ
76f3bc0758 feat(xo-web/backup-ng/logs): make copy to clipboard and report buttons always available (#3133)
Fixes #3130
2018-07-03 16:16:12 +02:00
Julien Fontanet
e16971c31a feat(xo-server/backup NG): job level timeout (#3129)
See #2978
2018-07-02 16:21:07 +02:00
badrAZ
c4b9e36346 feat(xo-web/backup-ng/new): add a link to the remotes' settings (#3128)
See #2711
See #2299
Fixes #3106
2018-07-02 14:47:11 +02:00
Julien Fontanet
c95fe164cf feat(vhd-cli): new command merge
See #2792
2018-07-02 14:07:37 +02:00
Julien Fontanet
f1964f3380 feat(vhd-lib/mergeVhd): report progress
Fixes #3099
2018-07-02 14:07:37 +02:00
Julien Fontanet
84701cb7e2 fix(xo-server/job.delete): delete related schedules (#3124)
Fixes #3108
2018-06-29 16:20:13 +02:00
Julien Fontanet
f8a2f2d3cd Merge branch 'xo/master' 2018-06-29 15:26:25 +02:00
Julien Fontanet
4b092a5a7f chore(docs): prepare for merge 2018-06-29 15:24:53 +02:00
Julien Fontanet
33e8cb81bb chore(PR template): add packages to CHANGELOG 2018-06-28 17:27:53 +02:00
Julien Fontanet
e2b29be6a8 feat(xo-web): 5.21.0 2018-06-28 14:19:17 +02:00
Julien Fontanet
6f9dad8999 feat(xo-server): 5.21.0 2018-06-28 14:18:47 +02:00
Julien Fontanet
089cffcca1 feat(xo-server-load-balancer): 0.3.2 2018-06-28 14:14:48 +02:00
Julien Fontanet
88df5a8337 feat(xen-api): 0.16.11 2018-06-28 14:13:35 +02:00
Julien Fontanet
794c1cf89b feat(vhd-lib): 0.2.0 2018-06-28 14:10:08 +02:00
Julien Fontanet
9a5eea6e78 chore(CHANGELOG): 5.21.0 2018-06-28 13:58:44 +02:00
badrAZ
40568cd61f feat(xo-web/backup-ng/logs): copy full log and report a failed job (#3110)
Fixes #3100
2018-06-28 10:57:35 +02:00
Pierre Donias
358e1441cc fix(xo-server/pool.mergeInto): fail when product brands are different (#3118)
Fixes #3061
2018-06-28 10:10:55 +02:00
badrAZ
be930e127e fix(xo-web/vm/snapshots): creation from snapshot (#3117) 2018-06-28 10:03:19 +02:00
badrAZ
3656e83df5 feat(backup-ng/logs): add the job's name to the modal's title (#3115)
See #2711
2018-06-27 17:43:06 +02:00
badrAZ
abbb0450f8 feat(xo-web/backup-ng/logs): remove Mode column (#3116)
See #2711
2018-06-27 17:41:03 +02:00
Pierre Donias
8e4beeb00f feat(xo-web/backup-ng/health): legacy snapshots table (#3111)
Fixes #3082
2018-06-27 17:25:52 +02:00
Julien Fontanet
05d10ef985 feat(xo-web/settings/remotes): type defaults to NFS (#3114)
Fixes #3103
2018-06-27 17:04:55 +02:00
Pierre Donias
989d27154d fix(xo-web/backup/health): missing schedule subscription (#3104)
Also, move the table from `Backup/Health` to `Backup NG/Health`.
2018-06-26 16:12:29 +02:00
Pierre Donias
ec9957bd86 feat(xo-server,xo-web/tasks): disable cancel/destroy when not relevant (#3109)
* feat(xo-server,xo-web/tasks): disable cancel/destroy when not relevant

Fixes #3076

* cancellable/destroyable → allowedOperations

* Update index.js

* Update index.js
2018-06-26 15:40:53 +02:00
Julien Fontanet
dc8a7c46e0 feat(xo-server): dont create default remote (#3107)
Related to #3105
2018-06-26 14:47:24 +02:00
Pierre Donias
9ee2d8e0c2 feat(xo-web): new backup/health view (#3102)
Fixes #3090

Move "VM snapshots related to non-existent backups" table
from dashboard/health to backup/health

### Check list

> Check items when done or if not relevant

- [x] PR reference the relevant issue (e.g. `Fixes #007`)
- [x] if UI changes, a screenshot has been added to the PR
- [x] CHANGELOG updated
- [x] documentation updated

### Process

1. create a PR as soon as possible
1. mark it as `WiP:` (Work in Progress) if not ready to be merged
1. when you want a review, add a reviewer
1. if necessary, update your PR, and readd a reviewer

### List of packages to release

> No need to mention xo-server and xo-web.

### Screenshots

![capture_2018-06-25_12 18 01](https://user-images.githubusercontent.com/10992860/41858496-56af27d0-789a-11e8-9f86-e3ce1ac28e54.png)
2018-06-25 17:59:36 +02:00
badrAZ
6c62d6840a fix(backup-ng/new): "new-schedules" dont exist anymore (#3098) 2018-06-25 14:02:10 +02:00
badrAZ
2a2135ac71 fix(xo-server-load-balancer): make the metric "memoryFree" optional (#3073) 2018-06-22 19:00:27 +02:00
badrAZ
efaad2efb2 feat(backup-ng/new): ability to enable/disable a schedule (#3094)
Fixes #3062
2018-06-22 17:25:31 +02:00
badrAZ
3b244c24d7 feat(backup-ng/new): group saved & new schedules (#3093)
See #2711
2018-06-22 16:23:12 +02:00
badrAZ
915052d5f6 feat(backup NG): ability to cancel a running job (#3053)
Fixes #3047
2018-06-22 09:10:10 +02:00
Pierre Donias
05c6c7830d feat(xo-web/backups): add blog link to deprecation message (#3092)
Fixes #3089
2018-06-21 16:48:28 +02:00
badrAZ
0217c51559 fix(backup-ng/new): only list writable SRs for CR/DR (#3085)
Fixes #3050
2018-06-21 15:41:16 +02:00
badrAZ
0c514198bb feat: ability to save cloud configs (#3054)
Fixes #2984
2018-06-21 15:02:52 +02:00
Pierre Donias
0e68834b4c chore(xo-web): multiple minor fixes (#3091) 2018-06-21 12:10:38 +02:00
Julien Fontanet
ee99ef6264 feat(vhd-lib): createContentStream (#3086)
Export the raw content of the VHD as a stream.

This features is exposed in CLI: `vhd-cli raw input.vhd output.raw`

Related to #3083

Perf comparison between qemu-img and our vhd-cli to convert a 10GiB VHD file to raw:

```
> time qemu-img convert -f vpc -O raw origin.vhd expected.raw
1.40user 15.19system 1:01.88elapsed 26%CPU (0avgtext+0avgdata 24264maxresident)k
20979008inputs+20971520outputs (12major+4648minor)pagefaults 0swaps
> time vhd-cli raw origin.vhd actual.raw
21.97user 16.03system 1:09.11elapsed 54%CPU (0avgtext+0avgdata 65208maxresident)k
20956008inputs+20972448outputs (1major+754101minor)pagefaults 0swaps

> md5sum *.raw
b55ec6924be750edd2423e4a7aa262c3  actual.raw
b55ec6924be750edd2423e4a7aa262c3  expected.raw
```
2018-06-20 17:53:20 +02:00
badrAZ
bebb9bf0df fix(XapiStats/iowait): don't scale XAPI values (#3079)
Fixes #2969
2018-06-19 16:16:07 +02:00
badrAZ
4830ac9623 fix(xo-server/xapi-stats): specify the wanted step when requesting the RRD (#3078)
Fixes #3026
Fixes #3075
2018-06-18 18:32:16 +02:00
badrAZ
58b1d0fba8 fix(xo-server-load-balancer): issue whith a mutation of a var (#3077) 2018-06-18 16:01:26 +02:00
Julien Fontanet
cc4e69e631 feat(xo-server): 5.20.3 2018-06-16 17:05:54 +02:00
Julien Fontanet
e14fda6e8a feat(xen-api): 0.1.3 2018-06-16 17:05:27 +02:00
Julien Fontanet
ec48b77af3 feat(xen-api): add task record to task errors 2018-06-16 15:24:26 +02:00
Julien Fontanet
c7d6a19864 fix(xo-server/full backup NG): do not fork if 1 target 2018-06-16 15:24:26 +02:00
Julien Fontanet
7d714c8ce4 feat(xo-server): 5.20.2 2018-06-16 13:51:51 +02:00
Julien Fontanet
f70989c3a2 feat(delta NG): fix UUID of existing VHDs 2018-06-16 13:51:03 +02:00
Julien Fontanet
70490988b0 chore(xo-server/backupNg): add parseUuid util function 2018-06-16 13:51:03 +02:00
Julien Fontanet
d0795fdded feat(vhd-lib): make footer.{uuid,parentUuid)} a buffer 2018-06-16 13:51:03 +02:00
Julien Fontanet
1c736e9910 feat(xo-web): 5.20.2 2018-06-15 15:35:26 +02:00
Julien Fontanet
62979d5c22 feat(xo-server): 5.20.1 2018-06-15 15:35:00 +02:00
Julien Fontanet
ec8a4da73c feat(xo-vmdk-to-vhd): 0.1.3 2018-06-15 15:34:33 +02:00
Julien Fontanet
dea1bfee01 feat(xo-server-backup-reports): 0.12.2 2018-06-15 15:32:02 +02:00
Julien Fontanet
c18b82504a feat(xen-api): 0.16.10 2018-06-15 15:30:59 +02:00
Julien Fontanet
ed5460273f feat(vhd-lib): 0.1.2 2018-06-15 15:27:21 +02:00
Julien Fontanet
b91f8b21b9 feat(fs): 0.1.0 2018-06-15 15:26:48 +02:00
Julien Fontanet
5cea18e577 feat(delta NG): check VDIs before export (#3069) 2018-06-15 15:22:12 +02:00
Julien Fontanet
148eaa6a72 fix(xo-server/backup NG): retention checks (#3072)
They were broken by the introduction of `copyRetention`.
2018-06-15 12:13:55 +02:00
Rajaa.BARHTAOUI
80794211af feat(xo-server,xo-web/snapshots): fast-clone to create VM from snapshot (#3030)
Fixes #2937
2018-06-14 15:01:19 +02:00
Rajaa.BARHTAOUI
75dcbae417 chore(xo-web/backup): deprecate legacy backup creation (#3035)
Fixes #2956
2018-06-14 14:18:17 +02:00
Rajaa.BARHTAOUI
b19682b3c5 fix(xo-web/New VM): networks predicate in Self Service mode (#3027)
Fixes #3011
2018-06-14 13:25:08 +02:00
badrAZ
dd3b97cae2 feat(backup/overview): add tooltip to migrate action button (#3067)
Fixes #3042
2018-06-14 11:06:28 +02:00
Julien Fontanet
79891235f3 chore(CHANGELOG): add missing entry related to prev commit 2018-06-13 15:34:11 +02:00
Julien Fontanet
1e2f72ab6b feat(backup NG): new setting copyRetention (#2976)
Fixes #2895
2018-06-13 15:24:46 +02:00
Julien Fontanet
66d02e3808 feat(xo-server/backup NG): more logs (#3066) 2018-06-13 13:11:03 +02:00
Julien Fontanet
275e1f8f4c chore(xo-server): Xapi#_assertHealthyVdiChains is sync 2018-06-13 12:01:41 +02:00
Julien Fontanet
84dbbb0fbb chore(xo-server/backups-ng): add FIXME 2018-06-13 11:33:05 +02:00
Julien Fontanet
a36ef5209c fix(backup NG): only display the concerned tasks (#3063)
Allows us to add other tasks if necessary without breaking xo-web listing and the backup reports.
2018-06-12 13:18:46 +02:00
badrAZ
3497889302 fix(backup-ng): only display the concerned tasks 2018-06-12 11:53:43 +02:00
badrAZ
0a2f6b4ce7 feat(xo-web/backupNg/new): improve backupNg feedback (#2873)
See #2711
2018-06-12 11:52:19 +02:00
Julien Fontanet
f8be44d746 chore(xo-server): remove Xapi#barrier legacy type param 2018-06-11 18:00:16 +02:00
Julien Fontanet
379253c5ae chore(xen-api): lodash.forEach is unnecessary here 2018-06-11 17:57:02 +02:00
Julien Fontanet
aed1ba474c chore(xen-api): remove unnecessary test
`eventWatchers` is defined if event watching is enabled which is always the case here.
2018-06-11 17:55:47 +02:00
badrAZ
bc72e67442 feat(backup NG): new option to shutdown VMs before snapshot (#3060)
Fixes #3058
2018-06-11 17:25:18 +02:00
Julien Fontanet
26c965faa9 feat(xen-api/examples): handle cancelation 2018-06-11 15:48:43 +02:00
Pierre Donias
b3a3965ed2 feat(xo-web/SR): copy VDIs' UUIDs from Disks tab (#3059)
Fixes #3051
2018-06-11 14:57:37 +02:00
Jon Sands
d7fa68248c grammar updates v17 (#141)
* remove special chars

* grammar updates v17

* fix duplicate deploy instructions, commands

fix vm start command using old VM name, clean up duplicate deploy
instructions. Also add "first login" info with default credentials
2018-06-09 09:54:50 +02:00
Julien Fontanet
7f88b46f4c chore(xen-api/examples): update deps 2018-06-08 15:36:29 +02:00
badrAZ
dd60d82d3d fix(xo-web/Backup-ng/logs): ability to retry a single failed/interrupted VM backup (#3052)
Fixes #2912
2018-06-08 10:52:38 +02:00
Julien Fontanet
4eeb995340 chore(CHANGELOG): update for next release 2018-06-08 10:32:00 +02:00
Julien Fontanet
1d29348e30 feat(xo-server-backup-reports): 0.12.1 2018-06-07 18:46:53 +02:00
Pierre Donias
a24db3f896 fix(xo-web/SortedTable): show grouped actions when all items selected (#3049)
Fixes #3048
2018-06-07 17:26:58 +02:00
Julien Fontanet
cffac27d0a feat(xo-server/jobs): implement cancelation (#3046)
Related to #3047

This is the first step toward Backup NG cancelation, the server side stuff should be ok (but need testing), so the next step is to expose it in the UI.
2018-06-07 17:20:06 +02:00
Julien Fontanet
b207cbdd77 feat(fs/read): read part of a file in an existing Buffer (#3036)
Easier to use and probably more efficient than `createReadStream` for this specific usage.
2018-06-07 17:19:33 +02:00
badrAZ
10baecefb9 fix(xo-server-backup-reports): not display size and speed if not have a transfer/merge (#3038) 2018-06-07 16:34:49 +02:00
badrAZ
42620323a9 fix(xo-web/Backup-ng): add label to Edit action (#3045)
Fixes #3043
2018-06-07 16:21:31 +02:00
Julien Fontanet
4d91006994 feat(xo-server/backupNg.getAllLogs): sort tasks (#3041) 2018-06-07 14:04:46 +02:00
badrAZ
a81f0b9a93 feat(xo-web/Backup NG/logs): display whether the export is delta/full (#3023)
See #2711
2018-06-07 12:30:44 +02:00
Julien Fontanet
2cee413ae1 chore(PR template): should reference issue 2018-06-07 12:14:58 +02:00
Nicolas Raynaud
53099eacc8 chore(xo-vmdk-to-vhd): split a file and rename some consts (#2966) 2018-06-06 16:49:18 +02:00
badrAZ
b628c5c07e fix(xo-server-backup-reports): handle the case when a transfer/merge fail (#3020) 2018-06-06 15:21:46 +02:00
Julien Fontanet
12889b6a09 fix(xo-server/Xapi#importDeltaVm): correctly copy task prop (#3034) 2018-06-06 14:26:19 +02:00
badrAZ
0c23ca5b66 feat(xo-web/Backup NG/logs): details are now dynamic (#3031) 2018-06-06 14:25:31 +02:00
Pierre Donias
d732ee3ade fix(xo-web/file restore NG): restrict to Premium (#3032) 2018-06-06 13:37:28 +02:00
badrAZ
65cb0bc4cf fix(xo-server-backup-reports): correctly send status to Nagios (#3019)
Fixes #2991
2018-06-05 17:55:06 +02:00
badrAZ
1ba68a94e3 fix(xo-server): vm.xenTools.* must be numbers (#3022) 2018-06-05 14:30:30 +02:00
Julien Fontanet
084430451a feat(xo-web): 5.20.1 2018-05-31 21:00:34 +02:00
Julien Fontanet
458a4d4efe fix(xo-web/backup NG logs): dont display size/speed if size is 0 2018-05-31 20:59:47 +02:00
Jon Sands
92a67bf5fb remove special chars (#140) 2018-05-31 20:26:07 +02:00
Jon Sands
b20a46da76 first pass of new concurrency section (#139) 2018-05-31 20:07:42 +02:00
Julien Fontanet
62eeab2a74 feat(xo-web): 5.20.0 2018-05-31 18:33:13 +02:00
Julien Fontanet
790b43910d feat(xo-server): 5.20.0 2018-05-31 18:33:13 +02:00
Julien Fontanet
ba65461c4d feat(xo-server-usage-report): 0.5.0 2018-05-31 18:29:45 +02:00
Julien Fontanet
5bd468791f feat(xo-server-backup-reports): 0.12.0 2018-05-31 18:28:21 +02:00
Julien Fontanet
37f71bb36c feat(xo-acl-resolver): 0.2.4 2018-05-31 18:26:53 +02:00
Julien Fontanet
2ed4b7ad3f feat(vhd-lib): 0.1.1 2018-05-31 17:59:02 +02:00
Julien Fontanet
7eb970f22a feat(fs): 0.0.1 2018-05-31 17:57:13 +02:00
badrAZ
13db4a8411 feat(Backup NG): improve logs (#3013) 2018-05-31 17:54:35 +02:00
badrAZ
49a7a89bbf feat(xo-web/new-vm): ability to use template vars in the CloudConfig (#3006)
Fixes #2140
2018-05-31 17:44:52 +02:00
Rajaa.BARHTAOUI
0af8a60c1c fix(xo-web/SR/disks): show VM templates attached to VDIs (#3012)
Fixes #2974
2018-05-31 17:32:34 +02:00
Rajaa.BARHTAOUI
e1650b376c fix(xo-web/Self new VM): do not auto-select resource set's 1st SR (#3007)
New behaviour: either auto-select the template's pool's default SR if
it's in the resource set or do not auto-select any SR at all

Fixes #3001
2018-05-31 16:57:52 +02:00
Rajaa.BARHTAOUI
873b40cc70 feat(xo-server,xo-web): allow setting remote syslog host (#2958)
Fixes #2900
2018-05-31 16:22:39 +02:00
Rajaa.BARHTAOUI
d45265b180 feat(xo-web): create single-server private network (#3004)
Fixes #2944
2018-05-31 11:25:08 +02:00
badrAZ
ff50b2848e feat(xo-server,xo-web): allow pool admins to create VMs (#2995)
Fixes #2350
2018-05-31 10:42:03 +02:00
Julien Fontanet
d67fae22ab chore: initial PR template 2018-05-30 18:10:11 +02:00
badrAZ
d809002558 feat(Backup NG): ability to retry a single failed VM backup (#3009)
Fixes 2912
2018-05-30 17:04:50 +02:00
Pierre Donias
5c30559d15 feat(xo-server,xo-web): handle XCP-ng patches (#3005) 2018-05-30 16:03:43 +02:00
Rajaa.BARHTAOUI
cbb5b011e1 fix(xo-web/SR/disks): show control domain VMs attached to VDIs (#3002)
Fixes #2999
2018-05-30 15:55:44 +02:00
Julien Fontanet
f5bff408a8 feat(xo-server/exportDeltaVm): dont check chain if no snapshot
Should fix a race condition with XenServer DB during Delta Backup NG.
2018-05-30 12:22:10 +02:00
Nicolas Raynaud
d7cfe4d3dc fix(vhd/merge): fix performance enhancement (#2980) 2018-05-30 10:26:15 +02:00
badrAZ
7be8f38c6b fix(xo-web/jobs/edit): support all types of inputs (#2997) 2018-05-30 10:20:22 +02:00
badrAZ
08a7e605ce feat(xo-web/backup logs): show # of calls for each state (#2860) 2018-05-30 09:58:48 +02:00
Julien Fontanet
4b57db5893 feat(xo-server/delta NG): validate parent VHD 2018-05-29 16:36:33 +02:00
Julien Fontanet
8b1ae3f3c9 fix(xo-server/delta NG): dont select tmp file as parent 2018-05-29 16:36:10 +02:00
Julien Fontanet
77d35a5928 chore(fs/Handler#list): prepend dir after filtering 2018-05-29 16:34:51 +02:00
Julien Fontanet
323d409e6c chore(package): require yarn >1.7
Previous releases prevented xo-web from being built to an incorrect resolution of dependencies.
2018-05-29 16:29:14 +02:00
Pierre Donias
9f2f2b7b69 fix(xo-web/render-xo-item): show SR container name (#3003)
Fixes #3000
2018-05-29 12:01:50 +02:00
Julien Fontanet
b44fa7beca chore(xo-server): bump xo:perf threshold to 500ms 2018-05-29 10:53:14 +02:00
Jon Sands
26bba23890 grammar updates v16 (#138)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10

* grammar updates v11

* Grammar updates v11

* Lucky #13 (grammar updates)

* grammar updates v14

* grammar updates v15

* grammar updates v16
2018-05-28 23:31:08 +02:00
Julien Fontanet
6d4e310b8e chore(vhd-cli/build): migrate to Babel 7 2018-05-28 18:18:44 +02:00
Julien Fontanet
6726530229 fix(tests): run all test with Babel 7
Temporarily disable xo-web tests which uses Babel 6.
2018-05-28 18:18:44 +02:00
Julien Fontanet
8351352541 chore(xo-remote-parser/build): migrate to Babel 7 2018-05-28 18:18:44 +02:00
Julien Fontanet
3f9e8d79ea chore(xo-collection/build): migrate to Babel 7 2018-05-28 18:18:44 +02:00
Julien Fontanet
685f2328bd chore(package): update dependencies 2018-05-28 14:54:55 +02:00
Pierre Donias
746567a8a7 fix(xo-acl-resolver,xo-web): SR & PIF ACLs inheritance (#2994) 2018-05-25 15:26:45 +02:00
Julien Fontanet
c116c41c42 chore(package): update dependencies 2018-05-25 11:42:55 +02:00
Pierre Donias
3768a7de37 fix(xo-web/select): do not auto-select disabled option (#2992) 2018-05-25 11:11:21 +02:00
Jon Sands
0c0fed2484 grammar updates v15 (#137)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10

* grammar updates v11

* Grammar updates v11

* Lucky #13 (grammar updates)

* grammar updates v14

* grammar updates v15
2018-05-25 09:59:31 +02:00
Julien Fontanet
11ef0ee54f feat(rolling snapshots legacy): check VDI chains (#2986) 2018-05-24 16:39:06 +02:00
Julien Fontanet
33ae531e3a fix(package): update hashy to 0.7.1
Correctly handle hash with identifier `2b`.
2018-05-24 14:52:38 +02:00
Julien Fontanet
8cc9924751 feat(xo-server/importDeltaVm): add UUID of missing base VM 2018-05-24 00:04:52 +02:00
Julien Fontanet
c329ab863b feat(Backup NG): configurable concurrency (#2918) 2018-05-23 16:29:31 +02:00
Julien Fontanet
41820ea316 fix(xo-server/backup legacy): fix reports (#2979) 2018-05-23 15:56:40 +02:00
badrAZ
bf00f80716 fix(xo-web): update @julien-f/freactal to 0.1.1 (#2972)
This fix prevent the cursor from jumping to the end of the input when editing the backup's name.
2018-05-23 14:47:28 +02:00
Julien Fontanet
9baf0c74e4 chore(vhd-lib): move some deps to devDeps 2018-05-23 11:49:59 +02:00
Julien Fontanet
b59ccdf26f chore(package): update dependencies 2018-05-23 11:23:25 +02:00
Jon Sands
8b06049bf8 grammar updates v14 (#136)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10

* grammar updates v11

* Grammar updates v11

* Lucky #13 (grammar updates)

* grammar updates v14
2018-05-22 23:02:22 +02:00
Julien Fontanet
9cae978923 feat(xo-server): 5.19.9 2018-05-22 19:43:19 +02:00
Julien Fontanet
311d914b96 feat(xo-web/import): remove restriction for Free 2018-05-22 16:27:17 +02:00
Julien Fontanet
592cb4ef9e feat(xo-web): 5.19.8 2018-05-22 15:53:45 +02:00
Julien Fontanet
ec2db7f2d0 feat(xo-vmdk-to-vhd): 0.1.2 2018-05-22 15:53:03 +02:00
Julien Fontanet
71eab7ba9b feat(xo-web): 5.19.7 2018-05-22 15:36:54 +02:00
badrAZ
5e07171d60 fix(xo-server/backup-ng): fix incorrect condition (#2971) 2018-05-22 11:45:02 +02:00
Rajaa.BARHTAOUI
3f73e3d964 fix(xo-server,xo-web): message when no Xen tools (#2916)
Fixes #2911
2018-05-22 09:57:46 +02:00
Jon Sands
0045a1e608 Lucky #13 (grammar updates) (#135)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10

* grammar updates v11

* Grammar updates v11

* Lucky #13 (grammar updates)
2018-05-22 00:00:19 +02:00
badrAZ
0ebe78b4a2 feat(xo-server-usage-report): improve the report (#2970)
Fixes #2968
2018-05-21 16:25:40 +02:00
Julien Fontanet
61c3379298 feat(xo-server): 5.19.8 2018-05-21 11:00:19 +02:00
Julien Fontanet
44866f3316 feat(xo-web): 5.19.6 2018-05-21 10:42:37 +02:00
Julien Fontanet
4bb8ce8779 feat(vhd-lib): 0.1.0 2018-05-21 10:03:37 +02:00
Jon Sands
95252be5f0 grammar updates v12 (#134)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10

* grammar updates v11

* Grammar updates v11
2018-05-19 11:17:52 +02:00
Julien Fontanet
58eb6a8b5f feat(xo-server): 5.19.7 2018-05-18 18:44:34 +02:00
Julien Fontanet
52f6a79e01 fix(xo-server/backupNg/logs): include merge/transfer size (#2965) 2018-05-18 18:44:07 +02:00
Julien Fontanet
129f79d44b feat(xo-web): 5.19.5 2018-05-18 18:42:31 +02:00
Julien Fontanet
385c3eb563 feat(xo-vmdk-to-vhd): 0.1.1 2018-05-18 18:40:26 +02:00
Julien Fontanet
e56be51b45 chore(xo-server/backups-ng): remove incorrect TODO 2018-05-18 17:14:50 +02:00
Olivier Lambert
24ae65b254 fix(xo-server/sr.createNfs): nfsVersion → nfsOptions (#2904) 2018-05-18 16:28:02 +02:00
badrAZ
d5dffbacbd fix(xo-web/FormattedDuration): handle duration < 0 seconds (#2964) 2018-05-18 15:06:23 +02:00
Julien Fontanet
c6ae969a82 fix(xo-server/https): ask for passphrase (#2963)
Fixes #2962
2018-05-18 15:05:49 +02:00
Nicolas Raynaud
005a9fdc01 fix(xo-vmdk-to-vhd): various bugs (#2961) 2018-05-18 14:02:19 +02:00
Jon Sands
2e74f87ae0 grammar updates v11 (#133)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10

* grammar updates v11
2018-05-17 22:38:00 +02:00
Jerome Charaoui
f505d4d911 Fix SR creation when using options or NFSv4 (#2960) 2018-05-17 22:12:09 +02:00
Jon Sands
65cd32125b type/grammar fixes part 10 (#132)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10

* grammar editing v10
2018-05-17 20:15:02 +02:00
badrAZ
8ada6b121e fix(backup-ng/logs): handle the case when transfer duration equals 0 (#2954) 2018-05-17 16:58:29 +02:00
Julien Fontanet
b9a87efb0d fix(xo-server/backupNg): dont fail on corrupted VHDs (#2957)
Corrupted VHD files (usually uncleaned temporary) could fail the job.
2018-05-17 11:27:02 +02:00
Pierre Donias
89485a82d2 feat(xo-web): make many objects' UUID copiable (#2955)
Fixes #2925

- host/tab-network
- pool/tab-network
- vm/tab-disks
- vm/tab-network
- vm/tab-snapshots
2018-05-16 17:39:47 +02:00
Pierre Donias
451f87c6b4 feat(xo-web/servers): allow unauthorized cert. when adding server (#2953)
Fixes #2926
2018-05-16 13:44:27 +02:00
Rajaa.BARHTAOUI
c3cb5a3221 feat(xo-server,xo-web): VM HA options (#2946)
Fixes #2917
2018-05-16 13:27:40 +02:00
Julien Fontanet
458609ed2e feat(xo-server): 5.19.6 2018-05-16 10:32:59 +02:00
Julien Fontanet
fcec8113f3 fix(xo-server/backupNg): await writeStream (#2951) 2018-05-16 10:32:38 +02:00
Jon Sands
5f14d84ad2 type/grammar fixes part 9 (#131)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9

* grammar cleanup v10
2018-05-15 23:31:28 +02:00
Julien Fontanet
ebbd882ee4 feat(xo-web): 5.19.4 2018-05-15 17:44:25 +02:00
Julien Fontanet
0506e19a66 chore(xo-server/backups-ng): update todo list 2018-05-15 17:44:09 +02:00
Pierre Donias
ecc62e4f54 fix(xo-web/xosan): install packs button condition (#2950) 2018-05-15 17:40:40 +02:00
Julien Fontanet
2b95eb4e4d feat(xo-web): 5.19.3 2018-05-15 16:11:53 +02:00
Julien Fontanet
bcde9e0f74 feat(xo-server): 5.19.5 2018-05-15 16:11:34 +02:00
Pierre Donias
114501ebc7 feat(XOSAN): allow user to update packs (#2782) 2018-05-15 16:11:04 +02:00
badrAZ
ebab7c0867 fix(backup-ng/logs): handle the case when transfer/merge duration equals 0 (#2949) 2018-05-15 16:10:17 +02:00
Julien Fontanet
0e2270fb6e feat(xo-web): 5.19.2 2018-05-15 14:46:33 +02:00
Julien Fontanet
593493ec0c feat(xo-server): 5.19.4 2018-05-15 14:46:07 +02:00
Julien Fontanet
d92898a806 feat(xo-vmdk-to-vhd): 0.1.0 2018-05-15 14:45:19 +02:00
Julien Fontanet
7890e46551 feat(xo-server-backup-reports): 0.11.0 2018-05-15 14:42:32 +02:00
Julien Fontanet
ef942a6209 feat(Backup NG): implrtment logs and reports (#2869) 2018-05-15 14:40:11 +02:00
Jon Sands
67d13bf634 type/grammar fixes part 9 (#130)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username

* Documentation typo/grammar cleanup part 9
2018-05-14 22:40:39 +02:00
Nicolas Raynaud
fdde916388 feat(xo-web/vms-import): redirect to VM or home page (#2942)
If a single VM has been imported, redirect to its page.

If multiple VMs has been imported, redirect to the homepage with all other VMs filtered out.
2018-05-14 17:42:11 +02:00
Julien Fontanet
31314d201b fix(xo-server/backupNg/delta): await deletion/merge 2018-05-14 15:38:11 +02:00
Julien Fontanet
a29a949c51 fix(xo-server/backupNg/delta): deleteFirst iff retention > 1 2018-05-14 15:37:09 +02:00
Julien Fontanet
cc1ce8c5f8 chore: update yarn.lock 2018-05-14 13:53:03 +02:00
Nicolas Raynaud
a21bf4ebe5 chore: major VHD code restructuring (#2808)
Related to #2792
2018-05-14 13:48:16 +02:00
Julien Fontanet
3d0420dbd9 fix(xo-server/backupNg): clean metadata on VM iself (#2945) 2018-05-14 11:47:34 +02:00
Jon Sands
37c4a9d6ef add note to change username (#129)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail

* add note on editing username
2018-05-11 20:41:43 +02:00
Jon Sands
f652bda0a4 add ENOSPC info (#128)
* Clarification, update links, organize

* add nfs warning, fix debian version

* add ENOSPC troubleshooting

* add more enospc detail
2018-05-11 20:18:11 +02:00
Julien Fontanet
04c74dd30f fix: missing bit of last commit 2018-05-11 20:17:02 +02:00
Julien Fontanet
2f256291ae fix(xo-server/backup legacy/delta import): autofix path (#2941)
Because the path might be incorrect and be `_full.vhd` instead of `_delta.vhd`.

I know…
2018-05-11 20:16:00 +02:00
Jon Sands
272565243d Clarification, update links, organize (#127)
* Clarification, update links, organize

* add nfs warning, fix debian version
2018-05-11 19:38:51 +02:00
Julien Fontanet
bcb66a4145 fix(xo-server/backup NG/listReplicatedVms): avoid templates and snapshots 2018-05-11 18:45:47 +02:00
Fabrice Marsaud
2d9368062e fix(xo-web/xoa-updater): dont block paying plans when updater is on error (#2939) 2018-05-11 17:18:24 +02:00
Jon Sands
4670c393a9 more grammar/typo fixes (#126)
* Grammar and typo fixes

* More grammar/typo fixes
2018-05-10 06:31:11 +02:00
Pierre Donias
b110bacf61 fix(xo-server/patches): bulk install (#2935) 2018-05-09 17:32:11 +02:00
Jon Sands
6552f7b865 Grammar and typo fixes (#125) 2018-05-08 22:14:15 +02:00
Julien Fontanet
78afdc0af5 feat(xo-web): 5.19.1 2018-05-07 13:19:59 +02:00
Julien Fontanet
ad6cd7985a feat(xo-server): 5.19.3 2018-05-07 13:07:21 +02:00
Julien Fontanet
a61661776d fix(xo-server/listVmBackupsNg): handle missing vhds field
This field is only present on delta backups
2018-05-07 11:02:14 +02:00
Julien Fontanet
1a9ebddcab fix(xo-server/listBackupNgPartitionFiles): missing await
Strange things though, it works in dev compilation mode…

Fixes #2929
2018-05-07 10:33:44 +02:00
Julien Fontanet
7ab907a854 feat(xo-server/backup NG): file restore (#2889) 2018-05-06 18:38:47 +02:00
Olivier Lambert
68a34f7cdb feat(changelog): update changelog 2018-05-05 12:05:56 +02:00
Rajaa.BARHTAOUI
da4ff3082d feat(xo-web/health): list VM snapshots related to non-existing backup jobs (#2899)
Fixes #2828
2018-05-04 15:59:11 +02:00
Rajaa.BARHTAOUI
9c05a59b5f feat(xo-web/SR/advanced): add VDI UUID in coalesce table (#2919)
Fixes #2903
2018-05-04 12:28:15 +02:00
Rajaa.BARHTAOUI
6780146505 feat(xo-web/patches): better "restart host" warnings (#2909)
Fixes #2866
2018-05-04 10:41:02 +02:00
Julien Fontanet
2758833fc6 feat(xo-server): 5.19.2 2018-05-03 19:12:48 +02:00
Julien Fontanet
2786d7ec46 fix(vhd/createSyntheticReadStream): sectorsPerBlock → sectorsPerBlockData 2018-05-03 19:11:01 +02:00
Julien Fontanet
945a2006c9 feat(xo-server/legacy backup/import): use synthetic stream (#2913) 2018-05-02 17:48:13 +02:00
badrAZ
b9e574e32f fix(SR/tab-stats): fix IOPS's and IOwait's values format (#2914) 2018-05-02 14:17:13 +02:00
Julien Fontanet
34f1ef1680 feat(xo-server): 5.19.1 2018-05-01 17:26:15 +02:00
Julien Fontanet
4ac4310bc1 fix(xo-server/importDeltaVm): remove extra return
It prevented the VBD creation in case of a new VDI.
2018-05-01 17:25:46 +02:00
Julien Fontanet
a10997ca66 feat(xo-web): 5.19.0 2018-05-01 16:13:20 +02:00
Julien Fontanet
0e52a4c7dc feat(xo-server): 5.19.0 2018-05-01 16:12:44 +02:00
Julien Fontanet
a4b3e22c2b feat(xo-server-perf-alert): 0.1.0 2018-05-01 16:10:10 +02:00
Julien Fontanet
441bd7c754 feat(xo-server-auth-saml): 0.5.2 2018-05-01 16:09:06 +02:00
badrAZ
ddbd32d1cb chore(xo-web/backup-ng/new): single effect to toggle modes (#2908) 2018-04-30 11:19:45 +02:00
Pierre Donias
a5b0cbeaea feat(xo-server-perf-alert): SR disk space (#2905) 2018-04-27 17:38:19 +02:00
Rajaa.BARHTAOUI
c6f3b2b1ce feat(xo-web/XOA update): display "Downgrade" when trial is over (#2845)
Fixes #1483
2018-04-27 10:05:27 +02:00
Pierre Donias
3d869d9fa1 chore(xo-web/health): remove irrelevant actions on VDIs (#2882) 2018-04-26 17:37:28 +02:00
Julien Fontanet
7a5229741f chore: disable tests on Node 9 due to upath error 2018-04-26 17:21:00 +02:00
Rajaa.BARHTAOUI
78e0c2d8fa feat(xo-web/SortedTable): support link actions (#2893) 2018-04-26 15:46:10 +02:00
Pierre Donias
5928984069 feat(xo-web/home): sort by container name (#2901)
Fixes #2680
2018-04-26 15:21:48 +02:00
Julien Fontanet
61a472f108 chore(xo-server/vhd/createReadStream): improve genericity (#2865)
It should now be pretty easy to make it work to generate a delta VHD, which should be very useful when mergin multiple deltas together (during deletion.
2018-04-24 18:06:58 +02:00
Julien Fontanet
e45f78ea20 fix(xo-web/backup-ng): delete backups sequentially (#2855)
- sequentially: to limit merge issues
- from newest to oldest: to avoid unnecessary merges
2018-04-23 16:35:34 +02:00
Olivier Lambert
b3ae9d88eb feat(vm): expose vendor device features in advanced tab. Fixes #2883 (#2894) 2018-04-23 15:02:40 +02:00
Pierre Donias
f7f26537be fix(xo-web/vm/network): bad import after file name change (#2892)
Fixes #2891

Introduced by 769c32a1b1
2018-04-23 14:08:56 +02:00
Julien Fontanet
96848fc6d4 fix(xo-server/importDeltaVm): create VBDs earlier (#2885)
To avoid orphan VDIs AMAP.
2018-04-20 17:33:36 +02:00
Julien Fontanet
51e6f0c79f feat(xo-server-usage-report): 0.4.2 2018-04-19 09:39:47 +02:00
badrAZ
4f94ad40b7 fix(xo-server-usage-report): handle missing metrics (#2880) 2018-04-18 16:30:30 +02:00
Pierre Donias
43e1eb9939 fix(xo-web/Ellipsis): handle patchedRender wrapping (#2881)
Also use Ellipsis on resource set name in home/VM view
2018-04-18 11:00:09 +02:00
Julien Fontanet
1f6d7de861 feat(xo-server-usage-report): 0.4.1 2018-04-17 14:03:32 +02:00
Julien Fontanet
bd623c2daf feat(xo-web): 5.18.3 2018-04-17 11:36:00 +02:00
Pierre Donias
40c71c2102 fix(xo-web/SelectSr): "pool" typo (#2878)
Fixes #2875
2018-04-17 11:05:56 +02:00
Nicolas Raynaud
72a1580eff fix(xo-server/vhd-merge.integ.spec): increase timeout (#2874) 2018-04-17 11:04:30 +02:00
Julien Fontanet
9e2404a0d7 feat(xo-web): 5.18.2 2018-04-16 17:32:24 +02:00
Julien Fontanet
7dd84d1518 feat(xo-server): 5.18.3 2018-04-16 17:29:02 +02:00
Julien Fontanet
d800db5d09 fix(xo-web/backup-ng/new): fix empty srs & remotes
Send `undefined` instead of `false`.
2018-04-16 17:26:27 +02:00
Julien Fontanet
2714ccff38 fix(xo-server/backupNg.{create,edit}Job): check srs param 2018-04-16 17:15:35 +02:00
Julien Fontanet
1d493e411b fix(xo-server/backups-ng): correctly detect delta exports
Fixes #2833
2018-04-16 16:54:55 +02:00
Julien Fontanet
2a0c222f2d chore(xo-server): use xen-api 0.16.9 2018-04-16 16:30:59 +02:00
Julien Fontanet
641d68de0e feat(xen-api): 0.16.9 2018-04-16 16:29:41 +02:00
Julien Fontanet
2dd0fd660b chore(xo-server/backups-ng): update todo list 2018-04-16 16:28:09 +02:00
badrAZ
bb5441c7bc feat(xo-web/SelectSr): add container name to SRs that have the same names (#2824)
Fixes #1762
2018-04-16 16:16:55 +02:00
badrAZ
eeea9e662b fix(xo-web/backup-ng/new): rename edit button and change cancel icon (#2858)
See #2711
2018-04-16 15:49:54 +02:00
badrAZ
8d4874e240 fix(xo-web/backupNg/new): make the default retention equals 1 (#2872)
See #2711
2018-04-16 15:27:55 +02:00
badrAZ
a8ba4a1a8e feat(xo-web): stats for SRs (#2847) 2018-04-16 14:40:00 +02:00
Julien Fontanet
0c027247ec fix(normalize-packages): homepage for scoped packages 2018-04-15 23:41:27 +02:00
badrAZ
164cb39c1b fix(xo-web/backup/new): schedules values can be null (#2773) 2018-04-13 17:10:03 +02:00
Julien Fontanet
52503de645 fix(xo-web/initial fetch): support path prefix
Related to #2775
2018-04-13 17:01:43 +02:00
Julien Fontanet
83b8b5de61 fix(xo-web/updater): support path prefix
Related to #2775
2018-04-13 17:01:43 +02:00
Rajaa.BARHTAOUI
3e326c4e62 feat(xo-web/updater): disable upgrade button when not needed (#2816)
Fixes #1594
2018-04-13 16:46:58 +02:00
Julien Fontanet
a6b0690416 fix(xo-server): unmanaged VDI snapshots are VDI-unmanaged 2018-04-13 11:36:10 +02:00
Julien Fontanet
dcd007c5c7 fix(xen-api): fix sync test in watchTask (#2868) 2018-04-12 18:02:51 +02:00
Julien Fontanet
eb090e4874 fix(xen-api): getObject* should not return null 2018-04-12 11:06:08 +02:00
Julien Fontanet
4b716584f7 feat(xo-server): 5.18.2 2018-04-11 17:48:59 +02:00
Julien Fontanet
4bc348f39f fix(xo-server/vhd/createReadStream): emit empty if missing sectors 2018-04-11 17:47:43 +02:00
Julien Fontanet
9c75992fe4 feat(xo-web): 5.18.1 2018-04-11 17:32:58 +02:00
Julien Fontanet
4bb2702ac5 feat(xo-server): 5.18.1 2018-04-11 17:32:58 +02:00
Julien Fontanet
ea8133cb41 fix(xo-server/vhd/createReadStream): handle unallocated blocks (#2859)
Fixes #2857
2018-04-11 17:24:46 +02:00
Pierre Donias
fc40c7b03d fix(xo-web/new SR): create button not showing (#2854)
Fixes #2853
2018-04-11 10:21:06 +02:00
Julien Fontanet
7fe5b66fdb feat(xo-server-auth-saml): log profile when no name found 2018-04-10 19:09:30 +02:00
Julien Fontanet
0f1d052493 chore: update dependencies 2018-04-09 18:11:53 +02:00
badrAZ
56a182f795 fix(xo-web/backup-ng/new): dont add a target more than once (#2849)
Fixes #2848
2018-04-09 17:22:38 +02:00
Julien Fontanet
e8da1b943b fix(xo-server/backups-ng): create all forks at the same time (#2842)
Fixes #2790
2018-04-09 16:42:05 +02:00
marcpezin
42a3ee90e4 update the reseller application process (#124)
* Add more information about the "restriction" to join the program
* Clarify some point
2018-04-09 15:21:23 +02:00
Julien Fontanet
3913b0eba1 feat(xen-api): 0.16.8 2018-04-09 13:58:52 +02:00
Julien Fontanet
7990e45095 fix(xen-api): allow UUIDs for ro calls 2018-04-09 13:56:47 +02:00
Julien Fontanet
a7068ec166 fix(xo-server/importDeltaVm): better network matching (#2834)
Fixes #2093
2018-04-07 01:00:19 +02:00
Pierre Donias
55b35ac0cf NFS version and options (#2841)
Add NFS version & NFS options. Fixes #2706
2018-04-06 17:46:18 +02:00
Julien Fontanet
a251f8ca75 fix(xo-server/backups-ng): don't remove startable VMs (#2840)
Fixes #2724
2018-04-06 17:12:36 +02:00
Rajaa.BARHTAOUI
172ce2c7a1 feat(xo-web/jobs/new): use SortedTable (#2670)
See #2416
2018-04-06 16:45:46 +02:00
Olivier Lambert
3cef668a75 feat(xo-web,xo-server): create HBA SR (#2836)
Fixes #1992
2018-04-06 16:01:48 +02:00
Olivier Lambert
e6deb29070 fix(SR): incorrect case in deviceConfig for iSCSI probe (#2839) 2018-04-06 15:03:04 +02:00
Olivier Lambert
51609d45a2 feat(xo-web,xo-server): expose VM Xen Tools version (#2838)
Fixes #2650
2018-04-06 14:26:44 +02:00
Rajaa.BARHTAOUI
5cb6dc6d92 feat(xo-web): create new disk from SR view (#2726)
Fixes #2229
2018-04-06 13:54:32 +02:00
Nicolas Raynaud
c5174a61b7 chore(xo-server/debounce): reduce test flakiness (#2831) 2018-04-06 10:14:25 +02:00
badrAZ
93e987982c fix(xo-web/logs): displays the correct calls state when the job is interrupted (#2734)
Fixes #2732
2018-04-05 16:46:43 +02:00
Julien Fontanet
fc421428fd fix: missing ESLint config changes 2018-04-05 16:15:26 +02:00
Julien Fontanet
7400bd657a chore: coding style fixes 2018-04-05 15:53:57 +02:00
Julien Fontanet
da62cba3f8 chore: update dependencies 2018-04-05 11:00:03 +02:00
Patrick Tully
461cc7e547 fix(xo-web/icons.scss): remove extra commas (#2817) 2018-04-05 10:57:18 +02:00
badrAZ
b898ed4785 feat(xo-server/xapi-stats): new implementation (#2648) 2018-04-04 14:20:30 +02:00
Olivier Lambert
e4bd59b2ea remove xo-web section reference 2018-04-03 20:26:43 +02:00
Olivier Lambert
9310e3c258 fix something that doesn't make sense since monorepo 2018-04-03 20:23:55 +02:00
Julien Fontanet
149530e73f feat(cron): 1.0.3 2018-04-03 17:21:21 +02:00
Julien Fontanet
7e627c953e fix(cron): selecting the first sunday of the month 2018-04-03 17:21:21 +02:00
Pierre Donias
bc86984f19 chore(xo-server/createNetwork): set other_config.automatic to false (#2825)
Fixes #2818

If a network has its other_config.automatic value set to any value other than
false then XenCenter's New VM wizard will create a VIF connected to this network
See https://citrix.github.io/xenserver-sdk/#network
2018-04-03 15:32:39 +02:00
Julien Fontanet
e40f3acdd4 feat(xo-web): 5.18.0 2018-03-30 18:04:11 +02:00
Julien Fontanet
63d93224e0 feat(xo-server): 5.18.0 2018-03-30 18:03:53 +02:00
badrAZ
c87356c319 feat: ability to delete a default template (#2812)
Fixes #2666
2018-03-30 18:03:12 +02:00
Julien Fontanet
74f4a83aea feat(xo-server-usage-report): 0.4.0 2018-03-30 17:55:57 +02:00
Julien Fontanet
e67038a04d feat(xo-server-auth-saml): 0.5.1 2018-03-30 17:54:30 +02:00
badrAZ
1fa73b57a2 feat(xo-web/dashboard/overview): add filters for pools and hosts (#2769)
Fixes #1631
2018-03-30 17:44:36 +02:00
badrAZ
73c746fdd3 fix(xo-web/backup-ng/new): xoa plan verification (#2813) 2018-03-30 17:22:21 +02:00
Julien Fontanet
ab1413b741 feat(xen-api): more info to task destroyed before completion error 2018-03-30 15:28:53 +02:00
Julien Fontanet
c087eaf229 chore(xo-server): increase blocked threshold from 10 to 50 2018-03-30 15:09:47 +02:00
Julien Fontanet
8b9f9ffa3e feat(xo-server/snapshotVm): increase concurrency to 2 2018-03-30 12:39:51 +02:00
Julien Fontanet
a83fa90d87 chore(xo-server/snapshotVm): avoid using waitObjectState 2018-03-30 12:39:50 +02:00
Julien Fontanet
505f06c1d8 chore(xo-server/backups-ng): dont fork streams if 1 target 2018-03-30 12:39:50 +02:00
Julien Fontanet
2ac1093543 chore(xo-server/backups-ng): rm unneeded defer decorators 2018-03-30 12:39:50 +02:00
Pierre Donias
b3d8ce2041 feat(xo-web/new-vm): hide IP field if IP pools are not configured (#2811)
Fixes #2739
2018-03-29 17:19:38 +02:00
Rajaa.BARHTAOUI
b47789bf82 feat(xo-web): confirm modal before manual backup run (#2717)
Fixes #2355
2018-03-29 15:06:50 +02:00
Julien Fontanet
0a5e1a9bce fix(xo-server/backups-ng): discriminate replicated against the VM (#2809)
Fixes #2807
2018-03-29 13:47:16 +02:00
Julien Fontanet
f333679319 fix(xo-server/backups-ng): dont snapshot on unhealthy vdi chain 2018-03-29 10:51:22 +02:00
Julien Fontanet
20d3faa306 fix(xo-server/backups-ng): delete unused snapshot on delta failure 2018-03-29 10:49:48 +02:00
Julien Fontanet
cf11ed0830 fix(xo-server/backups-ng): dont delete snapshot on failure 2018-03-29 09:47:32 +02:00
Julien Fontanet
acd390ac42 todo(xo-server/backups-ng): do not delete rolling snapshot in case of failure 2018-03-28 17:52:07 +02:00
badrAZ
8a2fbe3ab5 feat(xo-web/backup): ability to migrate legacy to NG (#2801)
Fixes #2711
2018-03-28 14:33:43 +02:00
Julien Fontanet
7a6e7ec153 fix(xo-web/backup-ng): display ids like in logs 2018-03-28 11:48:42 +02:00
Julien Fontanet
7d90346c91 feat(xen-api): 0.16.7 2018-03-28 11:46:45 +02:00
Julien Fontanet
abb5193ced chore(xen-api/getObject*): clearer error messages 2018-03-28 11:46:45 +02:00
Julien Fontanet
52e845834e chore(xen-api): more explicit tests 2018-03-28 11:46:45 +02:00
Julien Fontanet
c1c17fad44 fix(xen-api/getObject): match obj.$id against refs 2018-03-28 11:46:45 +02:00
Julien Fontanet
d7b4025893 todo(xo-server/backups-ng): detect and gc uncomplete replications 2018-03-28 11:46:45 +02:00
Rajaa.BARHTAOUI
934356571c feat(xo-web/home): fix toolbar in header (#2798)
Fixes #1581
2018-03-28 11:29:27 +02:00
Julien Fontanet
738d98eb42 chore(xo-server): update http-server-plus to 0.10
Fixes #2803
2018-03-28 00:11:17 +02:00
Nicolas Raynaud
7e689076d8 chore(xo-server/vhd-merge): various updates (#2767)
Fixes #2746 

- implement parent locators
- tests
- remove `@nraynaud/struct-fu`
2018-03-27 18:39:36 +02:00
Rajaa.BARHTAOUI
0b9d031965 feat(xo-web/jobs/overview): use SortedTable (#2677)
See #2416
2018-03-27 16:56:56 +02:00
badrAZ
53f470518b feat(xo-server-usage-report): various improvements (#2788)
Fixes #2770
2018-03-27 16:07:29 +02:00
Rajaa.BARHTAOUI
664d648435 feat(xo-web/vm/disks): use SortedTable (#2429)
See #2416
2018-03-27 11:13:05 +02:00
Julien Fontanet
0d718bd632 feat(xo-server/backup NG): merge VHD in a worker (#2799) 2018-03-27 10:13:05 +02:00
badrAZ
ed5e0c3509 feat(xo-web/xoa/update): warn before upgrade if jobs running (#2795)
Fixes #2250
2018-03-26 18:01:29 +02:00
Julien Fontanet
20d5047b55 chore(xo-server/ag2s): use async-iterator-to-stream instead 2018-03-26 16:32:46 +02:00
Pierre Donias
4cfe3ec06e fix(xo-server/new-vm): race condition on VIFs (#2796)
Fixes #2794
2018-03-26 11:18:36 +02:00
Julien Fontanet
87664ff16a chore(xo-server-auth-saml): config description 2018-03-26 11:10:16 +02:00
Pierre Donias
adf278fc83 fix(xo-web/home): pagination (#2791)
Fixes #2730
2018-03-21 16:54:29 +01:00
Pierre Donias
a4d0fa62d2 chore(xo-web/restore): minor improvements & fixes (#2789)
Fixes #2692
2018-03-21 15:51:12 +01:00
ETL
96f4896c84 Text improvements (#123)
* fixed some typos and made some small improvement to make the text more readable.
2018-03-20 21:46:32 +01:00
Pierre Donias
ff59d091f1 fix(xo-server-cloud): check token before getResourceDownloadToken call (#2783) 2018-03-20 15:36:03 +01:00
marcpezin
f5d6407ec9 XOSAN creation - documentation (#122)
* Creating the new XOSAN

* content

* screenshot xosan panel

* Add files via upload

* xosan sr select

* xosan-mode.png

* xosan-advanced.png

* xosan-creation-process.png

* All the creation process for XOSAN

* typo correction
2018-03-20 15:01:49 +01:00
Pierre Donias
4cac99d79a feat(xo-web/home): put sort criteria in URL (#2780)
Fixes #2585
2018-03-20 10:41:03 +01:00
Rajaa.BARHTAOUI
d1a046279d feat(xo-web/modal): autofocus strong-confirm text input (#2749) 2018-03-19 15:34:52 +01:00
Julien Fontanet
cb9fa5c42b chore: update dependencies 2018-03-19 14:55:19 +01:00
Julien Fontanet
05f9e6895b feat(xo-web): 5.17.3 2018-03-16 17:49:31 +01:00
Julien Fontanet
63b5ee6f96 feat(xo-server): 5.17.4 2018-03-16 17:49:11 +01:00
Julien Fontanet
36d2de049f feat(xo-server/vhd): createReadStream (#2763)
A stream to a synthetic full VHD.
2018-03-16 17:47:10 +01:00
Julien Fontanet
86b0d5e2b7 fix(xo-server/backupNg.importVmBackup): do not try to detect base VDI 2018-03-16 17:38:56 +01:00
Julien Fontanet
d34f641130 fix(xo-server/backupNg.importVmBackup): do not try to detect base VM 2018-03-16 17:30:42 +01:00
Julien Fontanet
39d7b4c7bd fix(xo-server/backupNg.importVmBackup): fix VM name for delta 2018-03-16 17:15:18 +01:00
Julien Fontanet
ad0d4156fb fix(xo-server/backupNg.importVmBackup): add missing version for delta 2018-03-16 17:15:18 +01:00
badrAZ
80187e2789 feat(xo-web/self-service): add the internal networks to the networks' select (#2664) 2018-03-16 16:57:44 +01:00
badrAZ
89e25c9b81 fix(xo-web/dashboard/overview): missing patches not fetched (#2772)
Fixes #2768
2018-03-16 16:37:57 +01:00
Julien Fontanet
ca51d59815 chore(xo-server/chainVhd): allow parent and child to be in different dirs (#2762) 2018-03-16 16:24:45 +01:00
Julien Fontanet
433f445e99 fix(xo-server/backups): no checksum files for VHDs (#2761)
Because keeping them up-to-date after chainings and merges is too expensive (requires reading the whole file).

In legacy backups they were keeping up-to-date and great costs and never used for verification anyway.
2018-03-16 16:24:25 +01:00
Julien Fontanet
474a765e1b chore(xo-server/chainVhd): remove checksum recomputing (#2759)
It's high time to remove this.
2018-03-16 16:24:02 +01:00
badrAZ
7d4b17380d feat(Backups NG): fourth iteration (#2756) 2018-03-16 16:23:19 +01:00
Julien Fontanet
b58b1d94cd fix(xo-server/xapi): add missing import 2018-03-16 16:21:20 +01:00
Olivier Lambert
16e7257e3b feat(host/pool): clearer memory info (#2771)
Fixes #2750
2018-03-16 14:19:59 +01:00
Julien Fontanet
ca1a46f980 chore(xo-server/backups-ng): add todo items 2018-03-14 15:52:26 +01:00
Julien Fontanet
596bd12f59 chore(xo-server/vhd): add format cheatsheet 2018-03-14 15:51:02 +01:00
badrAZ
301ab65c01 fix(xo-web/backup/overview): fix the race condition between subscriptions (#2766)
Fixes #2733
2018-03-14 14:15:47 +01:00
Pierre Donias
35f210e074 fix(xo-server/xosan): make tmpBoundObjectId unique (#2760)
Fixes #2758
2018-03-13 16:05:38 +01:00
Julien Fontanet
c239b518e0 chore(xo-server/checksum): documentation 2018-03-13 15:57:08 +01:00
Julien Fontanet
f45935aa44 chore(xo-server/vhd-merge): abstract FD handling (#2757)
Due to our smart implementation, the Vhd class does not need to be aware of the fact that the file is already opened.
2018-03-13 15:09:21 +01:00
Julien Fontanet
782505b292 feat(xo-server): close inactive HTTP connections on stop 2018-03-13 10:22:06 +01:00
Julien Fontanet
1368e3b86d chore: update dependencies 2018-03-13 10:06:23 +01:00
Julien Fontanet
ab9c24401e feat(xo-web): 5.17.2 2018-03-12 17:54:09 +01:00
Julien Fontanet
831f4e48d1 feat(xo-server): 5.17.3 2018-03-12 17:53:34 +01:00
Julien Fontanet
f5511449af fix(xo-server/vm.create): work around a race condition (#2755)
Fixes #2747
2018-03-12 17:52:53 +01:00
Julien Fontanet
80c1e39b53 feat(Backups NG): third iteration (#2729) 2018-03-12 17:26:20 +01:00
badrAZ
3ce4e86784 fix(xo-web/sorted-table): returns undefined if userData is empty (#2752)
Fixes #2748
2018-03-12 17:19:15 +01:00
Julien Fontanet
fb617418bb feat(xo-server): 5.17.2 2018-03-09 19:12:00 +01:00
Pierre Donias
9fb0f793b2 fix(prettierrc): add trailingComma to avoid conflicts with eslint (#2744) 2018-03-09 11:55:02 +01:00
Julien Fontanet
3b21a097ab fix(xo-web): handle incorrect filters (#2743)
Fixes #2740
2018-03-09 11:30:22 +01:00
Rajaa.BARHTAOUI
ef09a42a89 feat(xo-web): disconnect VDI from Health view (#2655)
See #2505
2018-03-08 14:48:30 +01:00
Julien Fontanet
74d8f2a859 fix(xo-server): test with Babel 7 2018-03-08 11:00:00 +01:00
Julien Fontanet
48910f9c0f fix(xo-server/remote-handlers): do not swallow sync() value 2018-03-08 10:51:24 +01:00
Julien Fontanet
788a1accbd feat(xo-server): update to Babel 7 (#2731) 2018-03-08 10:11:14 +01:00
Julien Fontanet
b254e7e852 chore: update dependencies 2018-03-08 00:13:54 +01:00
Julien Fontanet
e288fa1b8a feat(xo-web): 5.17.1 2018-03-07 21:22:18 +01:00
Julien Fontanet
eb9ec68494 feat(xo-server): 5.17.1 2018-03-07 21:21:33 +01:00
Julien Fontanet
10ab4f2d79 fix(xo-server): work around minor Babel issue 2018-03-07 21:11:20 +01:00
badrAZ
b1986dc275 feat(Backups NG): second iteration (#2718) 2018-03-07 20:57:28 +01:00
Julien Fontanet
831e36ae5f fix(xo-server/exportDeltaVm): cannot assign ro name_label 2018-03-07 20:41:20 +01:00
Julien Fontanet
77a2d37d98 fix(xo-server/exportDeltaVm): do not leak the snapshot name
Fixes #2727
2018-03-07 20:30:09 +01:00
Julien Fontanet
37b90e25dc fix(xo-server/jobs): userIds are strings
Fixes #2728
2018-03-07 20:17:22 +01:00
Julien Fontanet
41f16846b6 chore(xo-server): addChecksumToReadStream → createChecksumStream (#2725)
`addChecksumToReadStream` was overly complicated and its usage was limited.

`createChecksumStream` is similar but does not pipe the readable stream in by itself.
2018-03-06 17:48:21 +01:00
Julien Fontanet
3e89c62e72 chore(xo-server): replace eventToPromise with fromEvent 2018-03-06 16:40:29 +01:00
Julien Fontanet
b7d3762c06 chore(xo-server): delete unused schedules on clean 2018-03-06 16:39:00 +01:00
Julien Fontanet
481bc9430a chore(xo-server/utils): remove unnecessary moment-timezone import 2018-03-06 16:38:07 +01:00
Julien Fontanet
13f2470887 chore(xo-server): remove createRawObject
Replace both `createRawObject()` and `Object.create()` by `{ __proto__: null }`.
2018-03-06 16:36:41 +01:00
Julien Fontanet
0308fe4e6e chore(xo-server): add checksum handling for VM import 2018-03-06 16:36:13 +01:00
Julien Fontanet
197273193e chore(xo-server): explicitly check for a schedule 2018-03-06 16:35:42 +01:00
Julien Fontanet
e4b11a793b chore(xo-server): move checksum streams into own module 2018-03-06 16:34:22 +01:00
Julien Fontanet
927d3135c4 chore(xo-server): rename removeSchedule to deleteSchedule 2018-03-06 16:32:59 +01:00
Julien Fontanet
aa533c20d6 fix(xo-server): respect compression param 2018-03-06 16:31:11 +01:00
Julien Fontanet
7fd615525a chore(xen-api): TODO do not cancel a finished task 2018-03-06 16:26:05 +01:00
Julien Fontanet
6abf3fc0af feat: add code of conduct 2018-03-06 10:18:05 +01:00
Julien Fontanet
6bb0929822 chore(xo-server/backupNg): remove unnecessary destructuring 2018-03-03 10:51:57 +01:00
Julien Fontanet
feebc04e55 chore(xo-server/BackupsNg): remove schedule default value
A backup NG job cannot be run without a schedule anyway
2018-03-03 10:26:45 +01:00
Julien Fontanet
2d406cd7c1 chore(xo-server/backupNg): rename importVmbackup{Ng,} 2018-03-03 10:25:01 +01:00
Julien Fontanet
788bfe632f chore(xo-server/exportDeltaVm): pass cancel token to _snapshotVm 2018-03-03 10:21:10 +01:00
Julien Fontanet
1149102f37 chore(xo-server/exportDeltaVm): pass name to _snapshotVm
Instead of setting it manually afterward.
2018-03-03 10:20:35 +01:00
Julien Fontanet
8bd949f618 chore(xo-server/exportDeltaVm): use _snapshotVm directly 2018-03-03 10:19:51 +01:00
Julien Fontanet
489b142a66 chore(xo-server): remove unnecessary getObject in exportDeltaVm 2018-03-03 10:15:24 +01:00
Julien Fontanet
cbbbb6da4f chore(xo-server): doc attrs of VMs created by Backup NG 2018-03-03 10:14:06 +01:00
Julien Fontanet
6701c7e3af chore(xo-server): use checksumFile helper unlink 2018-03-03 10:07:09 +01:00
Julien Fontanet
ecd460a991 feat(xo-web): 5.17.0 2018-03-02 19:57:24 +01:00
Olivier Lambert
dc6d688c96 feat(filter): add number comparison 2018-02-28 16:43:48 +01:00
Olivier Lambert
65ebbf179f add local CA doc 2018-02-21 09:52:31 +01:00
Julien Fontanet
2246e818b9 xo-web is now in the xen-orchestra monorepo (#121) 2018-02-07 10:46:20 +01:00
Julien Fontanet
f32f0ee215 no more stable branch due to monorepo 2018-02-01 16:07:12 +01:00
Pierre Donias
533e85d058 Fix xo-server migration (#120) 2018-02-01 15:10:55 +01:00
Julien Fontanet
4f2c750dbb xo-server is now in the xen-orchestra monorepo (#117) 2018-02-01 14:09:06 +01:00
marcpezin
aa64385bc6 LICENCE_RESTRICTION(PCI_device_for_auto_update) (#119)
Adding troubleshooting for LICENCE_RESTRICTION(PCI_device_for_auto_update)
2018-01-26 14:58:36 +01:00
Olivier Lambert
e80d0689ad change VDI chain message 2018-01-26 14:45:13 +01:00
Olivier Lambert
e7a077b820 add doc on which mode to use (#116) 2017-12-29 12:54:36 +01:00
Olivier Lambert
0c58a8569e image optimization (#115) 2017-12-29 12:49:34 +01:00
marcpezin
ca7d577d54 Xosan Trial doc (#110)
* Xosan Trial doc
2017-12-29 11:41:05 +01:00
Jon Sands
0c6315458f Grammar fixes, link updates, etc (#114)
fixing osme grammar and links, and adding info about using
forever-service to have XO start on boot
2017-12-15 13:35:00 +01:00
Julien Fontanet
61f9aa6293 fix(from_the_sources): add missing yarn builds 2017-11-23 14:13:34 +01:00
Julien Fontanet
7d950e2b8d feat(from_the_sources): yarn build is now necessary (#113) 2017-11-23 12:21:03 +01:00
Julien Fontanet
2d18ff6561 chore(from_the_sources): update Node LTS version 2017-11-23 12:05:48 +01:00
Julien Fontanet
4c2307ee49 fix(reverse-proxy): add missing path 2017-11-17 11:55:35 +01:00
Julien Fontanet
6e2e04bf7f fix(reverse-proxy): Apache2 config (#112)
Should fix export/import issues.
2017-11-17 11:51:26 +01:00
marcpezin
94d84c2516 Deleting "forecast" and "autoscalability" (#111)
As these features are not yet developed.
2017-11-08 16:09:23 +01:00
Olivier Lambert
2fcb000466 add more troubleshooting feedback 2017-10-29 09:37:06 +01:00
Julien Fontanet
3be965ed7f feat(troubleshooting): ghost tasks (#108) 2017-10-21 09:44:30 +02:00
marcpezin
77d067613d Massive documentation update (#109)
* Major refresh on some features, new screenshots
2017-10-21 09:43:50 +02:00
marcpezin
5e3702856f chore(self service): new screenshots (#107) 2017-10-13 16:25:43 +02:00
marcpezin
1bb6c8232b Note about self service resources and snapshot (#105)
Adding a note explaining that creating a snapshot within a self service VM will use the resources in the set.
2017-10-09 14:31:32 +02:00
marcpezin
bb6f133db9 Self Service update - screenshot (#103)
* new screenshot for self service
2017-09-28 16:15:11 +02:00
marcpezin
72c3287b48 Credit Card update infos section (#104)
adding infos on how to edit your CC infos
2017-09-27 17:16:30 +02:00
marcpezin
aa12e78421 Reseller update (#102)
* reseller update
2017-09-26 15:29:11 +02:00
marcpezin
319caf5275 backup restore (#101)
Adding a small note regarding backup restoration on fresh XenServer.
2017-09-15 14:34:13 +02:00
Olivier Lambert
d074a9e744 feat(troubleshooting): case of PV only Xenserver 2017-09-14 11:47:31 +02:00
Olivier Lambert
8f6eb12b3d feat(xosan): updated XOSAN pics 2017-09-12 14:59:45 +02:00
Olivier Lambert
1477b241be fix(XOSAN): replace old picture 2017-08-31 16:08:11 +02:00
Olivier Lambert
848330c188 feat(XOSAN): add pics for disperse 2017-08-31 16:05:31 +02:00
Olivier Lambert
33b728fdc3 feat(XOSAN): correlate examples and pictures 2017-08-31 09:57:09 +02:00
Olivier Lambert
aec4069eca fix(XOSAN): reduce image size 2017-08-31 09:51:54 +02:00
Olivier Lambert
2221f8afb0 feat(XOSAN): add doc content and first pics 2017-08-31 09:50:00 +02:00
Olivier Lambert
08b845a51e fix(xosan): multiple sentences fixes 2017-08-25 13:53:14 +02:00
marcpezin
39561ee4e7 adding a guide to access the beta (phase II) (#100) 2017-08-24 18:16:16 +02:00
Olivier Lambert
9879eef3c6 feat(xosan): add types in summary 2017-08-18 19:29:35 +02:00
Olivier Lambert
7eda47a9b3 feat(xosan): add disperse type 2017-08-18 19:26:58 +02:00
Olivier Lambert
fe1d4c345d XOSAN content (#99)
* feat(xosan): start to work on XOSAN doc
2017-08-18 17:08:03 +02:00
marcpezin
bc818b7873 Update purchase.md 2017-08-11 10:45:05 +02:00
marcpezin
f850fe5404 How to purchase with a quote
Adding a line about what to do to purchase with a quote
2017-08-11 10:44:28 +02:00
marcpezin
1fb3c73e51 Automatic quotation doc (#98)
* Automatic quotation doc
2017-08-11 10:41:51 +02:00
Olivier Lambert
f8a86d27dd fix(backup reports): add file 2017-08-10 18:17:22 +02:00
Olivier Lambert
59d222db72 fix(backup report): incorrect filename 2017-08-10 18:16:57 +02:00
marcpezin
f4ad9cd17a Backup reports (#97)
* Backup reports
2017-08-10 18:10:45 +02:00
Olivier Lambert
da93883b6c move paragraph on top 2017-07-20 09:29:45 +02:00
Olivier Lambert
d86d81e63d add XOA deploy error 2017-07-19 10:23:49 +02:00
marcpezin
0610d977f3 Upgrade Documentation (#95)
Adding a section regarding how to upgrade an active plan.
2017-07-18 17:53:13 +02:00
marcpezin
e11fb476b1 adding general troubleshooting to the panel 2017-06-30 14:47:46 +02:00
Olivier Lambert
28baa2ab7f Merge pull request #94 from vatesfr/errors-and-troubleshooting
Common errors and troubleshootting
2017-06-30 14:33:32 +02:00
marcpezin
7b97202ef8 Could not find the base VM
Adding new troubleshooting "Could not find the base VM"
2017-06-27 14:37:17 +02:00
marcpezin
e6a71f44ca Troubleshooting "Could not find the base VM"
Adding the Troubleshooting for "Could not find the base VM"
2017-06-27 14:35:06 +02:00
marcpezin
2646fa9eda minor correction
typo correction
2017-06-27 14:23:00 +02:00
marcpezin
95f71adcef Section addition - open a ticket
New section linking to the personal space for opening a ticket.
2017-06-26 17:09:30 +02:00
marcpezin
9817158f2e No solution section
Adding a section for user with no solution on this page.
2017-06-26 17:04:45 +02:00
marcpezin
0e0faf07c2 update #1 - existing troubleshooting
Existing troubleshooting documentation all bring at the same place.
2017-06-26 16:53:11 +02:00
marcpezin
1009c8945e Debugging section
Adding a generic debugging section.
2017-06-26 16:52:46 +02:00
marcpezin
cb8cc6b274 Rename general-troubleshooting to general-troubleshooting.md 2017-06-26 16:20:42 +02:00
marcpezin
e2ea78578b New document - Common errors and troubleshootting
Creating the document.
2017-06-26 16:18:28 +02:00
marcpezin
4d494b891c ⚠️ sign was not displayed on the XO docs
Put the sentence in bold.
2017-06-19 16:19:28 +02:00
Olivier Lambert
82ded7d160 Merge pull request #92 from vatesfr/purchase-process-modification
Add files via upload
2017-06-19 16:14:29 +02:00
marcpezin
7d211bdb8f Update through_purchase_department.md 2017-06-19 16:09:37 +02:00
marcpezin
f1abb402fb purchase menu change
new screenshot for the purchase menu.
2017-06-19 14:51:19 +02:00
marcpezin
a16a96664f Update directpurchase.md 2017-06-19 14:47:51 +02:00
marcpezin
9edad84198 purchase modification
purchase for my own use
2017-06-19 14:46:51 +02:00
marcpezin
debf2f5416 direct purchase
change in the purchase menu
2017-06-19 14:42:45 +02:00
marcpezin
5107725252 direct purchase
Modification of purchase menu.
2017-06-19 14:41:44 +02:00
marcpezin
c6dfe43119 direct-purchase
Modification of purchase menu.
2017-06-19 14:40:00 +02:00
marcpezin
24e0d2c815 Update reseller
Regarding modifications incoming, some improvement for the reseller documentation.
2017-06-16 14:11:15 +02:00
marcpezin
ebf895d1b9 new screenshot for reseller
Adding a screenshot of the reseller space to the doc.
2017-06-16 14:06:09 +02:00
marcpezin
bceda43ff2 Broken link
corrected the broken link of the issue #93
2017-06-16 10:56:33 +02:00
marcpezin
d69597636c Update through_purchase_department.md 2017-06-16 10:50:38 +02:00
marcpezin
9ff66b9394 Update through_purchase_department.md 2017-06-16 10:46:01 +02:00
marcpezin
d28d3a92e5 Add files via upload 2017-06-16 10:33:59 +02:00
marcpezin
21d14ab3c7 Add files via upload 2017-06-16 10:15:48 +02:00
Olivier Lambert
ed08417fc2 fix(lb): remove useless/outdated doc 2017-05-25 15:14:45 +02:00
Olivier Lambert
39f9911e67 fix(xo): fix typo 2017-05-24 16:18:45 +02:00
Olivier Lambert
da5899b5d3 feat(various): improve the doc in multiple sections 2017-05-24 14:27:40 +02:00
Olivier Lambert
0cc45d085a fix(backup): typo 2017-05-23 16:37:15 +02:00
Olivier Lambert
cce456242b feat(backup): add link to the blog post about coalescing 2017-05-23 16:34:39 +02:00
Olivier Lambert
0eee44fb0d fix(summary): add bkp tblshooting 2017-05-23 16:28:42 +02:00
Olivier Lambert
597d568183 feat(backup): add troubleshooting for backups 2017-05-23 16:26:18 +02:00
Olivier Lambert
fee6a56af1 feat(xoa): remove useless wget thing since xoa deploy script works 2017-05-22 15:18:47 +02:00
Olivier Lambert
f7b094819e feat(search): add search filter doc 2017-05-22 12:16:37 +02:00
Olivier Lambert
f7842b5adc Merge pull request #90 from vatesfr/auto-deploy
feat(deploy): update doc for autodeploy
2017-05-18 16:53:05 +02:00
Olivier Lambert
58f2ec91fb fix(deploy): remove HTTPS because of XS brain damage regarding HTTP libs 2017-05-18 16:52:16 +02:00
Olivier Lambert
61206a3610 feat(deploy): update doc for autodeploy 2017-05-18 10:15:21 +02:00
Julien Fontanet
c18392d036 fix(self-service): feature has been released 2017-05-17 09:18:09 +02:00
Julien Fontanet
7fe1aa443b fix(xoa#timezone): prefix command with sudo 2017-05-12 14:19:22 +02:00
Olivier Lambert
044d9cb4dc fix(docker): add links for other XS versions 2017-05-11 16:20:59 +02:00
Olivier Lambert
f8795fa181 feat(xoa script): add details for using new xoa helpers scripts 2017-05-11 15:29:27 +02:00
Olivier Lambert
b456fa75e0 feat(doc): update doc 2017-05-06 11:02:29 +02:00
AJ Moon
9832ec0b1d fix(from sources): removed redundant 'yarn run build' (#87)
This commit will be reverted when `npm` 5 is released and `yarn` changes its behavior to align with it.
2017-05-03 09:54:33 +02:00
Julien Fontanet
bd3acc634e feat(troubleshooting): self-signed certificate 2017-03-14 16:04:52 +01:00
Julien Fontanet
f32ee571ac feat(troubleshooting): memory section 2017-03-09 11:36:00 +01:00
Julien Fontanet
826d4de16c Use yarn instead of npm 2017-03-06 10:23:31 +01:00
Olivier Lambert
b7ac721593 add info on fl restore 2017-02-08 15:43:27 +01:00
Olivier Lambert
1566762729 fix typos 2017-01-03 11:01:06 +01:00
Olivier Lambert
f0b758fd4b add doc on quiesced snapshots and a warning on SMB 2017-01-03 10:59:40 +01:00
Olivier Lambert
0df04c84d2 add correct link 2016-12-20 16:36:08 +01:00
Olivier Lambert
6f1b91b1e5 add file level restore info 2016-12-20 16:32:12 +01:00
Olivier Lambert
95af905b7d exclude disks doc 2016-12-20 10:07:46 +01:00
Olivier Lambert
67efe31e63 fix(remote): better doc explaining where to add remotes 2016-12-19 14:36:35 +01:00
Olivier Lambert
46c7e89363 feat(xoa): add registration in XOA page 2016-12-06 10:44:45 +01:00
Olivier Lambert
9d221df259 feat(glossary): added glossary 2016-11-18 15:27:51 +01:00
Olivier Lambert
fd2a123e20 fix(slack): forgot one image 2016-11-18 15:14:34 +01:00
Olivier Lambert
4696b6563c feat(slack): add doc for slack 2016-11-18 15:12:59 +01:00
Olivier Lambert
1a0e72c468 upate doc for XOA 2016-11-05 00:28:01 +01:00
Olivier Lambert
f6f749d583 fix(doc): remove useless files 2016-11-03 13:26:07 +01:00
Olivier Lambert
72f0f8602d fix(doc): fix broken images 2016-11-03 13:25:38 +01:00
Olivier Lambert
6933c42a1b minor doc fix 2016-10-27 19:42:59 +02:00
Olivier Lambert
349b117c8c minor fixes 2016-10-27 13:51:03 +02:00
Olivier Lambert
80b13b2ad7 add export/import 2016-10-27 13:37:16 +02:00
Olivier Lambert
2825f8540b XOA doc fixes 2016-10-27 13:02:33 +02:00
Olivier Lambert
fed3d82898 add doc for new XOA coming soon 2016-10-27 11:29:17 +02:00
Olivier Lambert
1805f130bc precisions on ACLs 2016-10-27 10:01:34 +02:00
Olivier Lambert
86baf3c81e add notice in cont repl 2016-10-21 16:11:23 +02:00
Julien Fontanet
37e6778589 Update from_the_sources.md 2016-10-20 14:17:45 +02:00
Olivier Lambert
b368925dfc feat(doc): improve example and add build phase 2016-10-04 14:00:50 +02:00
Julien Fontanet
3e848ebfe3 Create ISSUE_TEMPLATE.md 2016-10-03 16:23:31 +02:00
Olivier Lambert
253180b02f update import/export doc 2016-09-13 12:38:15 +02:00
Olivier Lambert
07ba868a26 add smart backup page 2016-09-13 12:27:31 +02:00
Olivier Lambert
31846074a2 remove useless images 2016-09-13 12:20:08 +02:00
Olivier Lambert
dc51545583 Reorg doc. Better backup doc 2016-09-13 11:29:57 +02:00
Olivier Lambert
2696b5ca9b improve the roadmap doc 2016-09-12 22:46:47 +02:00
Olivier Lambert
8c8f62374d feature(docker): update doc with more recent screen and XS 7 install procedure 2016-09-12 22:40:37 +02:00
Olivier Lambert
de7b94ea48 Update acls.md 2016-09-12 18:08:31 +02:00
Olivier Lambert
38df724e66 Update acls.md 2016-09-12 18:03:54 +02:00
Olivier Lambert
180de5b9c9 Merge pull request #81 from fufroma/master
Enhance reverse proxy configuration example.
2016-09-07 04:22:36 -04:00
fufroma
a7b13df315 Enhance reverse proxy configuration example.
Fix vatesfr/xo-web#1474
2016-09-07 10:18:14 +02:00
Olivier Lambert
6d878f5cc8 feat(doc): various updates 2016-08-17 11:44:02 +02:00
Olivier Lambert
c216213081 feat(vm creation): add content for VM creation 2016-08-15 11:36:27 +02:00
Olivier Lambert
be4dda141b update troubleshooting update 2016-08-02 10:43:40 +02:00
Olivier Lambert
e4b45eef88 plugin page with xo5 view 2016-08-02 10:41:26 +02:00
Olivier Lambert
97d83364f3 fix some trial info for v5 2016-08-02 10:30:28 +02:00
Olivier Lambert
deaf6bfdb9 add trial with v5 UI 2016-08-02 10:28:01 +02:00
Olivier Lambert
ef19892ae9 add update content for v5 2016-08-02 10:19:41 +02:00
Olivier Lambert
a6af324c8d fix wrong image url 2016-07-30 20:17:15 +02:00
Olivier Lambert
9608f6f2d7 add missing image 2016-07-30 20:15:51 +02:00
Olivier Lambert
fdd45c94d6 add patching doc 2016-07-30 20:13:54 +02:00
Olivier Lambert
374fe7d868 fix(build): remove useless build command 2016-07-29 11:08:51 +02:00
Olivier Lambert
d93a89ca92 chore(misc): remove useless text 2016-07-28 18:39:00 +02:00
Olivier Lambert
3c2a0f1fbf chore(misc): reorg some text 2016-07-28 18:36:50 +02:00
Olivier Lambert
d3b06c30de feat(misc): update doc on v5 2016-07-28 18:18:48 +02:00
Olivier Lambert
7ef6b4fcda feat(admin): start to work on v5 UI doc 2016-07-28 17:48:31 +02:00
Olivier Lambert
5352de1b01 feat(seed): add blocked operation for seed cont. replication 2016-07-28 13:52:01 +02:00
Olivier Lambert
5574747054 chore(all): move assets 2016-07-06 15:00:34 +02:00
Olivier Lambert
5b3f11d09b update readme 2016-07-04 18:33:45 +02:00
Olivier Lambert
f9e88fc88f fix(gitignore): add gitignore for book and node_modules folders 2016-07-04 18:28:08 +02:00
Olivier Lambert
f2c94dc31d fix(book.json): test version superior than 3 2016-07-04 18:11:38 +02:00
Olivier Lambert
400c8938b7 fix(book.json): test version under 3 2016-07-04 18:08:03 +02:00
Olivier Lambert
0d45cc7479 fix(book.json): another fix, again and again 2016-07-04 17:58:30 +02:00
Olivier Lambert
4cfe825b61 fix(book.json): another fix, again 2016-07-04 17:56:13 +02:00
Olivier Lambert
b723e24ac8 fix(book.json): another fix 2016-07-04 17:55:19 +02:00
Olivier Lambert
f48f4b85d8 fix(book.json): try a new version number 2016-07-04 17:53:15 +02:00
Olivier Lambert
8822f0303d fix(book.json): minor fix 2016-07-04 17:47:11 +02:00
Olivier Lambert
6175a8c8c1 fix(summary): moving summary at the right place 2016-07-04 17:37:29 +02:00
Olivier Lambert
0da8f44922 fix(book.json): fix config 2016-07-04 17:35:08 +02:00
Olivier Lambert
05f1fcfb55 fix(all): links 2016-07-04 17:30:32 +02:00
Olivier Lambert
cdf3c16cd9 fix(all): bad relative path fixed 2016-07-04 17:22:10 +02:00
Olivier Lambert
a7bdd1798e fix(arch): missing images 2016-07-04 17:16:12 +02:00
Olivier Lambert
ac47fc602b chore(all): major reorg of the doc 2016-07-04 17:05:27 +02:00
Olivier Lambert
29cb8fbdfc Update backups.md 2016-05-21 16:49:27 +02:00
Olivier Lambert
ee329f0def Update continuous_replication.md 2016-05-21 14:30:22 +02:00
Olivier Lambert
e58e4d65e3 Update full_backups.md 2016-05-21 14:26:21 +02:00
Olivier Lambert
9286784ce5 Add files 2016-05-21 14:25:09 +02:00
Julien Fontanet
9ded80448c Update from_the_sources.md 2016-03-21 18:10:09 +01:00
Julien Fontanet
d82dd63e11 Update google.md 2016-03-21 15:16:07 +01:00
Julien Fontanet
9e8d366f38 Update github.md 2016-03-21 15:15:43 +01:00
Julien Fontanet
3eb742d0d1 Update saml.md 2016-03-21 15:15:06 +01:00
Julien Fontanet
df6159fa62 Update ldap.md 2016-03-21 15:14:32 +01:00
Julien Fontanet
8de5135f15 Update troubleshooting.md 2016-03-11 15:15:18 +01:00
Olivier Lambert
f3b4a53666 Update troubleshooting.md 2016-03-10 15:13:52 +01:00
Olivier Lambert
a0d37cf2b8 Update xoa.md 2016-03-08 16:54:41 +01:00
Olivier Lambert
533899da09 Update from_the_sources.md 2016-03-03 15:01:45 +01:00
Olivier Lambert
93fbc8b1dd Update load_balancing.md 2016-03-03 13:05:42 +01:00
Olivier Lambert
6157df4ebe Update load_balancing.md 2016-03-03 13:04:12 +01:00
Olivier Lambert
069743038a Update load_balancing.md 2016-03-03 13:03:38 +01:00
Olivier Lambert
07823e4109 Update load_balancing.md 2016-03-03 13:02:35 +01:00
Olivier Lambert
0a8d7562ca Update xoa.md 2016-03-03 10:42:53 +01:00
Olivier Lambert
2c8dea7a45 Update editions.md 2016-02-26 00:00:20 +01:00
Olivier Lambert
cf9bcb09d5 Update SUMMARY.md 2016-02-25 23:59:47 +01:00
Olivier Lambert
19a20f5b3e Update trial.md 2016-02-25 23:59:38 +01:00
Olivier Lambert
023251d090 Update SUMMARY.md 2016-02-25 23:58:21 +01:00
Olivier Lambert
23e9ee4ae2 Create trial.md 2016-02-25 23:58:20 +01:00
Olivier Lambert
2e8289d4dc Update editions.md 2016-02-25 23:58:18 +01:00
Olivier Lambert
b2a8b643e7 Update SUMMARY.md 2016-02-25 23:58:05 +01:00
Olivier Lambert
64a91abd12 Update editions.md 2016-02-25 23:57:55 +01:00
Olivier Lambert
4076fec42f Update editions.md 2016-02-25 23:52:23 +01:00
Olivier Lambert
1b80ae3871 Update from_the_sources.md 2016-02-25 22:42:23 +01:00
Olivier Lambert
eff8f7fa7a Merge pull request #77 from cactus/patch-1
Update installation_freebsd.md
2016-02-25 22:37:37 +01:00
eli
de4608c0c3 Update installation_freebsd.md
Add some text regarding optional pkg installation that can save some time during the `npm install` phase.
2016-02-25 13:32:27 -08:00
Olivier Lambert
4ed6186de7 Update from_the_sources.md 2016-02-24 16:52:02 +01:00
Olivier Lambert
1734083219 Update purchase.md 2016-02-23 18:43:57 +01:00
Olivier Lambert
4c512fc0d0 Update invoices.md 2016-02-23 18:39:45 +01:00
Olivier Lambert
eb78d8229f Create invoices.png 2016-02-23 18:38:24 +01:00
Olivier Lambert
f279b32eb0 Update SUMMARY.md 2016-02-23 18:36:11 +01:00
Olivier Lambert
336f47a9ca Create invoices.md 2016-02-23 18:36:09 +01:00
Olivier Lambert
fd2bc8a719 Update editions.md 2016-02-23 18:36:05 +01:00
Olivier Lambert
f831dae65a Update SUMMARY.md 2016-02-23 18:35:54 +01:00
Olivier Lambert
c4fd6650c3 Create editions.md 2016-02-23 18:35:53 +01:00
Olivier Lambert
0ab6db4a97 Update purchase.md 2016-02-23 18:35:50 +01:00
Olivier Lambert
593a78cd8d Update SUMMARY.md 2016-02-23 18:35:31 +01:00
Olivier Lambert
c50a2d87f1 Update SUMMARY.md 2016-02-23 18:35:18 +01:00
Olivier Lambert
b6056e9b0f Update SUMMARY.md 2016-02-23 18:35:08 +01:00
Olivier Lambert
660002dde8 Update SUMMARY.md 2016-02-23 18:34:30 +01:00
Olivier Lambert
3031bac5b6 Update reseller.md 2016-02-23 15:44:48 +01:00
Olivier Lambert
3020f3cc15 Update self_service.md 2016-02-23 15:29:58 +01:00
Olivier Lambert
2db8e2e1ea Update purchase.md 2016-02-23 14:53:48 +01:00
Olivier Lambert
df3beb6be2 Update purchase.md 2016-02-23 14:49:38 +01:00
Olivier Lambert
86f2cacc6a Update reseller.md 2016-02-23 14:41:49 +01:00
Olivier Lambert
6a37b9649d Create partner_request.png 2016-02-23 14:37:06 +01:00
Olivier Lambert
6f794380ac Update reseller.md 2016-02-23 14:25:28 +01:00
Olivier Lambert
cf5a092462 Update through_purchase_department.md 2016-02-23 14:24:06 +01:00
Olivier Lambert
8828d2e59e Update through_purchase_department.md 2016-02-23 14:23:10 +01:00
Olivier Lambert
fe78af36a9 Update through_purchase_department.md 2016-02-23 14:22:34 +01:00
Olivier Lambert
1a330cbe89 Create purchaser_button.png 2016-02-23 14:21:30 +01:00
Olivier Lambert
09a8cd30d2 Update through_purchase_department.md 2016-02-23 14:19:28 +01:00
Olivier Lambert
7ca04e2e19 Update directpurchase.md 2016-02-23 14:17:09 +01:00
Olivier Lambert
6daf84faee Update directpurchase.md 2016-02-23 14:15:28 +01:00
Olivier Lambert
b1c3ab0ee4 Create member_purchase3.png 2016-02-23 14:15:00 +01:00
Olivier Lambert
84234bd708 Create member_purchase2.png 2016-02-23 14:13:37 +01:00
Olivier Lambert
79de7ad301 Create member_purchase.png 2016-02-23 14:11:50 +01:00
Olivier Lambert
b62a88aa0f Update purchase.md 2016-02-23 14:09:07 +01:00
Olivier Lambert
936e0ddf22 Update purchase.md 2016-02-23 14:07:25 +01:00
Olivier Lambert
470bbd9d25 Update purchase.md 2016-02-23 14:06:03 +01:00
Olivier Lambert
843632b2e4 Update purchase.md 2016-02-23 14:05:34 +01:00
Olivier Lambert
a9e54a069e Update SUMMARY.md 2016-02-23 14:03:25 +01:00
Olivier Lambert
1c2b052d15 Update SUMMARY.md 2016-02-23 14:03:22 +01:00
Olivier Lambert
a7911429ff Update SUMMARY.md 2016-02-23 14:03:19 +01:00
Olivier Lambert
eb865bccab Create reseller.md 2016-02-23 14:03:17 +01:00
Olivier Lambert
c03b5b5014 Update SUMMARY.md 2016-02-23 14:03:14 +01:00
Olivier Lambert
cecd3d2cae Update SUMMARY.md 2016-02-23 14:03:01 +01:00
Olivier Lambert
8ff6807a3a Create through_purchase_department.md 2016-02-23 14:02:58 +01:00
Olivier Lambert
563cb9a3c7 Update SUMMARY.md 2016-02-23 14:02:53 +01:00
Olivier Lambert
b1b2d0ed3a Update directpurchase.md 2016-02-23 14:02:01 +01:00
Olivier Lambert
cda34f372a Update SUMMARY.md 2016-02-23 14:01:48 +01:00
Olivier Lambert
f82845548c Update SUMMARY.md 2016-02-23 14:01:41 +01:00
Olivier Lambert
972cf9bd76 Create directpurchase.md 2016-02-23 14:01:39 +01:00
Olivier Lambert
8ea197c21d Update SUMMARY.md 2016-02-23 14:01:20 +01:00
Olivier Lambert
dcbc1af0e7 Update purchase.md 2016-02-23 14:00:57 +01:00
Olivier Lambert
2df8ce3575 Update purchase.md 2016-02-23 13:59:41 +01:00
Olivier Lambert
5a67b9ea89 Update purchase.md 2016-02-23 13:25:30 +01:00
Olivier Lambert
0862732739 Update purchase.md 2016-02-23 13:22:48 +01:00
Olivier Lambert
f3cc2a62da Update SUMMARY.md 2016-02-23 11:27:52 +01:00
Olivier Lambert
75288f16ea Create purchase.md 2016-02-23 11:27:50 +01:00
Olivier Lambert
a185ab01df Update SUMMARY.md 2016-02-23 11:27:46 +01:00
Olivier Lambert
e184763b91 Update features.md 2016-02-23 11:26:23 +01:00
Olivier Lambert
c890d1b8be Create smartphone1.jpg 2016-02-23 11:26:12 +01:00
Olivier Lambert
ddb173ebb9 Update roadmap.md 2016-02-22 17:58:55 +01:00
Olivier Lambert
456a55907d Update self_service.md 2016-02-22 17:54:49 +01:00
Olivier Lambert
dd91b037ea Update self_service.md 2016-02-22 11:17:52 +01:00
Olivier Lambert
fe83402210 Update self_service.md 2016-02-22 11:17:09 +01:00
Olivier Lambert
d3a3fd67b9 Update load_balancing.md 2016-02-21 22:18:07 +01:00
Olivier Lambert
a4d173aa2c Update load_balancing.md 2016-02-21 22:04:23 +01:00
Olivier Lambert
e706256fb1 Update roadmap.md 2016-02-21 22:03:54 +01:00
Olivier Lambert
2664af0db5 Update self_service.md 2016-02-19 17:30:56 +01:00
Olivier Lambert
a710b6ffe3 Create selfservice_createvm.png 2016-02-19 17:29:56 +01:00
Olivier Lambert
066c477f9b Update self_service.md 2016-02-19 17:27:05 +01:00
Olivier Lambert
38ab23b927 Create selfservice_newvm.png 2016-02-19 17:26:15 +01:00
Olivier Lambert
add5f1754c Update self_service.md 2016-02-19 17:25:07 +01:00
Olivier Lambert
6468c01a79 Update self_service.md 2016-02-19 17:19:48 +01:00
Olivier Lambert
0d1c4d367a Update self_service.md 2016-02-19 17:18:27 +01:00
Olivier Lambert
7fba73f0df Create selfservice_recap.png 2016-02-19 17:17:59 +01:00
Olivier Lambert
ff904f50cb Update self_service.md 2016-02-19 17:17:57 +01:00
Olivier Lambert
e1b96a7a74 Update self_service.md 2016-02-19 17:15:45 +01:00
Olivier Lambert
db87d6ef8a Update self_service.md 2016-02-19 17:15:12 +01:00
Olivier Lambert
95390670c4 Create selfservice_creation.png 2016-02-19 17:14:58 +01:00
Olivier Lambert
5e198b248f Update self_service.md 2016-02-19 17:12:06 +01:00
Olivier Lambert
f4b92386bd Create selfservice_menu.png 2016-02-19 17:11:50 +01:00
Olivier Lambert
39c60ba387 Update self_service.md 2016-02-19 17:11:14 +01:00
Olivier Lambert
39387b828c Update self_service.md 2016-02-19 17:04:18 +01:00
Olivier Lambert
e845a14f26 Update load_balancing.md 2016-02-19 17:02:54 +01:00
Olivier Lambert
d0fe9671f0 Update xoa.md 2016-02-18 16:56:02 +01:00
Olivier Lambert
f82caf2b09 Update cloudinit.md 2016-02-17 15:58:50 +01:00
Olivier Lambert
30f77bfbff Update configuration.md 2016-02-16 17:04:43 +01:00
Olivier Lambert
bf20ea976f Update configuration.md 2016-02-16 17:04:39 +01:00
Olivier Lambert
e33bd22cb7 Update configuration.md 2016-02-16 17:03:54 +01:00
Olivier Lambert
33fed71626 Update configuration.md 2016-02-16 16:16:22 +01:00
Olivier Lambert
7e339b9a0a Update administration.md 2016-02-16 16:07:57 +01:00
Olivier Lambert
bc8c5acb66 Update configuration.md 2016-02-16 16:07:00 +01:00
Olivier Lambert
0a0dff877f Update administration.md 2016-02-16 16:03:18 +01:00
Olivier Lambert
54e4c377d8 Update administration.md 2016-02-16 16:00:29 +01:00
Olivier Lambert
ff78acf4c5 Update load_balancing.md 2016-02-08 19:36:26 +01:00
Olivier Lambert
2b726730e9 Update delta_backups.md 2016-02-02 17:02:27 +01:00
Olivier Lambert
41f3f4d816 Update administration.md 2016-02-02 10:08:54 +01:00
Olivier Lambert
cb591f77e9 Update administration.md 2016-02-02 10:07:15 +01:00
Olivier Lambert
d508f7b4ed Create cpu_weight.png 2016-02-02 10:06:27 +01:00
Olivier Lambert
1c8388f3fd Update roadmap.md 2016-01-25 17:24:29 +01:00
Olivier Lambert
93af3900af Update continuous_replication.md 2016-01-19 21:41:29 +01:00
Olivier Lambert
13ae7ecf59 Update from_the_sources.md 2016-01-19 10:47:07 +01:00
Olivier Lambert
76a7c6dad8 Update from_the_sources.md 2016-01-18 13:12:51 +01:00
Olivier Lambert
93e830e09e Update continuous_replication.md 2016-01-17 00:14:16 +01:00
Olivier Lambert
0151fcc626 Update configuration.md 2016-01-16 13:32:10 +01:00
Olivier Lambert
2966b9007c Update from_the_sources.md 2016-01-16 13:29:31 +01:00
Olivier Lambert
cec868d45f Update continuous_replication.md 2016-01-16 09:39:33 +01:00
Olivier Lambert
0488bbc8a1 Update continuous_replication.md 2016-01-16 09:39:10 +01:00
Olivier Lambert
4a766eb9e7 Update continuous_replication.md 2016-01-16 09:38:50 +01:00
Olivier Lambert
7c7661375c Update self_service.md 2016-01-15 12:11:19 +01:00
Olivier Lambert
791fa36d73 Update delta_backups.md 2016-01-14 18:14:07 +01:00
Olivier Lambert
6faf1ce65d Update SUMMARY.md 2016-01-14 18:14:03 +01:00
Olivier Lambert
f4bc71af7e Update delta_backups.md 2016-01-14 18:13:37 +01:00
Olivier Lambert
7872430235 Update delta_backups.md 2016-01-14 18:11:08 +01:00
Olivier Lambert
5621af6a4c Update SUMMARY.md 2016-01-14 17:39:48 +01:00
Olivier Lambert
bcf4945ea1 Update health.md 2016-01-14 17:35:51 +01:00
Olivier Lambert
be4403d8ec Update visualizations.md 2016-01-14 17:35:44 +01:00
Olivier Lambert
4acf2aad38 Update health.md 2016-01-14 17:34:34 +01:00
Olivier Lambert
5c32f6a1f2 Update visualizations.md 2016-01-14 17:34:20 +01:00
Olivier Lambert
40f81fbf2e Update SUMMARY.md 2016-01-14 17:34:06 +01:00
Olivier Lambert
f4d9f226f6 Update SUMMARY.md 2016-01-14 17:34:00 +01:00
Olivier Lambert
4d52c559c6 Update health.md 2016-01-14 17:33:53 +01:00
Olivier Lambert
4cad5382df Update SUMMARY.md 2016-01-14 17:33:11 +01:00
Olivier Lambert
888110152f Create health.md 2016-01-14 17:33:09 +01:00
Olivier Lambert
61e0e9ecd2 Update SUMMARY.md 2016-01-14 17:33:04 +01:00
Olivier Lambert
53c694630c Update continuous_replication.md 2016-01-09 08:19:35 +01:00
Olivier Lambert
dc3383a237 Update self_service.md 2016-01-04 16:23:20 +01:00
Olivier Lambert
43d7a4b9f1 Update troubleshooting.md 2015-12-30 11:20:36 +01:00
Olivier Lambert
e2669cb5d3 Update troubleshooting.md 2015-12-30 11:19:44 +01:00
Olivier Lambert
7e89a0bf42 Update from_the_sources.md 2015-12-28 13:57:43 +01:00
Olivier Lambert
680880d857 Update features.md 2015-12-22 13:48:30 +01:00
Olivier Lambert
b08d026eec Update continuous_replication.md 2015-12-20 11:11:29 +01:00
Olivier Lambert
e9c2aeeca0 Update continuous_replication.md 2015-12-19 14:27:51 +01:00
Olivier Lambert
5fd178783f Update SUMMARY.md 2015-12-19 14:24:56 +01:00
Olivier Lambert
ddcc8a149d Create continuous_replication.md 2015-12-19 14:24:54 +01:00
Olivier Lambert
0f30157be2 Update SUMMARY.md 2015-12-19 14:24:49 +01:00
Olivier Lambert
80d3698481 Update roadmap.md 2015-12-19 14:24:41 +01:00
Olivier Lambert
07fb894c0e Update delta_backups.md 2015-12-18 18:07:39 +01:00
Olivier Lambert
5ca9654b2f Update delta_backups.md 2015-12-18 18:02:19 +01:00
Olivier Lambert
88ba3f3ff3 Update cloudinit.md 2015-12-18 11:15:55 +01:00
Olivier Lambert
03a3685f1d Update xoa.md 2015-12-17 16:19:13 +01:00
Olivier Lambert
fe12941494 Update alerts.md 2015-12-16 19:07:04 +01:00
Olivier Lambert
12eaa0a9b3 Update plugins.md 2015-12-16 19:03:34 +01:00
Olivier Lambert
782f8e1349 Update plugins.md 2015-12-16 19:02:22 +01:00
Olivier Lambert
cece40ed47 Create plugins.png 2015-12-16 19:01:45 +01:00
Olivier Lambert
4e7250c4c2 Update SUMMARY.md 2015-12-16 18:59:49 +01:00
Olivier Lambert
80f56ed41d Create plugins.md 2015-12-16 18:59:47 +01:00
Olivier Lambert
6fd67a8fd2 Update SUMMARY.md 2015-12-16 18:59:43 +01:00
Olivier Lambert
24d16438c1 Update SUMMARY.md 2015-12-16 18:59:37 +01:00
Olivier Lambert
2f5de232e1 Update authentication.md 2015-12-16 18:58:45 +01:00
Olivier Lambert
f8189b4874 Update administration.md 2015-12-16 18:57:41 +01:00
Olivier Lambert
1f9cac4e08 Update administration.md 2015-12-16 18:54:37 +01:00
Olivier Lambert
34b67b9ed9 Update SUMMARY.md 2015-12-16 18:44:38 +01:00
Olivier Lambert
27af2f263c Update cloudinit.md 2015-12-16 18:43:02 +01:00
Olivier Lambert
6c18c72620 Update SUMMARY.md 2015-12-16 18:39:13 +01:00
Olivier Lambert
2c41851564 Create cloudinit.md 2015-12-16 18:39:11 +01:00
Olivier Lambert
8df79730d1 Update SUMMARY.md 2015-12-16 18:39:06 +01:00
Olivier Lambert
c237c5bdcd Update contributing.md 2015-12-14 17:01:23 +01:00
Olivier Lambert
41175d8ff6 Update roadmap.md 2015-12-08 23:56:30 +01:00
Olivier Lambert
b1b28fa365 Update roadmap.md 2015-12-08 18:58:45 +01:00
Olivier Lambert
4bf3148596 Update administration.md 2015-12-07 21:24:36 +01:00
Olivier Lambert
0f29455dc5 Update features.md 2015-12-07 00:48:23 +01:00
Olivier Lambert
826b702fb9 Update administration.md 2015-12-04 14:41:11 +01:00
Olivier Lambert
b10f19b139 Update backups.md 2015-12-03 17:15:34 +01:00
Olivier Lambert
6b1ac2002b Update delta_backups.md 2015-12-03 17:13:18 +01:00
Olivier Lambert
5b91e5c685 Update load_balancing.md 2015-11-27 16:04:49 +01:00
Olivier Lambert
07b9e5f16a Update backups.md 2015-11-27 15:29:08 +01:00
Olivier Lambert
c4487d4aec Update backups.md 2015-11-27 15:29:07 +01:00
Olivier Lambert
9815acf6f7 Update backups.md 2015-11-27 15:28:57 +01:00
Olivier Lambert
2a94921f58 Update backups.md 2015-11-27 15:05:55 +01:00
Olivier Lambert
112ee94d79 Update administration.md 2015-11-27 12:54:58 +01:00
Olivier Lambert
8ae51cfd36 Update administration.md 2015-11-27 12:54:23 +01:00
Olivier Lambert
e6feb15704 Update backups.md 2015-11-27 12:53:00 +01:00
Olivier Lambert
fabff5954b Update scheduler.md 2015-11-27 12:51:25 +01:00
Olivier Lambert
d6b6df042d Update docker_support.md 2015-11-22 23:03:29 +01:00
Olivier Lambert
5db7b5f6c4 Update docker_support.md 2015-11-22 23:03:04 +01:00
Olivier Lambert
1b679bd8ec Update SUMMARY.md 2015-11-22 23:00:17 +01:00
Olivier Lambert
1e4660583b Create docker_support.md 2015-11-22 23:00:15 +01:00
Olivier Lambert
c6b16525e7 Update SUMMARY.md 2015-11-22 22:59:30 +01:00
Olivier Lambert
6c144493e0 Update SUMMARY.md 2015-11-22 22:59:26 +01:00
Olivier Lambert
4dd31cb6db Update xoa.md 2015-11-20 17:15:24 +01:00
Olivier Lambert
60bc923ca0 Update full_backups.md 2015-11-19 20:18:51 +01:00
Olivier Lambert
71f2e67321 Update roadmap.md 2015-11-19 19:44:23 +01:00
Olivier Lambert
60b2fdb319 Update disaster_recovery.md 2015-11-19 16:40:23 +01:00
Olivier Lambert
13739ca558 Update backups.md 2015-11-19 16:15:01 +01:00
Olivier Lambert
1a3ffb05ab Update SUMMARY.md 2015-11-19 16:14:16 +01:00
Olivier Lambert
beb5587b52 Update delta_backups.md 2015-11-19 16:14:09 +01:00
Olivier Lambert
d8eefb1293 Update delta_backups.md 2015-11-19 14:43:08 +01:00
Olivier Lambert
e0c1fd1d3c Update delta_backups.md 2015-11-19 14:41:46 +01:00
Olivier Lambert
788124e144 Update visualizations.md 2015-11-19 13:36:54 +01:00
Olivier Lambert
c8a337dd90 Update visualizations.md 2015-11-19 13:36:07 +01:00
Olivier Lambert
6332e73e38 Update disaster_recovery.md 2015-11-19 13:35:11 +01:00
Olivier Lambert
7e443c8aef Update rolling_snapshots.md 2015-11-19 13:34:40 +01:00
Olivier Lambert
c0b2be170b Update rolling_snapshots.md 2015-11-19 13:33:53 +01:00
Olivier Lambert
6bc6328ad2 Update full_backups.md 2015-11-19 13:33:36 +01:00
Olivier Lambert
c469f5b01e Update scheduler.md 2015-11-19 12:48:54 +01:00
Olivier Lambert
f7f666c383 Update scheduler.md 2015-11-19 11:57:03 +01:00
Olivier Lambert
e11fd76b35 Update SUMMARY.md 2015-11-19 11:54:59 +01:00
Olivier Lambert
d9ede0fd4f Update delta_backups.md 2015-11-19 11:25:46 +01:00
Olivier Lambert
061217791d Update delta_backups.md 2015-11-19 11:25:00 +01:00
Olivier Lambert
418099f893 Update delta_backups.md 2015-11-19 11:24:23 +01:00
Olivier Lambert
3925926693 Update roadmap.md 2015-11-19 11:23:44 +01:00
Olivier Lambert
eb52095081 Update delta_backups.md 2015-11-19 11:23:25 +01:00
Olivier Lambert
635acfd9af Update SUMMARY.md 2015-11-19 11:18:10 +01:00
Olivier Lambert
a4a06d1331 Create delta_backups.md 2015-11-19 11:18:08 +01:00
Olivier Lambert
3f58d0ae0c Update SUMMARY.md 2015-11-19 11:17:42 +01:00
Olivier Lambert
0f6ff55f80 Update SUMMARY.md 2015-11-19 11:17:26 +01:00
Olivier Lambert
1cf462a989 Update roadmap.md 2015-11-18 18:53:55 +01:00
Olivier Lambert
124afa9be7 Update administration.md 2015-11-18 17:31:08 +01:00
Julien Fontanet
d8334d1515 stable is the new stable branch. 2015-11-18 16:29:40 +01:00
Julien Fontanet
1a291b5ef4 Update book.json 2015-11-17 17:29:36 +01:00
Julien Fontanet
45e8cfabb2 Create styles/website.css 2015-11-17 17:26:04 +01:00
Julien Fontanet
411ef0b3fb Update book.json 2015-11-17 17:15:19 +01:00
Julien Fontanet
4b14b2a6a5 Update book.json 2015-11-17 17:10:53 +01:00
Julien Fontanet
c3c6aec2f1 Update book.json 2015-11-17 17:09:07 +01:00
Julien Fontanet
5e74e44ec1 Update book.json 2015-11-17 17:07:22 +01:00
Julien Fontanet
74d257e413 Update book.json 2015-11-17 17:06:36 +01:00
Julien Fontanet
38829421a9 Update book.json 2015-11-17 17:05:35 +01:00
Julien Fontanet
59407a71e9 Update book.json 2015-11-17 17:05:20 +01:00
Olivier Lambert
11c3668e5f Update backups.md 2015-11-17 16:57:56 +01:00
Olivier Lambert
7572dea71c Update backups.md 2015-11-17 16:57:05 +01:00
Olivier Lambert
5983b606fe Delete how_to_contribute.md 2015-11-17 11:17:16 +01:00
Olivier Lambert
6a595bffbb Update SUMMARY.md 2015-11-17 11:17:09 +01:00
Olivier Lambert
e9c667f1e9 Update troubleshooting.md 2015-11-16 17:46:43 +01:00
Olivier Lambert
9bbbc94dfc Update troubleshooting.md 2015-11-16 17:41:46 +01:00
Olivier Lambert
a61f6504ab Update troubleshooting.md 2015-11-16 17:40:29 +01:00
Olivier Lambert
7a2a409a11 Update full_backups.md 2015-11-16 16:04:34 +01:00
Olivier Lambert
5bfade48dc Update administration.md 2015-11-16 14:25:02 +01:00
Julien Fontanet
5c32b364f2 Minor update in contributing. 2015-11-16 10:54:41 +01:00
Olivier Lambert
cbb00668d9 Update troubleshooting.md 2015-11-15 23:37:41 +01:00
Olivier Lambert
ef729a907a Update troubleshooting.md 2015-11-15 23:36:32 +01:00
Olivier Lambert
92754242b6 Update troubleshooting.md 2015-11-15 21:24:51 +01:00
Olivier Lambert
3149fa7315 Update troubleshooting.md 2015-11-15 21:21:46 +01:00
Olivier Lambert
75de33bf7a Update SUMMARY.md 2015-11-15 20:37:05 +01:00
Olivier Lambert
e4e3111ed2 Create troubleshooting.md 2015-11-15 20:37:03 +01:00
Olivier Lambert
d501217dc7 Update SUMMARY.md 2015-11-15 20:36:59 +01:00
Olivier Lambert
9dd803290f Update administration.md 2015-11-13 21:48:28 +01:00
Olivier Lambert
da23a92ca8 Update rolling_snapshots.md 2015-11-13 18:49:12 +01:00
Olivier Lambert
643d61bad0 Update SUMMARY.md 2015-11-13 18:48:57 +01:00
Olivier Lambert
1fce46471b Create rolling_snapshots.md 2015-11-13 18:48:55 +01:00
Olivier Lambert
ca98a8ecc2 Update backups.md 2015-11-13 18:48:51 +01:00
Olivier Lambert
0c7d93f88b Update full_backups.md 2015-11-13 18:48:37 +01:00
Olivier Lambert
136f69fe28 Update backups.md 2015-11-13 18:48:07 +01:00
Olivier Lambert
3c10cfd594 Update SUMMARY.md 2015-11-13 18:48:06 +01:00
Olivier Lambert
8d09e6d0e6 Create full_backups.md 2015-11-13 18:48:03 +01:00
Olivier Lambert
acb3448358 Update SUMMARY.md 2015-11-13 18:47:12 +01:00
Olivier Lambert
67a1cb9d1a Update SUMMARY.md 2015-11-13 18:46:55 +01:00
Olivier Lambert
8d81266e72 Update backups.md 2015-11-13 18:40:49 +01:00
Olivier Lambert
8864353f5a Update logs.md 2015-11-13 18:37:58 +01:00
Olivier Lambert
579dfbe5c9 Update SUMMARY.md 2015-11-13 18:34:17 +01:00
Olivier Lambert
6256227922 Create logs.md 2015-11-13 18:34:14 +01:00
Olivier Lambert
978d1c7a61 Update SUMMARY.md 2015-11-13 18:34:06 +01:00
Olivier Lambert
47f5b04ed8 Update backups.md 2015-11-13 17:48:37 +01:00
Olivier Lambert
27a22e10ab Update backups.md 2015-11-13 17:48:25 +01:00
Olivier Lambert
0ebffa1e63 Update self_service.md 2015-11-13 15:42:30 +01:00
Olivier Lambert
d3eeb05cbc Update updater.md 2015-11-13 12:36:36 +01:00
Olivier Lambert
a263663312 Update backups.md 2015-11-13 11:27:00 +01:00
Olivier Lambert
330794b27b Update updater.md 2015-11-13 11:25:45 +01:00
Olivier Lambert
8ec6684000 Create refreshupdater.png 2015-11-13 11:25:05 +01:00
Olivier Lambert
0b40b77802 Update administration.md 2015-11-12 22:15:57 +01:00
Olivier Lambert
cea08dba5a Update load_balancing.md 2015-11-12 19:57:14 +01:00
Olivier Lambert
64c0ff1e39 Create loadbalancer.jpg 2015-11-12 19:54:01 +01:00
Olivier Lambert
2070c663e0 Update roadmap.md 2015-11-12 17:29:24 +01:00
Olivier Lambert
73c84bfb2a Update alerts.md 2015-11-12 17:23:19 +01:00
Olivier Lambert
b4d1dd7f49 Update alerts.md 2015-11-12 17:22:13 +01:00
Olivier Lambert
029c854003 Update alerts.md 2015-11-12 17:20:43 +01:00
Olivier Lambert
aad8999275 Update SUMMARY.md 2015-11-12 17:13:53 +01:00
Olivier Lambert
87a621288d Create alerts.md 2015-11-12 17:13:52 +01:00
Olivier Lambert
2f9ae7e3b1 Update SUMMARY.md 2015-11-12 17:13:47 +01:00
Olivier Lambert
2d2eee4a4c Update SUMMARY.md 2015-11-12 17:13:20 +01:00
Olivier Lambert
7569bb4cca Update scheduler.md 2015-11-12 17:09:55 +01:00
Olivier Lambert
e4090ac84b Update SUMMARY.md 2015-11-12 17:09:47 +01:00
Olivier Lambert
b34554a2d4 Update scheduler.md 2015-11-12 16:30:11 +01:00
Olivier Lambert
0d16963705 Update updater.md 2015-11-12 16:29:07 +01:00
Olivier Lambert
c1c459e4fc Update updater.md 2015-11-12 15:46:57 +01:00
Olivier Lambert
739d13fb04 Create regproxy.png 2015-11-12 15:37:53 +01:00
Olivier Lambert
e74d613808 Create regupdate.png 2015-11-12 15:36:13 +01:00
Olivier Lambert
117d5e0796 Update updater.md 2015-11-12 15:03:28 +01:00
Olivier Lambert
4ccc89098e Create updater_reg2.png 2015-11-12 14:57:13 +01:00
Olivier Lambert
4455b128a9 Create updater_reg.png 2015-11-12 14:57:12 +01:00
Olivier Lambert
c72063eee5 Create updater_notreg.png 2015-11-12 14:55:48 +01:00
Olivier Lambert
a96965c1b9 Update SUMMARY.md 2015-11-12 14:35:17 +01:00
Olivier Lambert
1b08d32314 Create updater.md 2015-11-12 14:35:16 +01:00
Olivier Lambert
9df6f3e28a Update SUMMARY.md 2015-11-12 14:35:12 +01:00
Olivier Lambert
296b4a8ce5 Update SUMMARY.md 2015-11-12 14:35:07 +01:00
Olivier Lambert
aad5fa8786 Update load_balancing.md 2015-11-12 12:10:37 +01:00
Olivier Lambert
c159448710 Update administration.md 2015-11-12 11:22:58 +01:00
Olivier Lambert
d6d5d2420a Update README.md 2015-11-11 20:18:52 +01:00
Olivier Lambert
187e7db6d2 Update architecture.md 2015-11-11 20:16:54 +01:00
Olivier Lambert
66fd334d8b Update README.md 2015-11-11 20:16:14 +01:00
Olivier Lambert
ca840a67e5 Create cover.jpg 2015-11-11 20:03:42 +01:00
Olivier Lambert
9efda9be12 Delete cover.jpg 2015-11-11 20:03:36 +01:00
Olivier Lambert
be818f184e Update roadmap.md 2015-11-11 20:03:06 +01:00
Olivier Lambert
b3cf525630 Update roadmap.md 2015-11-11 20:00:08 +01:00
Olivier Lambert
b1b5b4d304 Update SUMMARY.md 2015-11-11 19:57:55 +01:00
Olivier Lambert
4686c78ab3 Create roadmap.md 2015-11-11 19:57:54 +01:00
Olivier Lambert
9b7631e3c4 Delete roadmap.md 2015-11-11 19:57:51 +01:00
Olivier Lambert
f1a68fa299 Update SUMMARY.md 2015-11-11 19:57:14 +01:00
Olivier Lambert
e1a7352540 Update SUMMARY.md 2015-11-11 19:57:10 +01:00
Olivier Lambert
db58260f1a Update SUMMARY.md 2015-11-11 19:57:07 +01:00
Olivier Lambert
b89102da3e Update SUMMARY.md 2015-11-11 19:57:03 +01:00
Olivier Lambert
a56730468d Update SUMMARY.md 2015-11-11 19:56:55 +01:00
Olivier Lambert
f1b7c35f4c Update SUMMARY.md 2015-11-11 19:56:49 +01:00
Olivier Lambert
81215139d2 Update SUMMARY.md 2015-11-11 19:56:39 +01:00
Olivier Lambert
05b1d54fe0 Create cover.jpg 2015-11-11 19:56:08 +01:00
Olivier Lambert
5f69fdd67e Delete cover.jpg 2015-11-11 19:55:27 +01:00
Olivier Lambert
dd1e8b59aa Create cover.jpg 2015-11-11 19:53:28 +01:00
Olivier Lambert
9703ba0bd9 Delete cover.jpg 2015-11-11 19:53:22 +01:00
Olivier Lambert
9f66d28a3e Create cover.jpg 2015-11-11 19:51:23 +01:00
Olivier Lambert
e1df5b6ed6 Delete cover.jpg 2015-11-11 19:51:18 +01:00
Olivier Lambert
4fc3e34eb6 Create cover.jpg 2015-11-11 19:49:19 +01:00
Olivier Lambert
f77a4ff0b2 Delete cover.jpg 2015-11-11 19:49:13 +01:00
Olivier Lambert
23d859938a Update self_service.md 2015-11-11 19:44:56 +01:00
Olivier Lambert
63548bea00 Update forecaster.md 2015-11-11 19:44:21 +01:00
Olivier Lambert
ea65148af5 Update scheduler.md 2015-11-11 19:43:14 +01:00
Olivier Lambert
251b2c7065 Update load_balancing.md 2015-11-11 19:43:02 +01:00
Olivier Lambert
3d86d7f8b9 Update auto_scalability.md 2015-11-11 19:42:50 +01:00
Olivier Lambert
1b6a4bf31e Update forecaster.md 2015-11-11 19:42:12 +01:00
Olivier Lambert
05e1a1192a Update SUMMARY.md 2015-11-11 19:38:03 +01:00
Olivier Lambert
3a8e1c613d Create forecaster.md 2015-11-11 19:38:02 +01:00
Olivier Lambert
b67c3a62a4 Update SUMMARY.md 2015-11-11 19:37:59 +01:00
Olivier Lambert
3232743319 Update load_balancing.md 2015-11-11 19:36:25 +01:00
Olivier Lambert
7ea80d5b8f Update auto_scalability.md 2015-11-11 19:33:26 +01:00
Olivier Lambert
46266cdb0e Update SUMMARY.md 2015-11-11 19:31:24 +01:00
Olivier Lambert
3ac5002791 Create auto_scalability.md 2015-11-11 19:31:22 +01:00
Olivier Lambert
b2b1d33a8c Update SUMMARY.md 2015-11-11 19:31:19 +01:00
Olivier Lambert
1265fea287 Update SUMMARY.md 2015-11-11 19:31:16 +01:00
Olivier Lambert
c372ecde65 Update SUMMARY.md 2015-11-11 19:31:11 +01:00
Olivier Lambert
eeaa441bef Update SUMMARY.md 2015-11-11 19:31:06 +01:00
Olivier Lambert
4e977562f1 Update load_balancing.md 2015-11-11 19:28:52 +01:00
Olivier Lambert
7d7050da5d Update load_balancing.md 2015-11-11 19:27:07 +01:00
Olivier Lambert
f7d6020389 Update load_balancing.md 2015-11-11 19:24:59 +01:00
Olivier Lambert
c5be0f5234 Update SUMMARY.md 2015-11-11 19:20:43 +01:00
Olivier Lambert
e11ff2ddd4 Create load_balancing.md 2015-11-11 19:20:42 +01:00
Olivier Lambert
ee950bba1e Update scheduler.md 2015-11-11 19:20:38 +01:00
Olivier Lambert
d2c69e8e11 Update SUMMARY.md 2015-11-11 19:14:21 +01:00
Olivier Lambert
375b1dcb68 Create scheduler.md 2015-11-11 19:14:20 +01:00
Olivier Lambert
3da04fa93a Update self_service.md 2015-11-11 19:14:10 +01:00
Olivier Lambert
4560b1a302 Update self_service.md 2015-11-11 19:14:01 +01:00
Olivier Lambert
dadec0b012 Update self_service.md 2015-11-11 19:09:18 +01:00
Olivier Lambert
cf7f65dc6e Update SUMMARY.md 2015-11-11 19:04:35 +01:00
Olivier Lambert
4956ec2cda Create self_service.md 2015-11-11 19:04:33 +01:00
Olivier Lambert
bba3f1e7b5 Update SUMMARY.md 2015-11-11 19:04:14 +01:00
Olivier Lambert
4795848566 Update SUMMARY.md 2015-11-11 19:04:10 +01:00
Olivier Lambert
672b10a953 Update trial_activation.md 2015-11-11 19:03:24 +01:00
Olivier Lambert
28b0f7a183 Update trial_activation.md 2015-11-11 19:02:58 +01:00
Olivier Lambert
a621240c1f Update visualizations.md 2015-11-11 19:00:59 +01:00
Olivier Lambert
5ee9de601e Update acls.md 2015-11-11 19:00:44 +01:00
Olivier Lambert
a15017de97 Update SUMMARY.md 2015-11-11 19:00:30 +01:00
Olivier Lambert
9085f861ee Create acls.md 2015-11-11 19:00:28 +01:00
Olivier Lambert
4791137a31 Update resources_delegation.md 2015-11-11 19:00:26 +01:00
Olivier Lambert
5a8cf21e69 Update SUMMARY.md 2015-11-11 19:00:10 +01:00
Olivier Lambert
f9ee192038 Update resources_delegation.md 2015-11-11 18:58:55 +01:00
Olivier Lambert
96f0f3af27 Update resources_delegation.md 2015-11-11 18:56:37 +01:00
Olivier Lambert
b66218302d Update resources_delegation.md 2015-11-11 18:56:22 +01:00
Olivier Lambert
a9cc6a3179 Update resources_delegation.md 2015-11-11 18:52:18 +01:00
Olivier Lambert
4619a044bb Create acllist.png 2015-11-11 18:40:11 +01:00
Olivier Lambert
b3d7219b11 Create createacl.png 2015-11-11 18:39:26 +01:00
Olivier Lambert
54cad25e87 Create groups.png 2015-11-11 18:36:42 +01:00
Olivier Lambert
25e5fee4e8 Update resources_delegation.md 2015-11-11 18:36:13 +01:00
Olivier Lambert
8b6696bf7b Update administration.md 2015-11-11 18:33:50 +01:00
Olivier Lambert
df3ed64dc4 Update administration.md 2015-11-11 18:32:53 +01:00
Olivier Lambert
08833c4a35 Update administration.md 2015-11-11 18:32:46 +01:00
Olivier Lambert
850e3260ba Update built-in.md 2015-11-11 18:30:08 +01:00
Olivier Lambert
ed26decd58 Create usercreation.png 2015-11-11 18:28:34 +01:00
Olivier Lambert
db86bff8e6 Update google.md 2015-11-11 18:10:54 +01:00
Olivier Lambert
466fe9b7bb Create googleconfig.png 2015-11-11 18:10:14 +01:00
Olivier Lambert
d4de92ddc7 Update github.md 2015-11-11 18:09:42 +01:00
Olivier Lambert
0847fa35c1 Create githubconfig.png 2015-11-11 18:09:13 +01:00
Olivier Lambert
7c80281ce2 Update ldap.md 2015-11-11 18:08:33 +01:00
Olivier Lambert
cf2d57809c Update saml.md 2015-11-11 18:08:14 +01:00
Olivier Lambert
4e99177686 Create samlconfig.png 2015-11-11 18:07:52 +01:00
Olivier Lambert
8d8401251f Update ldap.md 2015-11-11 18:06:09 +01:00
Olivier Lambert
7936381467 Create ldapconfig.png 2015-11-11 18:04:59 +01:00
Olivier Lambert
49f418c795 Update authentication.md 2015-11-11 17:39:19 +01:00
Olivier Lambert
5bc100ea76 Update authentication.md 2015-11-11 17:39:08 +01:00
Olivier Lambert
f7d35eb206 Update ldap.md 2015-11-11 17:38:18 +01:00
Olivier Lambert
b50b2c9673 Update authentication.md 2015-11-11 17:36:24 +01:00
Olivier Lambert
177fc6a406 Update SUMMARY.md 2015-11-11 17:35:15 +01:00
Olivier Lambert
1f64537225 Update SUMMARY.md 2015-11-11 17:35:04 +01:00
Olivier Lambert
67ae93831e Update SUMMARY.md 2015-11-11 17:34:58 +01:00
Olivier Lambert
1922d35ce9 Update resources_delegation.md 2015-11-11 15:31:26 +01:00
Olivier Lambert
7058ab2052 Delete external_authentication.md 2015-11-11 15:27:37 +01:00
Olivier Lambert
e4f42601ea Update authentication.md 2015-11-11 15:27:21 +01:00
Olivier Lambert
dec031469a Create authentication.md 2015-11-11 15:27:14 +01:00
Olivier Lambert
f292bd8ab0 Update SUMMARY.md 2015-11-11 15:27:03 +01:00
Olivier Lambert
12a269ed75 Update configuration.md 2015-11-11 15:26:46 +01:00
Olivier Lambert
6fc1fb0a9e Update configuration.md 2015-11-11 15:25:50 +01:00
Olivier Lambert
5fcc4928e8 Update configuration.md 2015-11-11 15:25:04 +01:00
Olivier Lambert
d6fd53875e Update from_the_sources.md 2015-11-11 15:24:28 +01:00
Olivier Lambert
03e890359b Update from_the_sources.md 2015-11-11 15:22:20 +01:00
Olivier Lambert
bb877fcee4 Update from_the_sources.md 2015-11-11 15:20:09 +01:00
Olivier Lambert
ec26374ae9 Update from_the_sources.md 2015-11-11 15:20:01 +01:00
Olivier Lambert
1d03334180 Update installation.md 2015-11-11 15:17:35 +01:00
Olivier Lambert
0499b7d385 Update google.md 2015-11-11 15:15:57 +01:00
Olivier Lambert
1fc52d83b4 Update saml.md 2015-11-11 15:14:53 +01:00
Olivier Lambert
8025af6a41 Update saml.md 2015-11-11 15:11:51 +01:00
Olivier Lambert
4d4f1f1476 Update SUMMARY.md 2015-11-11 15:11:28 +01:00
Olivier Lambert
b6bf6bce7c Create saml.md 2015-11-11 15:11:26 +01:00
Olivier Lambert
a292b28a23 Update SUMMARY.md 2015-11-11 15:11:20 +01:00
Olivier Lambert
078d784645 Update google.md 2015-11-11 15:09:47 +01:00
Olivier Lambert
f4463410fc Update github.md 2015-11-11 15:08:25 +01:00
Olivier Lambert
661f5d2d1b Update google.md 2015-11-11 15:07:42 +01:00
Olivier Lambert
b8e07b8bcf Update google.md 2015-11-11 15:07:08 +01:00
Olivier Lambert
5817b48da3 Update google.md 2015-11-11 15:05:15 +01:00
Olivier Lambert
0a4ad93156 Update google.md 2015-11-11 15:02:54 +01:00
Olivier Lambert
cb37849bec Update SUMMARY.md 2015-11-11 15:01:09 +01:00
Olivier Lambert
3a8707f6c1 Create google.md 2015-11-11 15:01:07 +01:00
Olivier Lambert
3574e41133 Update SUMMARY.md 2015-11-11 15:01:02 +01:00
Olivier Lambert
43bcc52ff0 Update built-in.md 2015-11-11 15:00:39 +01:00
Olivier Lambert
d63142d209 Update external_authentication.md 2015-11-11 15:00:19 +01:00
Olivier Lambert
38d7735014 Update SUMMARY.md 2015-11-11 15:00:04 +01:00
Olivier Lambert
d5889c90f5 Create built-in.md 2015-11-11 15:00:02 +01:00
Olivier Lambert
4b4e7a89d3 Update SUMMARY.md 2015-11-11 14:59:56 +01:00
Olivier Lambert
905d6bc9af Update github.md 2015-11-11 14:58:42 +01:00
Olivier Lambert
000cc244e0 Update github.md 2015-11-11 14:57:27 +01:00
Olivier Lambert
e8948dd4f5 Update github.md 2015-11-11 14:56:59 +01:00
Olivier Lambert
05613baad6 Update SUMMARY.md 2015-11-11 14:54:20 +01:00
Olivier Lambert
2a5526fc31 Create github.md 2015-11-11 14:54:18 +01:00
Olivier Lambert
95a61af91d Update external_authentication.md 2015-11-11 14:54:15 +01:00
Olivier Lambert
cc2b7a4748 Update ldap.md 2015-11-11 14:54:00 +01:00
Olivier Lambert
7f93ae3354 Update SUMMARY.md 2015-11-11 14:53:42 +01:00
Olivier Lambert
1d5ed7d1c8 Create ldap.md 2015-11-11 14:53:41 +01:00
Olivier Lambert
ce29157fb8 Update external_authentication.md 2015-11-11 14:53:38 +01:00
Olivier Lambert
339cb25d7c Update SUMMARY.md 2015-11-11 14:53:20 +01:00
Olivier Lambert
611cd2c638 Update SUMMARY.md 2015-11-11 14:53:11 +01:00
Olivier Lambert
751f4f7c40 Update external_authentication.md 2015-11-11 14:52:57 +01:00
Olivier Lambert
dc85ea7408 Update external_authentication.md 2015-11-11 14:45:24 +01:00
Olivier Lambert
bd08a6e73f Update external_authentication.md 2015-11-11 14:44:59 +01:00
Olivier Lambert
205f8384dd Update external_authentication.md 2015-11-11 14:44:42 +01:00
Olivier Lambert
07ff90d387 Update external_authentication.md 2015-11-11 14:40:09 +01:00
Olivier Lambert
afc561013b Update external_authentication.md 2015-11-11 14:39:22 +01:00
Olivier Lambert
d3f274fe27 Update resources_delegation.md 2015-11-11 14:38:45 +01:00
Olivier Lambert
59628f0f3b Update external_authentication.md 2015-11-11 14:38:31 +01:00
Olivier Lambert
0c95559d82 Update external_authentication.md 2015-11-11 14:37:55 +01:00
Olivier Lambert
ed80e9b6a4 Update external_authentication.md 2015-11-11 14:37:50 +01:00
Olivier Lambert
2c56711551 Update external_authentication.md 2015-11-11 14:36:39 +01:00
Olivier Lambert
d6f4f618f9 Update external_authentication.md 2015-11-11 14:34:00 +01:00
Olivier Lambert
0b7adf8e28 Update external_authentication.md 2015-11-11 14:32:31 +01:00
Olivier Lambert
794efb3af8 Update external_authentication.md 2015-11-11 14:25:33 +01:00
Olivier Lambert
73aebe0bd2 Update external_authentication.md 2015-11-11 14:22:39 +01:00
Olivier Lambert
33f32df33f Update SUMMARY.md 2015-11-11 14:19:09 +01:00
Olivier Lambert
278c79d6fa Update external_authentication.md 2015-11-11 14:19:00 +01:00
Olivier Lambert
2982aa7770 Update external_authentication.md 2015-11-11 14:10:29 +01:00
Olivier Lambert
42c0035e04 Update resources_delegation.md 2015-11-11 14:09:22 +01:00
Olivier Lambert
445f588913 Update SUMMARY.md 2015-11-11 14:09:21 +01:00
Olivier Lambert
91a58e5a2e Create external_authentication.md 2015-11-11 14:09:19 +01:00
Olivier Lambert
92aa05154c Update SUMMARY.md 2015-11-11 14:09:11 +01:00
Olivier Lambert
301124f1c0 Update resources_delegation.md 2015-11-11 14:07:23 +01:00
Olivier Lambert
add2c92940 Update disaster_recovery.md 2015-11-11 14:04:12 +01:00
Olivier Lambert
e463424ee4 Update disaster_recovery.md 2015-11-11 14:03:32 +01:00
Olivier Lambert
7c5a530eb0 Update disaster_recovery.md 2015-11-11 14:03:16 +01:00
Olivier Lambert
dd13ad657d Update disaster_recovery.md 2015-11-11 14:02:59 +01:00
Olivier Lambert
64d379f1d6 Update disaster_recovery.md 2015-11-11 14:02:00 +01:00
Olivier Lambert
16e920ee84 Update backups.md 2015-11-11 14:01:32 +01:00
Olivier Lambert
b9d3e1dab6 Update administration.md 2015-11-11 14:00:33 +01:00
Olivier Lambert
086519367d Update administration.md 2015-11-11 13:58:15 +01:00
Olivier Lambert
bf40c52e7e Update administration.md 2015-11-11 13:57:14 +01:00
Olivier Lambert
2e730b7623 Update administration.md 2015-11-11 13:56:42 +01:00
Olivier Lambert
290694314f Update administration.md 2015-11-11 13:56:15 +01:00
Olivier Lambert
3d52939547 Update administration.md 2015-11-11 13:56:07 +01:00
Olivier Lambert
3e8a692373 Update administration.md 2015-11-11 13:54:49 +01:00
Olivier Lambert
2f95e5426e Update administration.md 2015-11-11 13:54:38 +01:00
Olivier Lambert
7dd4ce4e7e Update administration.md 2015-11-11 13:52:44 +01:00
Olivier Lambert
88c58f44f5 Update features.md 2015-11-11 13:49:41 +01:00
Olivier Lambert
52d5678c5d Update architecture.md 2015-11-11 13:49:00 +01:00
Olivier Lambert
6f24cd1a73 Update others.md 2015-11-11 13:48:33 +01:00
Olivier Lambert
64a1f19e19 Update architecture.md 2015-11-11 13:45:14 +01:00
Olivier Lambert
41055b8cac Create cover.jpg 2015-11-11 13:42:50 +01:00
Olivier Lambert
6ad702ea2d Update visualizations.md 2015-11-10 16:33:06 +01:00
Olivier Lambert
0500943dd6 Update visualizations.md 2015-11-10 16:30:18 +01:00
Olivier Lambert
65619522a6 Update visualizations.md 2015-11-10 16:18:50 +01:00
Olivier Lambert
526ec2dfec Update backups.md 2015-11-10 16:11:51 +01:00
Olivier Lambert
e72f20e738 Update backups.md 2015-11-10 16:09:39 +01:00
Olivier Lambert
9b2b98e9ce Update disaster_recovery.md 2015-11-10 15:56:27 +01:00
Olivier Lambert
382bfaa035 Update disaster_recovery.md 2015-11-10 15:55:05 +01:00
Olivier Lambert
85d5df05f9 Update disaster_recovery.md 2015-11-10 15:54:31 +01:00
Olivier Lambert
e2725ce23e Update resources_delegation.md 2015-11-10 15:48:44 +01:00
Olivier Lambert
784622142f Update resources_delegation.md 2015-11-10 15:43:18 +01:00
Olivier Lambert
54209c1613 Update disaster_recovery.md 2015-11-10 15:38:54 +01:00
Olivier Lambert
db73e3f007 Update disaster_recovery.md 2015-11-10 15:38:01 +01:00
Olivier Lambert
44a5d37f14 Update others.md 2015-11-10 15:32:28 +01:00
Olivier Lambert
ee44cea02e Update others.md 2015-11-10 15:32:19 +01:00
Olivier Lambert
950ae76120 Update xoa.md 2015-11-10 15:30:35 +01:00
Olivier Lambert
0e686b5bb1 Update xoa.md 2015-11-10 15:30:25 +01:00
Olivier Lambert
0b2b88b553 Update xoa.md 2015-11-10 15:30:20 +01:00
Olivier Lambert
09f7a90491 Update xoa.md 2015-11-10 15:29:57 +01:00
Olivier Lambert
07cedb8a22 Update from_the_sources.md 2015-11-10 15:25:51 +01:00
Olivier Lambert
cd8d899fb5 Update features.md 2015-11-10 15:22:44 +01:00
Olivier Lambert
3c1f6075fe Update SUMMARY.md 2015-11-10 15:22:24 +01:00
Olivier Lambert
13847834e3 Update SUMMARY.md 2015-11-10 15:22:17 +01:00
Olivier Lambert
6deace2b7a Update features.md 2015-11-10 15:21:08 +01:00
Olivier Lambert
5d056dcf2d Update features.md 2015-11-10 15:20:27 +01:00
Olivier Lambert
4aa0fb6dfa Update xo-web.md 2015-11-10 15:18:52 +01:00
Olivier Lambert
bd0bbed7a1 Update xo-web.md 2015-11-10 15:17:42 +01:00
Olivier Lambert
62c6ebf8ce Update xo-cli.md 2015-11-10 15:15:54 +01:00
Olivier Lambert
e5c549c93c Update xo-cli.md 2015-11-10 15:08:21 +01:00
Olivier Lambert
8b8b5f14e6 Update xo-server.md 2015-11-10 15:06:06 +01:00
Olivier Lambert
8b8c1aa6b4 Update backups.md 2015-11-10 15:02:07 +01:00
Olivier Lambert
bd722e8702 Update backups.md 2015-11-10 15:01:17 +01:00
Olivier Lambert
ae09695687 Update backups.md 2015-11-10 15:01:01 +01:00
Olivier Lambert
87b743010c Update backups.md 2015-11-10 15:00:43 +01:00
Olivier Lambert
5424c35ec5 Create backups.md 2015-11-10 15:00:12 +01:00
Olivier Lambert
f03b671cbc Update disaster_recovery.md 2015-11-10 14:59:36 +01:00
Olivier Lambert
d347f9acbb Update disaster_recovery.md 2015-11-10 14:57:57 +01:00
Olivier Lambert
53d4d91521 Update disaster_recovery.md 2015-11-10 14:54:42 +01:00
Olivier Lambert
9b12772843 Update disaster_recovery.md 2015-11-10 14:49:55 +01:00
Olivier Lambert
846a33fe4a Update SUMMARY.md 2015-11-10 14:46:12 +01:00
Olivier Lambert
e2ae89c0a2 Create disaster_recovery.md 2015-11-10 14:46:10 +01:00
Olivier Lambert
2a599da33e Update backups_and_disaster_recovery.md 2015-11-10 14:46:06 +01:00
Olivier Lambert
c04c93d499 Update SUMMARY.md 2015-11-10 14:46:00 +01:00
Olivier Lambert
5a615ab619 Update SUMMARY.md 2015-11-10 14:45:49 +01:00
Olivier Lambert
81638a1857 Update SUMMARY.md 2015-11-10 14:45:43 +01:00
Olivier Lambert
b7baf37cd8 Update backups_and_disaster_recovery.md 2015-11-10 14:45:09 +01:00
Olivier Lambert
fa39a9be3b Update backups_and_disaster_recovery.md 2015-11-10 14:38:55 +01:00
Olivier Lambert
68c2b8728c Update backups_and_disaster_recovery.md 2015-11-10 14:38:31 +01:00
Olivier Lambert
1bc0054344 Update backups_and_disaster_recovery.md 2015-11-10 14:37:02 +01:00
Olivier Lambert
7f16b6fa1a Update features.md 2015-11-10 14:22:01 +01:00
Olivier Lambert
edd76774ed Update visualizations.md 2015-11-10 14:20:18 +01:00
Olivier Lambert
8873da1ba0 Update SUMMARY.md 2015-11-10 14:20:13 +01:00
Olivier Lambert
7481a410f8 Create visualizations.md 2015-11-10 14:20:11 +01:00
Olivier Lambert
5acf3b53fa Update features.md 2015-11-10 14:20:09 +01:00
Olivier Lambert
2d93f3552a Update resources_delegation.md 2015-11-10 14:19:51 +01:00
Olivier Lambert
dd7f01ddd6 Update SUMMARY.md 2015-11-10 14:19:38 +01:00
Olivier Lambert
745f6a842f Create resources_delegation.md 2015-11-10 14:19:36 +01:00
Olivier Lambert
b089bedf9c Update features.md 2015-11-10 14:19:33 +01:00
Olivier Lambert
994d3064f7 Update backups_and_disaster_recovery.md 2015-11-10 14:18:58 +01:00
Olivier Lambert
996308b0c3 Update SUMMARY.md 2015-11-10 14:18:52 +01:00
Olivier Lambert
4cb62a94e6 Create backups_and_disaster_recovery.md 2015-11-10 14:18:50 +01:00
Olivier Lambert
982fdcb596 Update features.md 2015-11-10 14:18:47 +01:00
Olivier Lambert
5478e1b4ed Update SUMMARY.md 2015-11-10 14:18:27 +01:00
Olivier Lambert
53b46d22b1 Update SUMMARY.md 2015-11-10 14:18:22 +01:00
Olivier Lambert
a06bac9851 Update SUMMARY.md 2015-11-10 14:18:13 +01:00
Olivier Lambert
f1b0c1624a Update SUMMARY.md 2015-11-10 14:18:06 +01:00
Olivier Lambert
422deaa4ff Update SUMMARY.md 2015-11-10 14:17:51 +01:00
Olivier Lambert
cc02a1d22b Update administration.md 2015-11-10 14:17:35 +01:00
Olivier Lambert
a6f075d815 Update features.md 2015-11-10 14:17:24 +01:00
Olivier Lambert
fa3e7e77fe Update SUMMARY.md 2015-11-10 14:17:04 +01:00
Olivier Lambert
28dffdb8cb Create administration.md 2015-11-10 14:17:01 +01:00
Olivier Lambert
03a1b2e150 Update SUMMARY.md 2015-11-10 14:16:55 +01:00
Olivier Lambert
0db4cd2bf0 Update architecture.md 2015-11-10 14:16:04 +01:00
Olivier Lambert
49cf452fd7 Update others.md 2015-11-10 14:15:38 +01:00
Olivier Lambert
4d1da86d47 Update SUMMARY.md 2015-11-10 14:15:32 +01:00
Olivier Lambert
78f81ac4d5 Create others.md 2015-11-10 14:15:30 +01:00
Olivier Lambert
cc4920a0be Update xo-cli.md 2015-11-10 14:15:28 +01:00
Olivier Lambert
f7d336248a Update SUMMARY.md 2015-11-10 14:15:23 +01:00
Olivier Lambert
132424cae7 Update xo-web.md 2015-11-10 14:14:59 +01:00
Olivier Lambert
b4a58c08d3 Update SUMMARY.md 2015-11-10 14:14:57 +01:00
Olivier Lambert
cb55e18a60 Create xo-cli.md 2015-11-10 14:14:55 +01:00
Olivier Lambert
7eb95a982e Update SUMMARY.md 2015-11-10 14:14:50 +01:00
Olivier Lambert
57a0dd788c Update SUMMARY.md 2015-11-10 14:14:45 +01:00
Olivier Lambert
38720f5550 Update SUMMARY.md 2015-11-10 14:14:37 +01:00
Olivier Lambert
903eef70a7 Update SUMMARY.md 2015-11-10 14:14:28 +01:00
Olivier Lambert
698c4e92b2 Update SUMMARY.md 2015-11-10 14:12:58 +01:00
Olivier Lambert
24a39893e6 Create xo-web.md 2015-11-10 14:12:56 +01:00
Olivier Lambert
f2f356157c Update architecture.md 2015-11-10 14:12:54 +01:00
Olivier Lambert
ef1b71d7d0 Update xo-server.md 2015-11-10 14:12:20 +01:00
Olivier Lambert
e4c08c7b9b Update SUMMARY.md 2015-11-10 14:12:05 +01:00
Olivier Lambert
b137db506f Create xo-server.md 2015-11-10 14:12:03 +01:00
Olivier Lambert
90165c24ba Update architecture.md 2015-11-10 14:12:01 +01:00
Olivier Lambert
0a88403329 Update SUMMARY.md 2015-11-10 14:11:41 +01:00
Olivier Lambert
f69aec2c00 Update SUMMARY.md 2015-11-10 14:11:32 +01:00
Olivier Lambert
9d6e567937 Update from_the_sources.md 2015-11-10 14:03:52 +01:00
Olivier Lambert
a672e59a95 Update SUMMARY.md 2015-11-10 14:03:27 +01:00
Olivier Lambert
37efdf0122 Create from_the_sources.md 2015-11-10 14:03:26 +01:00
Olivier Lambert
7da4b53df7 Update installation.md 2015-11-10 14:03:24 +01:00
Olivier Lambert
7ec8185eef Update SUMMARY.md 2015-11-10 14:03:15 +01:00
Olivier Lambert
fabb4aa0d9 Update xoa.md 2015-11-10 14:03:06 +01:00
Olivier Lambert
7ce2b30cb2 Update SUMMARY.md 2015-11-10 14:02:58 +01:00
Olivier Lambert
72792890e7 Create xoa.md 2015-11-10 14:02:56 +01:00
Olivier Lambert
7788435903 Update installation.md 2015-11-10 14:02:54 +01:00
Olivier Lambert
1d65901641 Update SUMMARY.md 2015-11-10 14:02:13 +01:00
Olivier Lambert
ef32128612 Update reverse_proxy.md 2015-11-10 14:01:51 +01:00
Olivier Lambert
192aa2077b Update recipes.md 2015-11-10 14:01:41 +01:00
Olivier Lambert
2184f0cbb6 Update SUMMARY.md 2015-11-10 14:01:21 +01:00
Olivier Lambert
87aa733064 Create reverse_proxy.md 2015-11-10 14:01:19 +01:00
Olivier Lambert
501cc9b1fd Update SUMMARY.md 2015-11-10 14:00:58 +01:00
Olivier Lambert
973f15835e Update features.md 2015-11-10 14:00:07 +01:00
Olivier Lambert
715f28b1e5 Update features.md 2015-11-10 13:55:12 +01:00
Olivier Lambert
9792527832 Update configuration.md 2015-11-10 13:52:45 +01:00
Olivier Lambert
2cf0654d11 Update features.md 2015-11-10 13:48:25 +01:00
Olivier Lambert
6e185d9ae5 Update features.md 2015-11-10 13:46:12 +01:00
Olivier Lambert
a165013397 Update features.md 2015-11-10 13:43:31 +01:00
Olivier Lambert
208477b493 Update features.md 2015-11-10 13:42:22 +01:00
Olivier Lambert
b04cabc72e Update features.md 2015-11-10 13:39:54 +01:00
Olivier Lambert
7860d677d3 Update features.md 2015-11-10 13:35:21 +01:00
Olivier Lambert
0d714a753b Update features.md 2015-11-10 13:24:27 +01:00
Olivier Lambert
709f7b0af6 Update features.md 2015-11-10 13:21:26 +01:00
Olivier Lambert
882d6eafb6 Update architecture.md 2015-11-10 13:15:51 +01:00
Olivier Lambert
ce1968a1b6 Update architecture.md 2015-11-10 13:15:48 +01:00
Olivier Lambert
a4f36c7ed4 Update architecture.md 2015-11-10 13:13:51 +01:00
Olivier Lambert
9bac47ce17 Update architecture.md 2015-11-10 13:13:12 +01:00
Olivier Lambert
6fe0203930 Update architecture.md 2015-11-10 13:12:55 +01:00
Olivier Lambert
a2009bba9b Update architecture.md 2015-11-10 13:12:34 +01:00
Olivier Lambert
5ea3fe6dca Update architecture.md 2015-11-10 13:11:43 +01:00
Olivier Lambert
5b915daefe Update features.md 2015-11-10 13:09:05 +01:00
Olivier Lambert
82ea59d9e2 Update SUMMARY.md 2015-11-10 13:06:35 +01:00
Olivier Lambert
3708a7e3a1 Create features.md 2015-11-10 13:06:34 +01:00
Olivier Lambert
ea3fa0a792 Update SUMMARY.md 2015-11-10 13:06:30 +01:00
Olivier Lambert
926f314d9f Update SUMMARY.md 2015-11-10 13:06:20 +01:00
Olivier Lambert
a4f72a6a83 Update SUMMARY.md 2015-11-10 13:06:17 +01:00
Olivier Lambert
f5dbcfd969 Update architecture.md 2015-11-10 13:05:29 +01:00
Olivier Lambert
4671a174d4 Update README.md 2015-11-10 13:01:53 +01:00
Olivier Lambert
6f149cb8cc Update SUMMARY.md 2015-11-10 13:00:59 +01:00
Olivier Lambert
bf4fb18dc3 Delete introduction.md 2015-11-10 13:00:58 +01:00
Olivier Lambert
2a03bbe226 Update roadmap.md 2015-11-10 13:00:09 +01:00
Olivier Lambert
1514072fd5 Update roadmap.md 2015-11-10 12:59:52 +01:00
Olivier Lambert
306a6635d6 Update how_to_contribute.md 2015-11-10 12:11:52 +01:00
Olivier Lambert
980d977f16 Update SUMMARY.md 2015-11-10 12:11:39 +01:00
Olivier Lambert
98c877a107 Create how_to_contribute.md 2015-11-10 12:11:38 +01:00
Olivier Lambert
e91ca7997b Update trial_activation.md 2015-11-10 12:11:30 +01:00
Olivier Lambert
dfa1ea43c2 Update SUMMARY.md 2015-11-10 12:10:38 +01:00
Olivier Lambert
1b50bcab83 Create trial_activation.md 2015-11-10 12:10:36 +01:00
Olivier Lambert
b0afd4cba0 Update recipes.md 2015-11-10 12:10:23 +01:00
Olivier Lambert
33a2f88c39 Update SUMMARY.md 2015-11-10 12:09:03 +01:00
Olivier Lambert
e63307f3a6 Create recipes.md 2015-11-10 12:09:01 +01:00
Olivier Lambert
069e4ef738 Update configuration.md 2015-11-10 12:08:58 +01:00
Olivier Lambert
9c3852082a Update SUMMARY.md 2015-11-10 12:07:01 +01:00
Olivier Lambert
3da4d98340 Create configuration.md 2015-11-10 12:06:59 +01:00
Olivier Lambert
c666fd308f Update SUMMARY.md 2015-11-10 12:06:55 +01:00
Olivier Lambert
9214f93ad1 Update SUMMARY.md 2015-11-10 12:06:49 +01:00
Olivier Lambert
9ef933d4f7 Update SUMMARY.md 2015-11-10 12:06:38 +01:00
Olivier Lambert
dc11c3524c Update SUMMARY.md 2015-11-10 12:06:23 +01:00
Olivier Lambert
7e18d69aa2 Update SUMMARY.md 2015-11-10 12:06:16 +01:00
Olivier Lambert
d29f4bc7e2 Update SUMMARY.md 2015-11-10 12:05:57 +01:00
Olivier Lambert
4b1ddd15b2 Update installation.md 2015-11-10 12:04:49 +01:00
Olivier Lambert
199ea74650 Create book.json 2015-11-10 12:02:25 +01:00
Olivier Lambert
c2a8f6d05b Update installation.md 2015-11-10 11:59:27 +01:00
Olivier Lambert
1fece3047f Update SUMMARY.md 2015-11-10 11:56:17 +01:00
Olivier Lambert
64ada1d3fe Create installation.md 2015-11-10 11:56:15 +01:00
Olivier Lambert
917ec0fd76 Update architecture.md 2015-11-10 11:56:09 +01:00
Olivier Lambert
4603d07e4f Update architecture.md 2015-11-10 11:55:27 +01:00
Olivier Lambert
dc417be1d9 Update architecture.md 2015-11-10 11:53:50 +01:00
Olivier Lambert
e888654085 Update SUMMARY.md 2015-11-10 11:43:39 +01:00
Olivier Lambert
b5775bfb0d Create architecture.md 2015-11-10 11:43:37 +01:00
Olivier Lambert
db6b066b4b Update introduction.md 2015-11-10 11:43:25 +01:00
Olivier Lambert
9e410b8749 Update SUMMARY.md 2015-11-10 11:39:57 +01:00
Olivier Lambert
e7efb0202b Update SUMMARY.md 2015-11-10 11:39:16 +01:00
Olivier Lambert
41abd8cbf2 Update SUMMARY.md 2015-11-10 11:38:13 +01:00
Olivier Lambert
aa6f67b731 Update SUMMARY.md 2015-11-10 11:24:41 +01:00
Olivier Lambert
6923892ae7 Create introduction.md 2015-11-10 11:24:39 +01:00
Olivier Lambert
3f514760f9 Create SUMMARY.md 2015-11-10 11:24:26 +01:00
Julien Fontanet
db56405a9a Minor typos. 2015-11-06 15:11:27 +01:00
Julien Fontanet
4d889d4000 ProxyPass are evaluated in order. 2015-11-05 18:18:15 +01:00
Olivier Lambert
910c3c2398 Update README.md 2015-11-05 18:02:35 +01:00
Julien Fontanet
327d1f8621 Apache HTTP/WebSocket ProxyPass cannot be on same path. 2015-11-05 17:34:19 +01:00
Julien Fontanet
d6c8bcdb9f Fix path in Apache proxy. 2015-11-05 17:25:19 +01:00
Julien Fontanet
c4323eb9fc Fix path support in nginx proxy. 2015-11-05 16:40:43 +01:00
Julien Fontanet
d191892815 Typo. 2015-11-04 09:11:27 +01:00
Julien Fontanet
abd401a327 Various updates in labels. 2015-10-30 16:47:34 +01:00
Julien Fontanet
a269af7029 New issue category: meta. 2015-10-27 10:40:34 +01:00
Julien Fontanet
01556dfadc Remove duplicate line break. 2015-10-14 15:26:26 +02:00
Julien Fontanet
e55377afd1 Use numbered list for severity labels. 2015-10-14 15:26:11 +02:00
Julien Fontanet
801546dc21 New labels group: difficulty. 2015-10-14 15:25:52 +02:00
Julien Fontanet
570f079cdc Documentation on issue labels. 2015-10-14 10:31:59 +02:00
Olivier Lambert
75d7c2cdfb Update contributing.md 2015-10-03 11:42:40 +02:00
Julien Fontanet
ba5851969c PR doc. 2015-09-30 15:44:21 +02:00
Olivier Lambert
939ed0ed87 Update manual_installation.md 2015-09-20 12:06:13 +02:00
Olivier Lambert
39a8df64d0 Update manual_installation.md 2015-09-16 14:28:09 +02:00
Olivier Lambert
47afcb7c20 Update manual_installation.md 2015-09-16 14:27:33 +02:00
Olivier Lambert
b4f609e084 Update README.md
Add chain of certs documentation for HTTPS
2015-09-01 15:30:16 +02:00
Olivier Lambert
b1b26d4a6c Update roadmap.md 2015-07-30 16:34:28 +02:00
Olivier Lambert
e01c20a012 Update roadmap.md 2015-07-23 14:30:49 +02:00
Olivier Lambert
1cc006b89b Update README.md 2015-07-23 14:30:26 +02:00
Olivier Lambert
72b4dccfbe Update roadmap.md 2015-07-23 14:20:32 +02:00
Olivier Lambert
3c79126acf Update roadmap.md 2015-07-23 14:20:18 +02:00
Olivier Lambert
4fb6e32107 Update manual_installation.md 2015-07-07 14:06:10 +02:00
Olivier Lambert
d4aa4b6840 Update xoa_installation.md 2015-06-17 13:59:18 +02:00
Olivier Lambert
2bbf643579 Update README.md 2015-05-26 12:24:26 +02:00
Olivier Lambert
cd340eb294 add trial doc 2015-05-26 12:22:26 +02:00
Olivier Lambert
73af59317b Update roadmap.md 2015-05-26 12:09:32 +02:00
Olivier Lambert
f6d4c61e68 Update roadmap.md 2015-05-26 12:09:23 +02:00
Olivier Lambert
4fcead8540 Update README.md 2015-05-25 21:50:38 +02:00
Olivier Lambert
3d4d961a6d Update README.md 2015-05-25 21:48:55 +02:00
Olivier Lambert
625db08d3f Update manual_installation.md 2015-05-11 22:40:50 +02:00
Olivier Lambert
9e29e3ef7c Update manual_installation.md 2015-05-11 17:04:30 +02:00
Julien Fontanet
e2eb083cf8 Update apache-reverse.md 2015-04-30 18:27:39 +02:00
Olivier Lambert
8120a7ad66 Update README.md 2015-04-28 23:49:36 +02:00
Olivier Lambert
46eeaa28da Update roadmap.md 2015-04-28 17:53:22 +02:00
Olivier Lambert
b1ee1e9376 Update installation_freebsd.md 2015-04-26 13:57:16 +02:00
Julien Fontanet
968735b2a4 Merge pull request #51 from evook/patch-3
Improve manual install doc.
2015-04-23 13:11:46 +02:00
evook
2e64660ff6 Update manual_installation.md
Removed sudo and added the on descriptive line, necessary for all the lazy perm-root admins. 
"use `npm`, as the non-root user owning the fetched code"
2015-04-23 12:20:57 +02:00
evook
adbc9353f5 Update manual_installation.md 2015-04-22 18:19:54 +02:00
Olivier Lambert
df89960182 Update xoa_installation.md 2015-04-21 15:52:45 +02:00
Olivier Lambert
8c903bc951 Update roadmap.md 2015-04-19 14:31:54 +02:00
Olivier Lambert
ff2fe3b8ca Merge pull request #48 from tomneedham/patch-1
Fix command docs for 'xoa-register'
2015-04-19 14:28:06 +02:00
Tom Needham
bbb2e6cd99 Fix command docs for 'xoa-register' 2015-04-19 13:26:50 +01:00
Olivier Lambert
ddebae8eb3 Add new update procedure 2015-04-18 19:53:10 +02:00
Olivier Lambert
ff9e1ebc9b Update README.md 2015-03-29 15:07:02 +02:00
Olivier Lambert
0ef69135c7 Merge pull request #42 from eXk0n/patch-1
Update apache-reverse.md
2015-03-20 13:53:12 +01:00
Olivier Lambert
58465a80ec Update manual_installation.md 2015-03-09 14:13:08 +01:00
Olivier Lambert
436deb02be Update roadmap.md 2015-03-09 10:51:38 +01:00
Olivier Lambert
33773558d6 Update README.md 2015-03-09 09:19:36 +01:00
(⌐■_■) Deal with it.
0ce72682bf Update apache-reverse.md
Allow consoles to work behind apache2 proxy
2015-03-08 12:33:27 +01:00
Olivier Lambert
75fcb78ec3 Update README.md 2015-02-23 00:25:58 +01:00
Olivier Lambert
3d5117aa5e Merge pull request #38 from rgormley/master
More language changes and tweaks
2015-02-20 00:02:15 +01:00
Rob Gormley
3febe34221 More language changes and tweaks 2015-02-19 14:59:11 -08:00
Olivier Lambert
9b66e00e83 Merge pull request #37 from rgormley/master
Some grammar fixes
2015-02-19 23:46:03 +01:00
Rob Gormley
0e7b053798 Some grammar fixes 2015-02-19 14:42:49 -08:00
Olivier Lambert
5a2d063749 Update xoa_installation.md 2015-02-05 20:14:29 +01:00
Olivier Lambert
d96d50c5c5 Update roadmap.md 2015-02-03 17:59:42 +01:00
Olivier Lambert
bdbca9669f Update roadmap.md 2015-01-15 22:30:34 +01:00
Olivier Lambert
d04b28cf2d Update roadmap.md 2015-01-15 22:28:45 +01:00
Olivier Lambert
8929105c3d Update README.md 2015-01-06 17:50:56 +01:00
Olivier Lambert
3ea19e5e01 Rename nginx-reverse to nginx-reverse.md 2015-01-06 17:50:12 +01:00
Olivier Lambert
7047b6985d Create nginx-reverse 2015-01-06 17:49:55 +01:00
Julien Fontanet
ee94fb0509 Code of conduct. 2015-01-06 14:25:33 +01:00
Olivier Lambert
748ef04e4a Update roadmap.md 2014-12-29 21:56:13 +01:00
Julien Fontanet
920c5ffbb3 npm start is the recommended way 2014-12-19 12:41:16 +01:00
Olivier Lambert
b2d3e2ba97 wget is no longer requiered 2014-12-16 11:05:31 +01:00
Olivier Lambert
424f78a593 Update doc
After a feedback from user 'amnesiac' in our forum, see https://xen-orchestra.com/forum/209-root-password-for-xoa-3-5
2014-12-05 14:13:05 +01:00
Julien Fontanet
3eda70aa65 Update xoa_installation.md 2014-11-28 17:46:39 +01:00
Julien Fontanet
c1751eb637 Update xoa_installation.md 2014-11-28 17:43:34 +01:00
Olivier Lambert
2907fef4f9 Update roadmap.md 2014-11-27 11:21:44 +01:00
Olivier Lambert
067950a344 Update xoa_installation.md 2014-11-15 10:00:47 +01:00
Olivier Lambert
18ab3822bf Update manual_installation.md 2014-10-30 18:26:11 +01:00
Julien Fontanet
db65c7af47 Update forever command 2014-09-08 20:12:39 +02:00
Olivier Lambert
1f5769ff5e Update manual_installation.md 2014-09-08 16:35:32 +02:00
Olivier Lambert
c64e2a17c7 Update installation_freebsd.md 2014-08-28 23:29:35 +02:00
Olivier Lambert
95e1e71b9e Update manual_installation.md 2014-08-28 23:28:46 +02:00
Olivier Lambert
b4348a63a1 Update roadmap.md 2014-08-26 13:43:16 +02:00
Olivier Lambert
427513baaf Update manual_installation.md 2014-08-23 09:32:15 +02:00
Olivier Lambert
e5dcbacc37 Update manual_installation.md 2014-08-23 09:31:44 +02:00
Olivier Lambert
da9fa05a91 Update manual_installation.md 2014-08-23 09:28:36 +02:00
Olivier Lambert
daebb849ce change file name 2014-08-21 13:59:33 +02:00
Olivier Lambert
a302612c6b Update README.md 2014-08-21 13:57:35 +02:00
Olivier Lambert
11a35b5856 add event images 2014-08-21 13:55:00 +02:00
Olivier Lambert
3d146e4083 Update xoa_installation.md 2014-08-20 02:22:13 +02:00
Olivier Lambert
170c2dac21 Update xoa_installation.md 2014-08-20 02:21:51 +02:00
Olivier Lambert
cd55d863d3 Update README.md 2014-08-20 00:55:49 +02:00
Olivier Lambert
62a052a9e4 Update xoa_installation.md 2014-08-14 14:54:58 +02:00
Olivier Lambert
fb2a1cc852 Update README.md 2014-08-14 13:04:00 +02:00
Olivier Lambert
46432d62c3 Update README.md 2014-08-14 13:03:37 +02:00
Olivier Lambert
cccd166037 Update README.md 2014-08-14 13:03:15 +02:00
Olivier Lambert
9fcd828279 Update README.md 2014-08-14 13:02:43 +02:00
Olivier Lambert
260f924840 reorg folders 2014-08-14 12:58:34 +02:00
Olivier Lambert
6bcbd7e9c8 add known bugs 2014-08-14 12:55:25 +02:00
Olivier Lambert
f2ba2bbbc5 known bugs moved 2014-08-14 12:54:35 +02:00
Olivier Lambert
1501f4da49 Update README.md 2014-08-14 12:53:47 +02:00
Olivier Lambert
f72c04c044 Update README.md 2014-08-14 12:51:26 +02:00
Olivier Lambert
4df9c2364a Update README.md 2014-08-14 12:50:41 +02:00
Olivier Lambert
6ec540d89e add mass doc 2014-08-14 12:49:44 +02:00
Olivier Lambert
bd4f0b2078 add folder 2014-08-14 12:44:21 +02:00
Olivier Lambert
9e50c2a41e update doc 2014-08-14 12:43:48 +02:00
Olivier Lambert
19a9e5f3c8 Update README.md 2014-08-14 12:42:38 +02:00
Olivier Lambert
af4b38553d Update README.md 2014-08-14 12:41:18 +02:00
Olivier Lambert
457630bfc1 Update README.md 2014-08-14 12:41:04 +02:00
Olivier Lambert
49791bff45 Update installation_freebsd.md 2014-08-14 12:34:30 +02:00
Olivier Lambert
8d791d2191 Update manual_installation.md 2014-08-14 12:34:20 +02:00
Olivier Lambert
bf0609b2bb Update installation.md 2014-08-14 12:31:44 +02:00
Olivier Lambert
8eaed3bdca Create manual_installation.md 2014-08-14 12:31:35 +02:00
Olivier Lambert
927b3c099f Create xoa_installation.md 2014-08-14 12:30:39 +02:00
Olivier Lambert
56907c6224 Update installation.md 2014-08-14 12:27:08 +02:00
Olivier Lambert
e214128b54 Update installation.md 2014-08-12 15:36:30 +02:00
Olivier Lambert
bfc182657b Update architecture.md 2014-08-07 18:40:53 +02:00
Olivier Lambert
09d674c78d Update README.md 2014-08-07 18:38:52 +02:00
Olivier Lambert
9bdade6314 Update installation_freebsd.md 2014-07-29 20:50:18 +02:00
Olivier Lambert
ed1b564eeb Update installation.md 2014-07-29 20:32:03 +02:00
Olivier Lambert
75df238327 Update installation_freebsd.md 2014-07-29 20:30:47 +02:00
Olivier Lambert
486455c6d7 Update installation_freebsd.md 2014-07-29 20:30:05 +02:00
Olivier Lambert
43eb7fb452 Create installation_freebsd.md 2014-07-29 20:29:18 +02:00
Olivier Lambert
289e90cc83 add backup 2014-06-30 12:07:22 +02:00
Olivier Lambert
82f5394c3c modifications 2014-06-29 17:06:04 +02:00
Olivier Lambert
431ca49021 Update roadmap.md 2014-06-29 13:45:49 +02:00
Olivier Lambert
9c9f9ace2e add features as requested on uservoice 2014-06-29 13:44:42 +02:00
Olivier Lambert
4865bc9b6a moving import export in backlog 2014-06-28 14:39:29 +02:00
Olivier Lambert
97eca2863b add new features 2014-06-28 14:38:35 +02:00
Olivier Lambert
d2daa88d24 fix feature 2014-06-28 11:39:13 +02:00
Olivier Lambert
fc41f4fc22 add features 2014-06-28 11:39:00 +02:00
Olivier Lambert
2d95a94f55 add backlog 2014-06-28 11:30:17 +02:00
Olivier Lambert
77c4809964 add ldap 2014-06-28 11:22:41 +02:00
Olivier Lambert
cf50ce7fc7 Create roadmap 2014-06-28 11:21:46 +02:00
Olivier Lambert
9f3930005d add roadmap link 2014-06-28 11:10:48 +02:00
Olivier Lambert
7eb0c5da8e add link to full doc 2014-05-26 20:25:20 +02:00
Olivier Lambert
45f888c8f9 add VNC stuff. 2014-05-26 20:23:49 +02:00
Olivier Lambert
a05a531d6b Update know bugs. 2014-05-26 20:23:02 +02:00
Olivier Lambert
782b3f920f Update doc 2014-05-24 14:56:38 +02:00
Julien Fontanet
462e454acf Removes unecessary mounts. 2014-03-11 10:52:27 +01:00
Julien Fontanet
8a8f7310f6 Updates installation procedure to reflect latest changes (fix #22). 2014-03-11 10:43:49 +01:00
Julien Fontanet
d8c3b0c919 Data model. 2014-02-21 09:58:06 +01:00
Julien Fontanet
9d1d1e1c76 Minor fix. 2014-02-20 09:25:35 +01:00
Julien Fontanet
85ffdd8311 Minor documentation updates. 2014-02-20 09:24:40 +01:00
Olivier Lambert
25ecdab2a0 add warning about indent in YAML 2014-02-14 14:17:19 +01:00
Olivier Lambert
83153e1905 remove indent block and use reverse quote 2014-02-14 13:42:06 +01:00
Olivier Lambert
6f68668801 minor fix again 2014-02-14 13:29:16 +01:00
Olivier Lambert
5735ccb451 minor fix 2014-02-14 13:28:00 +01:00
Olivier Lambert
10eaaa26ba fix deb link 2014-02-14 13:26:53 +01:00
Olivier Lambert
5795da46c7 new doc for 3.x release 2014-02-14 13:24:06 +01:00
Olivier Lambert
e7e5711030 remove old stuff 2014-02-07 17:46:00 +01:00
Julien Fontanet
cbf020e7e6 Less known bugs. 2013-10-11 17:23:31 +02:00
Julien Fontanet
3cbebd9c09 Add Redis to the installation. 2013-10-08 17:46:29 +02:00
Julien Fontanet
64f2e032e3 Question regarding event.next. 2013-10-03 16:03:15 +02:00
Olivier Lambert
e00a8fd2e9 add question about metrics 2013-10-03 13:42:44 +02:00
Julien Fontanet
5a20006647 XAPI questions. 2013-10-03 13:10:56 +02:00
Julien Fontanet
94743751bf One of the bugs has been fixed. 2013-09-05 17:06:34 +02:00
Julien Fontanet
f38632dd19 Various updates. 2013-09-05 15:21:52 +02:00
Julien Fontanet
7760f47a27 Various updates. 2013-09-05 14:55:18 +02:00
Julien Fontanet
69bf29b93b Bug fixed. 2013-09-02 10:11:41 +02:00
Julien Fontanet
6c2b02112b Update installation.md 2013-08-16 20:27:25 +02:00
Julien Fontanet
486bb525e2 Add git to installed packages. 2013-08-15 10:54:05 +02:00
Julien Fontanet
aedd309442 Minor change. 2013-08-15 10:51:58 +02:00
Julien Fontanet
30f5eca6dd Minor updates. 2013-08-15 10:51:00 +02:00
Olivier Lambert
172475a9ef it works on testing, not wheezy, because node is not packaged in current stable 2013-08-14 17:01:01 +02:00
Olivier Lambert
06ca258089 fix a typo 2013-08-14 16:49:08 +02:00
Julien Fontanet
0573a3d533 Minor updates. 2013-08-14 13:06:48 +02:00
Julien Fontanet
3ec9dc0a45 Documentation. 2013-08-14 13:05:15 +02:00
Julien Fontanet
e5f752b5fa Last try (hopefully). 2013-07-30 11:38:03 +02:00
Julien Fontanet
cfb2e6b70a Other try. 2013-07-30 11:36:57 +02:00
Julien Fontanet
d3627af67f Try to fix image include. 2013-07-30 11:34:33 +02:00
Julien Fontanet
ed6ecbaa72 Initial architecture overview. 2013-07-30 11:33:03 +02:00
Olivier Lambert
5a6ca0a717 fix readme 2013-07-22 10:36:51 +02:00
Julien Fontanet
53a6263930 README improvement. 2013-02-07 19:07:08 +01:00
Olivier Lambert
fb050614e0 Initial commit 2013-02-06 03:27:31 -08:00
668 changed files with 38917 additions and 15635 deletions

View File

@@ -2,17 +2,26 @@ module.exports = {
extends: ['standard', 'standard-jsx'],
globals: {
__DEV__: true,
$Dict: true,
$Diff: true,
$Exact: true,
$Keys: true,
$PropertyType: true,
$Shape: true,
},
parser: 'babel-eslint',
parserOptions: {
ecmaFeatures: {
legacyDecorators: true,
},
},
rules: {
'comma-dangle': ['error', 'always-multiline'],
indent: 'off',
'no-var': 'error',
'node/no-extraneous-import': 'error',
'node/no-extraneous-require': 'error',
'prefer-const': 'error',
'react/jsx-indent': 'off',
},
}

View File

@@ -9,6 +9,7 @@
[options]
esproposal.decorators=ignore
esproposal.optional_chaining=enable
include_warnings=true
module.use_strict=true

4
.gitignore vendored
View File

@@ -1,3 +1,4 @@
/_book/
/coverage/
/node_modules/
/lerna-debug.log
@@ -8,6 +9,9 @@
/packages/*/dist/
/packages/*/node_modules/
/packages/vhd-cli/src/commands/index.js
/packages/xen-api/examples/node_modules/
/packages/xen-api/plot.dat
/packages/xo-server/.xo-server.*

View File

@@ -1,4 +1,5 @@
module.exports = {
semi: false,
singleQuote: true,
trailingComma: 'es5',
}

View File

@@ -1,12 +1,17 @@
language: node_js
node_js:
- stable
#- stable # disable for now due to an issue of indirect dep upath with Node 9
- 8
- 6
# Use containers.
# http://docs.travis-ci.com/user/workers/container-based-infrastructure/
sudo: false
addons:
apt:
packages:
- qemu-utils
- blktap-utils
- vmdk-stream-converter
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
@@ -14,3 +19,6 @@ before_install:
cache:
yarn: true
script:
- yarn run travis-tests

View File

@@ -0,0 +1,3 @@
module.exports = require('../../@xen-orchestra/babel-config')(
require('./package.json')
)

View File

@@ -0,0 +1,24 @@
/benchmark/
/benchmarks/
*.bench.js
*.bench.js.map
/examples/
example.js
example.js.map
*.example.js
*.example.js.map
/fixture/
/fixtures/
*.fixture.js
*.fixture.js.map
*.fixtures.js
*.fixtures.js.map
/test/
/tests/
*.spec.js
*.spec.js.map
__snapshots__/

View File

@@ -0,0 +1,49 @@
# @xen-orchestra/async-map [![Build Status](https://travis-ci.org/vatesfr/xen-orchestra.png?branch=master)](https://travis-ci.org/vatesfr/xen-orchestra)
> ${pkg.description}
## Install
Installation of the [npm package](https://npmjs.org/package/@xen-orchestra/async-map):
```
> npm install --save @xen-orchestra/async-map
```
## Usage
**TODO**
## Development
```
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
```
## Contributions
Contributions are *very* welcomed, either on the documentation or on
the code.
You may:
- report any [issue](https://github.com/vatesfr/xen-orchestra/issues)
you've encountered;
- fork and create a pull request.
## License
ISC © [Vates SAS](https://vates.fr)

View File

@@ -0,0 +1,50 @@
{
"name": "@xen-orchestra/async-map",
"version": "0.0.0",
"license": "ISC",
"description": "",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/async-map",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"author": {
"name": "Julien Fontanet",
"email": "julien.fontanet@isonoe.net"
},
"preferGlobal": false,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"browserslist": [
">2%"
],
"engines": {
"node": ">=6"
},
"dependencies": {
"lodash": "^4.17.4"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.3",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "yarn run clean",
"predev": "yarn run prebuild",
"prepare": "yarn run build",
"prepublishOnly": "yarn run build"
}
}

View File

@@ -0,0 +1,43 @@
// type MaybePromise<T> = Promise<T> | T
//
// declare export function asyncMap<T1, T2>(
// collection: MaybePromise<T1[]>,
// (T1, number) => MaybePromise<T2>
// ): Promise<T2[]>
// declare export function asyncMap<K, V1, V2>(
// collection: MaybePromise<{ [K]: V1 }>,
// (V1, K) => MaybePromise<V2>
// ): Promise<V2[]>
import map from 'lodash/map'
// Similar to map() + Promise.all() but wait for all promises to
// settle before rejecting (with the first error)
const asyncMap = (collection, iteratee) => {
let then
if (collection != null && typeof (then = collection.then) === 'function') {
return then.call(collection, collection => asyncMap(collection, iteratee))
}
let errorContainer
const onError = error => {
if (errorContainer === undefined) {
errorContainer = { error }
}
}
return Promise.all(
map(collection, (item, key, collection) =>
new Promise(resolve => {
resolve(iteratee(item, key, collection))
}).catch(onError)
)
).then(values => {
if (errorContainer !== undefined) {
throw errorContainer.error
}
return values
})
}
export { asyncMap as default }

View File

@@ -1,40 +1,60 @@
'use strict'
const PLUGINS_RE = /^(?:@babel\/plugin-.+|babel-plugin-lodash)$/
const PLUGINS_RE = /^(?:@babel\/|babel-)plugin-.+$/
const PRESETS_RE = /^@babel\/preset-.+$/
const NODE_ENV = process.env.NODE_ENV || 'development'
const __PROD__ = NODE_ENV === 'production'
const __TEST__ = NODE_ENV === 'test'
module.exports = function (pkg, plugins, presets) {
plugins === undefined && (plugins = {})
const configs = {
'@babel/plugin-proposal-decorators': {
legacy: true,
},
'@babel/plugin-proposal-pipeline-operator': {
proposal: 'minimal',
},
'@babel/preset-env' (pkg) {
return {
debug: !__TEST__,
presets === undefined && (presets = {})
presets['@babel/preset-env'] = {
debug: !__TEST__,
loose: true,
shippedProposals: true,
targets: __PROD__
? (() => {
// disabled until https://github.com/babel/babel/issues/8323 is resolved
// loose: true,
shippedProposals: true,
targets: (() => {
let node = (pkg.engines || {}).node
if (node !== undefined) {
const trimChars = '^=>~'
while (trimChars.includes(node[0])) {
node = node.slice(1)
}
return { node: node }
}
})()
: { browsers: '', node: 'current' },
useBuiltIns: '@babel/polyfill' in (pkg.dependencies || {}) && 'usage',
}
return { browsers: pkg.browserslist, node }
})(),
useBuiltIns: '@babel/polyfill' in (pkg.dependencies || {}) && 'usage',
}
},
}
const getConfig = (key, ...args) => {
const config = configs[key]
return config === undefined
? {}
: typeof config === 'function'
? config(...args)
: config
}
module.exports = function (pkg, plugins, presets) {
plugins === undefined && (plugins = {})
presets === undefined && (presets = {})
Object.keys(pkg.devDependencies || {}).forEach(name => {
if (!(name in presets) && PLUGINS_RE.test(name)) {
plugins[name] = {}
plugins[name] = getConfig(name, pkg)
} else if (!(name in presets) && PRESETS_RE.test(name)) {
presets[name] = {}
presets[name] = getConfig(name, pkg)
}
})

View File

@@ -2,7 +2,7 @@
"private": true,
"name": "@xen-orchestra/babel-config",
"version": "0.0.0",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/packages/@xen-orchestra/babel-config",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/babel-config",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",

View File

@@ -0,0 +1,117 @@
#!/usr/bin/env node
const defer = require('golike-defer').default
const { NULL_REF, Xapi } = require('xen-api')
const pkg = require('./package.json')
Xapi.prototype.getVmDisks = async function (vm) {
const disks = { __proto__: null }
await Promise.all([
...vm.VBDs.map(async vbdRef => {
const vbd = await this.getRecord('VBD', vbdRef)
let vdiRef
if (vbd.type === 'Disk' && (vdiRef = vbd.VDI) !== NULL_REF) {
disks[vbd.userdevice] = await this.getRecord('VDI', vdiRef)
}
}),
])
return disks
}
defer(async function main ($defer, args) {
if (args.length === 0 || args.includes('-h') || args.includes('--help')) {
const cliName = Object.keys(pkg.bin)[0]
return console.error(
'%s',
`
Usage: ${cliName} <source XAPI URL> <source snapshot UUID> <target XAPI URL> <target VM UUID> <backup job id> <backup schedule id>
${cliName} v${pkg.version}
`
)
}
const [
srcXapiUrl,
srcSnapshotUuid,
tgtXapiUrl,
tgtVmUuid,
jobId,
scheduleId,
] = args
const srcXapi = new Xapi({
allowUnauthorized: true,
url: srcXapiUrl,
watchEvents: false,
})
await srcXapi.connect()
defer.call(srcXapi, 'disconnect')
const tgtXapi = new Xapi({
allowUnauthorized: true,
url: tgtXapiUrl,
watchEvents: false,
})
await tgtXapi.connect()
defer.call(tgtXapi, 'disconnect')
const [srcSnapshot, tgtVm] = await Promise.all([
srcXapi.getRecordByUuid('VM', srcSnapshotUuid),
tgtXapi.getRecordByUuid('VM', tgtVmUuid),
])
const srcVm = await srcXapi.getRecord('VM', srcSnapshot.snapshot_of)
const metadata = {
'xo:backup:datetime': srcSnapshot.snapshot_time,
'xo:backup:job': jobId,
'xo:backup:schedule': scheduleId,
'xo:backup:vm': srcVm.uuid,
}
const [srcDisks, tgtDisks] = await Promise.all([
srcXapi.getVmDisks(srcSnapshot),
tgtXapi.getVmDisks(tgtVm),
])
const userDevices = Object.keys(tgtDisks)
const tgtSr = await tgtXapi.getRecord(
'SR',
tgtDisks[Object.keys(tgtDisks)[0]].SR
)
await Promise.all([
srcXapi.setFieldEntries(srcSnapshot, 'other_config', metadata),
srcXapi.setFieldEntries(srcSnapshot, 'other_config', {
'xo:backup:exported': 'true',
}),
tgtXapi.setField(
tgtVm,
'name_label',
`${srcVm.name_label} (${srcSnapshot.snapshot_time})`
),
tgtXapi.setFieldEntries(tgtVm, 'other_config', metadata),
tgtXapi.setFieldEntries(tgtVm, 'other_config', {
'xo:backup:sr': tgtSr.uuid,
'xo:copy_of': srcSnapshotUuid,
}),
tgtXapi.setFieldEntries(tgtVm, 'blocked_operations', {
start:
'Start operation for this vm is blocked, clone it if you want to use it.',
}),
Promise.all(
userDevices.map(userDevice => {
const srcDisk = srcDisks[userDevice]
const tgtDisk = tgtDisks[userDevice]
return tgtXapi.setFieldEntry(
tgtDisk,
'other_config',
'xo:copy_of',
srcDisk.uuid
)
})
),
])
})(process.argv.slice(2)).catch(console.error.bind(console, 'Fatal error:'))

View File

@@ -0,0 +1,20 @@
{
"name": "@xen-orchestra/cr-seed-cli",
"version": "0.2.0",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/cr-seed-cli",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"engines": {
"node": ">=8"
},
"bin": {
"xo-cr-seed": "./index.js"
},
"dependencies": {
"golike-defer": "^0.4.1",
"xen-api": "^0.19.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@xen-orchestra/cron",
"version": "1.0.2",
"version": "1.0.3",
"license": "ISC",
"description": "Focused, well maintained, cron parser/scheduler",
"keywords": [
@@ -14,7 +14,7 @@
"scheduling",
"task"
],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/packages/@xen-orchestra/cron",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/cron",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
@@ -41,10 +41,10 @@
"moment-timezone": "^0.5.14"
},
"devDependencies": {
"@babel/cli": "7.0.0-beta.40",
"@babel/core": "7.0.0-beta.40",
"@babel/preset-env": "7.0.0-beta.40",
"@babel/preset-flow": "7.0.0-beta.40",
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"cross-env": "^5.1.3",
"rimraf": "^2.6.2"
},

View File

@@ -8,7 +8,12 @@ const MAX_DELAY = 2 ** 31 - 1
class Job {
constructor (schedule, fn) {
const wrapper = () => {
const result = fn()
let result
try {
result = fn()
} catch (_) {
// catch any thrown value to ensure it does not break the job
}
let then
if (result != null && typeof (then = result.then) === 'function') {
then.call(result, scheduleNext, scheduleNext)
@@ -44,7 +49,9 @@ class Schedule {
this._createDate =
zone.toLowerCase() === 'utc'
? moment.utc
: zone === 'local' ? moment : () => moment.tz(zone)
: zone === 'local'
? moment
: () => moment.tz(zone)
}
createJob (fn) {

View File

@@ -41,4 +41,8 @@ describe('next()', () => {
'no solutions found for this schedule'
)
})
it('select the first sunday of the month', () => {
expect(N('* * * * 0', '2018-03-31T00:00')).toBe('2018-04-01T00:00')
})
})

View File

@@ -176,10 +176,10 @@ export default createParser({
range: [0, 11],
},
{
aliases: 'mon tue wen thu fri sat sun'.split(' '),
aliases: 'sun mon tue wen thu fri sat'.split(' '),
name: 'dayOfWeek',
post: value => (value === 0 ? 7 : value),
range: [1, 7],
post: value => (value === 7 ? 0 : value),
range: [0, 6],
},
],
presets: {

View File

@@ -23,7 +23,7 @@ describe('parse()', () => {
it('correctly parse days', () => {
expect(parse('* * * * mon,sun')).toEqual({
dayOfWeek: [1, 7],
dayOfWeek: [0, 1],
})
})
@@ -40,10 +40,10 @@ describe('parse()', () => {
it('dayOfWeek: 0 and 7 bind to sunday', () => {
expect(parse('* * * * 0')).toEqual({
dayOfWeek: [7],
dayOfWeek: [0],
})
expect(parse('* * * * 7')).toEqual({
dayOfWeek: [7],
dayOfWeek: [0],
})
})
})

View File

@@ -0,0 +1,3 @@
module.exports = require('../../@xen-orchestra/babel-config')(
require('./package.json')
)

View File

@@ -0,0 +1,24 @@
/benchmark/
/benchmarks/
*.bench.js
*.bench.js.map
/examples/
example.js
example.js.map
*.example.js
*.example.js.map
/fixture/
/fixtures/
*.fixture.js
*.fixture.js.map
*.fixtures.js
*.fixtures.js.map
/test/
/tests/
*.spec.js
*.spec.js.map
__snapshots__/

View File

@@ -0,0 +1,49 @@
# ${pkg.name} [![Build Status](https://travis-ci.org/${pkg.shortGitHubPath}.png?branch=master)](https://travis-ci.org/${pkg.shortGitHubPath})
> ${pkg.description}
## Install
Installation of the [npm package](https://npmjs.org/package/${pkg.name}):
```
> npm install --save ${pkg.name}
```
## Usage
**TODO**
## Development
```
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
```
## Contributions
Contributions are *very* welcomed, either on the documentation or on
the code.
You may:
- report any [issue](${pkg.bugs})
you've encountered;
- fork and create a pull request.
## License
${pkg.license} © [${pkg.author.name}](${pkg.author.url})

View File

@@ -0,0 +1,47 @@
{
"name": "@xen-orchestra/defined",
"version": "0.0.0",
"license": "ISC",
"description": "",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/defined",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"author": {
"name": "Julien Fontanet",
"email": "julien.fontanet@vates.fr"
},
"preferGlobal": false,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"browserslist": [
">2%"
],
"engines": {
"node": ">=6"
},
"dependencies": {},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.3",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "yarn run clean",
"predev": "yarn run prebuild",
"prepublishOnly": "yarn run build"
}
}

View File

@@ -1,3 +1,5 @@
// @flow
// Usage:
//
// ```js
@@ -39,7 +41,7 @@ export default function defined () {
// const getFriendName = _ => _.friends[0].name
// const friendName = get(getFriendName, props.user)
// ```
export const get = (accessor, arg) => {
export const get = (accessor: (input: ?any) => any, arg: ?any) => {
try {
return accessor(arg)
} catch (error) {
@@ -58,5 +60,5 @@ export const get = (accessor, arg) => {
// _ => new ProxyAgent(_)
// )
// ```
export const ifDef = (value, thenFn) =>
export const ifDef = (value: ?any, thenFn: (value: any) => any) =>
value !== undefined ? thenFn(value) : value

View File

@@ -0,0 +1,3 @@
module.exports = require('../../@xen-orchestra/babel-config')(
require('./package.json')
)

View File

@@ -0,0 +1,24 @@
/benchmark/
/benchmarks/
*.bench.js
*.bench.js.map
/examples/
example.js
example.js.map
*.example.js
*.example.js.map
/fixture/
/fixtures/
*.fixture.js
*.fixture.js.map
*.fixtures.js
*.fixtures.js.map
/test/
/tests/
*.spec.js
*.spec.js.map
__snapshots__/

View File

@@ -0,0 +1,71 @@
# @xen-orchestra/emit-async [![Build Status](https://travis-ci.org/${pkg.shortGitHubPath}.png?branch=master)](https://travis-ci.org/${pkg.shortGitHubPath})
> ${pkg.description}
## Install
Installation of the [npm package](https://npmjs.org/package/@xen-orchestra/emit-async):
```
> npm install --save @xen-orchestra/emit-async
```
## Usage
```js
import EE from 'events'
import emitAsync from '@xen-orchestra/emit-async'
const ee = new EE()
ee.emitAsync = emitAsync
ee.on('start', async function () {
// whatever
})
// similar to EventEmmiter#emit() but returns a promise which resolves when all
// listeners have resolved
await ee.emitAsync('start')
// by default, it will rejects as soon as one listener reject, you can customise
// error handling though:
await ee.emitAsync({
onError (error) {
console.warn(error)
}
}, 'start')
```
## Development
```
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
```
## Contributions
Contributions are *very* welcomed, either on the documentation or on
the code.
You may:
- report any [issue](${pkg.bugs})
you've encountered;
- fork and create a pull request.
## License
${pkg.license} © [${pkg.author.name}](${pkg.author.url})

View File

@@ -0,0 +1,46 @@
{
"name": "@xen-orchestra/emit-async",
"version": "0.0.0",
"license": "ISC",
"description": "",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/emit-async",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"author": {
"name": "Julien Fontanet",
"email": "julien.fontanet@vates.fr"
},
"preferGlobal": false,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"browserslist": [
">2%"
],
"engines": {
"node": ">=6"
},
"dependencies": {},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.3",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "yarn run clean",
"predev": "yarn run prebuild",
"prepublishOnly": "yarn run build"
}
}

View File

@@ -0,0 +1,26 @@
export default function emitAsync (event) {
let opts
let i = 1
// an option object has been passed as first param
if (typeof event !== 'string') {
opts = event
event = arguments[i++]
}
const n = arguments.length - i
const args = new Array(n)
for (let j = 0; j < n; ++j) {
args[j] = arguments[j + i]
}
const onError = opts != null && opts.onError
return Promise.all(
this.listeners(event).map(listener =>
new Promise(resolve => {
resolve(listener.apply(this, args))
}).catch(onError)
)
)
}

View File

@@ -0,0 +1,3 @@
module.exports = require('../../@xen-orchestra/babel-config')(
require('./package.json')
)

View File

@@ -0,0 +1,52 @@
{
"name": "@xen-orchestra/fs",
"version": "0.4.0",
"license": "AGPL-3.0",
"description": "The File System for Xen Orchestra backups.",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/fs",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"preferGlobal": true,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"engines": {
"node": ">=6"
},
"dependencies": {
"@marsaud/smb2": "^0.9.0",
"execa": "^1.0.0",
"fs-extra": "^7.0.0",
"get-stream": "^4.0.0",
"lodash": "^4.17.4",
"promise-toolbox": "^0.10.1",
"through2": "^2.0.3",
"tmp": "^0.0.33",
"xo-remote-parser": "^0.5.0"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/plugin-proposal-function-bind": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.3",
"index-modules": "^0.3.0",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "yarn run clean",
"predev": "yarn run clean",
"prepare": "yarn run build"
}
}

View File

@@ -0,0 +1,321 @@
// @flow
import getStream from 'get-stream'
import { randomBytes } from 'crypto'
import { fromCallback, fromEvent, ignoreErrors, timeout } from 'promise-toolbox'
import { type Readable, type Writable } from 'stream'
import { parse } from 'xo-remote-parser'
import { createChecksumStream, validChecksumOfReadStream } from './checksum'
type Data = Buffer | Readable | string
type FileDescriptor = {| fd: mixed, path: string |}
type LaxReadable = Readable & Object
type LaxWritable = Writable & Object
type File = FileDescriptor | string
const checksumFile = file => file + '.checksum'
export const DEFAULT_TIMEOUT = 10000
export default class RemoteHandlerAbstract {
_remote: Object
constructor (remote: any) {
if (remote.url === 'test://') {
this._remote = remote
} else {
this._remote = { ...remote, ...parse(remote.url) }
if (this._remote.type !== this.type) {
throw new Error('Incorrect remote type')
}
}
}
get type (): string {
throw new Error('Not implemented')
}
/**
* Asks the handler to sync the state of the effective remote with its' metadata
*/
async sync (): Promise<mixed> {
return this._sync()
}
async _sync (): Promise<mixed> {
throw new Error('Not implemented')
}
/**
* Free the resources possibly dedicated to put the remote at work, when it is no more needed
*/
async forget (): Promise<void> {
await this._forget()
}
async _forget (): Promise<void> {
throw new Error('Not implemented')
}
async test (): Promise<Object> {
const testFileName = `${Date.now()}.test`
const data = await fromCallback(cb => randomBytes(1024 * 1024, cb))
let step = 'write'
try {
await this.outputFile(testFileName, data)
step = 'read'
const read = await this.readFile(testFileName)
if (data.compare(read) !== 0) {
throw new Error('output and input did not match')
}
return {
success: true,
}
} catch (error) {
return {
success: false,
step,
file: testFileName,
error: error.message || String(error),
}
} finally {
ignoreErrors.call(this.unlink(testFileName))
}
}
async outputFile (file: string, data: Data, options?: Object): Promise<void> {
return this._outputFile(file, data, {
flags: 'wx',
...options,
})
}
async _outputFile (file: string, data: Data, options?: Object): Promise<void> {
const stream = await this.createOutputStream(file, options)
const promise = fromEvent(stream, 'finish')
stream.end(data)
await promise
}
async read (
file: File,
buffer: Buffer,
position?: number
): Promise<{| bytesRead: number, buffer: Buffer |}> {
return this._read(file, buffer, position)
}
_read (
file: File,
buffer: Buffer,
position?: number
): Promise<{| bytesRead: number, buffer: Buffer |}> {
throw new Error('Not implemented')
}
async readFile (file: string, options?: Object): Promise<Buffer> {
return this._readFile(file, options)
}
_readFile (file: string, options?: Object): Promise<Buffer> {
return this.createReadStream(file, options).then(getStream.buffer)
}
async rename (
oldPath: string,
newPath: string,
{ checksum = false }: Object = {}
) {
let p = timeout.call(this._rename(oldPath, newPath), DEFAULT_TIMEOUT)
if (checksum) {
p = Promise.all([
p,
this._rename(checksumFile(oldPath), checksumFile(newPath)),
])
}
return p
}
async _rename (oldPath: string, newPath: string) {
throw new Error('Not implemented')
}
async list (
dir: string = '.',
{
filter,
prependDir = false,
}: { filter?: (name: string) => boolean, prependDir?: boolean } = {}
): Promise<string[]> {
let entries = await timeout.call(this._list(dir), DEFAULT_TIMEOUT)
if (filter !== undefined) {
entries = entries.filter(filter)
}
if (prependDir) {
entries.forEach((entry, i) => {
entries[i] = dir + '/' + entry
})
}
return entries
}
async _list (dir: string): Promise<string[]> {
throw new Error('Not implemented')
}
createReadStream (
file: string,
{ checksum = false, ignoreMissingChecksum = false, ...options }: Object = {}
): Promise<LaxReadable> {
const path = typeof file === 'string' ? file : file.path
const streamP = timeout
.call(this._createReadStream(file, options), DEFAULT_TIMEOUT)
.then(stream => {
// detect early errors
let promise = fromEvent(stream, 'readable')
// try to add the length prop if missing and not a range stream
if (
stream.length === undefined &&
options.end === undefined &&
options.start === undefined
) {
promise = Promise.all([
promise,
ignoreErrors.call(
this.getSize(file).then(size => {
stream.length = size
})
),
])
}
return promise.then(() => stream)
})
if (!checksum) {
return streamP
}
// avoid a unhandled rejection warning
ignoreErrors.call(streamP)
return this.readFile(checksumFile(path)).then(
checksum =>
streamP.then(stream => {
const { length } = stream
stream = (validChecksumOfReadStream(
stream,
String(checksum).trim()
): LaxReadable)
stream.length = length
return stream
}),
error => {
if (ignoreMissingChecksum && error && error.code === 'ENOENT') {
return streamP
}
throw error
}
)
}
async _createReadStream (
file: string,
options?: Object
): Promise<LaxReadable> {
throw new Error('Not implemented')
}
async openFile (path: string, flags?: string): Promise<FileDescriptor> {
return {
fd: await timeout.call(this._openFile(path, flags), DEFAULT_TIMEOUT),
path,
}
}
async _openFile (path: string, flags?: string): Promise<mixed> {
throw new Error('Not implemented')
}
async closeFile (fd: FileDescriptor): Promise<void> {
await timeout.call(this._closeFile(fd.fd), DEFAULT_TIMEOUT)
}
async _closeFile (fd: mixed): Promise<void> {
throw new Error('Not implemented')
}
async refreshChecksum (path: string): Promise<void> {
const stream = (await this.createReadStream(path)).pipe(
createChecksumStream()
)
stream.resume() // start reading the whole file
await this.outputFile(checksumFile(path), await stream.checksum)
}
async createOutputStream (
file: File,
{ checksum = false, ...options }: Object = {}
): Promise<LaxWritable> {
const path = typeof file === 'string' ? file : file.path
const streamP = timeout.call(
this._createOutputStream(file, {
flags: 'wx',
...options,
}),
DEFAULT_TIMEOUT
)
if (!checksum) {
return streamP
}
const checksumStream = createChecksumStream()
const forwardError = error => {
checksumStream.emit('error', error)
}
const stream = await streamP
stream.on('error', forwardError)
checksumStream.pipe(stream)
// $FlowFixMe
checksumStream.checksumWritten = checksumStream.checksum
.then(value => this.outputFile(checksumFile(path), value))
.catch(forwardError)
return checksumStream
}
async _createOutputStream (
file: mixed,
options?: Object
): Promise<LaxWritable> {
throw new Error('Not implemented')
}
async unlink (file: string, { checksum = true }: Object = {}): Promise<void> {
if (checksum) {
ignoreErrors.call(this._unlink(checksumFile(file)))
}
await timeout.call(this._unlink(file), DEFAULT_TIMEOUT)
}
async _unlink (file: mixed): Promise<void> {
throw new Error('Not implemented')
}
async getSize (file: mixed): Promise<number> {
return timeout.call(this._getSize(file), DEFAULT_TIMEOUT)
}
async _getSize (file: mixed): Promise<number> {
throw new Error('Not implemented')
}
}

View File

@@ -0,0 +1,111 @@
/* eslint-env jest */
import { TimeoutError } from 'promise-toolbox'
import AbstractHandler, { DEFAULT_TIMEOUT } from './abstract'
class TestHandler extends AbstractHandler {
constructor (impl) {
super({ url: 'test://' })
Object.keys(impl).forEach(method => {
this[`_${method}`] = impl[method]
})
}
}
describe('rename()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
rename: () => new Promise(() => {}),
})
const promise = testHandler.rename('oldPath', 'newPath')
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('list()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
list: () => new Promise(() => {}),
})
const promise = testHandler.list()
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('createReadStream()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
createReadStream: () => new Promise(() => {}),
})
const promise = testHandler.createReadStream('file')
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('openFile()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
openFile: () => new Promise(() => {}),
})
const promise = testHandler.openFile('path')
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('closeFile()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
closeFile: () => new Promise(() => {}),
})
const promise = testHandler.closeFile({ fd: undefined, path: '' })
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('createOutputStream()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
createOutputStream: () => new Promise(() => {}),
})
const promise = testHandler.createOutputStream('File')
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('unlink()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
unlink: () => new Promise(() => {}),
})
const promise = testHandler.unlink('')
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})
describe('getSize()', () => {
it(`return TimeoutError after ${DEFAULT_TIMEOUT} ms`, async () => {
const testHandler = new TestHandler({
getSize: () => new Promise(() => {}),
})
const promise = testHandler.getSize('')
jest.advanceTimersByTime(DEFAULT_TIMEOUT)
await expect(promise).rejects.toThrowError(TimeoutError)
})
})

View File

@@ -0,0 +1,100 @@
// @flow
// $FlowFixMe
import through2 from 'through2'
import { createHash } from 'crypto'
import { defer, fromEvent } from 'promise-toolbox'
import { invert } from 'lodash'
import { type Readable, type Transform } from 'stream'
// Format: $<algorithm>$<salt>$<encrypted>
//
// http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES
const ALGORITHM_TO_ID = {
md5: '1',
sha256: '5',
sha512: '6',
}
const ID_TO_ALGORITHM = invert(ALGORITHM_TO_ID)
// Create a through stream which computes the checksum of all data going
// through.
//
// The `checksum` attribute is a promise which resolves at the end of the stream
// with a string representation of the checksum.
//
// const source = ...
// const checksumStream = source.pipe(createChecksumStream())
// checksumStream.resume() // make the data flow without an output
// console.log(await checksumStream.checksum)
export const createChecksumStream = (
algorithm: string = 'md5'
): Transform & { checksum: Promise<string> } => {
const algorithmId = ALGORITHM_TO_ID[algorithm]
if (!algorithmId) {
throw new Error(`unknown algorithm: ${algorithm}`)
}
const hash = createHash(algorithm)
const { promise, resolve, reject } = defer()
const stream = through2(
(chunk, enc, callback) => {
hash.update(chunk)
callback(null, chunk)
},
callback => {
resolve(`$${algorithmId}$$${hash.digest('hex')}`)
callback()
}
).once('error', reject)
stream.checksum = promise
return stream
}
// Check if the checksum of a readable stream is equals to an expected checksum.
// The given stream is wrapped in a stream which emits an error event
// if the computed checksum is not equals to the expected checksum.
export const validChecksumOfReadStream = (
stream: Readable,
expectedChecksum: string
): Readable & { checksumVerified: Promise<void> } => {
const algorithmId = expectedChecksum.slice(
1,
expectedChecksum.indexOf('$', 1)
)
if (!algorithmId) {
throw new Error(`unknown algorithm: ${algorithmId}`)
}
const hash = createHash(ID_TO_ALGORITHM[algorithmId])
const wrapper: any = stream.pipe(
through2(
{ highWaterMark: 0 },
(chunk, enc, callback) => {
hash.update(chunk)
callback(null, chunk)
},
callback => {
const checksum = `$${algorithmId}$$${hash.digest('hex')}`
callback(
checksum !== expectedChecksum
? new Error(
`Bad checksum (${checksum}), expected: ${expectedChecksum}`
)
: null
)
}
)
)
stream.on('error', error => wrapper.emit('error', error))
wrapper.checksumVerified = fromEvent(wrapper, 'end')
return wrapper
}

View File

@@ -0,0 +1,26 @@
/* eslint-env jest */
import rimraf from 'rimraf'
import tmp from 'tmp'
import { pFromCallback } from 'promise-toolbox'
import { getHandler } from '.'
const initialDir = process.cwd()
beforeEach(async () => {
const dir = await pFromCallback(cb => tmp.dir(cb))
process.chdir(dir)
})
afterEach(async () => {
const tmpDir = process.cwd()
process.chdir(initialDir)
await pFromCallback(cb => rimraf(tmpDir, cb))
})
test("fs test doesn't crash", async () => {
const handler = getHandler({ url: 'file://' + process.cwd() })
const result = await handler.test()
expect(result.success).toBeTruthy()
})

View File

@@ -0,0 +1,26 @@
// @flow
import type RemoteHandler from './abstract'
import RemoteHandlerLocal from './local'
import RemoteHandlerNfs from './nfs'
import RemoteHandlerSmb from './smb'
export type { default as RemoteHandler } from './abstract'
export type Remote = { url: string }
const HANDLERS = {
file: RemoteHandlerLocal,
smb: RemoteHandlerSmb,
nfs: RemoteHandlerNfs,
}
export const getHandler = (remote: Remote): RemoteHandler => {
// FIXME: should be done in xo-remote-parser.
const type = remote.url.split('://')[0]
const Handler = HANDLERS[type]
if (!Handler) {
throw new Error('Unhandled remote type')
}
return new Handler(remote)
}

View File

@@ -28,14 +28,9 @@ export default class LocalHandler extends RemoteHandlerAbstract {
async _sync () {
if (this._remote.enabled) {
try {
const path = this._getRealPath()
await fs.ensureDir(path)
await fs.access(path, fs.R_OK | fs.W_OK)
} catch (exc) {
this._remote.enabled = false
this._remote.error = exc.message
}
const path = this._getRealPath()
await fs.ensureDir(path)
await fs.access(path, fs.R_OK | fs.W_OK)
}
return this._remote
}
@@ -50,6 +45,24 @@ export default class LocalHandler extends RemoteHandlerAbstract {
await fs.writeFile(path, data, options)
}
async _read (file, buffer, position) {
const needsClose = typeof file === 'string'
file = needsClose ? await fs.open(this._getFilePath(file), 'r') : file.fd
try {
return await fs.read(
file,
buffer,
0,
buffer.length,
position === undefined ? null : position
)
} finally {
if (needsClose) {
await fs.close(file)
}
}
}
async _readFile (file, options) {
return fs.readFile(this._getFilePath(file), options)
}
@@ -63,15 +76,13 @@ export default class LocalHandler extends RemoteHandlerAbstract {
}
async _createReadStream (file, options) {
if (typeof file === 'string') {
return fs.createReadStream(this._getFilePath(file), options)
} else {
return fs.createReadStream('', {
autoClose: false,
...options,
fd: file.fd,
})
}
return typeof file === 'string'
? fs.createReadStream(this._getFilePath(file), options)
: fs.createReadStream('', {
autoClose: false,
...options,
fd: file.fd,
})
}
async _createOutputStream (file, options) {
@@ -79,13 +90,12 @@ export default class LocalHandler extends RemoteHandlerAbstract {
const path = this._getFilePath(file)
await fs.ensureDir(dirname(path))
return fs.createWriteStream(path, options)
} else {
return fs.createWriteStream('', {
autoClose: false,
...options,
fd: file.fd,
})
}
return fs.createWriteStream('', {
autoClose: false,
...options,
fd: file.fd,
})
}
async _unlink (file) {

View File

@@ -0,0 +1,71 @@
import execa from 'execa'
import fs from 'fs-extra'
import LocalHandler from './local'
const DEFAULT_NFS_OPTIONS = 'vers=3'
export default class NfsHandler extends LocalHandler {
get type () {
return 'nfs'
}
_getRealPath () {
return `/run/xo-server/mounts/${this._remote.id}`
}
async _mount () {
await fs.ensureDir(this._getRealPath())
const { host, path, port, options } = this._remote
return execa(
'mount',
[
'-t',
'nfs',
'-o',
DEFAULT_NFS_OPTIONS + (options !== undefined ? `,${options}` : ''),
`${host}${port !== undefined ? ':' + port : ''}:${path}`,
this._getRealPath(),
],
{
env: {
LANG: 'C',
},
}
).catch(error => {
if (!error.stderr.includes('already mounted')) {
throw error
}
})
}
async _sync () {
if (this._remote.enabled) {
await this._mount()
} else {
await this._umount()
}
return this._remote
}
async _forget () {
try {
await this._umount(this._remote)
} catch (_) {
// We have to go on...
}
}
async _umount () {
await execa('umount', ['--force', this._getRealPath()], {
env: {
LANG: 'C',
},
}).catch(error => {
if (!error.stderr.includes('not mounted')) {
throw error
}
})
}
}

View File

@@ -1,7 +1,9 @@
import Smb2 from '@marsaud/smb2-promise'
import Smb2 from '@marsaud/smb2'
import { pFinally } from 'promise-toolbox'
import RemoteHandlerAbstract from './abstract'
import { noop, pFinally } from '../utils'
const noop = () => {}
// Normalize the error code for file not found.
const normalizeError = error => {
@@ -10,13 +12,13 @@ const normalizeError = error => {
return code === 'STATUS_OBJECT_NAME_NOT_FOUND' ||
code === 'STATUS_OBJECT_PATH_NOT_FOUND'
? Object.create(error, {
code: {
configurable: true,
readable: true,
value: 'ENOENT',
writable: true,
},
})
code: {
configurable: true,
readable: true,
value: 'ENOENT',
writable: true,
},
})
: error
}
@@ -30,7 +32,9 @@ export default class SmbHandler extends RemoteHandlerAbstract {
return 'smb'
}
_getClient (remote) {
_getClient () {
const remote = this._remote
return new Smb2({
share: `\\\\${remote.host}`,
domain: remote.domain,
@@ -67,19 +71,14 @@ export default class SmbHandler extends RemoteHandlerAbstract {
async _sync () {
if (this._remote.enabled) {
try {
// Check access (smb2 does not expose connect in public so far...)
await this.list()
} catch (error) {
this._remote.enabled = false
this._remote.error = error.message
}
// Check access (smb2 does not expose connect in public so far...)
await this.list()
}
return this._remote
}
async _outputFile (file, data, options = {}) {
const client = this._getClient(this._remote)
const client = this._getClient()
const path = this._getFilePath(file)
const dir = this._dirname(path)
@@ -88,19 +87,40 @@ export default class SmbHandler extends RemoteHandlerAbstract {
}
return client.writeFile(path, data, options)::pFinally(() => {
client.close()
client.disconnect()
})
}
async _read (file, buffer, position) {
const needsClose = typeof file === 'string'
let client
if (needsClose) {
client = this._getClient()
file = await client.open(this._getFilePath(file))
} else {
;({ client, file } = file.fd)
}
try {
return await client.read(file, buffer, 0, buffer.length, position)
} finally {
if (needsClose) {
await client.close(file)
client.disconnect()
}
}
}
async _readFile (file, options = {}) {
const client = this._getClient(this._remote)
const client = this._getClient()
let content
try {
content = await client
.readFile(this._getFilePath(file), options)
::pFinally(() => {
client.close()
client.disconnect()
})
} catch (error) {
throw normalizeError(error)
@@ -110,13 +130,15 @@ export default class SmbHandler extends RemoteHandlerAbstract {
}
async _rename (oldPath, newPath) {
const client = this._getClient(this._remote)
const client = this._getClient()
try {
await client
.rename(this._getFilePath(oldPath), this._getFilePath(newPath))
.rename(this._getFilePath(oldPath), this._getFilePath(newPath), {
replace: true,
})
::pFinally(() => {
client.close()
client.disconnect()
})
} catch (error) {
throw normalizeError(error)
@@ -124,12 +146,12 @@ export default class SmbHandler extends RemoteHandlerAbstract {
}
async _list (dir = '.') {
const client = this._getClient(this._remote)
const client = this._getClient()
let list
try {
list = await client.readdir(this._getFilePath(dir))::pFinally(() => {
client.close()
client.disconnect()
})
} catch (error) {
throw normalizeError(error)
@@ -142,13 +164,13 @@ export default class SmbHandler extends RemoteHandlerAbstract {
if (typeof file !== 'string') {
file = file.path
}
const client = this._getClient(this._remote)
const client = this._getClient()
let stream
try {
// FIXME ensure that options are properly handled by @marsaud/smb2
stream = await client.createReadStream(this._getFilePath(file), options)
stream.on('end', () => client.close())
stream.on('end', () => client.disconnect())
} catch (error) {
throw normalizeError(error)
}
@@ -160,7 +182,7 @@ export default class SmbHandler extends RemoteHandlerAbstract {
if (typeof file !== 'string') {
file = file.path
}
const client = this._getClient(this._remote)
const client = this._getClient()
const path = this._getFilePath(file)
const dir = this._dirname(path)
let stream
@@ -170,19 +192,19 @@ export default class SmbHandler extends RemoteHandlerAbstract {
}
stream = await client.createWriteStream(path, options) // FIXME ensure that options are properly handled by @marsaud/smb2
} catch (err) {
client.close()
client.disconnect()
throw err
}
stream.on('finish', () => client.close())
stream.on('finish', () => client.disconnect())
return stream
}
async _unlink (file) {
const client = this._getClient(this._remote)
const client = this._getClient()
try {
await client.unlink(this._getFilePath(file))::pFinally(() => {
client.close()
client.disconnect()
})
} catch (error) {
throw normalizeError(error)
@@ -190,14 +212,14 @@ export default class SmbHandler extends RemoteHandlerAbstract {
}
async _getSize (file) {
const client = await this._getClient(this._remote)
const client = await this._getClient()
let size
try {
size = await client
.getSize(this._getFilePath(typeof file === 'string' ? file : file.path))
::pFinally(() => {
client.close()
client.disconnect()
})
} catch (error) {
throw normalizeError(error)
@@ -206,10 +228,17 @@ export default class SmbHandler extends RemoteHandlerAbstract {
return size
}
// this is a fake
// TODO: add flags
async _openFile (path) {
return this._getFilePath(path)
const client = this._getClient()
return {
client,
file: await client.open(this._getFilePath(path)),
}
}
async _closeFile (fd) {}
async _closeFile ({ client, file }) {
await client.close(file)
client.disconnect()
}
}

View File

@@ -0,0 +1,3 @@
module.exports = require('../../@xen-orchestra/babel-config')(
require('./package.json')
)

View File

@@ -0,0 +1,24 @@
/benchmark/
/benchmarks/
*.bench.js
*.bench.js.map
/examples/
example.js
example.js.map
*.example.js
*.example.js.map
/fixture/
/fixtures/
*.fixture.js
*.fixture.js.map
*.fixtures.js
*.fixtures.js.map
/test/
/tests/
*.spec.js
*.spec.js.map
__snapshots__/

View File

@@ -0,0 +1,160 @@
# @xen-orchestra/log [![Build Status](https://travis-ci.org/vatesfr/xen-orchestra.png?branch=master)](https://travis-ci.org/vatesfr/xen-orchestra)
> ${pkg.description}
## Install
Installation of the [npm package](https://npmjs.org/package/@xen-orchestra/log):
```
> npm install --save @xen-orchestra/log
```
## Usage
Everywhere something should be logged:
```js
import createLogger from '@xen-orchestra/log'
const log = createLogger('my-module')
log.debug('only useful for debugging')
log.info('this information is relevant to the user')
log.warn('something went wrong but did not prevent current action')
log.error('something went wrong')
log.fatal('service/app is going down')
```
Then, at application level, configure the logs are handled:
```js
import { configure, catchGlobalErrors } from '@xen-orchestra/log/configure'
import transportConsole from '@xen-orchestra/log/transports/console'
import transportEmail from '@xen-orchestra/log/transports/email'
const transport = transportEmail({
service: 'gmail',
auth: {
user: 'jane.smith@gmail.com',
pass: 'H&NbECcpXF|pyXe#%ZEb'
},
from: 'jane.smith@gmail.com',
to: [
'jane.smith@gmail.com',
'sam.doe@yahoo.com'
]
})
configure([
{
// if filter is a string, then it is pattern
// (https://github.com/visionmedia/debug#wildcards) which is
// matched against the namespace of the logs
filter: process.env.DEBUG,
transport: transportConsole()
},
{
// only levels >= warn
level: 'warn',
transport
}
])
// send all global errors (uncaught exceptions, warnings, unhandled rejections)
// to this transport
catchGlobalErrors(transport)
```
### Transports
#### Console
```js
import transportConsole from '@xen-orchestra/log/transports/console'
configure(transports.console())
```
#### Email
Optional dependency:
```
> yarn add nodemailer pretty-format
```
Configuration:
```js
import transportEmail from '@xen-orchestra/log/transports/email'
configure(transportEmail({
service: 'gmail',
auth: {
user: 'jane.smith@gmail.com',
pass: 'H&NbECcpXF|pyXe#%ZEb'
},
from: 'jane.smith@gmail.com',
to: [
'jane.smith@gmail.com',
'sam.doe@yahoo.com'
]
}))
```
#### Syslog
Optional dependency:
```
> yarn add split-host syslog-client
```
Configuration:
```js
import transportSyslog from '@xen-orchestra/log/transports/syslog'
// By default, log to udp://localhost:514
configure(transportSyslog())
// But TCP, a different host, or a different port can be used
configure(transportSyslog('tcp://syslog.company.lan'))
```
## Development
```
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
```
## Contributions
Contributions are *very* welcomed, either on the documentation or on
the code.
You may:
- report any [issue](https://github.com/vatesfr/xo-web/issues/)
you've encountered;
- fork and create a pull request.
## License
ISC © [Vates SAS](https://vates.fr)

View File

@@ -0,0 +1 @@
module.exports = require('./dist/configure')

View File

@@ -0,0 +1,50 @@
{
"name": "@xen-orchestra/log",
"version": "0.1.0",
"license": "ISC",
"description": "",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/log",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"author": {
"name": "Julien Fontanet",
"email": "julien.fontanet@vates.fr"
},
"preferGlobal": false,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"browserslist": [
">2%"
],
"engines": {
"node": ">=4"
},
"dependencies": {
"lodash": "^4.17.4",
"promise-toolbox": "^0.10.1"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.3",
"index-modules": "^0.3.0",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "yarn run clean",
"predev": "yarn run prebuild",
"prepublishOnly": "yarn run build"
}
}

View File

@@ -0,0 +1,106 @@
import createConsoleTransport from './transports/console'
import LEVELS, { resolve } from './levels'
import { compileGlobPattern } from './utils'
// ===================================================================
const createTransport = config => {
if (typeof config === 'function') {
return config
}
if (Array.isArray(config)) {
const transports = config.map(createTransport)
const { length } = transports
return function () {
for (let i = 0; i < length; ++i) {
transports[i].apply(this, arguments)
}
}
}
let { filter, transport } = config
const level = resolve(config.level)
if (filter !== undefined) {
if (typeof filter === 'string') {
const re = compileGlobPattern(filter)
filter = log => re.test(log.namespace)
}
const orig = transport
transport = function (log) {
if ((level !== undefined && log.level >= level) || filter(log)) {
return orig.apply(this, arguments)
}
}
} else if (level !== undefined) {
const orig = transport
transport = function (log) {
if (log.level >= level) {
return orig.apply(this, arguments)
}
}
}
return transport
}
const symbol =
typeof Symbol !== 'undefined'
? Symbol.for('@xen-orchestra/log')
: '@@@xen-orchestra/log'
global[symbol] = createTransport({
// display warnings or above, and all that are enabled via DEBUG or
// NODE_DEBUG env
filter: process.env.DEBUG || process.env.NODE_DEBUG,
level: LEVELS.INFO,
transport: createConsoleTransport(),
})
export const configure = config => {
global[symbol] = createTransport(config)
}
// -------------------------------------------------------------------
export const catchGlobalErrors = logger => {
// patch process
const onUncaughtException = error => {
logger.error('uncaught exception', { error })
}
const onUnhandledRejection = error => {
logger.warn('possibly unhandled rejection', { error })
}
const onWarning = error => {
logger.warn('Node warning', { error })
}
process.on('uncaughtException', onUncaughtException)
process.on('unhandledRejection', onUnhandledRejection)
process.on('warning', onWarning)
// patch EventEmitter
const EventEmitter = require('events')
const { prototype } = EventEmitter
const { emit } = prototype
function patchedEmit (event, error) {
if (event === 'error' && this.listenerCount(event) === 0) {
logger.error('unhandled error event', { error })
return false
}
return emit.apply(this, arguments)
}
prototype.emit = patchedEmit
return () => {
process.removeListener('uncaughtException', onUncaughtException)
process.removeListener('unhandledRejection', onUnhandledRejection)
process.removeListener('warning', onWarning)
if (prototype.emit === patchedEmit) {
prototype.emit = emit
}
}
}

View File

@@ -0,0 +1,76 @@
import createTransport from './transports/console'
import LEVELS from './levels'
const symbol =
typeof Symbol !== 'undefined'
? Symbol.for('@xen-orchestra/log')
: '@@@xen-orchestra/log'
if (!(symbol in global)) {
// the default behavior, without requiring `configure` is to avoid
// logging anything unless it's a real error
const transport = createTransport()
global[symbol] = log => log.level > LEVELS.WARN && transport(log)
}
// -------------------------------------------------------------------
function Log (data, level, namespace, message, time) {
this.data = data
this.level = level
this.namespace = namespace
this.message = message
this.time = time
}
function Logger (namespace) {
this._namespace = namespace
// bind all logging methods
for (const name in LEVELS) {
const lowerCase = name.toLowerCase()
this[lowerCase] = this[lowerCase].bind(this)
}
}
const { prototype } = Logger
for (const name in LEVELS) {
const level = LEVELS[name]
prototype[name.toLowerCase()] = function (message, data) {
if (typeof message !== 'string') {
if (message instanceof Error) {
data = { error: message }
;({ message = 'an error has occured' } = message)
} else {
return this.warn('incorrect value passed to logger', {
level,
value: message,
})
}
}
global[symbol](new Log(data, level, this._namespace, message, new Date()))
}
}
prototype.wrap = function (message, fn) {
const logger = this
const warnAndRethrow = error => {
logger.warn(message, { error })
throw error
}
return function () {
try {
const result = fn.apply(this, arguments)
const then = result != null && result.then
return typeof then === 'function'
? then.call(result, warnAndRethrow)
: result
} catch (error) {
warnAndRethrow(error)
}
}
}
const createLogger = namespace => new Logger(namespace)
export { createLogger as default }

View File

@@ -0,0 +1,24 @@
const LEVELS = Object.create(null)
export { LEVELS as default }
// https://github.com/trentm/node-bunyan#levels
LEVELS.FATAL = 60 // service/app is going down
LEVELS.ERROR = 50 // fatal for current action
LEVELS.WARN = 40 // something went wrong but it's not fatal
LEVELS.INFO = 30 // detail on unusual but normal operation
LEVELS.DEBUG = 20
export const NAMES = Object.create(null)
for (const name in LEVELS) {
NAMES[LEVELS[name]] = name
}
export const resolve = level => {
if (typeof level === 'string') {
level = LEVELS[level.toUpperCase()]
}
return level
}
Object.freeze(LEVELS)
Object.freeze(NAMES)

View File

@@ -0,0 +1,32 @@
/* eslint-env jest */
import { forEach, isInteger } from 'lodash'
import LEVELS, { NAMES, resolve } from './levels'
describe('LEVELS', () => {
it('maps level names to their integer values', () => {
forEach(LEVELS, (value, name) => {
expect(isInteger(value)).toBe(true)
})
})
})
describe('NAMES', () => {
it('maps level values to their names', () => {
forEach(LEVELS, (value, name) => {
expect(NAMES[value]).toBe(name)
})
})
})
describe('resolve()', () => {
it('returns level values either from values or names', () => {
forEach(LEVELS, value => {
expect(resolve(value)).toBe(value)
})
forEach(NAMES, (name, value) => {
expect(resolve(name)).toBe(+value)
})
})
})

View File

@@ -0,0 +1,24 @@
import LEVELS, { NAMES } from '../levels'
// Bind console methods (necessary for browsers)
const debugConsole = console.log.bind(console)
const infoConsole = console.info.bind(console)
const warnConsole = console.warn.bind(console)
const errorConsole = console.error.bind(console)
const { ERROR, INFO, WARN } = LEVELS
const consoleTransport = ({ data, level, namespace, message, time }) => {
const fn =
level < INFO
? debugConsole
: level < WARN
? infoConsole
: level < ERROR
? warnConsole
: errorConsole
fn('%s - %s - [%s] %s', time.toISOString(), namespace, NAMES[level], message)
data != null && fn(data)
}
export default () => consoleTransport

View File

@@ -0,0 +1,70 @@
import fromCallback from 'promise-toolbox/fromCallback'
import prettyFormat from 'pretty-format' // eslint-disable-line node/no-extraneous-import
import { createTransport } from 'nodemailer' // eslint-disable-line node/no-extraneous-import
import { evalTemplate, required } from '../utils'
import { NAMES } from '../levels'
export default ({
// transport options (https://nodemailer.com/smtp/)
auth,
authMethod,
host,
ignoreTLS,
port,
proxy,
requireTLS,
secure,
service,
tls,
// message options (https://nodemailer.com/message/)
bcc,
cc,
from = required('from'),
to = required('to'),
subject = '[{{level}} - {{namespace}}] {{time}} {{message}}',
}) => {
const transporter = createTransport(
{
auth,
authMethod,
host,
ignoreTLS,
port,
proxy,
requireTLS,
secure,
service,
tls,
disableFileAccess: true,
disableUrlAccess: true,
},
{
bcc,
cc,
from,
to,
}
)
return log =>
fromCallback(cb =>
transporter.sendMail(
{
subject: evalTemplate(
subject,
key =>
key === 'level'
? NAMES[log.level]
: key === 'time'
? log.time.toISOString()
: log[key]
),
text: prettyFormat(log.data),
},
cb
)
)
}

View File

@@ -0,0 +1,7 @@
export default () => {
const memoryLogger = log => {
logs.push(log)
}
const logs = (memoryLogger.logs = [])
return memoryLogger
}

View File

@@ -0,0 +1,42 @@
import fromCallback from 'promise-toolbox/fromCallback'
import splitHost from 'split-host' // eslint-disable-line node/no-extraneous-import node/no-missing-import
import startsWith from 'lodash/startsWith'
import { createClient, Facility, Severity, Transport } from 'syslog-client' // eslint-disable-line node/no-extraneous-import node/no-missing-import
import LEVELS from '../levels'
// https://github.com/paulgrove/node-syslog-client#syslogseverity
const LEVEL_TO_SEVERITY = {
[LEVELS.FATAL]: Severity.Critical,
[LEVELS.ERROR]: Severity.Error,
[LEVELS.WARN]: Severity.Warning,
[LEVELS.INFO]: Severity.Informational,
[LEVELS.DEBUG]: Severity.Debug,
}
const facility = Facility.User
export default target => {
const opts = {}
if (target !== undefined) {
if (startsWith(target, 'tcp://')) {
target = target.slice(6)
opts.transport = Transport.Tcp
} else if (startsWith(target, 'udp://')) {
target = target.slice(6)
opts.transport = Transport.Udp
}
;({ host: target, port: opts.port } = splitHost(target))
}
const client = createClient(target, opts)
return log =>
fromCallback(cb =>
client.log(log.message, {
facility,
severity: LEVEL_TO_SEVERITY[log.level],
})
)
}

View File

@@ -0,0 +1,62 @@
import escapeRegExp from 'lodash/escapeRegExp'
// ===================================================================
const TPL_RE = /\{\{(.+?)\}\}/g
export const evalTemplate = (tpl, data) => {
const getData =
typeof data === 'function' ? (_, key) => data(key) : (_, key) => data[key]
return tpl.replace(TPL_RE, getData)
}
// -------------------------------------------------------------------
const compileGlobPatternFragment = pattern =>
pattern
.split('*')
.map(escapeRegExp)
.join('.*')
export const compileGlobPattern = pattern => {
const no = []
const yes = []
pattern.split(/[\s,]+/).forEach(pattern => {
if (pattern[0] === '-') {
no.push(pattern.slice(1))
} else {
yes.push(pattern)
}
})
const raw = ['^']
if (no.length !== 0) {
raw.push('(?!', no.map(compileGlobPatternFragment).join('|'), ')')
}
if (yes.length !== 0) {
raw.push('(?:', yes.map(compileGlobPatternFragment).join('|'), ')')
} else {
raw.push('.*')
}
raw.push('$')
return new RegExp(raw.join(''))
}
// -------------------------------------------------------------------
export const required = name => {
throw new Error(`missing required arg ${name}`)
}
// -------------------------------------------------------------------
export const serializeError = error => ({
...error,
message: error.message,
name: error.name,
stack: error.stack,
})

View File

@@ -0,0 +1,13 @@
/* eslint-env jest */
import { compileGlobPattern } from './utils'
describe('compileGlobPattern()', () => {
it('works', () => {
const re = compileGlobPattern('foo, ba*, -bar')
expect(re.test('foo')).toBe(true)
expect(re.test('bar')).toBe(false)
expect(re.test('baz')).toBe(true)
expect(re.test('qux')).toBe(false)
})
})

View File

@@ -0,0 +1 @@
dist/transports

View File

@@ -0,0 +1,3 @@
module.exports = require('../../@xen-orchestra/babel-config')(
require('./package.json')
)

View File

@@ -0,0 +1,24 @@
/benchmark/
/benchmarks/
*.bench.js
*.bench.js.map
/examples/
example.js
example.js.map
*.example.js
*.example.js.map
/fixture/
/fixtures/
*.fixture.js
*.fixture.js.map
*.fixtures.js
*.fixtures.js.map
/test/
/tests/
*.spec.js
*.spec.js.map
__snapshots__/

View File

@@ -0,0 +1,49 @@
# ${pkg.name} [![Build Status](https://travis-ci.org/${pkg.shortGitHubPath}.png?branch=master)](https://travis-ci.org/${pkg.shortGitHubPath})
> ${pkg.description}
## Install
Installation of the [npm package](https://npmjs.org/package/${pkg.name}):
```
> npm install --save ${pkg.name}
```
## Usage
**TODO**
## Development
```
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
```
## Contributions
Contributions are *very* welcomed, either on the documentation or on
the code.
You may:
- report any [issue](${pkg.bugs})
you've encountered;
- fork and create a pull request.
## License
${pkg.license} © [${pkg.author.name}](${pkg.author.url})

View File

@@ -0,0 +1,49 @@
{
"name": "@xen-orchestra/mixin",
"version": "0.0.0",
"license": "ISC",
"description": "",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/mixin",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"author": {
"name": "Julien Fontanet",
"email": "julien.fontanet@vates.fr"
},
"preferGlobal": false,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"browserslist": [
">2%"
],
"engines": {
"node": ">=6"
},
"dependencies": {
"bind-property-descriptor": "^1.0.0"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"babel-plugin-dev": "^1.0.0",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.3",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "yarn run clean",
"predev": "yarn run prebuild",
"prepublishOnly": "yarn run build"
}
}

View File

@@ -0,0 +1,130 @@
import { getBoundPropertyDescriptor } from 'bind-property-descriptor'
// ===================================================================
const { defineProperties, getOwnPropertyDescriptor } = Object
const isIgnoredProperty = name => name[0] === '_' || name === 'constructor'
const IGNORED_STATIC_PROPERTIES = {
__proto__: null,
arguments: true,
caller: true,
length: true,
name: true,
prototype: true,
}
const isIgnoredStaticProperty = name => name in IGNORED_STATIC_PROPERTIES
const ownKeys =
(typeof Reflect !== 'undefined' && Reflect.ownKeys) ||
(({ getOwnPropertyNames: names, getOwnPropertySymbols: symbols }) =>
symbols !== undefined ? obj => names(obj).concat(symbols(obj)) : names)(
Object
)
// -------------------------------------------------------------------
const mixin = Mixins => Class => {
if (__DEV__ && !Array.isArray(Mixins)) {
throw new TypeError('Mixins should be an array')
}
const { name } = Class
// Copy properties of plain object mix-ins to the prototype.
{
const allMixins = Mixins
Mixins = []
const { prototype } = Class
const descriptors = { __proto__: null }
allMixins.forEach(Mixin => {
if (typeof Mixin === 'function') {
Mixins.push(Mixin)
return
}
for (const prop of ownKeys(Mixin)) {
if (__DEV__ && prop in prototype) {
throw new Error(`${name}#${prop} is already defined`)
}
;(descriptors[prop] = getOwnPropertyDescriptor(
Mixin,
prop
)).enumerable = false // Object methods are enumerable but class methods are not.
}
})
defineProperties(prototype, descriptors)
}
const n = Mixins.length
function DecoratedClass (...args) {
const instance = new Class(...args)
for (let i = 0; i < n; ++i) {
const Mixin = Mixins[i]
const { prototype } = Mixin
const mixinInstance = new Mixin(instance, ...args)
const descriptors = { __proto__: null }
const props = ownKeys(prototype)
for (let j = 0, m = props.length; j < m; ++j) {
const prop = props[j]
if (isIgnoredProperty(prop)) {
continue
}
if (prop in instance) {
throw new Error(`${name}#${prop} is already defined`)
}
descriptors[prop] = getBoundPropertyDescriptor(
prototype,
prop,
mixinInstance
)
}
defineProperties(instance, descriptors)
}
return instance
}
// Copy original and mixed-in static properties on Decorator class.
const descriptors = { __proto__: null }
ownKeys(Class).forEach(prop => {
let descriptor
if (
!(
isIgnoredStaticProperty(prop) &&
// if they already exist...
(descriptor = getOwnPropertyDescriptor(DecoratedClass, prop)) !==
undefined &&
// and are not configurable.
!descriptor.configurable
)
) {
descriptors[prop] = getOwnPropertyDescriptor(Class, prop)
}
})
Mixins.forEach(Mixin => {
ownKeys(Mixin).forEach(prop => {
if (isIgnoredStaticProperty(prop)) {
return
}
if (__DEV__ && prop in descriptors) {
throw new Error(`${name}.${prop} is already defined`)
}
descriptors[prop] = getOwnPropertyDescriptor(Mixin, prop)
})
})
defineProperties(DecoratedClass, descriptors)
return DecoratedClass
}
export { mixin as default }

View File

@@ -1,9 +1,453 @@
# ChangeLog
## *next*
### Enhancements
- [Usage Report] Add IOPS read/write/total per VM [#3309](https://github.com/vatesfr/xen-orchestra/issues/3309) (PR [#3455](https://github.com/vatesfr/xen-orchestra/pull/3455))
- [Self service] Sort resource sets by name (PR [#3507](https://github.com/vatesfr/xen-orchestra/pull/3507))
- [Usage Report] Add top 3 SRs which use the most IOPS read/write/total [#3306](https://github.com/vatesfr/xen-orchestra/issues/3306) (PR [#3508](https://github.com/vatesfr/xen-orchestra/pull/3508))
- [New VM] Display a warning when the memory is below the template memory static min [#3496](https://github.com/vatesfr/xen-orchestra/issues/3496) (PR [#3513](https://github.com/vatesfr/xen-orchestra/pull/3513))
- [Backup NG form] Add link to plugins setting [#3457](https://github.com/vatesfr/xen-orchestra/issues/3457) (PR [#3514](https://github.com/vatesfr/xen-orchestra/pull/3514))
- [Backup reports] Add job and run ID [#3488](https://github.com/vatesfr/xen-orchestra/issues/3488) (PR [#3516](https://github.com/vatesfr/xen-orchestra/pull/3516))
- [Usage Report] Add top 3 VMs which use the most IOPS read/write/total [#3308](https://github.com/vatesfr/xen-orchestra/issues/3308) (PR [#3463](https://github.com/vatesfr/xen-orchestra/pull/3463))
- [Settings/logs] Homogenize action buttons in table and enable bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3528](https://github.com/vatesfr/xen-orchestra/pull/3528))
- [Settings/acls] Add bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3536](https://github.com/vatesfr/xen-orchestra/pull/3536))
- [Home] Improve search usage: raw numbers also match in names [#2906](https://github.com/vatesfr/xen-orchestra/issues/2906) (PR [#3552](https://github.com/vatesfr/xen-orchestra/pull/3552))
- [Backup NG] Timeout of a job is now in hours [#3550](https://github.com/vatesfr/xen-orchestra/issues/3550) (PR [#3553](https://github.com/vatesfr/xen-orchestra/pull/3553))
- [Backup NG] Explicit error if a VM is missing [#3434](https://github.com/vatesfr/xen-orchestra/issues/3434) (PR [#3522](https://github.com/vatesfr/xen-orchestra/pull/3522))
- [Backup NG] Show all advanced settings with non-default values in overview [#3549](https://github.com/vatesfr/xen-orchestra/issues/3549) (PR [#3554](https://github.com/vatesfr/xen-orchestra/pull/3554))
- [Backup NG] Collapse advanced settings by default [#3551](https://github.com/vatesfr/xen-orchestra/issues/3551) (PR [#3559](https://github.com/vatesfr/xen-orchestra/pull/3559))
- [Scheduling] Merge selection and interval tabs [#1902](https://github.com/vatesfr/xen-orchestra/issues/1902) (PR [#3519](https://github.com/vatesfr/xen-orchestra/pull/3519))
- [Backup NG/Restore] The backup selector now also shows the job name [#3366](https://github.com/vatesfr/xen-orchestra/issues/3366) (PR [#3564](https://github.com/vatesfr/xen-orchestra/pull/3564))
- Sort buttons by criticality in tables [#3168](https://github.com/vatesfr/xen-orchestra/issues/3168) (PR [#3545](https://github.com/vatesfr/xen-orchestra/pull/3545))
- [Usage Report] Ability to send a daily report [#3544](https://github.com/vatesfr/xen-orchestra/issues/3544) (PR [#3582](https://github.com/vatesfr/xen-orchestra/pull/3582))
- [Backup NG logs] Disable state filters with no entries [#3438](https://github.com/vatesfr/xen-orchestra/issues/3438) (PR [#3442](https://github.com/vatesfr/xen-orchestra/pull/3442))
- [ACLs] Global performance improvement on UI for non-admin users [#3578](https://github.com/vatesfr/xen-orchestra/issues/3578) (PR [#3584](https://github.com/vatesfr/xen-orchestra/pull/3584))
- [Backup NG] Improve the Schedule's view (Replace table by list) [#3491](https://github.com/vatesfr/xen-orchestra/issues/3491) (PR [#3586](https://github.com/vatesfr/xen-orchestra/pull/3586))
- ([Host/Storage], [Sr/hosts]) add bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3539](https://github.com/vatesfr/xen-orchestra/pull/3539))
- [xo-server] Use @xen-orchestra/log for basic logging [#3555](https://github.com/vatesfr/xen-orchestra/issues/3555) (PR [#3579](https://github.com/vatesfr/xen-orchestra/pull/3579))
- [Backup Report] Log error when job failed [#3458](https://github.com/vatesfr/xen-orchestra/issues/3458) (PR [#3593](https://github.com/vatesfr/xen-orchestra/pull/3593))
- [Backup NG] Display logs for backup restoration [#2511](https://github.com/vatesfr/xen-orchestra/issues/2511) (PR [#3609](https://github.com/vatesfr/xen-orchestra/pull/3609))
- [XOA] Display product version and list of all installed packages [#3560](https://github.com/vatesfr/xen-orchestra/issues/3560) (PR [#3621](https://github.com/vatesfr/xen-orchestra/pull/3621))
### Bug fixes
- [Remotes] Fix removal of broken remotes [#3327](https://github.com/vatesfr/xen-orchestra/issues/3327) (PR [#3521](https://github.com/vatesfr/xen-orchestra/pull/3521))
- [Backups] Fix stuck backups due to broken NFS remotes [#3467](https://github.com/vatesfr/xen-orchestra/issues/3467) (PR [#3534](https://github.com/vatesfr/xen-orchestra/pull/3534))
- [New VM] Fix missing cloud config when creating multiple VMs at once in some cases [#3532](https://github.com/vatesfr/xen-orchestra/issues/3532) (PR [#3535](https://github.com/vatesfr/xen-orchestra/pull/3535))
- [VM] Fix an error when an admin tried to add a disk on a Self VM whose resource set had been deleted [#2814](https://github.com/vatesfr/xen-orchestra/issues/2814) (PR [#3530](https://github.com/vatesfr/xen-orchestra/pull/3530))
- [Self/Create VM] Fix some quotas based on the template instead of the user inputs [#2683](https://github.com/vatesfr/xen-orchestra/issues/2683) (PR [#3546](https://github.com/vatesfr/xen-orchestra/pull/3546))
- [Self] Ignore DR and CR VMs when computing quotas [#3064](https://github.com/vatesfr/xen-orchestra/issues/3064) (PR [#3561](https://github.com/vatesfr/xen-orchestra/pull/3561))
- [Patches] Wrongly requiring to eject CDs from halted VMs and snapshots before installing patches (PR [#3611](https://github.com/vatesfr/xen-orchestra/pull/3611))
- [Jobs] Ensure the scheduling is not interrupted in rare cases (PR [#3617](https://github.com/vatesfr/xen-orchestra/pull/3617))
- [Home] Fix `server.getAll` error at login when user is not admin [#2335](https://github.com/vatesfr/xen-orchestra/issues/2335) (PR [#3613](https://github.com/vatesfr/xen-orchestra/pull/3613))
### Released packages
- xo-server-backup-reports v0.15.0
- xo-common v0.1.2
- @xen-orchestra/log v0.1.0
- @xen-orchestra/fs v0.4.0
- complex-matcher v0.5.0
- vhd-lib v0.4.0
- xen-api v0.20.0
- xo-server-usage-report v0.7.0
- xo-server v5.29.0
- xo-web v5.29.0
## **5.28.0** (2018-10-05)
### Enhancements
- [Host/Networks] Remove "Add network" button [#3386](https://github.com/vatesfr/xen-orchestra/issues/3386) (PR [#3478](https://github.com/vatesfr/xen-orchestra/pull/3478))
- [Host/networks] Private networks table [#3387](https://github.com/vatesfr/xen-orchestra/issues/3387) (PR [#3481](https://github.com/vatesfr/xen-orchestra/pull/3481))
- [Home/pool] Patch count pill now shows the number of unique patches in the pool [#3321](https://github.com/vatesfr/xen-orchestra/issues/3321) (PR [#3483](https://github.com/vatesfr/xen-orchestra/pull/3483))
- [Patches] Pre-install checks to avoid errors [#3252](https://github.com/vatesfr/xen-orchestra/issues/3252) (PR [#3484](https://github.com/vatesfr/xen-orchestra/pull/3484))
- [Vm/Snapshots] Allow VM operators to create snapshots and delete those they created [#3443](https://github.com/vatesfr/xen-orchestra/issues/3443) (PR [#3482](https://github.com/vatesfr/xen-orchestra/pull/3482))
- [VM/clone] Handle ACLs and Self Service [#3139](https://github.com/vatesfr/xen-orchestra/issues/3139) (PR [#3493](https://github.com/vatesfr/xen-orchestra/pull/3493))
### Bug fixes
- [Backup NG] Fix `Cannot read property 'uuid' of undefined` when a disk is removed from a VM to backup (PR [#3479](https://github.com/vatesfr/xen-orchestra/pull/3479))
- [Backup NG] Fix unexpected full after failure, interruption or basic rolling snapshot (PR [#3485](https://github.com/vatesfr/xen-orchestra/pull/3485))
- [Usage report] Display top 3 used SRs instead of top 3 biggest SRs [#3307](https://github.com/vatesfr/xen-orchestra/issues/3307) (PR [#3475](https://github.com/vatesfr/xen-orchestra/pull/3475))
### Released packages
- vhd-lib v0.3.2
- xo-vmdk-to-vhd v0.1.5
- xo-server-usage-report v0.6.0
- xo-acl-resolver v0.3.0
- xo-server v5.28.0
- xo-web v5.28.0
## **5.27.1** (2018-09-28)
### Enhancements
### Bug fixes
- [OVA Import] Allow import of files bigger than 127GB (PR [#3451](https://github.com/vatesfr/xen-orchestra/pull/3451))
- [File restore] Fix a path issue when going back to the parent folder (PR [#3446](https://github.com/vatesfr/xen-orchestra/pull/3446))
- [File restore] Fix a minor issue when showing which selected files are redundant (PR [#3447](https://github.com/vatesfr/xen-orchestra/pull/3447))
- [Memory] Fix a major leak [#2580](https://github.com/vatesfr/xen-orchestra/issues/2580) [#2820](https://github.com/vatesfr/xen-orchestra/issues/2820) (PR [#3453](https://github.com/vatesfr/xen-orchestra/pull/3453))
- [NFS Remotes] Fix `already mounted` race condition [#3380](https://github.com/vatesfr/xen-orchestra/issues/3380) (PR [#3460](https://github.com/vatesfr/xen-orchestra/pull/3460))
- Fix `Cannot read property 'type' of undefined` when deleting a VM (PR [#3465](https://github.com/vatesfr/xen-orchestra/pull/3465))
### Released packages
- @xen-orchestra/fs v0.3.1
- vhd-lib v0.3.1
- xo-vmdk-to-vhd v0.1.4
- xo-server v5.27.2
- xo-web v5.27.1
## **5.27.0** (2018-09-24)
### Enhancements
- [Remotes] Test the remote automatically on changes [#3323](https://github.com/vatesfr/xen-orchestra/issues/3323) (PR [#3397](https://github.com/vatesfr/xen-orchestra/pull/3397))
- [Remotes] Use *WORKGROUP* as default domain for new SMB remote (PR [#3398](https://github.com/vatesfr/xen-orchestra/pull/3398))
- [Backup NG form] Display a tip to encourage users to create vms on a thin-provisioned storage [#3334](https://github.com/vatesfr/xen-orchestra/issues/3334) (PR [#3402](https://github.com/vatesfr/xen-orchestra/pull/3402))
- [Backup NG form] improve schedule's form [#3138](https://github.com/vatesfr/xen-orchestra/issues/3138) (PR [#3359](https://github.com/vatesfr/xen-orchestra/pull/3359))
- [Backup NG Overview] Display transferred and merged data size for backup jobs [#3340](https://github.com/vatesfr/xen-orchestra/issues/3340) (PR [#3408](https://github.com/vatesfr/xen-orchestra/pull/3408))
- [VM] Display the PVHVM status [#3014](https://github.com/vatesfr/xen-orchestra/issues/3014) (PR [#3418](https://github.com/vatesfr/xen-orchestra/pull/3418))
- [Backup reports] Ability to test the plugin (PR [#3421](https://github.com/vatesfr/xen-orchestra/pull/3421))
- [Backup NG] Ability to restart failed VMs' backup [#3339](https://github.com/vatesfr/xen-orchestra/issues/3339) (PR [#3420](https://github.com/vatesfr/xen-orchestra/pull/3420))
- [VM] Ability to change the NIC type [#3423](https://github.com/vatesfr/xen-orchestra/issues/3423) (PR [#3440](https://github.com/vatesfr/xen-orchestra/pull/3440))
- [Backup NG Overview] Display the schedule's name [#3444](https://github.com/vatesfr/xen-orchestra/issues/3444) (PR [#3445](https://github.com/vatesfr/xen-orchestra/pull/3445))
### Bug fixes
- [Remotes] Rename connect(ed)/disconnect(ed) to enable(d)/disable(d) [#3323](https://github.com/vatesfr/xen-orchestra/issues/3323) (PR [#3396](https://github.com/vatesfr/xen-orchestra/pull/3396))
- [Remotes] Fix error appears twice on testing (PR [#3399](https://github.com/vatesfr/xen-orchestra/pull/3399))
- [Backup NG] Don't fail on VMs with empty VBDs (like CDs or floppy disks) (PR [#3410](https://github.com/vatesfr/xen-orchestra/pull/3410))
- [XOA updater] Fix issue where trial request would fail [#3407](https://github.com/vatesfr/xen-orchestra/issues/3407) (PR [#3412](https://github.com/vatesfr/xen-orchestra/pull/3412))
- [Backup NG logs] Fix log's value not being updated in the copy and report button [#3273](https://github.com/vatesfr/xen-orchestra/issues/3273) (PR [#3360](https://github.com/vatesfr/xen-orchestra/pull/3360))
- [Backup NG] Fix issue when *Delete first* was enabled for some of the remotes [#3424](https://github.com/vatesfr/xen-orchestra/issues/3424) (PR [#3427](https://github.com/vatesfr/xen-orchestra/pull/3427))
- [VM/host consoles] Work around a XenServer/XCP-ng issue which lead to some consoles not working [#3432](https://github.com/vatesfr/xen-orchestra/issues/3432) (PR [#3435](https://github.com/vatesfr/xen-orchestra/pull/3435))
- [Backup NG] Remove extraneous snapshots in case of multiple schedules [#3132](https://github.com/vatesfr/xen-orchestra/issues/3132) (PR [#3439](https://github.com/vatesfr/xen-orchestra/pull/3439))
- [Backup NG] Fix page reloaded on creating a schedule [#3461](https://github.com/vatesfr/xen-orchestra/issues/3461) (PR [#3462](https://github.com/vatesfr/xen-orchestra/pull/3462))
### Released packages
- xo-server-backup-reports v0.14.0
- @xen-orchestra/async-map v0.0.0
- @xen-orchestra/defined v0.0.0
- @xen-orchestra/emit-async v0.0.0
- @xen-orchestra/mixin v0.0.0
- xo-server v5.27.0
- xo-web v5.27.0
## **5.26.0** (2018-09-07)
### Enhancements
- [Backup (file) restore] Order backups by date in selector [#3294](https://github.com/vatesfr/xen-orchestra/issues/3294) (PR [#3374](https://github.com/vatesfr/xen-orchestra/pull/3374))
- [Self] Hide Tasks entry in menu for self users [#3311](https://github.com/vatesfr/xen-orchestra/issues/3311) (PR [#3373](https://github.com/vatesfr/xen-orchestra/pull/3373))
- [Tasks] Show previous tasks [#3266](https://github.com/vatesfr/xen-orchestra/issues/3266) (PR [#3377](https://github.com/vatesfr/xen-orchestra/pull/3377))
- [Backup NG] Add job name in names of replicated VMs (PR [#3379](https://github.com/vatesfr/xen-orchestra/pull/3379))
- [Backup NG] Restore directories [#1924](https://github.com/vatesfr/xen-orchestra/issues/1924) (PR [#3384](https://github.com/vatesfr/xen-orchestra/pull/3384))
- [VM] Start a VM on a specific host [#3191](https://github.com/vatesfr/xen-orchestra/issues/3191) (PR [#3389](https://github.com/vatesfr/xen-orchestra/pull/3389))
### Bug fixes
- [Self] Fix Self Service quotas not being correctly updated when deleting multiple VMs at a time (PR [#3368](https://github.com/vatesfr/xen-orchestra/pull/3368))
- [Backup NG] Don't fail listing backups when a remote is broken [#3365](https://github.com/vatesfr/xen-orchestra/issues/3365) (PR [#3367](https://github.com/vatesfr/xen-orchestra/pull/3367))
- [New XOSAN] Fix error sometimes occurring when selecting the pool (PR [#3370](https://github.com/vatesfr/xen-orchestra/pull/3370))
- [New VM] Selecting multiple VMs and clicking Create then Cancel used to redirect to Home [#3268](https://github.com/vatesfr/xen-orchestra/issues/3268) (PR [#3371](https://github.com/vatesfr/xen-orchestra/pull/3371))
- [Remotes] `cannot read 'properties' of undefined` error (PR [#3382](https://github.com/vatesfr/xen-orchestra/pull/3382))
- [Servers] Various issues when adding a new server [#3385](https://github.com/vatesfr/xen-orchestra/issues/3385) (PR [#3388](https://github.com/vatesfr/xen-orchestra/pull/3388))
- [Backup NG] Always delete the correct old replications [#3391](https://github.com/vatesfr/xen-orchestra/issues/3391) (PR [#3394](https://github.com/vatesfr/xen-orchestra/pull/3394))
### Released packages
- xo-server v5.26.0
- xo-web v5.26.0
## **5.25.2** (2018-08-27)
### Enhancements
### Bug fixes
- [Remotes] Fix "undefined" mount option issue [#3361](https://github.com/vatesfr/xen-orchestra/issues/3361) (PR [#3363](https://github.com/vatesfr/xen-orchestra/pull/3363))
- [Continuous Replication] Don't try to import/export VDIs on halted host [#3354](https://github.com/vatesfr/xen-orchestra/issues/3354) (PR [#3355](https://github.com/vatesfr/xen-orchestra/pull/3355))
- [Disaster Recovery] Don't try to import/export VMs on halted host (PR [#3364](https://github.com/vatesfr/xen-orchestra/pull/3364))
- [Backup NG] A successful backup job reported as Interrupted [#3018](https://github.com/vatesfr/xen-orchestra/issues/3018) (PR [#3238](https://github.com/vatesfr/xen-orchestra/pull/3238))
### Released packages
- xo-server v5.25.2
- xo-web v5.25.1
## **5.25.0** (2018-08-23)
### Enhancements
- [Tables] Filter input now always shows up even if the table is empty [#3295](https://github.com/vatesfr/xen-orchestra/issues/3295) (PR [#3296](https://github.com/vatesfr/xen-orchestra/pull/3296))
- [Tasks] The table is now still shown when there are no tasks (PR [#3305](https://github.com/vatesfr/xen-orchestra/pull/3305))
- [Host / Logs] Homogenize action buttons in table and enable bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3313](https://github.com/vatesfr/xen-orchestra/pull/3313))
- [VM/Advanced] Change "Convert" to "Convert to template" and always show the button [#3201](https://github.com/vatesfr/xen-orchestra/issues/3201) (PR [#3319](https://github.com/vatesfr/xen-orchestra/pull/3319))
- [Backup NG form] Display a tip when doing a CR on a thick-provisioned SR [#3291](https://github.com/vatesfr/xen-orchestra/issues/3291) (PR [#3333](https://github.com/vatesfr/xen-orchestra/pull/3333))
- [SR/new] Add local ext SR type [#3332](https://github.com/vatesfr/xen-orchestra/issues/3332) (PR [#3335](https://github.com/vatesfr/xen-orchestra/pull/3335))
- [Backup reports] Send report for the interrupted backup jobs on the server startup [#2998](https://github.com/vatesfr/xen-orchestra/issues/#2998) (PR [3164](https://github.com/vatesfr/xen-orchestra/pull/3164) [3154](https://github.com/vatesfr/xen-orchestra/pull/3154))
- [Backup NG form] Move VMs' selection to a dedicated card [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) (PR [#3338](https://github.com/vatesfr/xen-orchestra/pull/3338))
- [Backup NG smart mode] Exclude replicated VMs [#2338](https://github.com/vatesfr/xen-orchestra/issues/2338) (PR [#3312](https://github.com/vatesfr/xen-orchestra/pull/3312))
- [Backup NG form] Show the compression checkbox when the full mode is active [#3236](https://github.com/vatesfr/xen-orchestra/issues/3236) (PR [#3345](https://github.com/vatesfr/xen-orchestra/pull/3345))
- [New VM] Display an error when the getting of the coreOS default template fails [#3227](https://github.com/vatesfr/xen-orchestra/issues/3227) (PR [#3343](https://github.com/vatesfr/xen-orchestra/pull/3343))
- [Backup NG form] Set default retention to 1 [#3134](https://github.com/vatesfr/xen-orchestra/issues/3134) (PR [#3290](https://github.com/vatesfr/xen-orchestra/pull/3290))
- [Backup NG] New logs are searchable by job name [#3272](https://github.com/vatesfr/xen-orchestra/issues/3272) (PR [#3351](https://github.com/vatesfr/xen-orchestra/pull/3351))
- [Remotes] Add a field for NFS remotes to set mount options [#1793](https://github.com/vatesfr/xen-orchestra/issues/1793) (PR [#3353](https://github.com/vatesfr/xen-orchestra/pull/3353))
### Bug fixes
- [Backup NG form] Fix schedule's name overridden with undefined if it's not been edited [#3286](https://github.com/vatesfr/xen-orchestra/issues/3286) (PR [#3288](https://github.com/vatesfr/xen-orchestra/pull/3288))
- [Remotes] Don't change `enabled` state on errors (PR [#3318](https://github.com/vatesfr/xen-orchestra/pull/3318))
- [Remotes] Auto-reconnect on use if necessary [#2852](https://github.com/vatesfr/xen-orchestra/issues/2852) (PR [#3320](https://github.com/vatesfr/xen-orchestra/pull/3320))
- [XO items' select] Fix adding or removing a XO item from a select make the missing XO items disappear [#3322](https://github.com/vatesfr/xen-orchestra/issues/3322) (PR [#3315](https://github.com/vatesfr/xen-orchestra/pull/3315))
- [New VM / Self] Filter out SRs that are not in the template's pool [#3068](https://github.com/vatesfr/xen-orchestra/issues/3068) (PR [#3070](https://github.com/vatesfr/xen-orchestra/pull/3070))
- [New VM / Self] Fix 'unknown item' displayed in SR selector [#3267](https://github.com/vatesfr/xen-orchestra/issues/3267) (PR [#3070](https://github.com/vatesfr/xen-orchestra/pull/3070))
### Released packages
- xo-server-backup-reports v0.13.0
- @xen-orchestra/fs 0.3.0
- xo-server v5.25.0
- xo-web v5.25.0
## **5.24.0** (2018-08-09)
### Enhancements
- [Remotes] Make SMB subfolder field optional [#3249](https://github.com/vatesfr/xen-orchestra/issues/3249) (PR [#3250](https://github.com/vatesfr/xen-orchestra/pull/3250))
- [Backup NG form] Make the smart mode's toggle more visible [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) (PR [#3263](https://github.com/vatesfr/xen-orchestra/pull/3263))
- Move the copy clipboard of the VM's UUID to the header [#3221](https://github.com/vatesfr/xen-orchestra/issues/3221) (PR [#3248](https://github.com/vatesfr/xen-orchestra/pull/3248))
- [Health / Orphaned VMs] Homogenize action buttons in table and enable bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3274](https://github.com/vatesfr/xen-orchestra/pull/3274))
- [Health / Orphaned snapshot VDIs] Homogenize action buttons in table and enable bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3270](https://github.com/vatesfr/xen-orchestra/pull/3270))
- [Health / Alarms] Homogenize action buttons in table and enable bulk deletion [#3179](https://github.com/vatesfr/xen-orchestra/issues/3179) (PR [#3271](https://github.com/vatesfr/xen-orchestra/pull/3271))
- [Backup NG Overview] List the Backup NG job's modes [#3169](https://github.com/vatesfr/xen-orchestra/issues/3169) (PR [#3277](https://github.com/vatesfr/xen-orchestra/pull/3277))
- [Backup NG form] Move "Use compression" checkbox in the advanced settings [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) (PR [#3281](https://github.com/vatesfr/xen-orchestra/pull/3281))
- [Backup NG form] Ability to remove previous backups first before backup the VMs [#3212](https://github.com/vatesfr/xen-orchestra/issues/3212) (PR [#3260](https://github.com/vatesfr/xen-orchestra/pull/3260))
- [Patching] Check date consistency before patching to avoid error on install [#3056](https://github.com/vatesfr/xen-orchestra/issues/3056)
### Bug fixes
- [Pools] Filter GPU groups by pool [#3176](https://github.com/vatesfr/xen-orchestra/issues/3176) (PR [#3253](https://github.com/vatesfr/xen-orchestra/pull/3253))
- [Backup NG] Fix delta backups with SMB remotes [#3224](https://github.com/vatesfr/xen-orchestra/issues/3224) (PR [#3278](https://github.com/vatesfr/xen-orchestra/pull/3278))
- Fix VM restoration getting stuck on local SRs [#3245](https://github.com/vatesfr/xen-orchestra/issues/3245) (PR [#3243](https://github.com/vatesfr/xen-orchestra/pull/3243))
### Released packages
- xen-api v0.17.0
- @xen-orchestra/fs 0.2.1
- xo-server v5.24.0
- xo-web v5.24.0
## **5.23.0** (2018-07-26)
### Enhancements
- Export VDI content [#2432](https://github.com/vatesfr/xen-orchestra/issues/2432) (PR [#3194](https://github.com/vatesfr/xen-orchestra/pull/3194))
- Search syntax support wildcard (`*`) and regular expressions [#3190](https://github.com/vatesfr/xen-orchestra/issues/3190) (PRs [#3198](https://github.com/vatesfr/xen-orchestra/pull/3198) & [#3199](https://github.com/vatesfr/xen-orchestra/pull/3199))
- Import VDI content [#2432](https://github.com/vatesfr/xen-orchestra/issues/2432) (PR [#3216](https://github.com/vatesfr/xen-orchestra/pull/3216))
- [Backup NG form] Ability to edit a schedule's name [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) [#3071](https://github.com/vatesfr/xen-orchestra/issues/3071) (PR [#3143](https://github.com/vatesfr/xen-orchestra/pull/3143))
- [Remotes] Ability to change the type of a remote [#2423](https://github.com/vatesfr/xen-orchestra/issues/2423) (PR [#3207](https://github.com/vatesfr/xen-orchestra/pull/3207))
- [Backup NG new] Ability to set a job's timeout [#2978](https://github.com/vatesfr/xen-orchestra/issues/2978) (PR [#3222](https://github.com/vatesfr/xen-orchestra/pull/3222))
- [Remotes] Ability to edit/delete a remote with an invalid URL [#3182](https://github.com/vatesfr/xen-orchestra/issues/3182) (PR [#3226](https://github.com/vatesfr/xen-orchestra/pull/3226))
- [Backup NG logs] Prevent user from deleting logs to help resolving issues [#3153](https://github.com/vatesfr/xen-orchestra/issues/3153) (PR [#3235](https://github.com/vatesfr/xen-orchestra/pull/3235))
### Bug fixes
- [Backup Reports] Report not sent if reportWhen failure and at least a VM is successfull [#3181](https://github.com/vatesfr/xen-orchestra/issues/3181) (PR [#3185](https://github.com/vatesfr/xen-orchestra/pull/3185))
- [Backup NG] Correctly migrate report setting from legacy jobs [#3180](https://github.com/vatesfr/xen-orchestra/issues/3180) (PR [#3206](https://github.com/vatesfr/xen-orchestra/pull/3206))
- [Backup NG] remove incomplete XVA files [#3159](https://github.com/vatesfr/xen-orchestra/issues/3159) (PR [#3215](https://github.com/vatesfr/xen-orchestra/pull/3215))
- [Backup NG form] Ability to edit a schedule's state [#3223](https://github.com/vatesfr/xen-orchestra/issues/3223) (PR [#3228](https://github.com/vatesfr/xen-orchestra/pull/3228))
### Released packages
- xo-remote-parser v0.5.0
- complex-matcher v0.4.0
- xo-server-backup-reports v0.12.3
- xo-server v5.23.0
- xo-web v5.23.0
## **5.22.1** (2018-07-13)
### Bug fixes
- [Remote select] Gracefully ignore remotes with invalid URL (PR [#3178](https://github.com/vatesfr/xen-orchestra/pull/3178))
### Released packages
- xo-web v5.22.1
## **5.22.0** (2018-07-12)
### Enhancements
- [Backup NG form] Add a link to the remotes' settings [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) [#3106](https://github.com/vatesfr/xen-orchestra/issues/3106) [#2299](https://github.com/vatesfr/xen-orchestra/issues/2299) (PR [#3128](https://github.com/vatesfr/xen-orchestra/pull/3128))
- [Backup NG logs] Make copy to clipboard and report buttons always available [#3130](https://github.com/vatesfr/xen-orchestra/issues/3130) (PR [#3133](https://github.com/vatesfr/xen-orchestra/pull/3133))
- Warning message when creating a local remote [#3105](https://github.com/vatesfr/xen-orchestra/issues/3105) (PR [3142](https://github.com/vatesfr/xen-orchestra/pull/3142))
- [Remotes] Allow optional port for NFS remote [2299](https://github.com/vatesfr/xen-orchestra/issues/2299) (PR [#3131](https://github.com/vatesfr/xen-orchestra/pull/3131))
- [Backup NG form] Add offline snapshot info (PR [#3144](https://github.com/vatesfr/xen-orchestra/pull/3144))
- [Backup NG overview] Display concurrency and offline snapshot value [3087](https://github.com/vatesfr/xen-orchestra/issues/3087) (PR [3145](https://github.com/vatesfr/xen-orchestra/pull/3145))
- [VM revert] notify the result of reverting a VM [3095](https://github.com/vatesfr/xen-orchestra/issues/3095) (PR [3150](https://github.com/vatesfr/xen-orchestra/pull/3150))
- [Backup NG logs] Link XO items in the details modal [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) (PR [#3171](https://github.com/vatesfr/xen-orchestra/pull/3171))
- [VM/Snapshots] Add fast clone option when creating a VM [#3120](https://github.com/vatesfr/xen-orchestra/issues/3120) (PR [#3136](https://github.com/vatesfr/xen-orchestra/pull/3136))
- Add the Turkish translation (PR [#3174](https://github.com/vatesfr/xen-orchestra/pull/3174) [#2870](https://github.com/vatesfr/xen-orchestra/pull/2870) [#2871](https://github.com/vatesfr/xen-orchestra/pull/2871))
### Bug fixes
- Delete schedules with their job [#3108](https://github.com/vatesfr/xen-orchestra/issues/3108) (PR [3124](https://github.com/vatesfr/xen-orchestra/pull/3124))
- Remote creation: correctly reset form [#3140](https://github.com/vatesfr/xen-orchestra/issues/3140) (PR [3141](https://github.com/vatesfr/xen-orchestra/pull/3141))
- Make cloud config templates available for all users [3147](https://github.com/vatesfr/xen-orchestra/issues/3147) (PR [3148](https://github.com/vatesfr/xen-orchestra/pull/3148))
- [New VM] Only create the cloud config drive when its option is enabled [3161](https://github.com/vatesfr/xen-orchestra/issues/3161) (PR [3162](https://github.com/vatesfr/xen-orchestra/pull/3162))
- Fix error when installing patches from the host or without a default SR (PR [3166](https://github.com/vatesfr/xen-orchestra/pull/3166))
- [Backup NG] Fix SMB *Not implemented* issue [#3149](](https://github.com/vatesfr/xen-orchestra/issues/3149) (PR [3175](https://github.com/vatesfr/xen-orchestra/pull/3175))
### Released packages
- xo-remote-parser 0.4.0
- @xen-orchestra/fs 0.2.0
- vhd-lib 0.3.0
- vhd-cli 0.1.0
- xo-server v5.22.0
- xo-web v5.22.0
## **5.21.0** (2018-06-28)
### Enhancements
- Hide legacy backup creation view [#2956](https://github.com/vatesfr/xen-orchestra/issues/2956)
- [Delta Backup NG logs] Display wether the export is a full or a delta [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711)
- Copy VDIs' UUID from SR/disks view [#3051](https://github.com/vatesfr/xen-orchestra/issues/3051)
- [Backup NG] New option to shutdown VMs before snapshotting them [#3058](https://github.com/vatesfr/xen-orchestra/issues/3058#event-1673756438)
- [Backup NG form] Improve feedback [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711)
- [Backup NG] Different retentions for backup and replication [#2895](https://github.com/vatesfr/xen-orchestra/issues/2895)
- Possibility to use a fast clone when creating a VM from a snapshot [#2937](https://github.com/vatesfr/xen-orchestra/issues/2937)
- Ability to customize cloud config templates [#2984](https://github.com/vatesfr/xen-orchestra/issues/2984)
- Add Backup deprecation message and link to Backup NG migration blog post [#3089](https://github.com/vatesfr/xen-orchestra/issues/3089)
- [Backup NG] Ability to cancel a running backup job [#3047](https://github.com/vatesfr/xen-orchestra/issues/3047)
- [Backup NG form] Ability to enable/disable a schedule [#3062](https://github.com/vatesfr/xen-orchestra/issues/3062)
- New backup/health view with non-existent backup snapshots table [#3090](https://github.com/vatesfr/xen-orchestra/issues/3090)
- Disable cancel/destroy tasks when not allowed [#3076](https://github.com/vatesfr/xen-orchestra/issues/3076)
- Default remote type is NFS [#3103](https://github.com/vatesfr/xen-orchestra/issues/3103) (PR [#3114](https://github.com/vatesfr/xen-orchestra/pull/3114))
- Add legacy backups snapshots to backup/health [#3082](https://github.com/vatesfr/xen-orchestra/issues/3082) (PR [#3111](https://github.com/vatesfr/xen-orchestra/pull/3111))
- [Backup NG logs] Add the job's name to the modal's title [#2711](https://github.com/vatesfr/xen-orchestra/issues/2711) (PR [#3115](https://github.com/vatesfr/xen-orchestra/pull/3115))
- Adding a XCP-ng host to a XS pool now fails fast [#3061](https://github.com/vatesfr/xen-orchestra/issues/3061) (PR [#3118](https://github.com/vatesfr/xen-orchestra/pull/3118))
- [Backup NG logs] Ability to report a failed job and copy its log to the clipboard [#3100](https://github.com/vatesfr/xen-orchestra/issues/3100) (PR [#3110](https://github.com/vatesfr/xen-orchestra/pull/3110))
### Bug fixes
- update the xentools search item to return the version number of installed xentools [#3015](https://github.com/vatesfr/xen-orchestra/issues/3015)
- Fix Nagios backup reports [#2991](https://github.com/vatesfr/xen-orchestra/issues/2991)
- Fix the retry of a single failed/interrupted VM backup [#2912](https://github.com/vatesfr/xen-orchestra/issues/2912#issuecomment-395480321)
- New VM with Self: filter out networks that are not in the template's pool [#3011](https://github.com/vatesfr/xen-orchestra/issues/3011)
- [Backup NG] Auto-detect when a full export is necessary.
- Fix Load Balancer [#3075](https://github.com/vatesfr/xen-orchestra/issues/3075#event-1685469551) [#3026](https://github.com/vatesfr/xen-orchestra/issues/3026)
- [SR stats] Don't scale XAPI iowait values [#2969](https://github.com/vatesfr/xen-orchestra/issues/2969)
- [Backup NG] Don't list unusable SRs for CR/DR [#3050](https://github.com/vatesfr/xen-orchestra/issues/3050)
- Fix creating VM from snapshot (PR [3117](https://github.com/vatesfr/xen-orchestra/pull/3117))
## **5.20.0** (2018-05-31)
### Enhancements
- Add VDI UUID in SR coalesce view [#2903](https://github.com/vatesfr/xen-orchestra/issues/2903)
- Create new VDI from SR view not attached to any VM [#2229](https://github.com/vatesfr/xen-orchestra/issues/2229)
- [Patches] ignore XS upgrade in missing patches counter [#2866](https://github.com/vatesfr/xen-orchestra/issues/2866)
- [Health] List VM snapshots related to non-existing backup jobs/schedules [#2828](https://github.com/vatesfr/xen-orchestra/issues/2828)
## **5.19.0** (2018-05-01)
### Enhancements
- Expose vendor device in VM advanced tab [#2883](https://github.com/vatesfr/xen-orchestra/issues/2883)
- Networks created in XO are missing the "automatic" parameter [#2818](https://github.com/vatesfr/xen-orchestra/issues/2818)
- Performance alert disk space monitoring XS [#2737](https://github.com/vatesfr/xen-orchestra/issues/2737)
- Add ability to create NFSv4 storage repository [#2706](https://github.com/vatesfr/xen-orchestra/issues/2706)
- [SortedTable] Support link actions [#2691](https://github.com/vatesfr/xen-orchestra/issues/2691)
- Additional sort option: by host name [#2680](https://github.com/vatesfr/xen-orchestra/issues/2680)
- Expose XenTools version numbers in data model and UI [#2650](https://github.com/vatesfr/xen-orchestra/issues/2650)
- RRDs stats for SR object [#2644](https://github.com/vatesfr/xen-orchestra/issues/2644)
- composite jobs [#2367](https://github.com/vatesfr/xen-orchestra/issues/2367)
- Better error message [#2344](https://github.com/vatesfr/xen-orchestra/issues/2344)
- Avoid using backup tag with special characters [#2336](https://github.com/vatesfr/xen-orchestra/issues/2336)
- Prefix/suffix for temporary files [#2333](https://github.com/vatesfr/xen-orchestra/issues/2333)
- Continuous Replication - better interface matching on destination [#2093](https://github.com/vatesfr/xen-orchestra/issues/2093)
- Creation of LVMoHBA SRs [#1992](https://github.com/vatesfr/xen-orchestra/issues/1992)
- [Delta backup] Improve restoration by creating a virtual full VHD [#1943](https://github.com/vatesfr/xen-orchestra/issues/1943)
- VM Backups should be done in a dedicated remote directory [#1752](https://github.com/vatesfr/xen-orchestra/issues/1752)
- Add Pool / SR filter in backup view [#1762](https://github.com/vatesfr/xen-orchestra/issues/1762)
- Hide/Disable upgrade button when no upgrade exists [#1594](https://github.com/vatesfr/xen-orchestra/issues/1594)
- "Upgrade" button should display "Downgrade" when trial is over [#1483](https://github.com/vatesfr/xen-orchestra/issues/1483)
### Bugs
- Allowed-ips don't works displaying index.js:1 Uncaught TypeError: (0 , z.isIp) is not a function [#2891](https://github.com/vatesfr/xen-orchestra/issues/2891)
- Error on "usage-report" [#2876](https://github.com/vatesfr/xen-orchestra/issues/2876)
- SR selection combo only listing local storage [#2875](https://github.com/vatesfr/xen-orchestra/issues/2875)
- [Backup NG - Delta] Issue while importing delta [#2857](https://github.com/vatesfr/xen-orchestra/issues/2857)
- Create New SR page broken with past commit [#2853](https://github.com/vatesfr/xen-orchestra/issues/2853)
- [Backup NG] a target should only be preset once [#2848](https://github.com/vatesfr/xen-orchestra/issues/2848)
- Auth Method iSCSI [#2835](https://github.com/vatesfr/xen-orchestra/issues/2835)
- [Backup NG] ENOENT with Delta Backup [#2833](https://github.com/vatesfr/xen-orchestra/issues/2833)
- Different backup logs [#2732](https://github.com/vatesfr/xen-orchestra/issues/2732)
- Creating network fails silently when omitting Description [#2719](https://github.com/vatesfr/xen-orchestra/issues/2719)
- Can't create ISO NFS SR via XOA [#1845](https://github.com/vatesfr/xen-orchestra/issues/1845)
## **5.18.0** (2018-03-31)
### Enhancements
- Support huge VHDs [#2785](https://github.com/vatesfr/xen-orchestra/issues/2785)
- Usage report extended usage [#2770](https://github.com/vatesfr/xen-orchestra/issues/2770)
- Improve host available RAM display [#2750](https://github.com/vatesfr/xen-orchestra/issues/2750)
- Hide IP field during VM creation if not configured [#2739](https://github.com/vatesfr/xen-orchestra/issues/2739)
- [Home] Delete VMs modal should autofocus the input field [#2736](https://github.com/vatesfr/xen-orchestra/issues/2736)
- Backup restore view load icon [#2692](https://github.com/vatesfr/xen-orchestra/issues/2692)
- Deleting default templates doesn't work [#2666](https://github.com/vatesfr/xen-orchestra/issues/2666)
- DR clean previous "failed" snapshots [#2656](https://github.com/vatesfr/xen-orchestra/issues/2656)
- [Home] Put sort criteria in URL like the filter [#2585](https://github.com/vatesfr/xen-orchestra/issues/2585)
- Allow disconnect VDI in SR disk view [#2505](https://github.com/vatesfr/xen-orchestra/issues/2505)
- Add confirmation modal for manual backup run [#2355](https://github.com/vatesfr/xen-orchestra/issues/2355)
- Multiple schedule for backup jobs [#2286](https://github.com/vatesfr/xen-orchestra/issues/2286)
- Checks before web update [#2250](https://github.com/vatesfr/xen-orchestra/issues/2250)
- Backup logs should truly reflect if the job is running [#2206](https://github.com/vatesfr/xen-orchestra/issues/2206)
- Hook/action if an export stream is cut [#1929](https://github.com/vatesfr/xen-orchestra/issues/1929)
- Backup paths should not contain tags but job ids [#1854](https://github.com/vatesfr/xen-orchestra/issues/1854)
- Add a button to delete a backup [#1751](https://github.com/vatesfr/xen-orchestra/issues/1751)
- Dashboard available for Pool and Host level [#1631](https://github.com/vatesfr/xen-orchestra/issues/1631)
- UI Enhancement - VM list - Allways show the Toolbar [#1581](https://github.com/vatesfr/xen-orchestra/issues/1581)
- xoa-updater --register: unable to define proxy using the CLI [#873](https://github.com/vatesfr/xen-orchestra/issues/873)
### Bugs
- [Backup NG] CR/DR fail with multiple VMs [#2807](https://github.com/vatesfr/xen-orchestra/issues/2807)
- HTTPS Crash [#2803](https://github.com/vatesfr/xen-orchestra/issues/2803)
- Backup NG "cannot fork the stream after it has been created" [#2790](https://github.com/vatesfr/xen-orchestra/issues/2790)
- [XOSAN] Make temporary `boundObjectId` unique [#2758](https://github.com/vatesfr/xen-orchestra/issues/2758)
- First VIF ignored at VM creation [#2794](https://github.com/vatesfr/xen-orchestra/issues/2794)
- VM creation from snapshot does not work [#2748](https://github.com/vatesfr/xen-orchestra/issues/2748)
- Error: no such object with CentOS 7 template [#2747](https://github.com/vatesfr/xen-orchestra/issues/2747)
- [Tasks] Filter does not work [#2740](https://github.com/vatesfr/xen-orchestra/issues/2740)
- Pagination broken when listing pool VMs [#2730](https://github.com/vatesfr/xen-orchestra/issues/2730)
- All jobs show error icon with message "This backup's creator no longer exists" [#2728](https://github.com/vatesfr/xen-orchestra/issues/2728)
- [Basic backup] Continous Replication VM names [#2727](https://github.com/vatesfr/xen-orchestra/issues/2727)
- Continuous replication clone removed [#2724](https://github.com/vatesfr/xen-orchestra/issues/2724)
- [Backup] "See matching VMs" issue [#2704](https://github.com/vatesfr/xen-orchestra/issues/2704)
- How to exclude CR targets from a smart backup using tags? [#2613](https://github.com/vatesfr/xen-orchestra/issues/2613)
- Successful VM import reported as failed [#2056](https://github.com/vatesfr/xen-orchestra/issues/2056)
- Delta backup: issue if a disk is once again backed up [#1824](https://github.com/vatesfr/xen-orchestra/issues/1824)
## **5.17.0** (2018-03-02)
### Enhancements
- Username field labeled inconsistently [#2651](https://github.com/vatesfr/xen-orchestra/issues/2651)
- Add modal confirmation for host emergency mode [#2230](https://github.com/vatesfr/xen-orchestra/issues/2230)
- Authorize stats fetching in RO mode [#2678](https://github.com/vatesfr/xen-orchestra/issues/2678)
- Limit VM.export concurrency [#2669](https://github.com/vatesfr/xen-orchestra/issues/2669)
@@ -22,6 +466,9 @@
- Cant attach XenTools on User side. [#2503](https://github.com/vatesfr/xen-orchestra/issues/2503)
- Pool filter for health view [#2302](https://github.com/vatesfr/xen-orchestra/issues/2302)
- [Smart Backup] Improve feedback [#2253](https://github.com/vatesfr/xen-orchestra/issues/2253)
- Backup jobs stuck if no space left on NFS remote [#2116](https://github.com/vatesfr/xen-orchestra/issues/2116)
- Link between backup and XS tasks [#1193](https://github.com/vatesfr/xen-orchestra/issues/1193)
- Move delta backup grouping to server side [#1008](https://github.com/vatesfr/xen-orchestra/issues/1008)
### Bugs
@@ -41,6 +488,7 @@
- Self-service: allow VIF create [#2593](https://github.com/vatesfr/xen-orchestra/issues/2593)
- Ghost tasks [#2579](https://github.com/vatesfr/xen-orchestra/issues/2579)
- Autopatching: ignore 7.3 update patch for 7.2 [#2564](https://github.com/vatesfr/xen-orchestra/issues/2564)
- Better Handling of suspending VMs from the Home screen [#2547](https://github.com/vatesfr/xen-orchestra/issues/2547)
- Allow deleting VMs for which `destroy` is blocked [#2525](https://github.com/vatesfr/xen-orchestra/issues/2525)
- Better confirmation on mass destructive actions [#2522](https://github.com/vatesfr/xen-orchestra/issues/2522)
- Move VM In to/Out of Self Service Group [#1913](https://github.com/vatesfr/xen-orchestra/issues/1913)
@@ -50,6 +498,8 @@
- Remove CoffeeScript in xo-server [#189](https://github.com/vatesfr/xen-orchestra/issues/189)
- Better Handling of suspending VMs from the Home screen [#2547](https://github.com/vatesfr/xen-orchestra/issues/2547)
- [xen-api] Stronger reconnection policy [#2410](https://github.com/vatesfr/xen-orchestra/issues/2410)
- home view - allow selecting more than 25 items [#1210](https://github.com/vatesfr/xen-orchestra/issues/1210)
- Performances alerts [#511](https://github.com/vatesfr/xen-orchestra/issues/511)
### Bugs
@@ -79,6 +529,7 @@
- Graphs in VM list view [#2469](https://github.com/vatesfr/xen-orchestra/issues/2469)
- [Delta Backups] Do not include merge duration in transfer speed stat [#2426](https://github.com/vatesfr/xen-orchestra/issues/2426)
- Warning for disperse mode [#2537](https://github.com/vatesfr/xen-orchestra/issues/2537)
- Select components: auto select value if only 1 choice possible [#1479](https://github.com/vatesfr/xen-orchestra/issues/1479)
### Bugs

46
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at julien.fontanet@vates.fr. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

17
PULL_REQUEST_TEMPLATE.md Normal file
View File

@@ -0,0 +1,17 @@
### Check list
> Check items when done or if not relevant
- [ ] PR reference the relevant issue (e.g. `Fixes #007`)
- [ ] if UI changes, a screenshot has been added to the PR
- [ ] CHANGELOG:
- enhancement/bug fix entry added
- list of packages to release updated (`${name} v${new version}`)
- [ ] documentation updated
### Process
1. create a PR as soon as possible
1. mark it as `WiP:` (Work in Progress) if not ready to be merged
1. when you want a review, add a reviewer
1. if necessary, update your PR, and re- add a reviewer

5
babel.config.js Normal file
View File

@@ -0,0 +1,5 @@
module.exports = {
// Necessary for jest to be able to find the `.babelrc.js` closest to the file
// instead of only the one in this directory.
babelrcRoots: true,
}

9
book.json Normal file
View File

@@ -0,0 +1,9 @@
{
"gitbook": ">=3.0.0",
"root": "./docs",
"plugins": [
"anchors",
"-edit-link"
],
"pluginsConfig": {}
}

31
docs/README.md Normal file
View File

@@ -0,0 +1,31 @@
# Xen Orchestra
## Introduction
Welcome to the official Xen Orchestra (XO) documentation.
XO is a web interface to visualize and administer your XenServer (or XAPI enabled) hosts. **No agent** is required for it to work.
It aims to be easy to use on any device supporting modern web technologies (HTML 5, CSS 3, JavaScript), such as your desktop computer or your smartphone.
![](https://pbs.twimg.com/profile_images/601775622675898368/xWbbafyO_400x400.png)
## XOA quick deploy
SSH to your XenServer, and execute the following:
```
bash -c "$(curl -s http://xoa.io/deploy)"
```
### XOA credentials
* Web UI: `admin@admin.net` / `admin`
* Console/SSH: `xoa` / `xoa` (first login)
## Must read
* [XOA installation](xoa.md)
* [Main features](features.md)
* [Pro Support](support.md)

77
docs/SUMMARY.md Normal file
View File

@@ -0,0 +1,77 @@
# Summary
* [Introduction](README.md)
* [Architecture](architecture.md)
* [xo-server](xo-server.md)
* [xo-web](xo-web.md)
* [xo-cli](xo-cli.md)
* [others](others.md)
* [Installation](installation.md)
* [XOA](xoa.md)
* [Updater](updater.md)
* [Trial activation](trial_activation.md)
* [Plugins](plugins.md)
* [Logs](logs.md)
* [Compatibility](supported-version.md)
* [Troubleshooting](troubleshooting.md)
* [From the sources](from_the_sources.md)
* [Configuration](configuration.md)
* [Features](features.md)
* [Administration](administration.md)
* [Home view](user_interface.md)
* [Search and filters](search.md)
* [VM management](vm_management.md)
* [VM creation](vm_creation.md)
* [VM import and export](vm_import_export.md)
* [XenServer Patching](patching.md)
* [Docker support](docker_support.md)
* [Backup and DR](backups.md)
* [Full backups](full_backups.md)
* [Rolling snapshots](rolling_snapshots.md)
* [Continuous Delta backups](delta_backups.md)
* [Continuous Replication](continuous_replication.md)
* [Disaster recovery](disaster_recovery.md)
* [Smart Backup](smart_backup.md)
* [File level Restore](file_level_restore.md)
* [Backup Concurrency](concurrency.md)
* [Configure backup reports](backup_reports.md)
* [Backup troubleshooting](backup_troubleshooting.md)
* [User authentication](authentication.md)
* [Built-in](built-in.md)
* [LDAP](ldap.md)
* [SAML](saml.md)
* [GitHub](github.md)
* [Google](google.md)
* [Resources delegation](resources_delegation.md)
* [ACLs](acls.md)
* [CloudInit](cloudinit.md)
* [Self Service](self_service.md)
* [Visualizations](visualizations.md)
* [Health](health.md)
* [Job manager](scheduler.md)
* [Alerts](alerts.md)
* [Load balancing](load_balancing.md)
* [Auto scalability](auto_scalability.md)
* [Forecaster](forecaster.md)
* [Recipes](recipes.md)
* [Reverse proxy](reverse_proxy.md)
* [How to contribute?](contributing.md)
* [Support](support.md)
* [Roadmap](roadmap.md)
* [Purchase](purchase.md)
* [Direct purchase](directpurchase.md)
* [Through purchase department](through_purchase_department.md)
* [Reseller](reseller.md)
* [Editions](editions.md)
* [Trial](trial.md)
* [Invoices](invoices.md)
* [Upgrade](upgrade.md)
* [XOSAN](xosan.md)
* [Requirements](xosan_requirements.md)
* [Types](xosan_types.md)
* [Replicated](xosan_replicated.md)
* [Disperse](xosan_disperse.md)
* [Creation](xosan_create.md)
* [Trial](xosan_trial.md)
* [General Troubleshooting](general-troubleshooting.md)
* [Glossary](glossary.md)

72
docs/acls.md Normal file
View File

@@ -0,0 +1,72 @@
# ACLs
> ACLs are permissions that apply to pre-existing objects. Only a super admin (XO administrator) can create objects.
ACLs are the permissions for your users or groups. The ACLs view can be accessed in the "Settings" panel.
1. Select the user or group you want to apply permissions on
2. Select the object on which the permission will apply
3. Choose the role for this ACL
4. Click on "Create"
![](./assets/createacl.png)
> Pro tip: you can click to add multiple objects at the same time!
Your ACL is now available in the right list:
![](./assets/acllist.png)
You can edit/remove existing ACLs here.
## Roles
There are 3 different roles for your users:
* Admin
* Operator
* Viewer
### Admin
An object admin can do everything on it, even destroy it. E.g with its admin VM:
* remove it
* migrate it (to a host with admin permission on it)
* modify the VM resources, name and description
* clone it
* copy it
* convert it into a template
* snapshot it (even revert from a snapshot)
* export it
* attach/add visible disks
* same for network cards
### Operator
An operator can make everyday operations on assigned objects. E.g on a VM:
* eject a CD
* insert a CD (if he can view the ISO storage repository)
* start, restart, shutdown, suspend/resume it
All other operations are forbidden.
### Viewer
A viewer can only see the VM state and its metrics. That's all!
## Inheritance
Objects have a hierarchy: a Pool contains all its hosts, containing itself all its VMs.
If you give a *view* permission to a user (or a group) on a pool, he will automatically see all the objects inside this pool (SRs, hosts, VMs).
## Examples
### Allow a user to install an OS
If the OS install needs an ISO, you need to give this user 2 permissions:
* *Operate* on the VM (e.g to start it)
* *View* on the ISO Storage containing the needed ISO.

12
docs/administration.md Normal file
View File

@@ -0,0 +1,12 @@
# Administration
This section contains everyday XenServer administration tasks.
* [Home view](user_interface.md)
* [Search and filters](search.md)
* [VM management](vm_management.md)
* [VM creation](vm_creation.md)
* [VM import and export](vm_import_export.md)
* [XenServer Patching](patching.md)
![](./assets/xo5homevms.png)

35
docs/alerts.md Normal file
View File

@@ -0,0 +1,35 @@
# Alerts
Alerts are a way to warn the administrator about various events. The first kind of alerts will be emails and also in a dedicated area of `xo-web` to display them.
## Performances alerts
The administrator will configure alerts based on performance thresholds.
The configurable metrics are:
* CPU usage (VM, host)
* RAM usage (VM, host)
* network bandwidth (VM, host)
* load average (host)
* disk IO (VM)
* total IO (SR, only for XenServer Dundee and higher)
If any configured values exceed the threshold during a selected period of time, an alert will be sent.
Those alerts will be also stored and accessible in the web interface, and also later for the load balancing feature (helping it to solve those performance problems).
## Updates alerts
When your XOA detects new packages, you'll be notified by email.
## Backup alerts
Same story for backups: if a backup fails, you'll receive an email.
You can choose to be notified only if it fails or even after each backup job.
Current supported alerts system:
* Email
* XMPP

28
docs/architecture.md Normal file
View File

@@ -0,0 +1,28 @@
# Architecture
Xen Orchestra (XO) is software built with a server and clients, such as the web client `xo-web`, but also a CLI capable client, called `xo-cli`.
> XO is totally agent-less: you don't have to install any program on your hosts to get it working!
## XOA
*Xen Orchestra Virtual Appliance* (XOA) is a virtual machine with Xen Orchestra already installed, thus working out-of-the-box.
This is the easiest way to try Xen Orchestra quickly.
Your XOA is connected to all your hosts, or the pool master only if you are using Pools in XenServer:
![](./assets/partner2.jpg)
## Xen Orchestra (XO)
![](./assets/xo-arch.jpg)
Xen Orchestra itself is built as a modular solution. Each part has its role:
- The core is "[xo-server](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-server/)" - a daemon dealing directly with XenServer or XAPI capable hosts. This is where users are stored, and it's the center point for talking to your whole Xen infrastructure.
- The web interface is "[xo-web](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-web)" - it runs directly from your browser. The connection with ```xo-server``` is done via *WebSockets*.
- "[xo-cli](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-cli)" is a module allowing you to send commands directly from the command line.
We have other modules as well (like the LDAP plugin for example). It allows us to use this modular architecture to add further parts as we need them. It's completely flexible, allowing us to adapt Xen Orchestra to every existing workflow.

BIN
docs/assets/DocImg1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
docs/assets/DocImg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
docs/assets/DocImg3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
docs/assets/DocImg4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
docs/assets/DocImg5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/assets/DocImg6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
docs/assets/DocImg7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
docs/assets/DocImg8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
docs/assets/DocImg9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
docs/assets/acllist.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/assets/cover.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/assets/cpu_weight.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
docs/assets/createacl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
docs/assets/disperse3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
docs/assets/disperse5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
docs/assets/disperse6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/assets/export_task.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
docs/assets/fullevent.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/assets/groups.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/assets/heatmap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

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