Exemplo n.º 1
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 as e:
            raise e

        return e
Exemplo n.º 2
0
 def create_vmw_datacenter(self, auth, name, actual_name, moid, vcenter_id, parent_ent=None):
     msg = ''
     entityType = to_unicode(constants.DATA_CENTER)
     dc = None
     update_name = False
     dc_ent = auth.get_entity_by_entity_attributes(self.get_entity_attributes_dict(vcenter_id, moid), entityType)
     if not dc_ent:
         dup_ent = auth.get_entity_by_name(name, entityType=entityType)
         if dup_ent:
             msg += '\nERROR: Could not import Datacenter:%s. It is already exist,please choose different name' % name
             return (msg, None, None)
     if dc_ent:
         update_name = self.can_update_managed_object_name(auth, name, actual_name, dc_ent.name)
         msg += '\nDatacenter: %s already exist' % name
         dc = DBSession.query(VMWDatacenter).filter(VMWDatacenter.id == dc_ent.entity_id).first()
         if dc:
             if update_name:
                 dc.name = name
     if not dc:
         msg += '\nCreating Datacenter: %s' % name
         dc = VMWDatacenter(name)
     DBSession.add(dc)
     if not dc_ent:
         dc_ent = Entity()
         dc_ent.name = dc.name
         dc_ent.entity_id = dc.id
         dc_ent.type_id = 1
         ent_cntx_dict = self.get_entity_context_dict(external_manager_id=vcenter_id, external_id=moid)
         dc_ent.context_id = auth.add_context(ent_cntx_dict)
         DBSession.add(dc_ent)
         admin_role = auth.get_admin_role()
         auth.make_rep_entry(admin_role, dc_ent)
         ent_attr_dict = self.get_entity_attributes_dict(external_manager_id=vcenter_id, external_id=moid)
         self.add_entity_attributes(dc_ent, ent_attr_dict)
     else:
         if not update_name:
             name = None
         auth.update_entity(dc_ent, name=name)
     return (msg, dc, dc_ent)