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': (