Commit graph

117 commits

Author SHA1 Message Date
Laurent Peuch
66524213cd Merge pull request #348 from YunoHost/clean_domains.py
Clean domains.py
2017-08-19 20:23:31 +02:00
Laurent Peuch
b77d58a671 Merge pull request #347 from YunoHost/enh-simpler-lock-system
[enh] Simpler lock system
2017-08-18 04:13:15 +02:00
Laurent Peuch
4f1cf058c2 Merge pull request #351 from YunoHost/dev_shell
Integrate a command to launch a dev shell from within moulinette context
2017-08-18 04:12:25 +02:00
Laurent Peuch
4e1a839557 [enh] can do a 'yunohost tools shell -c command' à la python -c 2017-08-15 17:24:26 +02:00
Laurent Peuch
52c7a37a78 [enh] add 'yunohost tools shell' 2017-08-15 17:18:50 +02:00
Laurent Peuch
685f3746ef [fix] forgot to remove args from actionsmap 2017-08-14 23:07:47 +02:00
Laurent Peuch
56513bbdb1 [mod] we never used those filtering/offset things 2017-08-13 23:18:18 +02:00
Alexandre Aubin
0a8362c764 Remove old 'lock' configuration 2017-08-13 17:01:06 -04:00
Laurent Peuch
02ea0c0656 [enh] Add reboot/shutdown actions in tools (#190)
* [enh] Implements shutdown/reboot helpers.
* [enh] Improve reboot/shutdown help.
2017-08-11 16:16:09 +02:00
Laurent Peuch
a441f37454 Migration framework (#195)
* [enh] list migrations
* [enh] first version of the migrate command
* [mod] add todo comment
* [mod] migrate command shouldn't return anything
* [mod] rename yunohost_migrations to data_migrations
* [mod] better regex
* [enh] had base class for migration
* [fix] inverted condition
* [enh] save last runned migration
* [enh] add migrations state command
* [mod] add todo comments
* [mod] error handling
* [mod] DRY
* [doc] more comment
* [enh] handle exceptions on migration
* [mod] error handling
* [mod] DRY
* [enh] error handling
* [mod] this is done earlier
* [doc] docstring
* [enh] handle fail to load migration case
* [doc] add TODO Comment
* [fix] typos, thx ju
* [enh] add a migration to remove archivemount (as an example)
* [fix] check_call is boring
* [enh] support forward/backward migrations
* [mod] I don't need auth
* [fix] apt is expecting input...
* [mod] save it as int
* [mod] add some logging
* [doc] update todo
* [fix] I also need to run backward latest runed migration
* [enh] add target cli argument
* [enh] fake migration
* [enh] uniformly convert to int at the same place
* [fix] we need to filename now
* [enh] validate input
* [enh] handle 0 special case
* [mod] rename fake to skip
* [mod] s/runed/run/g
* [doc] anglich typo in comments
* [mod] more explicit error message
* [mod] more typo
* [doc] put comment in the right place
* [mod] typo
* [fix] forgot to cape migrations by target
* [fix] typo
* [mod] uses moulinette helpers
* [enh] launch migrations during package upgrade
* [mod] remove unused import
* [mod] sort translation keys
* [enh] i18n
* [fix] missing __init__.py in data_migrations
* [mod] move to a subcategory
* Typo / caps / consistency
* [fix] forgot that migrations is now in tools, in postinst
* Skip migrations during postinstall
* Remove archivemount example migration
It relied on apt-get, which can't be used during 'postinst' debian scripts because we're already inside a apt
* Add migration for cert group from 'metronome' to 'ssl-cert'
2017-08-07 15:55:18 +02:00
ljf (zamentur)
20f4a39bf0 [fix] Errors in backup custom methods (#326) 2017-07-13 19:36:31 +02:00
ljf (zamentur)
d3eeb4bbc7 [enh] Refactor backup management to pave the way to borg (#275)
* [enh] Use a csv to list file to backup
* [enh] Use csv python module
* [wip] Backup refactoring
* [wip] Backup class refactoring
* [enh] Add archivemount dependencies
* [wip] Restore refactoring
* [fix] Some error in this refactoring
* [fix] Missing backup key translation
* [fix] Bad YNH_CWD in hook backup
* [fix] App backup part was broken
* [fix] Restore operation was broken
* [fix] No compressed backup
* [fix] Don't commit backup path into csv if app backup fail
* [fix] Default backup collect_dir should be in tmp subdir
* [enh] Simplify a copy code
* [enh] Build backup info from properties
* [enh] Improve comments presentation
* Adding first tests for backup/restore
* Adding more backup/restore app test scenario
* [enh] Separate BackupMethods in distinct class
* Adding test of restoring a wordpress archive from 2.4
* [fix] Be able to delete backup link too
* [fix] Bad internationalization key
* [fix] Edge case with empty mysql pwd restore
* [fix] Unset var in restore
* [fix] Edge case with empty mysql pwd restore
* Adding test for backup crash handling
* Cleaning tests + checking tmp dir is empty
* [fix] Missing tmp in backup path
* [fix] Error on reading backup csv
* Adding test of failed restore
* Adding tests when not enough space available
* Simplifying tests using markers
* [fix] ynh backup/restore helpers with only one arg
* [fix] Unmount subdir with python
* [enh] Improve backup size management
* [fix] None object in backup
* [enh] Remove dead code
* [fix] Missing locales
* [enh] Adapat test about needed space
* [fix] Pass some test
* [enh] Remove dead code
* [enh] Pass all test
* [enh] Adding test that backups contains what's expected
* Fix typo in tests
* [fix] Bad documentation
* [enh] Add comment
* [enh] Use len in place of implicit {} == False
* [enh] Add comment
* [enh] Add comment
* [enh] Refactoring on _collect_app_files
* Adding skeleton for remaining tests to write
* [enh] Use a csv to list file to backup
* [enh] Use csv python module
* [wip] Backup refactoring
* [wip] Backup class refactoring
* [enh] Add archivemount dependencies
* [wip] Restore refactoring
* [fix] Some error in this refactoring
* [fix] Missing backup key translation
* [fix] Bad YNH_CWD in hook backup
* [fix] App backup part was broken
* [fix] Restore operation was broken
* [fix] No compressed backup
* [fix] Don't commit backup path into csv if app backup fail
* [fix] Default backup collect_dir should be in tmp subdir
* [enh] Simplify a copy code
* [enh] Build backup info from properties
* [enh] Improve comments presentation
* Adding first tests for backup/restore
* Adding more backup/restore app test scenario
* [enh] Separate BackupMethods in distinct class
* Adding test of restoring a wordpress archive from 2.4
* [fix] Be able to delete backup link too
* [fix] Bad internationalization key
* [fix] Edge case with empty mysql pwd restore
* [fix] Unset var in restore
* [fix] Edge case with empty mysql pwd restore
* Adding test for backup crash handling
* Cleaning tests + checking tmp dir is empty
* [fix] Missing tmp in backup path
* [fix] Error on reading backup csv
* Adding test of failed restore
* Adding tests when not enough space available
* Simplifying tests using markers
* [fix] ynh backup/restore helpers with only one arg
* [fix] Unmount subdir with python
* [enh] Improve backup size management
* [fix] None object in backup
* [enh] Remove dead code
* [fix] Missing locales
* [enh] Adapat test about needed space
* [fix] Pass some test
* [enh] Remove dead code
* [enh] Pass all test
* [enh] Adding test that backups contains what's expected
* Fix typo in tests
* [fix] Bad documentation
* Adding skeleton for remaining tests to write
* [enh] Add comment
* [enh] Use len in place of implicit {} == False
* [enh] Add comment
* [enh] Add comment
* [enh] Refactoring on _collect_app_files
* [fix] Replay e1a507 deleted by rebase
* [fix] ynh_restore helper
* Renaming 'hooks' terminology to 'system' where it makes sense
* Propagating new --system/--ignore-system to actionmap
* Adding more tests + clarifying some functions and messages
* Factorize out the definition and validation of backup/restore targets
* Add missing key
* Use list comprehension instead of dirty loops
* [enh] Add docstring in BackupManager
* [enh] Add docstring on BackupMethod(s)
* [fix] Remove deadcode
* [fix] Remove debug message
* [enh] Add comments on RestoreManager
* [enh] Add comments on backup constants
* Adding a proper report/result for each backup target
* Skipping tests not implemented yet
* Fixing little mistake from merging
* [fix] Support different fs or archivemount error
* [enh] Backup helpers readability
* [fix] Copy backup method
* [fix] Deprecated warning always displayed
* [enh] Retrieve info.json file inside tar.gz
* Trying to reorganize methods with sections for readability
* [enh] Support archivemount failure
* [fix] Missing env var for system part restore helpers
* Clarifying disk usage / free space computation
* [enh] Refactoring around backup set_targets()
* Clarifying structure of backup_create and backup_restore
* Move RestoreManager between BackupManager and BackupMethods
* [fix] Missing locales
* [fix] System part restore if archivemount failure
* [enh] Extract all conf instead of specific code
* [fix] Other output directory (compressed archive)
* [enh] Add test for uncompressed backup
* [fix] Compressed backup in an existing output directory
* [fix] Return size for retro-compatibility
* [fix] Mountpoint check aborting script when called with -eu
* [fix] Avoid failure test with set -eu
* [fix] locale strings missing/bad arguments
* Check free space before mount
* [fix] ynh_restore_helpers with existing archive path
* Adding skeletons for moar tests
* Fixing some weird bug in _get_archive_path
* Adding a regen-conf at the end of system restore
* Adding tests of system restore from 2.4
* Have a class dedicated to target management
* Cleaning tests
* Misc formatting
* More meaningful variable names inside app restore
* [fix] can't call source ../settings/scripts/_common.sh in app backup
* [fix] ynh_install_app_dependencies is not compatible with readonly mount
* [fix] Remove temporary file
2017-06-02 13:41:16 +02:00
Laurent Peuch
f9437bbd33 Global settings (#229)
* [enh] add base to run tests
* [enh] start global settings proto
* [mod] has -> exists
* [enh] configure actionmap for settings module
* [enh] add a default values mecanism
* [enh] nicer yaml dump
* [mod] DRY
* [fix] moulinette doesn't respect positionned arguments
* [fix] typo
* [mod] don't print when it's not needed
* [enh] raise a moulinette exception when the key doesn't exists
* [mod] add todo comments
* [mod] no more default value
* [enh] namespace all global settings commands
* [mod] unix way, be quiet except when needed
* [fix] forgot to add namespace argument to settings-list
* [fix] fail_silently wasn't considered as a cli flag
* [mod] refactoring
* [enh] remove empty namespace on remove
* [enh] print a warning if attempt to list an empty namespace settings
* [mod] refactoring
* [enh] handle case where I can't open settings file
* [enh] handle case where I can't write settings file
* [enh] handle case where I can't serialized settings data into yaml
* [mod] add error return codes
* [enh] start to move to new architecture for settings
* [enh] uses a dict instead of a tuple for settings
* [mod] no more namespace in settings list
* [mod] settings.exists isn't relevant anymore
* [mod] settings.remove isn't relevant anymore
* [enh] fix settings and switch to json
* [enh] adapt settings set
* [enh] don't set a key that doesn't exists
* [enh] check type of keys before settings them
* [enh] start implement default
* [enh] handle case where key doesnt exist for default
* [enh] i18n for bad key type on settings set
* [enh] i18n for bad key type on settings set for enum
* [mod] exception for weird situation
* [mod] this message isn't used anymore
* [enh] i18n for unknown setting key from local settings
* [mod] style
* [enh] start to work on a reset mecanism
* [enh] complain if settings_reset is called without yes
* [fix] --yes of reset is a boolean option
* [enh] backup old settings before resetting
* [fix] bad usage of logger
* [enh] backup unknown settings
* [enh] move settings description in translations
* [enh] add tests for settings
* [enh] migrate to pytest assert style
* [fix] typo
* [doc] add some comments for not explicite part of the code
* [mod] possibilities -> choices for uniformised vocabulary
* [mod] follow rest semantic
* [doc] made namespace usage more explicit
* [fix] we don't use namespace key anymore
* [enh] make settings_default available in cli
* [fix] *really* be Rest semantic
* [doc] add docstrings to settings module functions
* [enh] reset-all and --full option
* [fix] Remove unused global_settings_reset_not_yes
2017-05-16 17:18:07 +02:00
Laurent Peuch
1516f48699 [enh] Allow applications to ship a script to change its url (#185)
* [enh] add app_change_url
* [fix] avoid unecessary io and reuse already existing variable
* [fix] bad comment
* [fix] another bad comment
* [fix] I need to be able to call yunohost during change_url scripts
* [mod] global variables are now uppercased
* [mod] compress condition
* [enh] don't change_url if old/new domain_path are identical
* [mod] i18n
* [enh] ensure that nginx doesn't failed at the end of change_url
* [fix] forgot to call this damn m18n
* [mod] m18n
* [enh] ask and requires new domain/path for change_url
* [fix] missing translation key
* [mod] ordering
* [mod] lisibility
* [enh] avoid common mistakes
* [fix] check_output is annoying
* [fix] locale: typo.
* Adding changeurl unit test draft
* [mod] remove useless imports
* [mod] style
* [mod] change_url -> changeurl
* Moving comment about checkurl near checkurl call
* Normalize new path and domain format
* Adding test about trying to changeurl to same url
* Internationalizing change app success message
* Removing 'trimed' stuff
* Moving check for change_url script at beginning of function
* Use _run_service_command to reload nginx
* Changing changeurl back to change-url, gomennasai :s
2017-04-18 00:38:40 +02:00
Alexandre Aubin
f646fdf272 [fix] Split checkurl into two functions : availability + booking (#267)
* Splitting checkurl into two functions, one to check availability, the other for booking
* [fix] move import at file's beginning.
* Rename bookurl to registerurl
* Set registerurl as a PUT request for the api
* urlavailable returns a boolean now
* Revert moving import to top of file :/
* Have domain and path as separate arguments
* Flagging checkurl as deprecated in the actionmap
* Adding unit tests for registerurl and related
* Using built-in deprectation mechanism of Moulinette
* Using - separator in names + moving url-available to domain
* Returning directly a bool in url-available
2017-04-16 16:47:51 +02:00
Alexandre Aubin
674d639530 [enh] Adding new port availability checker (#266)
* Adding new port availability checker in tools
* [fix] move import at file's beginning.
* Moving back import inside function
* Using boolean instead of Yes/No
* Using built-in depreciation mechanism in Moulinette
* We're now using boolean instead of yes/no
* Renaming to port-available
* Returning directly a boolean
2017-04-16 16:46:57 +02:00
Laurent Peuch
a4c487a0aa [enh] Refactor applist management (#160)
* [mod] directly use python to retreive json list

* [enh] app_fetchlist fetch all app_list by default

* [fix] name variable doesn't exists here

* [fix] re returns None when there is not matchs

* [enh] app_fetchlist fetch all app_list by default

* Some cleaning for better readability

* Simpler variable name

* Prepare a function that register lists to be fetched

* Skeletong for applist system migration

* Add implementation of migration system with tests

* Refactorize app_fetchlist

* Misc fixes + adding test for single app fetching

* Fixing a few issues + test removelist

* Adding fetchlist and cron install during postinstall

* Adding debug messages

* Adding particular exception for SSL connection error

* Update actionmap help

* We don't use urlretrieve

* Clean tests, some description were bad

* [mod] some cleaning

* Moving to a .json file to store lists url + adjusting tests

* Adding missing string in locale

* Moving exception to logger.error when fetching fails

* Adding name of applist in error messages

* Fixing cron job stuff + adding proper tests

* Using None instead of -1 for applist lastupdate

* Handling exceptions when writing applist files

* More exception handling...

* [mod] pep8

* Updating test for migration of conflicting lists

* More general error when return code is not 200

* [enh] Improve app_fetchlist help.

* [fix] Use appslist instead of applist.

* [fix] Consistent user string for translation.
2017-04-06 22:21:25 +02:00
Maniack Crudelis
47dffca744 Allow underscore in backup name
Allow underscore in backup name, to allow backup with the name of multi-instance apps.

If there are no reason to avoid this character.
2017-03-15 23:51:12 +01:00
Laurent Peuch
50cc3536ac [mod] remove offset/limit from app_list, they aren't used anymore 2017-03-13 23:51:37 +01:00
opi
71672d371e [fix] --no-remove-on-failure for app install should behave as a flag. 2016-12-11 22:58:56 +01:00
Alexandre Aubin
731ff6f906 [fix] Refactoring tools_maindomain and disabling removal of main domain to avoid breaking things 2016-12-07 14:32:42 -05:00
julienmalik
f43750b4d6 [fix] Fix up indentation in actionmap
Reported by beudbeud on the chan
2016-12-04 11:55:06 +01:00
Laurent Peuch
e910694179 Merge pull request #192 from YunoHost/install-no-remove-on-fail-option
Install no remove on fail option
2016-12-03 23:08:40 +01:00
Laurent Peuch
a7289c447a [fix] typo 2016-11-28 15:38:19 +01:00
Alexandre Aubin
ed16cd7f5a Adding an option to use the staging Let's Encrypt CA, sort of a dry-run 2016-11-22 23:44:23 -05:00
Alexandre Aubin
5de006f18d Follow up of @julienmalik comments - misc typo/cosmetic fixes 2016-11-21 10:58:57 -05:00
Alexandre Aubin
bba92e4d41 Small tweaks for the web interface 2016-11-20 20:36:58 -05:00
Laurent Peuch
02b5ea62fe [mod] pep8 2016-10-30 05:42:16 +01:00
Alexandre Aubin
35fa386ce3 First draft of certificate management integration (e.g. Let's Encrypt certificate install) 2016-10-28 13:59:42 -04:00
Moul
76a294b284 [fix] typo: install filed –> failed. 2016-10-12 09:39:05 +02:00
Laurent Peuch
81c19cd1d6 [enh] no cli option to avoid removing an application on installation failure 2016-10-09 21:34:03 +02:00
Jérôme Lebleu
0d210e2e54 [ref] Invert no-stats option to with-stats in monitor_enable
Since monitoring statistics was not finished - and by the way not usable,
it inverts the behavior of monitor_enable to disable it by default.
See #395 for more details.
2016-06-04 22:28:17 +02:00
Jérôme Lebleu
da5aa1d4aa [fix] Do not set default value to mailbox-quota at user_update 2016-04-26 20:30:43 +02:00
Jérôme Lebleu
cdf3c13bf5 [enh] Add a dry-run option for service_regen_conf 2016-04-19 20:52:45 +02:00
Jérôme Lebleu
0bacf65d9c Merge branch 'unstable' into regen-conf-enh 2016-04-17 15:47:49 +02:00
Jérôme Lebleu
c1115fc736 [fix] Rename 'deprecated' option to 'deprecated_alias' in actionsmap 2016-04-16 21:33:48 +02:00
Jérôme Lebleu
2f1bf014e8 [cli] Deprecate app_initdb action in flavour of helpers 2016-04-16 21:31:27 +02:00
Jérôme Lebleu
e8502f06c4 [fix] Remove old service_safecopy/saferemove from the actionsmap 2016-04-16 18:48:50 +02:00
Jérôme Lebleu
a06a753fb6 [enh] Allow to list pending conf only in service_regen_conf 2016-04-11 19:03:48 +02:00
Jérôme Lebleu
eecf03ffbc [enh] Allow to show the diff between conf in service_regen_conf 2016-04-11 18:50:45 +02:00
Jérôme Lebleu
2309405e98 [enh] Refactor the conf regen for better conflicts handle
It rewrites some parts of the conf regen but try to keep as much as possible
the same logic - to prevent a too big refactoring. The main change is that
configuration file regen is now handle by service_regen_conf directly.

Hooks are now called twice with the following arguments respectively:
 * `"pre" $force $pending_dir`: it's time for the script to generate and put
   each configuration file to update/remove into `$pending_dir` with the
   right directory tree. To remove one, just touch an empty file.
 * `"post" $force`: this second time, the script may restart services, fix
   permissions, clean, ...

Between this two executions, the service_regen_conf will look for any files
under the `$pending_dir` and safely process them - either create, update or
remove the proper system configuration.
2016-04-11 17:11:41 +02:00
Jérôme Lebleu
cf077a50aa [enh] Add pre/post script execution callbacks to hook_callback 2016-04-10 16:48:46 +02:00
Jérôme Lebleu
a7657c1a39 [ref] Deprecate and rename regenconf action to regen-conf 2016-04-10 10:42:30 +02:00
Jérôme Lebleu
8a44179d00 [fix] Regenerate SSOwat conf after apps restoration 2016-03-28 22:07:59 +02:00
Jérôme Lebleu
de08c14aa1 [enh] Allow to set script execution directory in hook_exec 2016-03-28 21:49:11 +02:00
Jérôme Lebleu
c99d56f2d5 Merge branch 'stable' into testing
This fixes DynDNS update.
2016-03-27 16:52:41 +02:00
Jérôme Lebleu
0d9b8d9b3d [fix] Use dyndns.yunohost.org instead of dynhost.yunohost.org 2016-03-26 14:15:49 +01:00
Jérôme Lebleu
d66a46a8de [fix] Update first registered domain with DynDNS instead of current_host 2016-03-26 00:27:25 +01:00
opi
4833b6b2b2 [enh] Use dedicated app list domain. 2016-03-23 08:53:44 +01:00
opi
b1921358a7 [fix] Documentation according to last commit (dynhost->dyndns). 2016-03-23 08:37:17 +01:00