Browse Source
[RF] porting to new api
[RF] porting to new api
[FIX] schedule_backup method [IMP] IT translation [IMP] testspull/620/head
archetipo
9 years ago
committed by
Dave Lasley
8 changed files with 667 additions and 191 deletions
-
1auto_backup/__init__.py
-
18auto_backup/__openerp__.py
-
27auto_backup/data/autobackup_mail_template.xml
-
363auto_backup/i18n/it.po
-
241auto_backup/model/backup_scheduler.py
-
2auto_backup/security/ir.model.access.csv
-
22auto_backup/tests/__init__.py
-
64auto_backup/tests/test_auto_backup.py
@ -0,0 +1,27 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data noupdate="0"> |
|||
|
|||
<record id="email_template_autobackup_error_noificaiton" model="email.template"> |
|||
<field name="name">Auto Backup Error notification</field> |
|||
<field name="email_from">auto_backup@${object.name}</field> |
|||
<field name="subject">Backup from ${object.host} - (${object.sftpip}) failed</field> |
|||
<field name="email_to">${object.emailtonotify}</field> |
|||
<field name="model_id" ref="auto_backup.model_db_backup" /> |
|||
<field name="body_html"> |
|||
<![CDATA[ |
|||
<p>Dear,</p> |
|||
|
|||
<p>The backup for the server ${object.host} (IP: ${object.sftpip}) failed.</p> |
|||
<p>Please check the following details:</p> |
|||
<p>IP address SFTP server: ${object.sftpip}</p> |
|||
<p>Username: ${object.sftpusername}</p> |
|||
<p>Password: ${object.sftppassword}</p> |
|||
<p>Error details: ${object.lasterrorlog}</p> |
|||
<p>With kind regards</p> |
|||
|
|||
]]></field> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
@ -0,0 +1,363 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * auto_backup |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 8.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-21 13:00+0000\n" |
|||
"PO-Revision-Date: 2015-07-21 13:00+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: auto_backup |
|||
#: model:email.template,body_html:auto_backup.email_template_autobackup_error_noificaiton |
|||
msgid "\n" |
|||
" \n" |
|||
" <p>Dear,</p>\n" |
|||
"\n" |
|||
" <p>The backup for the server ${object.host} (IP: ${object.sftpip}) failed.</p>\n" |
|||
" <p>Please check the following details:</p>\n" |
|||
" <p>IP address SFTP server: ${object.sftpip}</p>\n" |
|||
" <p>Username: ${object.sftpusername}</p>\n" |
|||
" <p>Password: ${object.sftppassword}</p>\n" |
|||
" <p>Error details: ${object.lasterrorlog}</p>\n" |
|||
" <p>With kind regards</p>\n" |
|||
"\n" |
|||
" " |
|||
msgstr "\n" |
|||
" \n" |
|||
" <p>Buongiorno,</p>\n" |
|||
"\n" |
|||
" <p>Il backup del DB del server ${object.host} (IP: ${object.sftpip}) e' fallito.</p>\n" |
|||
" <p>Si prega di controllare le seguenti impostazioni:</p>\n" |
|||
" <p>Indirizzo IP server SFTP: ${object.sftpip}</p>\n" |
|||
" <p>Username: ${object.sftpusername}</p>\n" |
|||
" <p>Password: ${object.sftppassword}</p>\n" |
|||
" <p>Dettaglio errore: ${object.lasterrorlog}</p>\n" |
|||
" <p>Cordiali Saluti</p>\n" |
|||
"\n" |
|||
" " |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:204 |
|||
#, python-format |
|||
msgid "\n" |
|||
"Your IP address seems to be too short.\n" |
|||
"" |
|||
msgstr "\n" |
|||
"L' indirizzo IP sembra essere troppo corto.\n" |
|||
"" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:209 |
|||
#, python-format |
|||
msgid "%s" |
|||
msgstr "%s" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:288 |
|||
#, python-format |
|||
msgid "(Part of the) path didn't exist. Creating it now at %s" |
|||
msgstr "(Una parte del) path non esiste. Verra' creato in %s" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,bkp_dir:0 |
|||
msgid "Absolute path for storing the backups" |
|||
msgstr "Percorso assoluto per il salvataggio del DB" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sendmailsftpfail:0 |
|||
msgid "Auto. E-mail on backup fail" |
|||
msgstr "Auto. E-mail nel caso di errori durante il backup " |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,autoremove:0 |
|||
msgid "Auto. Remove Backups" |
|||
msgstr "Rimuovi Backups" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Automatic backups of the database can be scheduled as follows:" |
|||
msgstr "Il backup automatico del DB e' pianificato come segue:" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,bkp_dir:0 |
|||
msgid "Backup Directory" |
|||
msgstr "Backup Directory" |
|||
|
|||
#. module: auto_backup |
|||
#: model:email.template,subject:auto_backup.email_template_autobackup_error_noificaiton |
|||
msgid "Backup from ${object.host} - (${object.sftpip}) failed" |
|||
msgstr "Backup da ${object.host} - (${object.sftpip}) fallito" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_tree |
|||
msgid "Backups" |
|||
msgstr "Backups" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,daystokeepsftp:0 |
|||
msgid "Choose after how many days the backup should be deleted from the FTP server. For example:\n" |
|||
"If you fill in 5 the backups will be removed after 5 days from the FTP server." |
|||
msgstr "Scegliere dopo quanti giorni si possa condsiderare da eliminare, un Backup nel server FTP. Per esempio:\n" |
|||
"se si imposta 5 i files di backups piu' vecchi di 5 giorni saranno eliminati dal server FTP" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,daystokeep:0 |
|||
msgid "Scegliere dopo quanti giorni si possa condsiderare da eliminare un Backup. For example:\n" |
|||
"If you fill in 5 the backups will be removed after 5 days." |
|||
msgstr "Choose after how many days the backup should be deleted. For example:\n" |
|||
"se si imposta 5 i files di backups piu' vecchi di 5 giorni saranno eliminati." |
|||
|
|||
#. module: auto_backup |
|||
#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form |
|||
#: model:ir.ui.menu,name:auto_backup.backup_conf_menu |
|||
msgid "Configure Backup" |
|||
msgstr "Configura Backup" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:202 |
|||
#, python-format |
|||
msgid "Connection Test Failed!" |
|||
msgstr "Test connessione Fallito!" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:198 |
|||
#, python-format |
|||
msgid "Connection Test Succeeded!" |
|||
msgstr "Test connessione avvenuto con successo!" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:241 |
|||
#, python-format |
|||
msgid "Couldn't backup database %s. Bad database administratorpassword for server running at http://%s:%s" |
|||
msgstr "Impossibile eseguire il backup di %s. DB password erraata per il server http://%s:%s" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Created by" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Created on" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,name:0 |
|||
msgid "Database" |
|||
msgstr "Database" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,name:0 |
|||
msgid "Database you want to schedule backups for" |
|||
msgstr "Database you want to schedule backups for" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,emailtonotify:0 |
|||
#: field:db.backup,lasterrorlog:0 |
|||
msgid "E-mail to notify" |
|||
msgstr "E-mail di notifica" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:176 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "Errore" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:176 |
|||
#, python-format |
|||
msgid "Error ! No such database exists!" |
|||
msgstr "Errore ! Il DB non esiste!" |
|||
|
|||
#. module: auto_backup |
|||
#: code:addons/auto_backup/model/backup_scheduler.py:199 |
|||
#, python-format |
|||
msgid "Everything seems properly set up for FTP back-ups!" |
|||
msgstr "Tutto sembra impostato correttamente per il back-up FTP!" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,emailtonotify:0 |
|||
#: help:db.backup,lasterrorlog:0 |
|||
msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." |
|||
msgstr "Compilare l'e -mail in cui si desidera essere avvisati,se il backup FTP fallisce." |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "For example: /odoo/backups/" |
|||
msgstr "Es.: /odoo/backups/" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Go to Settings / Technical / Automation / Scheduled Actions." |
|||
msgstr "Anadare in Settings / Technical / Automation / Scheduled Actions." |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Help" |
|||
msgstr "Aiuto" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,host:0 |
|||
msgid "Host" |
|||
msgstr "Host" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sftpip:0 |
|||
msgid "IP Address SFTP Server" |
|||
msgstr "IP Address SFTP Server" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sendmailsftpfail:0 |
|||
msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." |
|||
msgstr "Se si seleziona questa opzione è possibile scegliere di essere notificati automaticamente via e-mail quando il backup al server esterno fallisce ." |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,autoremove:0 |
|||
msgid "If you check this option you can choose to automaticly remove the backup after xx days" |
|||
msgstr "Se si seleziona questa opzione è possibile scegliere di rimuovere automaticamente il backup dopo xx giorni" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sftpwrite:0 |
|||
msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." |
|||
msgstr "Se si seleziona questa opzione è possibile specificare i dettagli necessari per scrivere a un server remoto con SFTP ." |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Last Updated by" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Last Updated on" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Local backup configuration" |
|||
msgstr "Configurazione backup locale" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sftppassword:0 |
|||
msgid "Password User SFTP Server" |
|||
msgstr "Password utene SFTP Server" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sftppath:0 |
|||
msgid "Path external server" |
|||
msgstr "Path server esterno" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,port:0 |
|||
msgid "Port" |
|||
msgstr "Porta" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,daystokeepsftp:0 |
|||
msgid "Remove SFTP after x days" |
|||
msgstr "Rimuovi backup da SFTP dopo x giorni" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,daystokeep:0 |
|||
msgid "Remove after x days" |
|||
msgstr "Rimuovi dopo x giorni" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "SFTP" |
|||
msgstr "SFTP" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sftpport:0 |
|||
msgid "SFTP Port" |
|||
msgstr "Porta SFTP" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_search |
|||
msgid "Search options" |
|||
msgstr "Search options" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Search the action named 'Backup scheduler'." |
|||
msgstr "Cerca l'azione denominata ' di pianificazione del backup ' ." |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Set the scheduler to active and fill in how often you want backups generated." |
|||
msgstr "Impostare lo scheduler per attivare e compilare la frequenza con cui si desidera generare il backup." |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Test" |
|||
msgstr "Test" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Test SFTP Connection" |
|||
msgstr "Test SFTP Connection" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sftpip:0 |
|||
msgid "The IP address from your remote server. For example 192.168.0.1" |
|||
msgstr "Indirizzo IP server remoto. Es. 192.168.0.1" |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sftppath:0 |
|||
msgid "The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" |
|||
"Files will then be written to /odoo/backups/ on your remote server." |
|||
msgstr "La posizione della cartella in cui i dumps devono essere scritti. Es. /odoo/backups/.\n" |
|||
"i files verranno scritti su /odoo/backups/ nel server remoto." |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sftppassword:0 |
|||
msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." |
|||
msgstr "La password dell'utente con cui la connessione SFTP deve essere fatta. Questa è la password dall'utente sul server esterno ." |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sftpport:0 |
|||
msgid "The port on the FTP server that accepts SSH/SFTP calls." |
|||
msgstr "La porta sul server FTP che accetta chiamate SSH / SFTP." |
|||
|
|||
#. module: auto_backup |
|||
#: help:db.backup,sftpusername:0 |
|||
msgid "The username where the SFTP connection should be made with. This is the user on the external server." |
|||
msgstr "Il nome utente in cui la connessione SFTP dovrebbe essere fatto con . Questo è l'utente sul server esterno." |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." |
|||
msgstr "pianificazione per il backup automatico del database in esecuzione su dato host /porta ad intervalli regolari." |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Use SFTP with caution! This writes files to external servers under the path you specify." |
|||
msgstr "Usare SFTP con cautela ! Questo scrive file su server esterni nel percorso specificato " |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sftpusername:0 |
|||
msgid "Username SFTP Server" |
|||
msgstr "Username SFTP Server" |
|||
|
|||
#. module: auto_backup |
|||
#: view:db.backup:auto_backup.view_backup_conf_form |
|||
msgid "Warning:" |
|||
msgstr "Warning:" |
|||
|
|||
#. module: auto_backup |
|||
#: field:db.backup,sftpwrite:0 |
|||
msgid "Write to external server with sftp" |
|||
msgstr "Salva il backup anche su server FTP esterno" |
|||
|
@ -0,0 +1,2 @@ |
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink |
|||
access_db_backup,access_db_backup,model_db_backup,,1,0,0,0 |
@ -0,0 +1,22 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Copyright 2015 Agile Business Group <http://www.agilebg.com> |
|||
# Copyright (C) 2015 Alessio Gerace <alesiso.gerace@agilebg.com> |
|||
# |
|||
# This program is free software: you can redistribute it and/or modify |
|||
# it under the terms of the GNU Affero General Public License as published |
|||
# by the Free Software Foundation, either version 3 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
from . import test_auto_backup |
@ -0,0 +1,64 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Copyright 2015 Agile Business Group <http://www.agilebg.com> |
|||
# Copyright (C) 2015 Alessio Gerace <alesiso.gerace@agilebg.com> |
|||
# |
|||
# This program is free software: you can redistribute it and/or modify |
|||
# it under the terms of the GNU Affero General Public License as |
|||
# published by the Free Software Foundation, either version 3 of the |
|||
# License, or (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
import base64 |
|||
from openerp.tests import common |
|||
from openerp.exceptions import except_orm, Warning |
|||
from openerp.modules.module import get_module_resource |
|||
import os |
|||
import time |
|||
from datetime import datetime, date, timedelta |
|||
|
|||
class TestsAutoBackup(common.TransactionCase): |
|||
|
|||
def setUp(self): |
|||
super(TestsAutoBackup, self).setUp() |
|||
self.abk_model = self.env["db.backup"] |
|||
self.cron_model = self.env["ir.cron"] |
|||
|
|||
|
|||
def test_0(self): |
|||
with self.assertRaises(except_orm): |
|||
self.abk_model.create({'name': 'abcd'}) |
|||
|
|||
def test_1(self): |
|||
this = self.abk_model.create( |
|||
{ |
|||
'bkp_dir': '/tmp' |
|||
} |
|||
) |
|||
self.assertEqual(this.host, 'localhost') |
|||
cronbk = self.cron_model.search([('name', '=', 'Backup scheduler')]) |
|||
import pdb;pdb.set_trace() |
|||
cronbk.write( |
|||
{ |
|||
'active': True, |
|||
'doall': True |
|||
} |
|||
) |
|||
filetime = ( |
|||
datetime.now() + timedelta(minutes=1) |
|||
).strftime('%d_%m_%Y_%H_%M_%S') |
|||
|
|||
bkp_file = '%s_%s.dimp.zip' % ( |
|||
filetime, this.name) |
|||
file_path = os.path.join(this.bkp_dir, bkp_file) |
|||
self.assertEqual(os.path.isfile(file_path), True) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue