Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
6112 Widoki

I'm developing a module that uploads specific files via ssh to specific server based on customer creation:

   

class ResPartner(models.Model):
    _name = 'res.partner'
    _inherit = 'res.partner'

    @api.model
    def create(self, vals):
        if vals:
            testfile=open("/tmp/diegotexting.txt", "w")
            testfile.write("Hi, testing odoo 9 ")
            ssh = paramiko.SSHClient() 
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect("foo.org", username="foo", password="foo")
            sftp = ssh.open_sftp()
            sftp.put("/tmp/diegotexting.txt", "/tmp/diegotexting.txt")
            sftp.close()
            ssh.close()
        return super(ResPartner, self).create(vals)



It does upload the file in server "foo.org", the problem is that when I open it, it's blank.

I have tested the upload script outside of odoo enviroment and works well(it doesn't show a blank file).

Does anyone know what could be wrong?


Awatar
Odrzuć
Najlepsza odpowiedź

@Diego, the problem is probably that the file is still open when you start the upload. The open method will create an empty file, but the write method will only cache the string you want to write to the file. To make sure all the cached information are written to the file you can either use the flush or even better the close method.

testfile=open("/tmp/diegotexting.txt", "w")
testfile.write("Hi, testing odoo 9 ")
testfile.close()

Best regards

Yvan

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
lis 16
4397
0
lip 21
3864
1
lut 16
4167
2
paź 24
1497
2
kwi 24
1403