Gentle people,

I have the following grid:

query = ( (db.lvdisksetup.lvgroupname_id == usedlvdisksetup) & (db.lvgroupname.id == usedlvdisksetup) & (db.lvdisksetup.lvdisk_id == db.lvdisk.id) ) fields = [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', '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', 'lvdisk.lvdiskdesc') db.lvdisksetup.lvgroupname_id.requires = IS_IN_DB(db, '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', 'lvdisk.lvgroupnamedesc') db.hbahostgroupsetup.mapping_id.requires = IS_IN_DB(db, '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', 'hbahostgroupsetup.hbahgdesc') db.hbahggroup.disksetupname_id.requires = IS_IN_DB(db, 'disksetupname.id', 'disksetupname.disksetupnamedesc')

Reply via email to