From 58c2e778c42fce320fd04df54fb965c15e1b87b7 Mon Sep 17 00:00:00 2001 From: Marc Aymerich Date: Thu, 13 Nov 2014 16:40:42 +0000 Subject: [PATCH] Added webapps helptext for php options --- TODO.md | 36 ++------------------- orchestra/apps/resources/admin.py | 9 ------ orchestra/apps/resources/models.py | 2 -- orchestra/apps/services/models.py | 2 +- orchestra/apps/webapps/settings.py | 52 +++++++++++++++++++----------- 5 files changed, 38 insertions(+), 63 deletions(-) diff --git a/TODO.md b/TODO.md index 72fe818d..96ee8b20 100644 --- a/TODO.md +++ b/TODO.md @@ -4,27 +4,16 @@ TODO ==== * Don't store passwords and other service parameters that can be changed by the services i.e. mailman, vps etc. Find an execution mechanism that trigger `change_password()` * abort transaction on orchestration when `state == TIMEOUT` ? -* filter and other user.is_main refactoring * use format_html_join for orchestration email alerts -* generic form for change and display passwords and crack change password form * enforce an emergency email contact and account to contact contacts about problems when mailserver is down * add `BackendLog` retry action -* PHPbBckendMiixin with get_php_ini * webmail identities and addresses -* user.roles.mailbox its awful when combined with addresses: - * address.mailboxes filter by account is crap in admin and api - * address.mailboxes api needs a mailbox object endpoint (not nested user) - * Its not intuitive, users expect to create mailboxes, not users! - * Mailbox is something tangible, not a role! -* System user vs virtual user: - * system user automatically hast @domain.com address :( * use Code: https://github.com/django/django/blob/master/django/forms/forms.py#L415 for domain.refresh_serial() * Permissions .filter_queryset() - * git deploy in addition to FTP? * env vars instead of multiple settings files: https://devcenter.heroku.com/articles/config-vars ? * optional chroot shell? @@ -65,14 +54,6 @@ Remember that, as always with QuerySets, any subsequent chained methods which im * help_text on readonly_fields specialy Bill.state. (eg. A bill is in OPEN state when bla bla ) -* Transaction states: CREATED, PROCESSED, EXECUTED, COMMITED, ABORTED (SECURED, REJECTED?) - * bill.send() -> transacction.EXECUTED when source=None - * transaction.secured() -> bill.paid when bill.total == transaction.value else Error - * bill.paid() -> transacton.SECURED - * bill.bad_debt() -> transaction.ABORTED - * transaction.ABORTED -> bill.bad_debt - - Issue new transaction when current transaction is ABORTED - * underescore *every* private function * create log file at /var/log/orchestra.log and rotate @@ -149,22 +130,15 @@ Remember that, as always with QuerySets, any subsequent chained methods which im * REST PERMISSIONS -* caching based on def text2int(textnum, numwords={}) ?: - - -* Subdomain saving should not trigger bind slave +* caching based on "def text2int(textnum, numwords={}):" * multiple files monitoring -* Domain validation has to be done with injected records and subdomains - -* Names: lower andupper case allow or disallow ? webapps/account.username etc - -* Split plans into a separate app (plans and rates / services ) ? +* Split plans into a separate app (plans and rates / services ) interface ? * sync() ServiceController method that synchronizes orchestra and servers (delete or import) -* validate address.forward: if mailbox in account.mailboxes then: _("Please use mailboxes field") or consider removing mailbox support on forward (user@pangea.org instead) +* consider removing mailbox support on forward (user@pangea.org instead) * remove ordering in account admin and others admininlines @@ -198,7 +172,3 @@ Remember that, as always with QuerySets, any subsequent chained methods which im * validate systemuser.home * webapp backend option compatibility check? - -* miscellaneous.indentifier.endswith(('.org', '.es', '.cat')) - -* miscservic icon miscellaneous icon + scissors diff --git a/orchestra/apps/resources/admin.py b/orchestra/apps/resources/admin.py index 7c696f38..65ba6a37 100644 --- a/orchestra/apps/resources/admin.py +++ b/orchestra/apps/resources/admin.py @@ -41,15 +41,6 @@ class ResourceAdmin(ExtendedModelAdmin): change_readonly_fields = ('name', 'content_type') prepopulated_fields = {'name': ('verbose_name',)} - def add_view(self, request, **kwargs): - """ Warning user if the node is not fully configured """ - if request.method == 'POST': - messages.warning(request, mark_safe(_( - "Restarting orchestra and celerybeat is required to fully apply changes.
" - "Remember that new allocated values will be applied when objects are saved." - ))) - return super(ResourceAdmin, self).add_view(request, **kwargs) - def change_view(self, request, object_id, form_url='', extra_context=None): """ Remaind user when monitor routes are not configured """ if request.method == 'GET': diff --git a/orchestra/apps/resources/models.py b/orchestra/apps/resources/models.py index 6710d4f1..e4c291b5 100644 --- a/orchestra/apps/resources/models.py +++ b/orchestra/apps/resources/models.py @@ -119,8 +119,6 @@ class Resource(models.Model): else: PeriodicTask.objects.filter( name=name, - task='resources.Monitor', - args=[self.pk] ).delete() def get_scale(self): diff --git a/orchestra/apps/services/models.py b/orchestra/apps/services/models.py index 26f05852..c91f588f 100644 --- a/orchestra/apps/services/models.py +++ b/orchestra/apps/services/models.py @@ -123,7 +123,7 @@ class Service(models.Model): "Related instance can be instantiated with instance keyword or " "content_type.model_name.
" " databaseuser.type == 'MYSQL'
" - " miscellaneous.active and miscellaneous.service.name.lower() == 'domain .es'
" + " miscellaneous.active and miscellaneous.identifier.endswith(('.org', '.net', '.com'))'
" " contractedplan.plan.name == 'association_fee''
" " instance.active")) handler_type = models.CharField(_("handler"), max_length=256, blank=True, diff --git a/orchestra/apps/webapps/settings.py b/orchestra/apps/webapps/settings.py index 8665976d..ca1a318f 100644 --- a/orchestra/apps/webapps/settings.py +++ b/orchestra/apps/webapps/settings.py @@ -107,7 +107,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', { # Processes 'timeout': ( _("Process timeout"), - _("Maximum time in seconds allowed for a request to complete (a number between 0 and 999)."), + _("Maximum time in seconds allowed for a request to complete " + "(a number between 0 and 999)."), # FCGID FcgidIOTimeout # FPM pm.request_terminate_timeout # PHP max_execution_time ini @@ -115,7 +116,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', { ), 'processes': ( _("Number of processes"), - _("Maximum number of children that can be alive at the same time (a number between 0 and 9)."), + _("Maximum number of children that can be alive at the same time " + "(a number between 0 and 9)."), # FCGID MaxProcesses # FPM pm.max_children r'^[0-9]$', @@ -128,25 +130,30 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', { ), 'PHP-allow_url_include': ( _("PHP - Allow URL include"), - _("On or Off"), + _("Allows the use of URL-aware fopen wrappers with include, include_once, require, " + "require_once (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-allow_url_fopen': ( _("PHP - allow_url_fopen"), - _("On or Off"), + _("Enables the URL-aware fopen wrappers that enable accessing URL object like files " + "(On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-auto_append_file': ( _("PHP - Auto append file"), + _("Specifies the name of a file that is automatically parsed after the main file."), r'^[\w\.,-/]+$' ), 'PHP-auto_prepend_file': ( _("PHP - Auto prepend file"), + _("Specifies the name of a file that is automatically parsed before the main file."), r'^[\w\.,-/]+$' ), 'PHP-date.timezone': ( _("PHP - date.timezone"), - _("Timezone string 'Europe/London'."), + _("Sets the default timezone used by all date/time functions " + "(Timezone string 'Europe/London')."), r'^\w+/\w+$' ), 'PHP-default_socket_timeout': ( @@ -156,7 +163,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', { ), 'PHP-display_errors': ( _("PHP - Display errors"), - _("On or Off"), + _("determines whether errors should be printed to the screen as part of the output or " + "if they should be hidden from the user (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-extension': ( @@ -165,32 +173,37 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', { ), 'PHP-magic_quotes_gpc': ( _("PHP - Magic quotes GPC"), - _("On or Off"), + _("Sets the magic_quotes state for GPC (Get/Post/Cookie) operations (On or Off) " + "DEPRECATED as of PHP 5.3.0."), r'^(On|Off|on|off)$' ), 'PHP-magic_quotes_runtime': ( _("PHP - Magic quotes runtime"), - _("On or Off"), + _("Functions that return data from any sort of external source will have quotes escaped " + "with a backslash (On or Off) DEPRECATED as of PHP 5.3.0."), r'^(On|Off|on|off)$' ), 'PHP-magic_quotes_sybase': ( _("PHP - Magic quotes sybase"), - _("On or Off"), + _("Single-quote is escaped with a single-quote instead of a backslash (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-max_execution_time': ( _("PHP - Max execution time"), - _("Number between 0 and 999."), + _("Maximum time in seconds a script is allowed to run before it is terminated by " + "the parser (Integer between 0 and 999)."), r'^[0-9]{1,3}$' ), 'PHP-max_input_time': ( _("PHP - Max input time"), - _("Number between 0 and 999."), + _("Maximum time in seconds a script is allowed to parse input data, like POST and GET " + "(Integer between 0 and 999)."), r'^[0-9]{1,3}$' ), 'PHP-memory_limit': ( _("PHP - Memory limit"), - _("Value between 0M and 999M."), + _("This sets the maximum amount of memory in bytes that a script is allowed to allocate " + "(Value between 0M and 999M)."), r'^[0-9]{1,3}M$' ), 'PHP-mysql.connect_timeout': ( @@ -200,36 +213,39 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', { ), 'PHP-output_buffering': ( _("PHP - output_buffering"), - _("On or Off"), + _("Turn on output buffering (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-register_globals': ( _("PHP - Register globals"), - _("On or Off"), + _("Whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) " + "variables as global variables (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-post_max_size': ( _("PHP - Post max size"), - _("Value between 0M and 999M."), + _("Sets max size of post data allowed (Value between 0M and 999M)."), r'^[0-9]{1,3}M$' ), 'PHP-sendmail_path': ( _("PHP - sendmail_path"), + _("Where the sendmail program can be found."), r'^[^ ]+$' ), 'PHP-session.bug_compat_warn': ( _("PHP - session.bug_compat_warn"), - _("On or Off"), + _("Enables an PHP bug on session initialization for legacy behaviour (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-session.auto_start': ( _("PHP - session.auto_start"), - _("On or Off"), + _("Specifies whether the session module starts a session automatically on request " + "startup (On or Off)."), r'^(On|Off|on|off)$' ), 'PHP-safe_mode': ( _("PHP - Safe mode"), - _("On or Off"), + _("Whether to enable PHP's safe mode (On or Off) DEPRECATED as of PHP 5.3.0"), r'^(On|Off|on|off)$' ), 'PHP-suhosin.post.max_vars': (