On Feb 24, 6:38 pm, Anthony <[email protected]> wrote:
> On Friday, February 24, 2012 12:24:03 PM UTC-5, JaapP wrote:
>
> > Hi Wikus,
>
> > Thanks a lot!
> > Adding a db.commit() after an insert causes the database to be updated.
>
> The db.commit() shouldn't be needed. Can you show some code?
>
> Anthony
This is an extract of the code that's working now thanks to the
db.commit() :
Controller:
from applications.Charon.modules.toolbox import *
@auth.requires_login()
def verbinden():
deviceservice = db.deviceservices(request.args(0))
ipaddress = deviceservice.ipaddress
query = db((db.deviceservices.id == request.args(0))\
& (db.deviceservices.client_id == db.clients.id)\
& (db.deviceservices.servicetype_id == db.services.id)
\
).select().first()
protocol = query.services.type
klantnummer = query.clients.number
verbinding =
SmartFindConnection(klantnummer=klantnummer,db=db,deviceservice=deviceservice,request_user=auth.user_id)
...
...
...
modules/toolbox.py:
class SmartFindConnection(object):
def __init__(self,klantnummer,db,deviceservice,request_user):
self._pdcred = db( (db.deviceservices.devicename ==
'KJHLKJHLH')&
(db.clients.name == 'IUYIUYI')
).select(db.deviceservices.ALL).first()
self.request_user = request_user
self.pd_user =
TempUser(self._pdcred.ipaddress,self._pdcred.port,'root',self._pdcred.rootpassword)
self.pd_user.useradd()
# tijdelijke proxydoei gebruiker aanmaken
self._log_session(db=db,deviceservice=self._pdcred)
self._klant = db((db.deviceservices.client_id==db.clients.id)&
(db.clients.number==klantnummer)&
(db.services.type=='SSH')&
(db.deviceservices.devicename.like('%V01%'))
).select(db.deviceservices.ALL).first()
...
...
...
def _log_session(self,db,deviceservice):
db.sessions.insert( client_id = deviceservice.client_id,
user_id = self.request_user,
deviceservice_id=deviceservice.id,
state='Active',
username=self.pd_user.temp_username,
creation_date=datetime.datetime.now() )
db.commit()
...
...
...