summaryrefslogtreecommitdiffstats
path: root/lib/sunhpc/db/alchemy-bak/mappings/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sunhpc/db/alchemy-bak/mappings/base.py')
-rw-r--r--lib/sunhpc/db/alchemy-bak/mappings/base.py219
1 files changed, 219 insertions, 0 deletions
diff --git a/lib/sunhpc/db/alchemy-bak/mappings/base.py b/lib/sunhpc/db/alchemy-bak/mappings/base.py
new file mode 100644
index 0000000..0191b06
--- /dev/null
+++ b/lib/sunhpc/db/alchemy-bak/mappings/base.py
@@ -0,0 +1,219 @@
+#coding:utf-8
+import sqlalchemy.ext.declarative
+import sqlalchemy.orm
+from sqlalchemy import *
+
+Base = sqlalchemy.ext.declarative.declarative_base()
+
+class SunhpcBase(object):
+ """Additional base class of Sunhpc ORM hierarchy which includes some
+ helper methods for all classes"""
+
+ @property
+ def session(self):
+ """Singelton which return the session of the object"""
+ return sqlalchemy.orm.session.object_session(self)
+
+
+ def delete(self):
+ """instance method to autodelete the instance which calls it
+
+ so you can use
+ node.delete()"""
+ self.session.delete(self)
+
+ @classmethod
+ def loadOne(cls, session, **kwargs):
+ """ """
+ return cls.load(session, **kwargs).one()
+
+ @classmethod
+ def load(cls, session, **kwargs):
+ """
+ this method allow us to run query on all the mapping objects
+ simply using
+
+ e.g.::
+
+ node = Nodes.load(session, Name='compute-0-0', Cpus=2)
+ nic = Network.load(session, Name='compute-0-0', Interface='eth0')
+
+ taken from:
+ http://petrushev.wordpress.com/2010/06/22/sqlalchemy-base-model/
+ """
+ q = session.query(cls)
+ filters = [getattr(cls, field_name)==kwargs[field_name] \
+ for field_name in kwargs]
+ return q.filter(and_(*filters))
+
+class Node(SunhpcBase, Base):
+ __tablename__ = 'nodes'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ name = Column('Name', String(128))
+ cpus = Column('CPUs', Integer, nullable=False, default=1)
+ rack = Column('Rack', Integer)
+ rank = Column('Rank', Integer)
+ arch = Column('Arch', String(32))
+ os = Column('OS', Enum(u'linux', u'sunos'), nullable=False, default=u'linux')
+ alias = Column('Alias', String(128), default='')
+ flags = Column('Flags', String(128), default='')
+ status = Column('Status', String(128), default='os')
+
+ networks = sqlalchemy.orm.relationship("Network", backref="nodes")
+ public_keys = sqlalchemy.orm.relationship("PublicKey", backref="nodes")
+
+ def __repr__(self):
+ return "<Node(name='%s')>" % (self.name)
+
+class Network(SunhpcBase, Base):
+ __tablename__ = 'networks'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ node = Column('Node', Integer, ForeignKey('nodes.ID'))
+ mac = Column('MAC', String(64))
+ ip = Column('IP', String(32))
+ name = Column('Name', String(128))
+ device = Column('Device', String(32))
+ subnet = Column('Subnet', Integer, ForeignKey('subnets.ID'))
+
+class Subnet(SunhpcBase, Base):
+ __tablename__ = 'subnets'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ name = Column('name', String(32), nullable=False, unique=True)
+ dnszone = Column('dnszone', String(64), nullable=False, unique=True)
+ subnet = Column('subnet', String(32), nullable=False)
+ netmask = Column('netmask', String(32), nullable=False)
+ mtu = Column('mtu', Integer, default=1500)
+ servedns = Column('servedns', Boolean, default=False)
+
+ networks = sqlalchemy.orm.relationship("Network", backref="subnets")
+
+class GlobalRoute(SunhpcBase, Base):
+ __tablename__ = 'globalroutes'
+ __table_args__ = {}
+
+ #column definitions
+ gateway = Column('Gateway', String(32), nullable=False)
+ netmask = Column('Netmask', String(32), primary_key=True, nullable=False)
+ network = Column('Network', String(32), primary_key=True, nullable=False)
+ subnet = Column('Subnet', Integer, ForeignKey('subnets.ID'))
+
+class PublicKey(SunhpcBase, Base):
+ __tablename__ = 'publickeys'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ node = Column('Node', Integer, ForeignKey('nodes.ID'), nullable=False)
+ public_key = Column('Public_Key', String(4096))
+ description = Column('Description', String(4096))
+
+class SecNode(SunhpcBase, Base):
+ __tablename__ = 'secnodes'
+ __table_args__ = {}
+
+ #column definitions
+ attr = Column('Attr', String(128), primary_key=True, nullable=False)
+ enc = Column('Enc', String(64))
+ node = Column('Node', Integer, primary_key=True, nullable=False)
+ value = Column('Value', TEXT())
+
+class Attribute(SunhpcBase, Base):
+ __tablename__ = 'attributes'
+ __table_args__ = {}
+
+ #column definitions
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ attr = Column('Attr', String(128), nullable=False)
+ value = Column('Value', TEXT())
+ shadow = Column('Shadow', TEXT())
+ node = Column('Node', Integer, ForeignKey('nodes.ID'), nullable=False)
+
+class Firewall(SunhpcBase, Base):
+ __tablename__ = 'firewalls'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ rulename = Column('Rulename', String(128), nullable=False)
+ service = Column('Service', String(256))
+ protocol = Column('Protocol', String(256))
+ ports = Column('Flags', String(256))
+ action = Column('Action', String(256))
+ comment = Column('Comment', String(256))
+ node = Column('Node', Integer, ForeignKey('nodes.ID'), nullable=False)
+
+class Roll(SunhpcBase, Base):
+ __tablename__ = 'rolls'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ name = Column('Name', String(128), nullable=False)
+ version = Column('Version', String(32), nullable=False)
+ arch = Column('Arch', String(32), nullable=False)
+ os = Column('OS', nullable=False, default=u'linux')
+ enabled = Column('Enabled', Enum(u'yes', u'no'), nullable=False, default=u'yes')
+
+class Bootaction(SunhpcBase, Base):
+ __tablename__ = 'bootactions'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ action = Column('Action', String(256))
+ kernel = Column('Kernel', String(256))
+ ramdisk = Column('Ramdisk', String(256))
+ args = Column('Args', String(1024))
+
+class Distribution(SunhpcBase, Base):
+ __tablename__ = 'distributions'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ name = Column('Name', String(32), nullable=False, default='')
+ os = Column('OS', String(32), nullable=False, default='')
+ Release = Column('Release', String(32), nullable=False, default='')
+
+class SecGlobal(SunhpcBase, Base):
+ __tablename__ = 'secglobals'
+ __table_args__ = {}
+
+ attr = Column('Attr', String(128), primary_key=True, nullable=False)
+ enc = Column('Enc', String(64))
+ value = Column('Value', TEXT())
+
+
+class Partition(SunhpcBase, Base):
+ __tablename__ = 'partitions'
+ __table_args__ = {}
+
+ device = Column('Device', String(128), nullable=False)
+ formatFlags = Column('FormatFlags', String(128), nullable=False)
+ fsType = Column('FsType', String(128), nullable=False)
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ mountpoint = Column('Mountpoint', String(128), nullable=False)
+ node = Column('Node', Integer, nullable=False)
+ partitionFlags = Column('PartitionFlags', String(128), nullable=False)
+ partitionID = Column('PartitionID', String(128), nullable=False)
+ partitionSize = Column('PartitionSize', String(128), nullable=False)
+ sectorStart = Column('SectorStart', String(128), nullable=False)
+
+class Machine(SunhpcBase, Base):
+ __tablename__ = 'machines'
+ __table_args__ = {}
+
+ ID = Column('ID', Integer, primary_key=True, nullable=False)
+ node = Column('Node', Integer, nullable=False)
+ name = Column('Name', String(128), nullable=False)
+ vender = Column('Vender', String(128), nullable=False)
+ serial = Column('Serial', String(128), nullable=False)
+ cpus = Column('CPUs', Integer, nullable=False, default=1)
+ core = Column('Cores', Integer, nullable=False)
+ model = Column('Model', String(256), nullable=False)
+ memnumber = Column('MemNumber', Integer, nullable=False, default=1)
+ memsize = Column('MemSize', String(128), nullable=False)
+
+
+