class Update_change(Node_Base): __tablename__ = 'update_change' id = Column(db.Integer,primary_key=True, autoincrement=True) update_id=Column(db.String(255), db.ForeignKey('updates.update_id')) change_id= Column(db.String(255), db.ForeignKey('changes.change_id')) def __repr__(self): return "<Update_change(update_id='%s',change_id='%s')>" %(self.update_id,self.change_id)
class Groupalert(Node_Base): __tablename__ = 'groupalerts' group_id=Column(db.Integer,primary_key=True,autoincrement=True) group_name=Column(db.String(255)) group_desc=Column(db.Text) def __repr__(self): return "<Groupalert(group_id='%s',group_name='%s',group_desc='%s')>" %(self.group_id,self.group_name,self.group_desc)
class Threshold_list(Node_Base): __tablename__ = 'threshold_lists' id=Column(db.Integer,primary_key=True,autoincrement=True) description=Column(db.String(255)) thresholdobjects=relationship("Thresholdobject", back_populates="threshold_list") polldatatemplate=relationship("Polldatatemplate", back_populates="threshold_list") polleddatas=relationship("Polleddata", back_populates="threshold_list") def __repr__(self): return "<Threshold_list(id='%s',description='%s')>" %(self.id,self.description)
class Service_info_File_config(Node_Base): __tablename__ = 'service_info_file_config' id = Column(db.Integer, primary_key=True, autoincrement=True) service_id = Column(db.Integer, db.ForeignKey('service_infos.service_id')) file_config_id = Column(db.Integer, db.ForeignKey('file_configs.file_id')) def __repr__(self): return "<Service_info_File_config(service_id='%s',file_config_id='%s')>" % ( self.service_id, self.file_config_id)
class Node_role(Node_Base): __tablename__ = 'node_roles' id = Column(db.Integer, primary_key=True, autoincrement=True) role_name = Column(db.String(255)) node_id = Column(db.Integer, db.ForeignKey('nodes.node_id')) node = relationship("Node") def __repr__(self): return "<Node_role(role_name='%s',node_id='%s')>" % (self.role_name, self.node_id)
class User(Base): __tablename__ = 'users' id = Column(SmallInteger, primary_key=True, autoincrement=True) name = Column(String(255)) trades = relationship("Trade", back_populates="user") transactions: [] = relationship("Transaction", back_populates="user") follows: [] = relationship("Follow", back_populates="follower") def __init__(self, name): self.name = name
class Protocoldetail(Node_Base): __tablename__ = 'protocoldetails' protocolid = Column(db.Integer, primary_key=True, autoincrement=True) protocolname = Column(db.String(255)) metricdetails = relationship("Metricdetail", back_populates="protocoldetail") def __repr__(self): return "<Protocoldetail(protocolid='%s',protocolname='%s')>" % ( self.protocolid, self.protocolname)
class Comment(Base): id = Column(Integer, index=True, primary_key=True) author = Column(String(30), comment="昵称") content = Column(Text, comment="评论内容") post_id = Column(Integer, ForeignKey('post.id')) post = relationship('Post', back_populates='comments') replied_id = Column(Integer, ForeignKey('comment.id')) replied = relationship('Comment', back_populates='replies', remote_side=[id]) replies = relationship('Comment', back_populates='replied', cascade='all, delete-orphan')
class Update(Node_Base): __tablename__ = 'updates' update_id = Column(db.String(255),primary_key=True,default=generate_uuid) created_at=Column(db.DateTime) deleted_at= Column(db.DateTime) note=Column(db.Text) log=Column(db.Text) change=relationship('Update',secondary='update_change') def __repr__(self): return "<Update(update_id='%s',created_at='%s',deleted_at='%s',note='%s',log='%s')>" %(self.update_id,self.created_at,self.deleted_at,self.note,self.log)
class Groupdevicesdevicedetail(Node_Base): __tablename__ = 'groupdevicesdevicedetails' id = Column(db.Integer, primary_key=True, autoincrement=True) devicedetail_did = Column(db.Integer, db.ForeignKey('devicedetails.did')) groupdevice_id = Column(db.Integer, db.ForeignKey('groupdevices.group_id')) devicedetail = relationship("Devicedetail") groupdevice = relationship("Groupdevice") def __repr__(self): return "<Groupdevicesdevicedetail(id='%s',devicedetail_did='%s',groupdevice_id='%s')>" % ( self.id, self.devicedetail_did, self.groupdevice_id)
class Groupevicepolledatatemplate(Node_Base): __tablename__ = 'groupdevicepolledatatemplate' id=Column(db.Integer,primary_key=True,autoincrement=True) groupdevices_group_id=Column(db.Integer , db.ForeignKey('groupdevices.group_id')) polldatatemplate_id=Column(db.Integer , db.ForeignKey('polldatatemplate.id')) # groupdevice=relationship("Groupdevice") polldatatemplate=relationship("Polldatatemplate") def __repr__(self): return "<Groupevicepolledatatemplate(id='%s',groupdevices_group_id='%s',polldatatemplate_id='%s',groupdevice='%s',polldatatemplate='%s')>" %(self.id,self.groupdevices_group_id,self.polldatatemplate_id, self.groupdevice, self.polldatatemplate)
class Groupdevice(Node_Base): __tablename__ = 'groupdevices' group_id=Column(db.Integer,primary_key=True,autoincrement=True) group_name=Column(db.String(255)) group_desc=Column(db.Text) is_manual=Column(db.Integer) # groupdevicesdevicedetails=relationship("Groupdevicesdevicedetail", back_populates="groupdevice") polleddatas=relationship("Polleddata", back_populates="groupdevice") groupdevicepolledatatemplates=relationship("Groupevicepolledatatemplate", back_populates="groupdevice") def __repr__(self): return "<Groupdevice(group_id='%s',group_name='%s',group_desc='%s',is_manual='%s')>" %(self.group_id,self.group_name,self.group_desc,self.is_manual)
def addColumnView(request, boardId=None): if request.method == 'GET' and boardId is not None: # se il metodo e una GET e il board id non e di proprieta del user ritorna un notfound board = Board.objects.filter(pk=boardId, users=request.user) if not board.exists(): return HttpResponseNotFound(NOT_FOUND_PAGE) form = AddColumnForm(initial={ 'boardId': boardId, 'name': '' }) # preinserimento del board id nel form in un campo hidden elif request.method == 'POST': # se la richista e una post e il form e valido crea una nuova colonna user = User.objects.get(username=request.user.username) form = AddColumnForm(request.POST) form.setUser(user) if form.is_valid(): columnName = form.cleaned_data.get('columnname') boardId = form.cleaned_data.get('boardId') board = Board.objects.filter(users=request.user) newcolumn = Column(name=columnName, board=board.get(pk=boardId)) newcolumn.save() return redirect(board.get(pk=boardId).get_absolute_url()) elif '*not_found' in str( form.errors ): # se tra gli errori del form e presente un not_found error restituisce la rispettiva pagina return HttpResponseNotFound(NOT_FOUND_PAGE) else: boardId = form.cleaned_data.get('boardId') else: return HttpResponseNotFound(NOT_FOUND_PAGE) return render(request, 'addcolumn.html', { 'form': form, 'board': Board.objects.get(pk=boardId) })
class Deployment(Node_Base): __tablename__ = 'deployments' deployment_id = Column(db.Integer,primary_key=True, autoincrement=True) created_at=Column(db.DateTime) updated_at= Column(db.DateTime) finished_at=Column(db.DateTime) status=Column(db.String(255)) name=Column(db.String(255)) jsondata=Column(db.Text) log=Column(db.Text) result=Column(db.String(255)) progress=Column(db.String(255)) service_setups = relationship("Service_setup", back_populates="deployment") node=relationship("Node", uselist=False, back_populates="deployment") def __repr__(self): return "<Deployment(deployment_id='%s',created_at='%s',updated_at='%s',finished_at='%s',status='%s',name='%s',jsondata='%s',log='%s',result='%s',progress='%s')>" %(self.deployment_id,self.created_at,self.updated_at,self.finished_at,self.status,self.name,self.jsondata,self.log,self.result,self.progress)
class Service_info(Node_Base): __tablename__ = 'service_infos' service_id = Column(db.Integer, primary_key=True, autoincrement=True) service_type = Column(db.String(255)) service_status = Column(db.String(255)) tag = Column(db.String(255)) node_id = Column(db.Integer, db.ForeignKey('nodes.node_id')) node = relationship("Node") file_configs = relationship("File_config", secondary='service_info_file_config') def __repr__(self): return "<Service_info(service_id='%s',service_type='%s',service_status='%s',tag='%s',node_id='%s')>" % ( self.service_id, self.service_type, self.service_status, self.tag, self.node_id)
class Admin(Base): id = Column(Integer, primary_key=True, index=True) username = Column(String(20), comment="账号") password_hash = Column(String(128), comment="密码") blog_title = Column(String(60), comment="博客标题") blog_sub_title = Column(String(100), comment="博客子标题") name = Column(String(30), comment="作者名称") about = Column(Text, comment="关于")
def main(): # RUN FROM COMMAND LINE: python -c 'from builder import *; main()' monthly_xco2 = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200] monthly_uncertainty = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] xco2 = XCo2(monthly_xco2, monthly_uncertainty) column = Column(id(), 43.65, -79.38, xco2) neighbouringColumns = [column, column] place = generatePlace("Toronto", "Ontario", "CA", 43.65, -79.38, column, neighbouringColumns) generateJson([place])
class Polleddata(Node_Base): __tablename__ = 'polleddata' id=Column(db.Integer,primary_key=True,autoincrement=True) name=Column(db.String(255)) agent=Column(db.String(255)) period=Column(db.Integer) active=Column(db.Integer) threshold_activate=Column(db.Integer) devicedetails_did=Column(db.Integer , db.ForeignKey('devicedetails.did')) groupdevices_group_id=Column(db.Integer , db.ForeignKey('groupdevices.group_id')) threshold_lists_id=Column(db.Integer , db.ForeignKey('threshold_lists.id')) metricdetails_metricid=Column(db.Integer , db.ForeignKey('metricdetails.metricid')) devicedetail=relationship("Devicedetail") metricdetail=relationship("Metricdetail") threshold_list=relationship("Threshold_list") groupdevice=relationship("Groupdevice") def __repr__(self): return "<Polleddata(id='%s',name='%s',agent='%s',period='%s',active='%s',threshold_activate='%s',devicedetails_did='%s',groupdevices_group_id='%s',threshold_lists_id='%s',metricdetails_metricid='%s')>" %(self.id,self.name,self.agent,self.period,self.active,self.threshold_activate,self.devicedetails_did,self.groupdevices_group_id,self.threshold_lists_id,self.metricdetails_metricid)
def create_column(obj): ''' ''' c = Column(content_object=obj) key = '' while True: key = generate_sha1()[:20] if not Column.objects.filter(secret_id=key).count(): break c.secret_id = key c.save()
class Polldatatemplate(Node_Base): __tablename__ = 'polldatatemplate' id = Column(db.Integer, primary_key=True, autoincrement=True) name = Column(db.String(255)) agent = Column(db.String(255)) period = Column(db.Integer) active = Column(db.Integer) oid = Column(db.String(255)) threshold_activate = Column(db.Integer) protocol = Column(db.String(255)) metricdetail_id = Column(db.Integer, db.ForeignKey('metricdetails.metricid')) threshold_list_id = Column(db.Integer, db.ForeignKey('threshold_lists.id')) # metricdetail = relationship("Metricdetail") threshold_list = relationship("Threshold_list") def __repr__(self): return "<Polldatatemplate(id='%s',name='%s',agent='%s',period='%s',active='%s',oid='%s',threshold_activate='%s',protocol='%s',metricdetail_id='%s',threshold_list_id='%s')>" % ( self.id, self.name, self.agent, self.period, self.active, self.oid, self.threshold_activate, self.protocol, self.metricdetail_id, self.threshold_list_id)
class Post(Base): id = Column(Integer, index=True, primary_key=True) title = Column(String(100), comment="文章标题") body = Column(Text, comment="文章内容") # 文章状态 status = Column(Integer, default=1, comment="文章状态,1 置顶显示 2正常显示 3 不显示") reading = Column(Integer, default=0, comment="阅读量") category_id = Column(Integer, ForeignKey('category.id')) # category = relationship('Category', back_populates='post') category = relationship('Category', back_populates='posts') # 级联操作 comments = relationship('Comment', back_populates='post', cascade='all')
class Devicedetail(Node_Base): __tablename__ = 'devicedetails' did = Column(db.Integer, primary_key=True, autoincrement=True) mode = Column(db.String(255), default="") status = Column(db.Text) errorstring = Column(db.String(255)) timeinterval = Column(db.String(255)) last_updated_on = Column(db.DateTime) isprofilebased = Column(db.Integer) fetch_rules = Column(db.Integer) ip = Column(db.String(255)) polleddatas = relationship("Polleddata", back_populates="devicedetail") groupdevicesdevicedetails = relationship("Groupdevicesdevicedetail", uselist=False, back_populates="devicedetail") alerts = relationship("Alert", back_populates="devicedetail") def __repr__(self): return "<Devicedetail(did='%s',mode='%s',status='%s',errorstring='%s',timeinterval='%s',last_updated_on='%s',isprofilebased='%s',fetch_rules='%s',ip='%s')>" % ( self.did, self.mode, self.status, self.errorstring, self.timeinterval, self.last_updated_on, self.isprofilebased, self.fetch_rules, self.ip)
class Password(Node_Base): __tablename__ = 'passwords' password_id = Column(db.String(255), primary_key=True, default=generate_uuid) created_at = Column(db.DateTime) updated_at = Column(db.DateTime) user = Column(db.String(255)) password = Column(db.String(255)) update_id = Column(db.String(255), db.ForeignKey('updates.update_id')) service_name = Column(db.String(255)) update = relationship("Update") def __repr__(self): return "<Password(password_id='%s',created_at='%s',updated_at='%s',user='******',password='******',update_id='%s',service_name='%s')>" % ( self.password_id, self.created_at, self.updated_at, self.user, self.password, self.update_id, self.service_name)
class File_config(Node_Base): __tablename__ = 'file_configs' file_id = Column(db.Integer, primary_key=True, autoincrement=True) node_id = Column(db.Integer, db.ForeignKey('nodes.node_id')) file_name = Column(db.String(255)) file_path = Column(db.String(255)) service_name = Column(db.String(255)) created_at = Column(db.DateTime) modified_at = Column(db.DateTime) service_infos = relationship('Service_info', secondary='service_info_file_config') node = relationship('Node') openstack_configs = relationship("Openstack_config", back_populates="file_config") def __repr__(self): return "<File_config(file_id='%s',node_id='%s',file_name='%s',file_path='%s',service_name='%s',created_at='%s',modified_at='%s')>" % ( self.file_id, self.node_id, self.file_name, self.file_path, self.service_name, self.created_at, self.modified_at)
def upload(): if 'file' not in request.files: return make_response('No file sent', 400) req_file = request.files['file'] if req_file.filename == '': return make_response('No file selected', 400) if req_file: filename = secure_filename(req_file.filename) parsed_file = parse(req_file, 500) cols = [] for k, v in parsed_file.items(): cols.append(Column(name=k, data=v)) new_data = Data(created=datetime.datetime.now(), columns=cols) req_file.stream.seek(0) new_data.file.put(req_file, content_type='text/csv', filename=req_file.filename, encoding='utf-8') new_data.save() result = { 'id': str(new_data.id), 'name': 'Raw data', 'data': lists_to_csv([{ 'name': column.name, 'data': column.data } for column in new_data.columns]), 'type': constants.LINE_CHART } return jsonify(result), 200
class Metricdetail(Node_Base): __tablename__ = 'metricdetails' metricid = Column(db.Integer, primary_key=True, autoincrement=True) metricname = Column(db.Text) description = Column(db.Text) displayname = Column(db.Text) metrictype = Column(db.Integer) datatype = Column(db.String(255)) protocolid = Column(db.Integer, db.ForeignKey('protocoldetails.protocolid')) protocoldetail = relationship("Protocoldetail") alerts = relationship("Alert", back_populates="metricdetail") polldatatemplate = relationship("Polldatatemplate", back_populates="metricdetail") polleddatas = relationship("Polleddata", back_populates="metricdetail") def __repr__(self): return "<Metricdetail(metricid='%s',metricname='%s',description='%s',displayname='%s',metrictype='%s',datatype='%s',protocolid='%s')>" % ( self.metricid, self.metricname, self.description, self.displayname, self.metrictype, self.datatype, self.protocolid)
class Alert(Node_Base): __tablename__ = 'alert' alertid = Column(db.String(255), primary_key=True, default=generate_uuid) alarmRaisedTime = Column(db.BigInteger) alarmChangedTime = Column(db.BigInteger) alarmClearedTime = Column(db.BigInteger) state = Column(db.String(45)) perceivedSeverity = Column(db.String(45)) eventTime = Column(db.Integer) eventType = Column(db.String(255)) faultType = Column(db.String(255)) probableCause = Column(db.String(255)) isRootCause = Column(db.Integer) correlatedAlarmId = Column(db.Integer) faultDetails = Column(db.String(255)) deviceid = Column(db.Integer, db.ForeignKey('devicedetails.did')) metricid = Column(db.Integer, db.ForeignKey('metricdetails.metricid')) devicedetail = relationship("Devicedetail") metricdetail = relationship("Metricdetail") # def __repr__(self): return "<Alert(alertid='%s',alarmRaisedTime='%s',alarmChangedTime='%s',alarmClearedTime='%s',state='%s',perceivedSeverity='%s',eventTime='%s',eventType='%s',faultType='%s',probableCause='%s',isRootCause='%s',correlatedAlarmId='%s',faultDetails='%s',deviceid='%s',metricid='%s')>" % ( self.alertid, self.alarmRaisedTime, self.alarmChangedTime, self.alarmClearedTime, self.state, self.perceivedSeverity, self.eventTime, self.eventType, self.faultType, self.probableCause, self.isRootCause, self.correlatedAlarmId, self.faultDetails, self.deviceid, self.metricid)
class Node(Node_Base): __tablename__ = 'nodes' node_id = Column(db.Integer, primary_key=True, autoincrement=True) created_at = Column(db.DateTime) updated_at = Column(db.DateTime) deleted_at = Column(db.DateTime) management_ip = Column(db.String(255)) ssh_user = Column(db.String(255)) ssh_password = Column(db.String(255)) status = Column(db.Text) node_display_name = Column(db.String(255)) node_info_id = Column(db.String(255), db.ForeignKey('node_infos.node_info_id')) deployment_id = Column(db.Integer, db.ForeignKey('deployments.deployment_id')) node_type = Column(db.String(255)) node_info = relationship("Node_info") deployment = relationship("Deployment") service_infos = relationship("Service_info", back_populates="node") node_roles = relationship("Node_role", back_populates="node") def __repr__(self): return "<Node(node_id='%s',created_at='%s',updated_at='%s',deleted_at='%s',management_ip='%s',ssh_user='******',ssh_password='******',status='%s',node_display_name='%s',node_info_id='%s',deployment_id='%s',node_type='%s')>" % ( self.node_id, self.created_at, self.updated_at, self.deleted_at, self.management_ip, self.ssh_user, self.ssh_password, self.status, self.node_display_name, self.node_info_id, self.deployment_id, self.node_type)
class Disk_resource(Node_Base): __tablename__ = 'disk_resources' disk_id = Column(db.String(255),primary_key=True,default=generate_uuid) device_name=Column(db.String(255)) size= Column(db.Integer) model=Column(db.String(255)) removable=Column(db.Integer) sectors=Column(db.Text) sectorsize=Column(db.Integer) serial=Column(db.String(255)) vendor=Column(db.String(255)) support_discard=Column(db.String(255)) virtual=Column(db.Integer) node_info_id=Column(db.String(255), db.ForeignKey('node_infos.node_info_id')) node_info = relationship("Node_info") def __repr__(self): return "<Disk_resource(disk_id='%s',device_name='%s',size='%s',model='%s',removable='%s',sectors='%s',sectorsize='%s',serial='%s',vendor='%s',support_discard='%s',virtual='%s',node_info_id='%s')>" %(self.disk_id,self.device_name,self.size,self.model,self.removable,self.sectors,self.sectorsize,self.serial,self.vendor,self.support_discard,self.virtual,self.node_info_id)
class Link(Base): id = Column(Integer, primary_key=True) name = Column(String(30)) url = Column(String(255))