Michael Bayer wrote:
>> INFO:sqlalchemy.engine.base.Engine.0x...dbd4:{'OS_version': u'RHEL 5
>> 64
>> ZSERIES', 'id': 8L}
>> INFO:sqlalchemy.engine.base.Engine.0x...dbd4:select
>> nextval('"os_version_id_seq"')
>> INFO:sqlalchemy.engine.base.Engine.0x...dbd4:None
>
>
> there seems to be rows inserted there.
Except when I browse the database (using external tool, phpPGAdmin),
those tables, incl. 'os_version', are empty.
> this email doesn't seem to
> describe anything actually going wrong except "doesn't work". can you
> be more specific please ?
OK I'll try though I'm not sure how, because some tables are just empty,
anyway here's more detailed version:
tables empty: architecture, hosts, os_kind, os_version, reservation
(although that can be empty, the converter utility I've been running
here does not add any data to that table), reservation_hosts (the same,
it should be empty), table locks(empty as well), virtualization (empty,
while it should be filled by converter)
tables with some data: email, hwrep, project, project_hwreps
Entire sqla programming:
#####################################################
import codecs
from sqlalchemy import create_engine, Table, Column, String, Integer,
MetaData, ForeignKey, desc, asc
from sqlalchemy.orm import mapper, relation, sessionmaker,
clear_mappers, join
from sqlalchemy.databases.sqlite import SLBoolean, SLDate
import sqlalchemy
import sqlalchemy.exc
import logging
import os
import ConfigParser
globalpath = os.path.dirname(__file__)
conf = ConfigParser.SafeConfigParser()
conf.read(globalpath + os.sep + 'status.conf')
postgresdbname=conf.get('main','postgresdbname')
postgreshost=conf.get('main','postgreshost')
postgresuser=conf.get('main', 'postgresuser')
postgrespassword=conf.get('main','postgrespassword')
postgresport=conf.get('main','postgresport')
class Host(object):
def
__init__(self,IP,HostName,Location,Additional_info,Column_11,Column_12,Username,Password,Alias,Shareable,Shareable_between_projects,Notes,CPU,RAM,Column_23,Batch,ASSET,Owner,SSH_KEY_PRESENT,Machine_Type_Model,MAC_ADDRESS_ETH_0,Physical_Box,Up_n_running,Available):
self.IP = IP
self.HostName = HostName
self.Location = Location
self.Additional_info = Additional_info
#self.End_Date = End_Date
self.Column_11 = Column_11
self.Column_12 = Column_12
self.Username = Username
self.Password = Password
self.Alias = Alias
self.Shareable = Shareable
self.Shareable_between_projects = Shareable_between_projects
self.Notes = Notes
self.CPU = CPU
self.RAM = RAM
self.Batch = Batch
self.ASSET = ASSET
self.Owner = Owner
self.SSH_KEY_PRESENT = SSH_KEY_PRESENT
self.Machine_Type_Model = Machine_Type_Model
self.MAC_ADDRESS_ETH_0 = MAC_ADDRESS_ETH_0
self.Physical_Box = Physical_Box
self.Up_n_running = Up_n_running
self.Available = Available
class Architecture(object):
def __init__(self,Architecture):
self.Architecture = Architecture
class OS_Kind(object):
def __init__(self,os_kind):
self.OS_Kind = os_kind
class OS_version(object):
def __init__(self,os_version):
self.OS_version = os_version
class Email(object):
def __init__(self,email):
self.Email = email
class Virtualization(object):
def __init__(self,virtualization, color):
self.Virtualization = virtualization
self.color = color
class Project(object):
def __init__(self, project):
self.Project = project
class HWRep(object):
def __init__(self, hwrepname):
self.HWRep = hwrepname
class Reservation(object):
def __init__(self, startdate, enddate, status, businessneed,
notetohwrep):
self.Start_Date = startdate
self.End_Date = enddate
self.Status = status
self.Businessneed = businessneed
self.Notetohwrep = notetohwrep
#eng = create_engine('sqlite:////' + globalpath + os.sep +
'hosts.db',echo=True)
eng = create_engine('postgres://%s:%...@%s:%s/%s' % (postgresuser,
postgrespassword, postgreshost, postgresport, postgresdbname), echo=True)
md = MetaData()
md.bind = eng
#clear_mappers()
hosts_table = Table('hosts',md,
Column('id',Integer,primary_key=True),
Column('IP',String),
Column('HostName',String),
Column('Location',String),
Column('Architecture_id',Integer,ForeignKey('architecture.id')),
Column('OS_Kind_id',Integer,ForeignKey('os_kind.id')),
Column('OS_version_id',Integer,ForeignKey('os_version.id')),
Column('Additional_info',String),
#Column('End_Date',SLDate),
Column('Column_12',String),
Column('Column_13',String),
Column('Email_id',Integer,ForeignKey('email.id')),
Column('Username',String),
Column('Password',String),
Column('Alias',String),
Column('Virtualization_id',Integer,ForeignKey('virtualization.id')),
Column('Shareable',SLBoolean),
Column('Shareable_between_projects',SLBoolean),
Column('Notes',String),
Column('CPU',String),
Column('RAM',String),
Column('Column_24',String),
Column('Batch',String),
Column('ASSET',String),
Column('Owner',String),
Column('SSH_KEY_PRESENT',String),
Column('Machine_Type_Model',String),
Column('MAC_ADDRESS_ETH_0',String),
Column('Physical_Box',SLBoolean),
Column('Up_n_running',SLBoolean),
Column('Available',SLBoolean),
Column('Earliest_reservation_id',Integer),
Column('Earliest_reservation_start_date',SLDate),
Column('Earliest_reservation_end_date',SLDate),
Column('Earliest_reservation_status',String),
Column('Earliest_reservation_businessneed',String),
Column('Project_id',Integer,ForeignKey('project.id')))
# for col in columnlist:
# hosts_table = hosts_table + "Column('%s',String)," % col
# hosts_table = hosts_table.rstrip(',') + ')'
# exec(hosts_table)
architecture_table = Table('architecture',md,
Column('id',Integer,primary_key=True),
Column('Architecture',String))
os_kind_table = Table('os_kind',md,
Column('id',Integer,primary_key=True),
Column('OS_Kind',String))
os_version_table = Table('os_version',md,
Column('id',Integer,primary_key=True),
Column('OS_version',String))
email_table = Table('email',md,
Column('id',Integer,primary_key=True),
Column('Email',String))
virtualization_table = Table('virtualization',md,
Column('id',Integer,primary_key=True),
Column('Virtualization',String),
Column('color',String))
project_table = Table('project',md,
Column('id',Integer,primary_key=True),
Column('Project',String))
hwrep_table = Table('hwrep',md,
Column('id',Integer,primary_key=True),
Column('HWRep',String),
Column('Email_id',Integer,ForeignKey('email.id')),
Column('Password',String))
# project <-> hwrep many-to-many association table
project_hwreps_assoc_table = Table('project_hwreps', md,
Column('Project_id',Integer,ForeignKey('project.id')),
Column('HWRep_id',Integer,ForeignKey('hwrep.id')))
reservation_table = Table('reservation', md,
Column('id',Integer,primary_key=True),
Column('Start_Date',SLDate),
Column('End_Date',SLDate),
Column('Status', String),
Column('Businessneed', String),
Column('Notetohwrep',String),
Column('Email_id',Integer,ForeignKey('email.id')),
Column('Project_id',Integer,ForeignKey('project.id'))
)
reservation_hosts_assoc_table = Table('reservation_hosts', md,
Column('Reservation_id',Integer,ForeignKey('reservation.id')),
Column('Host_id',Integer,ForeignKey('hosts.id'))
)
tablelocks_table = Table('tablelocks', md,
Column('tablename', String, primary_key=True))
mapper(Virtualization, virtualization_table)
mapper(Email,email_table)
mapper(OS_version, os_version_table)
mapper(Architecture, architecture_table)
mapper(OS_Kind, os_kind_table)
mapper(Project, project_table, properties={'HWReps':relation(HWRep,
secondary=project_hwreps_assoc_table, backref='project')})
mapper(HWRep, hwrep_table, properties={'Projects':relation(Project,
secondary=project_hwreps_assoc_table, backref='hwrep'),
'Email':relation(Email, order_by=Email.id, backref='hwrep')})
mapper(Reservation, reservation_table,
properties={'Email':relation(Email,order_by=Email.id,backref='reservation'),
'Project':relation(Project, order_by=Project.id, backref='reservation'),
'Hosts':relation(Host, secondary=reservation_hosts_assoc_table,
backref='reservation')})
mapper(Host, hosts_table,
properties={'Architecture':relation(Architecture,
order_by=Architecture.id, backref='hosts'),
'OS_Kind':relation(OS_Kind, order_by=OS_Kind.id, backref='hosts'),
'OS_version':relation(OS_version, order_by=OS_version.id,
backref='hosts'), 'Email':relation(Email, order_by=Email.id,
backref='hosts'), 'Virtualization':relation(Virtualization,
order_by=Virtualization.id, backref='hosts'),
'Project':relation(Project, order_by=Project.id, backref='hosts'),
'Reservations':relation(Reservation,
secondary=reservation_hosts_assoc_table, backref='hosts')
})
Session=sessionmaker(bind=eng)
session=Session()
logging.basicConfig(filename=globalpath + os.sep + 'sql.log')
logging.getLogger('sqlalchemy.engine').setLevel(logging.DEBUG)
logging.getLogger('sqlalchemy.orm.unitofwork').setLevel(logging.DEBUG)
#####################################################
The log shows this:
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#999999',
'Virtualization': u'LPAR', 'id': 18L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#FAFAFA',
'Virtualization': u'BOX ZONE HOST', 'id': 19L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#9966CC',
'Virtualization': u'NPAR', 'id': 20L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#9966CC',
'Virtualization': u'VPAR', 'id': 21L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#CC99FF',
'Virtualization': u'IVM GUEST', 'id': 22L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#FAFAFA',
'Virtualization': u'BOX MSVS HOST', 'id': 23L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#FAFAFA',
'Virtualization': u'LDOM ZONE HOST', 'id': 24L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#FAFAFA',
'Virtualization': u'BOX ESX HOST', 'id': 25L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#656565',
'Virtualization': u'WPAR', 'id': 26L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#FAFAFA',
'Virtualization': u'BOX VMWARE HOST', 'id': 27L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#FAFAFA',
'Virtualization': u'OTHER', 'id': 28L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#0066CC',
'Virtualization': u'VMWARE GUEST', 'id': 29L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#3399FF',
'Virtualization': u'ESX GUEST', 'id': 30L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
INFO:sqlalchemy.engine.base.Engine.0x...97f4:INSERT INTO virtualization
(id, "Virtualization", color) VALUES (%(id)s, %(Virtualization)s, %(color)s)
INFO:sqlalchemy.engine.base.Engine.0x...97f4:{'color': '#CC9933',
'Virtualization': u'ZONE GUEST', 'id': 31L}
INFO:sqlalchemy.engine.base.Engine.0x...97f4:select
nextval('"virtualization_id_seq"')
INFO:sqlalchemy.engine.base.Engine.0x...97f4:None
Even though this log shows what it shows, the 'virtualization' table is
completely empty. I have rechecked this again, using psql this time:
postgres=# \c reservations
You are now connected to database "reservations".
reservations=# select * from virtualization;
id | Virtualization | color
----+----------------+-------
(0 rows)
Perhaps this is a problem specific to RH bundled Postgres 8.1 ???
Regards,
mk
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---