예제 #1
0
 def delete_relations(self,entity):
     DBHelper().delete_all(EntityRelation,[],\
         [EntityRelation.src_id==entity.entity_id,
         EntityRelation.relation==u'Children'])
     DBHelper().delete_all(EntityRelation,[],\
         [EntityRelation.dest_id==entity.entity_id,
         EntityRelation.relation==u'Children'])
예제 #2
0
    def save_opsgroup_details(self, login, opsgroupname, opsgroupdesc,
                              operation):
        dupOpsgrp = None
        db = DBHelper()
        session = DBHelper().get_session()
        dupOpsgrp = session.query(OperationGroup).filter(
            OperationGroup.name == opsgroupname).first()
        opsgroup = OperationGroup()
        if dupOpsgrp is None:
            result = []
            opsgroup.name = (opsgroupname)
            opsgroup.description = (opsgroupdesc)
            opsgroup.created_by = (login)
            opsgroup.modified_by = (login)
            opsgroup.created_date = datetime.now()
            L = ((operation)).split(',')
            for i in L:
                oper = session.query(Operation).filter(
                    Operation.id == int(i)).first()
                opsgroup.operations.append(oper)

            db.add(opsgroup)
            return result
        else:
            result = "False"
            return result
예제 #3
0
    def save_oper_det(self, login, opname, descr, context_disp, entityid,
                      dispname, icon):
        result = []
        dupOp = None
        operation = Operation()
        db = DBHelper()
        session = DBHelper().get_session()
        dupOp = session.query(Operation).filter(
            Operation.name == opname).first()
        if dupOp is None:
            operation.name = (opname)
            operation.description = (descr)
            operation.display_name = (dispname)
            operation.icon = (icon)
            operation.created_by = (login)
            operation.modified_by = (login)
            operation.created_date = datetime.now()

            if context_disp == "true":
                operation.display = True
            else:
                operation.display = False

            L = (entityid).split(',')
            for i in L:
                ent = session.query(EntityType).filter(
                    EntityType.id == int(i)).first()
                operation.entityType.append(ent)

            db.add(operation)
            return result
        else:
            result = "False"
            return result
예제 #4
0
    def updatesave_op_det(self, login, opid, opname, desc, entid, context_disp,
                          dispname, icon):

        result = []
        op = Operation()
        db = DBHelper()
        session = DBHelper().get_session()
        op = session.query(Operation).filter(Operation.id == opid).first()
        op.name = (opname)
        op.description = (desc)
        op.modified_date = datetime.now()
        op.modified_by = (login)
        op.display_name = (dispname)
        op.icon = (icon)

        if context_disp == "true":
            op.display = True
        else:
            op.display = False

        for i in op.entityType:
            op.entityType.remove(i)

        L = (entid).split(',')
        if entid != "":
            for i in L:
                ent = session.query(EntityType).filter(
                    EntityType.id == int(i)).first()
                op.entityType.append(ent)

        db.update(op)
        return result
예제 #5
0
    def save_group_details(self, login, groupid, groupname, userids, desc):

        dupGrp = None
        group = Group()
        db = DBHelper()
        session = DBHelper().get_session()
        dupGrp = session.query(Group).filter(
            Group.group_name == groupname).first()
        if dupGrp is None:
            result = []
            group.group_name = groupname
            group.created_by = (login)
            group.modified_by = (login)
            group.created_date = datetime.now()
            group.description = desc

            L = (userids).split(',')
            if userids != "":
                for i in L:
                    user = session.query(User).filter(
                        User.user_id == int(i)).first()
                    group.users.append(user)

            db.add(group)
            return result
        else:
            result = "False"
            return result
예제 #6
0
 def get_entity_ids(self,entityType,parent=None):
     type=DBHelper().find_by_name(EntityType,entityType)
     filters=[Entity.type_id==type.id]
     if parent is not None:
         ids=[x.entity_id for x in parent.children]
         filters.append(Entity.entity_id.in_(ids))
     ents=DBHelper().filterby(Entity,[],filters)
     ent_ids=[]
     for ent in ents:
         ent_ids.append(ent.entity_id)
     return ent_ids
