Added webapps helptext for php options

This commit is contained in:
Marc Aymerich 2014-11-13 16:40:42 +00:00
parent 890708d85f
commit 58c2e778c4
5 changed files with 38 additions and 63 deletions

36
TODO.md
View file

@ -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()` * 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` ? * abort transaction on orchestration when `state == TIMEOUT` ?
* filter and other user.is_main refactoring
* use format_html_join for orchestration email alerts * 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 * enforce an emergency email contact and account to contact contacts about problems when mailserver is down
* add `BackendLog` retry action * add `BackendLog` retry action
* PHPbBckendMiixin with get_php_ini
* webmail identities and addresses * 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() * use Code: https://github.com/django/django/blob/master/django/forms/forms.py#L415 for domain.refresh_serial()
* Permissions .filter_queryset() * Permissions .filter_queryset()
* git deploy in addition to FTP? * git deploy in addition to FTP?
* env vars instead of multiple settings files: https://devcenter.heroku.com/articles/config-vars ? * env vars instead of multiple settings files: https://devcenter.heroku.com/articles/config-vars ?
* optional chroot shell? * 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 ) * 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 * underescore *every* private function
* create log file at /var/log/orchestra.log and rotate * 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 * REST PERMISSIONS
* caching based on def text2int(textnum, numwords={}) ?: * caching based on "def text2int(textnum, numwords={}):"
* Subdomain saving should not trigger bind slave
* multiple files monitoring * multiple files monitoring
* Domain validation has to be done with injected records and subdomains * Split plans into a separate app (plans and rates / services ) interface ?
* Names: lower andupper case allow or disallow ? webapps/account.username etc
* Split plans into a separate app (plans and rates / services ) ?
* sync() ServiceController method that synchronizes orchestra and servers (delete or import) * 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 * 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 * validate systemuser.home
* webapp backend option compatibility check? * webapp backend option compatibility check?
* miscellaneous.indentifier.endswith(('.org', '.es', '.cat'))
* miscservic icon miscellaneous icon + scissors

View file

@ -41,15 +41,6 @@ class ResourceAdmin(ExtendedModelAdmin):
change_readonly_fields = ('name', 'content_type') change_readonly_fields = ('name', 'content_type')
prepopulated_fields = {'name': ('verbose_name',)} 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.<br> "
"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): def change_view(self, request, object_id, form_url='', extra_context=None):
""" Remaind user when monitor routes are not configured """ """ Remaind user when monitor routes are not configured """
if request.method == 'GET': if request.method == 'GET':

View file

@ -119,8 +119,6 @@ class Resource(models.Model):
else: else:
PeriodicTask.objects.filter( PeriodicTask.objects.filter(
name=name, name=name,
task='resources.Monitor',
args=[self.pk]
).delete() ).delete()
def get_scale(self): def get_scale(self):

View file

