Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
5963 Vues

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
Ignorer
Meilleure réponse

@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
Ignorer
Publications associées Réponses Vues Activité
1
nov. 16
4258
0
juil. 21
3715
1
févr. 16
4050
2
oct. 24
1314
2
avr. 24
1269