예제 #7
0
 def get_entities(self,entityType,parent=None):
     ents=[]
     type=DBHelper().find_by_name(EntityType,entityType)
     filters=[Entity.type_id==type.id]        
     
     if parent is not None:
         ids=[x.entity_id for x in parent.children]
         filters.append(Entity.entity_id.in_(ids))
     orderby=[Entity.name.asc()]
     ents=DBHelper().filterby(Entity,[],filters,orderby)
     return ents
예제 #8
0
 def add_entity(self, name, entity_id, entityType, parent):
     try:
         type = DBHelper().find_by_name(EntityType, entityType)
         e = Entity()
         e.name = name
         e.type = type
         e.entity_id = entity_id
         e.parent = parent
         DBHelper().add(e)
     except Exception, e:
         raise e
예제 #9
0
 def get_entity_by_name(self,name,entityType=None,parent=None):
     
     filters=[Entity.name==name]
     if entityType is not None:
         type=DBHelper().find_by_name(EntityType,entityType)
         filters.append(Entity.type_id==type.id)
     if parent is not None:
         ids=[x.entity_id for x in parent.children]
         filters.append(Entity.entity_id.in_(ids))
     ents=DBHelper().filterby(Entity,[],filters)
     ent=None
     if(len(ents)>0):
         ent=ents[0]
     return ent
예제 #10
0
 def get_entity_names(self,entityType,parent=None):
     ents=[]
     if entityType is None or parent is None:
         return []
     type=DBHelper().find_by_name(EntityType,entityType)        
     filters=[Entity.type_id==type.id]
     ids=[x.entity_id for x in parent.children]
     filters.append(Entity.entity_id.in_(ids))        
     
     ents=DBHelper().filterby(Entity,[],filters)
     ent_names=[]
     for ent in ents:
         ent_names.append(ent.name)
     return ent_names
예제 #11
0
 def update_entity(self,entity,name=None,parent=None,new_entityId=None):
     try:
         if name is not None:
             entity.name=name
         if parent is not None:
             old_prnt=entity.parents[0]                
             self.delete_entity_relation(old_prnt.entity_id,entity.entity_id,u'Children')
             DBHelper().add(EntityRelation(parent.entity_id,entity.entity_id,u'Children'))
         if new_entityId is not None:
             entity.entity_id=new_entityId
         DBHelper().add(entity)
         
     except Exception, e:
         raise e
예제 #12
0
def basic_initialize():
    global local_node, client_config, store, registry, image_store, manager, storage_manager
    global nw_manager, appliance_store
    try:
        local_node = ManagedNode(hostname=constants.LOCALHOST,
                                 isRemote=False,
                                 helper=None)
        #client_config = local_node.config
        #store = client_config
        registry = PlatformRegistry(client_config, {})

        #image_store = ImageStore(local_node.config, registry)
        image_stores = DBHelper().get_all(ImageStore)
        if len(image_stores) > 0:
            image_store = image_stores[0]
            image_store.set_registry(registry)
        manager = GridManager(client_config, registry, None)
        storage_manager = StorageManager()
        nw_manager = NwManager()

        appliance_store = ApplianceStore(local_node, client_config)
    except Exception, e:
        import traceback
        traceback.print_exc()
        raise e
예제 #13
0
 def delete_user(self, userid):
     userid = int(userid)
     user = DBSession.query(User).filter(User.user_id == userid).first()
     if user is not None:
         if user.user_name in constants.DEFAULT_USERS:
             raise Exception("Can not delete " + user.user_name + " user.")
         DBHelper().delete_all(User, [], [User.user_id == userid])
예제 #14
0
 def get_opsgroups(self):
     result = []
     strent = ''
     opsgrp = DBHelper().get_all(OperationGroup)
     for og in opsgrp:
         i = 0
         sname = og.name
         opsgroupid = og.id
         strop = ''
         stropid = ''
         for o in og.operations:
             strop = o.name
             desc = o.description
             opsgroupname = ""
             stropid = o.id
             if i == 0:
                 opsgroupname = og.name
             i += 1
             for e in o.entityType:
                 strent = e.display_name
             result.append(
                 dict(opsgroupid=opsgroupid,
                      opsgrpname=opsgroupname,
                      opname=strop,
                      opid=stropid,
                      desc=desc,
                      entitytype=strent,
                      searchName=sname))
     return result
