Skip to Content
Menu
This question has been flagged
1 Odpoveď
6129 Zobrazenia

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?


Avatar
Zrušiť
Best Answer

@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

Avatar
Zrušiť
Related Posts Replies Zobrazenia Aktivita
1
nov 16
4411
0
júl 21
3872
1
feb 16
4171
2
okt 24
1519
2
apr 24
1417