@ -123,7 +123,7 @@ class Service(models.Model):
"Related instance can be instantiated with <tt>instance</tt> keyword or " "Related instance can be instantiated with <tt>instance</tt> keyword or "
"<tt>content_type.model_name</tt>.</br>" "<tt>content_type.model_name</tt>.</br>"
"<tt>&nbsp;databaseuser.type == 'MYSQL'</tt><br>" "<tt>&nbsp;databaseuser.type == 'MYSQL'</tt><br>"
"<tt>&nbsp;miscellaneous.active and miscellaneous.service.name.lower() == 'domain .es'</tt><br>" "<tt>&nbsp;miscellaneous.active and miscellaneous.identifier.endswith(('.org', '.net', '.com'))'</tt><br>"
"<tt>&nbsp;contractedplan.plan.name == 'association_fee''</tt><br>" "<tt>&nbsp;contractedplan.plan.name == 'association_fee''</tt><br>"
"<tt>&nbsp;instance.active</tt>")) "<tt>&nbsp;instance.active</tt>"))
handler_type = models.CharField(_("handler"), max_length=256, blank=True, handler_type = models.CharField(_("handler"), max_length=256, blank=True,

View file

@ -107,7 +107,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
# Processes # Processes
'timeout': ( 'timeout': (
_("Process 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 # FCGID FcgidIOTimeout
# FPM pm.request_terminate_timeout # FPM pm.request_terminate_timeout
# PHP max_execution_time ini # PHP max_execution_time ini
@ -115,7 +116,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
), ),
'processes': ( 'processes': (
_("Number of 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 # FCGID MaxProcesses
# FPM pm.max_children # FPM pm.max_children
r'^[0-9]$', r'^[0-9]$',
@ -128,25 +130,30 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
), ),
'PHP-allow_url_include': ( 'PHP-allow_url_include': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-allow_url_fopen': ( 'PHP-allow_url_fopen': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-auto_append_file': ( 'PHP-auto_append_file': (
_("PHP - Auto append file"), _("PHP - Auto append file"),
_("Specifies the name of a file that is automatically parsed after the main file."),
r'^[\w\.,-/]+$' r'^[\w\.,-/]+$'
), ),
'PHP-auto_prepend_file': ( 'PHP-auto_prepend_file': (
_("PHP - Auto prepend file"), _("PHP - Auto prepend file"),
_("Specifies the name of a file that is automatically parsed before the main file."),
r'^[\w\.,-/]+$' r'^[\w\.,-/]+$'
), ),
'PHP-date.timezone': ( 'PHP-date.timezone': (
_("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+$' r'^\w+/\w+$'
), ),
'PHP-default_socket_timeout': ( 'PHP-default_socket_timeout': (
@ -156,7 +163,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
), ),
'PHP-display_errors': ( 'PHP-display_errors': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-extension': ( 'PHP-extension': (
@ -165,32 +173,37 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
), ),
'PHP-magic_quotes_gpc': ( 'PHP-magic_quotes_gpc': (
_("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) "
"<b>DEPRECATED as of PHP 5.3.0</b>."),
r'^(On|Off|on|off)$' r'^(On|Off|on|off)$'
), ),
'PHP-magic_quotes_runtime': ( 'PHP-magic_quotes_runtime': (
_("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) <b>DEPRECATED as of PHP 5.3.0</b>."),
r'^(On|Off|on|off)$' r'^(On|Off|on|off)$'
), ),
'PHP-magic_quotes_sybase': ( 'PHP-magic_quotes_sybase': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-max_execution_time': ( 'PHP-max_execution_time': (
_("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}$' r'^[0-9]{1,3}$'
), ),
'PHP-max_input_time': ( 'PHP-max_input_time': (
_("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}$' r'^[0-9]{1,3}$'
), ),
'PHP-memory_limit': ( 'PHP-memory_limit': (
_("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$' r'^[0-9]{1,3}M$'
), ),
'PHP-mysql.connect_timeout': ( 'PHP-mysql.connect_timeout': (
@ -200,36 +213,39 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
), ),
'PHP-output_buffering': ( 'PHP-output_buffering': (
_("PHP - output_buffering"), _("PHP - output_buffering"),
_("On or Off"), _("Turn on output buffering (On or Off)."),
r'^(On|Off|on|off)$' r'^(On|Off|on|off)$'
), ),
'PHP-register_globals': ( 'PHP-register_globals': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-post_max_size': ( 'PHP-post_max_size': (
_("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$' r'^[0-9]{1,3}M$'
), ),
'PHP-sendmail_path': ( 'PHP-sendmail_path': (
_("PHP - sendmail_path"), _("PHP - sendmail_path"),
_("Where the sendmail program can be found."),
r'^[^ ]+$' r'^[^ ]+$'
), ),
'PHP-session.bug_compat_warn': ( 'PHP-session.bug_compat_warn': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-session.auto_start': ( 'PHP-session.auto_start': (
_("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)$' r'^(On|Off|on|off)$'
), ),
'PHP-safe_mode': ( 'PHP-safe_mode': (
_("PHP - Safe mode"), _("PHP - Safe mode"),
_("On or Off"), _("Whether to enable PHP's safe mode (On or Off) <b>DEPRECATED as of PHP 5.3.0</b>"),
r'^(On|Off|on|off)$' r'^(On|Off|on|off)$'
), ),
'PHP-suhosin.post.max_vars': ( 'PHP-suhosin.post.max_vars': (