예제 #15
0
    def updatesave_enttype_details(self, login, enttypeid, enttypename,
                                   dispname):

        result = []
        ent = EntityType()
        db = DBHelper()
        session = DBHelper().get_session()
        ent = session.query(EntityType).filter(
            EntityType.id == enttypeid).first()
        ent.name = enttypename
        ent.display_name = dispname
        ent.modified_by = (login)
        ent.modified_date = datetime.now()

        db.update(ent)
        return result
예제 #16
0
    def get_nws(self,auth,image_id=None,dom_id=None,node_id=None, op_level=None):
        vm_config=None
        if dom_id is not None:
#                dom=NodeService().get_dom(auth,dom_id,node_id)
            dom=DBHelper().find_by_name(VM,dom_id)
            vm_config=dom.get_config()

        elif image_id is not None:
            image=ImageService().get_image(auth,image_id)
            (vm_config,img_conf)=image.get_configs()

        if not vm_config:
            return
        managed_node=None
        if node_id is not None:
            managed_node=NodeService().get_managed_node(auth,node_id)
            if managed_node is not None:
                self.managed_node=managed_node
        vifs = vm_config.getNetworks()
        result=[]

        for vif in vifs:
            result.append(self.get_nw_entry(vif, op_level))
        
        return result
예제 #17
0
    def __init__(self, local_node, config):
        self.local_node = local_node
        self.config = config

        self._feeds = None
        self.cache_dir = None
        self.catalogs = {}
        # List of appliances keyd by feed name
        self.appliance_list = {}

        self.appliance_store_dir = config.get(constants.prop_appliance_store)
        if self.appliance_store_dir is None or self.appliance_store_dir is '':
            self.appliance_store_dir = self.DEFAULT_APPLIANCE_STORE

#        self.catalog_conf_file = os.path.join(self.appliance_store_dir,
#                                              self.CATALOG_CONF)
#        self.catalog_conf = PyConfig(self.local_node,self.catalog_conf_file)
#
#        catalogs = self.catalog_conf.get("catalogs")
#        import pprint
#        pprint.pprint(catalogs)
#        if catalogs:
#            self.catalogs = catalogs
        catalogs = DBHelper().get_all(ApplianceCatalog)
        for catalog in catalogs:
            self.catalogs[catalog.name] = catalog.url
        print self.catalogs
        # create the cache dir if it does not exist
        mkdir2(self.local_node, self.get_cache_dir())
예제 #18
0
    def get_operations(self):
        result = []
        operations = DBHelper().get_all(Operation)
        for op in operations:
            strname = ''
            opname = op.name
            desc = op.description
            ctxdisp = op.display
            opid = op.id

            for e in op.entityType:
                disp_name = ''
                if e.display_name is not None:
                    disp_name = e.display_name
                    strname += disp_name + " ,"
                else:
                    strname += disp_name + " ,"

            strname = strname[0:-1]
            result.append(
                dict(opname=opname,
                     description=desc,
                     cd=ctxdisp,
                     enttype=strname,
                     opid=opid))
        return result
예제 #19
0
 def get_emailsetupinfo(self):
     result = []
     emailsetups = DBHelper().get_all(
         EmailSetup)  #site id needs to be added in the filter
     for obj in emailsetups:
         result.append(dict(emailsetup_id=obj.id,servername=obj.mail_server,\
             desc=obj.description, username = obj.credential.cred_details['user_email'], port = obj.port) )
     return result
예제 #20
0
    def get_ops(self,entity,op=None):#       
        filters=[Entity.entity_id==entity.entity_id]
        if op is not None:
            filters.append(Operation.id==op.id)
        ops=DBHelper().filterby(Operation,[Operation.entityType,Operation.opsGroup,Entity],
            filters,[Operation.display_seq])

        return ops
