On Wednesday, 28 March 2012 22:58:31 UTC-5, Gwayne aka Mike Veltman
wrote:
Gentle people,
I have the following grid:
query = ( (db.lvdisksetup.lvgroupname_id == usedlvdisksetup) &
(db.lvgroupname.id <http://db.lvgroupname.id> == usedlvdisksetup)
& (db.lvdisksetup.lvdisk_id == db.lvdisk.id <http://db.lvdisk.id>) )
fields = [db.lvdisksetup.id <http://db.lvdisksetup.id>,
db.lvgroupname.lvgroupnamedesc , db.lvdisk.lvdiskdesc,
db.lvdisksetup.lunid]
form = SQLFORM.grid(query,
fields=fields,
orderby=['lvdisksetup.lunid'],
csv=False,
create = False,
maxtextlength=45
)
I want to manipulate db.lvdisksetup but in stead it manipulates
db.lvdisk :-)
What causes havoc by deleting essential table data :)
Part of the db models :)
# All the LV sizes will be collected in here in bytes, like 30GB,
10GB, 2GB etc
db.define_table('lvsize',
Field('sizename', type='string',
unique=True,
label=T('Lun Size')),
Field('size', type='string',
label=T('LV Size in bytes')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# The LV Disk groups
db.define_table('lvgroupname',
Field('lvgroupnamedesc', type='string',
unique=True,
label=T('LV Disk Groupname ')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# Table rules
db.lvgroupname.lvgroupnamedesc.requires = IS_NOT_EMPTY()
# Logical volume on storage
db.define_table('lvdisk',
Field('lvdiskdesc', type='string',
unique=True,
label=T('LV Disk description ')),
Field('lvsize_id', db.lvsize,
default=2,
label=T('Size ID')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# Table rules
db.lvdisk.lvsize_id.requires = IS_IN_DB(db, 'lvsize.id
<http://lvsize.id>', 'lvsize.sizename')
db.lvdisk.lvdiskdesc.requires = IS_NOT_EMPTY()
# lvdisksetup
db.define_table('lvdisksetup',
Field('lvdisk_id', db.lvdisk,
default=1,
label=T('Logical volume to be added')),
Field('lvgroupname_id', db.lvgroupname,
default=1,
label=T('Member of Logical volume group name')),
Field('lunid', type='integer',
default=2,
label=T('Lun ID')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# Table rules
db.lvdisksetup.lvdisk_id.requires = IS_IN_DB(db, 'lvdisk.id
<http://lvdisk.id>', 'lvdisk.lvdiskdesc')
db.lvdisksetup.lvgroupname_id.requires = IS_IN_DB(db,
'lvgroupname.id <http://lvgroupname.id>',
'lvgroupname.lvgroupnamedesc')
# hbahostgroupsetup (to add the right disks to a hba or a hostgroup)
db.define_table('hbahostgroupsetup',
Field('hbahgdesc', type='string',
label=T('LV Disk setup Description ')),
Field('lvgroupname_id', db.lvgroupname,
default=1,
label=T('LV Disk')),
Field('mapping_id', db.storagemap,
default=1,
label=T('HBA or Hostgroup mapping')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# Table rules
db.hbahostgroupsetup.lvgroupname_id.requires = IS_IN_DB(db,
'lvgroupname.id <http://lvgroupname.id>', 'lvdisk.lvgroupnamedesc')
db.hbahostgroupsetup.mapping_id.requires = IS_IN_DB(db,
'storagemap.id <http://storagemap.id>', 'storagemap.mapping')
db.hbahostgroupsetup.hbahgdesc.requires = IS_NOT_EMPTY()
# disksetupname (to make it possible to have the same lv setup for
different class setups)
db.define_table('disksetupname',
Field('disksetupnamedesc', type='string',
label=T('LV Disk group selection description ')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# Table rules
db.disksetupname.disksetupnamedesc.requires = IS_NOT_EMPTY()
# hbahggroup
db.define_table('hbahggroup',
Field('hbahostgroupsetup_id', db.hbahostgroupsetup,
default=1,
label=T('LV on HBA or Hostgroup setup')),
Field('disksetupname_id', db.disksetupname,
default=1,
label=T('Member of Diskgroup')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
migrate=settings.migrate)
# Table rules
db.hbahggroup.hbahostgroupsetup_id.requires = IS_IN_DB(db,
'hbahostgroupsetup.id <http://hbahostgroupsetup.id>',
'hbahostgroupsetup.hbahgdesc')
db.hbahggroup.disksetupname_id.requires = IS_IN_DB(db,
'disksetupname.id <http://disksetupname.id>',
'disksetupname.disksetupnamedesc')