예제 #21
0
 def add_entity(self,name,entity_id,entityType,parent):
     try:
         type=DBHelper().find_by_name(EntityType,entityType)
         e=Entity()
         e.name=name
         e.type=type
         e.entity_id=entity_id
         #e.parent=parent
         DBHelper().add(e)
         DBHelper().add(EntityRelation(parent.entity_id,entity_id,u'Children'))
         ###Added to remove the referential integrity error due to transaction
         ###that SA/MySQL innodb is supposed to take care
         gc=GenericCache()
         gc.on_add_entity(e.type.name)
         DBSession.flush()
     except Exception, e:
         raise e
예제 #22
0
 def remove_entity(self,entity):
     try:
         self.delete_relations(entity)
         gc=GenericCache()
         gc.on_delete_entity(entity.entity_id, entity.type.name)
         DBHelper().delete(entity)
     except Exception, e:
         raise e
예제 #23
0
 def get_emailsetup_details(self, emailsetup_id):
     result = []
     emailSetupobj = DBHelper().find_by_id(EmailSetup, emailsetup_id)
     result.append(dict(emailsetup_id=emailSetupobj.id, servername=emailSetupobj.mail_server, \
         desc=emailSetupobj.description, port = emailSetupobj.port, use_secure = emailSetupobj.use_secure ,\
         username = emailSetupobj.credential.cred_details['user_email'],\
         password = emailSetupobj.credential.cred_details['password']))
     return result
예제 #24
0
 def delete_group(self, groupid):
     groupid = int(groupid)
     group = DBSession.query(Group).filter(
         Group.group_id == groupid).first()
     if group is not None:
         if group.group_name in constants.DEFAULT_GROUPS:
             raise Exception("Can not delete " + group.group_name +
                             " group.")
         DBHelper().delete_all(Group, [], [Group.group_id == groupid])
예제 #25
0
 def remove_entity_by_id(self,entityId,entityType=None,parent=None):
     try:
         entity=self.get_entity(entityId, entityType,parent)
         self.delete_relations(entity)
         gc=GenericCache()
         gc.on_delete_entity(entityId, entity.type.name)
         DBHelper().delete(entity)
     except Exception, e:
         raise e
예제 #26
0
 def scan_imagestore_details(self,auth,imagestore_id):
     images=DBHelper().get_all(Image)
     img_names= [image.name for image in images]
     (entities,rej_imgs)=self.image_store.scan_dirs(auth,imagestore_id)
     ent_names= [ent.name for ent in entities]
     new_imgs=[]
     for name in ent_names:
         if name not in img_names:
             new_imgs.append(name)
     return (new_imgs,rej_imgs)
예제 #27
0
 def change_user_password(self, userid, newpasswd, oldpasswd):
     result = []
     user = DBSession.query(User).filter(User.user_name == userid).first()
     if (user.validate_password(oldpasswd)):
         user.password = newpasswd
         DBHelper().update(user)
         return result
     else:
         raise Exception(
             'Old Password is not valid.<br>Please enter valid Password.')
예제 #28
0
 def get_groupsdetails(self):
     result = []
     groups = DBHelper().get_all(Group)
     for g in groups:
         groupid = g.group_id
         groupname = g.group_name
         groupdesc = g.description
         result.append(
             dict(groupid=groupid, groupname=groupname, desc=groupdesc))
     return result
예제 #29
0
 def get_tousers_map(self, groupid):
     result = []
     session = DBHelper().get_session()
     group = session.query(Group).filter(Group.group_id == groupid).first()
     users = group.users
     for u in users:
         uid = u.user_id
         uname = (u.user_name)
         result.append(dict(userid=uid, username=uname))
     return result
예제 #30
0
 def get_enttype(self):
     result = []
     enttype = DBHelper().get_all(EntityType)
     for e in enttype:
         ent_id = e.id
         ent_name = e.name
         disp_name = e.display_name
         result.append(
             dict(entid=ent_id, entname=ent_name, dispname=disp_name))
     return result