From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmccabe@sourceware.org Date: 22 May 2007 02:45:57 -0000 Subject: [Cluster-devel] conga/luci/site/luci/Extensions LuciDB.py Reso ... Message-ID: <20070522024557.4395.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Branch: EXPERIMENTAL Changes by: rmccabe at sourceware.org 2007-05-22 02:45:54 Modified files: luci/site/luci/Extensions: LuciDB.py ResourceHandler.py homebase_adapters.py Log message: backend support for SAPInstance and SAPDatabase Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciDB.py.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.1.2.9&r2=1.1.2.10 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ResourceHandler.py.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/homebase_adapters.py.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.50.2.6&r2=1.50.2.7 --- conga/luci/site/luci/Extensions/Attic/LuciDB.py 2007/05/18 05:23:55 1.1.2.9 +++ conga/luci/site/luci/Extensions/Attic/LuciDB.py 2007/05/22 02:45:54 1.1.2.10 @@ -667,6 +667,8 @@ luci_log.debug_verbose('GC0: %r %s' % (e, str(e))) return None + if isAdmin(self): + return clusters return check_clusters(self, clusters) def getStorage(self): @@ -682,12 +684,12 @@ def check_clusters(self, clusters): user = getSecurityManager().getUser() - return filter(lambda x: user.has_role('View', x[1]), clusters) + return filter(lambda x: user.has_permission('View', x[1]), clusters) def cluster_permission_check(cluster): try: user = getSecurityManager().getUser() - if user.has_role('View', cluster[1]): + if user.has_permission('View', cluster[1]): return True except: pass @@ -695,7 +697,7 @@ def allowed_systems(self, systems): user = getSecurityManager().getUser() - return filter(lambda x: user.has_role('View', x[1]), systems) + return filter(lambda x: user.has_permission('View', x[1]), systems) def access_to_host_allowed(self, hostname, allowed_systems_list): allowed = dict(map(lambda x: [ x[0], None ], allowed_systems_list)) --- conga/luci/site/luci/Extensions/Attic/ResourceHandler.py 2007/05/15 21:42:21 1.1.2.3 +++ conga/luci/site/luci/Extensions/Attic/ResourceHandler.py 2007/05/22 02:45:54 1.1.2.4 @@ -19,6 +19,8 @@ from ClusterModel.OpenLDAP import OpenLDAP from ClusterModel.LVM import LVM from ClusterModel.MySQL import MySQL +from ClusterModel.SAPDatabase import SAPDatabase +from ClusterModel.SAPInstance import SAPInstance from LuciSyslog import get_logger from conga_constants import LUCI_DEBUG_MODE @@ -67,7 +69,7 @@ raise KeyError, 'No IP address was given' res.addAttribute('address', addr) except KeyError, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addIp4: %s' % err) @@ -88,7 +90,7 @@ raise Exception, 'No mount point was given for "%s"' % rname res.addAttribute('mountpoint', mountpoint) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addFs6: %s' % err) @@ -99,7 +101,7 @@ raise Exception, 'No device was given for "%s"' % rname res.addAttribute('device', device) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addFs7: %s' % err) @@ -115,7 +117,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addFs8: %s' % err) @@ -126,7 +128,7 @@ raise Exception, 'No filesystem type was given for "%s"' % rname res.addAttribute('fstype', fstype) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addFs9: %s' % err) @@ -168,7 +170,7 @@ raise Exception, 'No mount point was given for "%s"' % rname res.addAttribute('mountpoint', mountpoint) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addGfs5: %s' % err) @@ -179,7 +181,7 @@ raise Exception, 'No device was given for "%s"' % rname res.addAttribute('device', device) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addGfs6: %s' % err) @@ -195,7 +197,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addGfs7: %s' % err) @@ -227,7 +229,7 @@ raise Exception, 'No mount point was given for "%s"' % rname res.addAttribute('mountpoint', mountpoint) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsm5: %s' % err) @@ -238,7 +240,7 @@ raise Exception, 'No host server was given for "%s"' % rname res.addAttribute('host', host) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsm6 error: %s' % err) @@ -254,7 +256,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsm7: %s' % err) @@ -265,7 +267,7 @@ raise Exception, 'No export path was given for "%s"' % rname res.addAttribute('exportpath', exportpath) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsm8: %s' % err) @@ -277,7 +279,7 @@ % (nfstype, rname) res.addAttribute('nfstype', nfstype) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsm9: %s' % err) @@ -298,7 +300,7 @@ raise Exception, 'No target was given for "%s"' % rname res.addAttribute('target', target) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsc5: %s' % err) @@ -314,7 +316,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addNfsc6: %s' % err) @@ -339,7 +341,7 @@ raise Exception, 'No path to a script file was given for this "%s"' % rname res.addAttribute('file', path) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addScr5: %s' % err) @@ -355,7 +357,7 @@ raise Exception, 'No workgroup was given for "%s"' % rname res.addAttribute('workgroup', workgroup) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addSmb5: %s' % err) @@ -371,7 +373,7 @@ raise KeyError, 'No server root was given for "%s"' % rname res.addAttribute('server_root', server_root) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addApache5: %s' % err) @@ -382,7 +384,7 @@ raise KeyError, 'No path to the Apache configuration file was given for "%s"' % rname res.addAttribute('config_file', config_file) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addApache6: %s' % err) @@ -398,7 +400,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addApache7: %s' % err) @@ -409,7 +411,7 @@ except KeyError, e: res.addAttribute('shutdown_wait', '0') except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addApache7: %s' % err) @@ -425,7 +427,7 @@ raise KeyError, 'No path to the MySQL configuration file was given for "%s"' % rname res.addAttribute('config_file', config_file) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addMySQL5: %s' % err) @@ -436,7 +438,7 @@ raise KeyError, 'No address was given for "%s"' % rname res.addAttribute('listen_address', listen_addr) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addMySQL6: %s' % err) @@ -452,7 +454,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addMySQL7: %s' % err) @@ -463,7 +465,7 @@ except KeyError, e: res.addAttribute('shutdown_wait', '0') except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addMySQL7: %s' % err) @@ -479,7 +481,7 @@ raise KeyError, 'No URL list was given for "%s"' % rname res.addAttribute('url_list', url_list) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addOpenLDAP5: %s' % err) @@ -490,7 +492,7 @@ raise KeyError, 'No path to the OpenLDAP configuration file was given for "%s"' % rname res.addAttribute('config_file', config_file) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addOpenLDAP6: %s' % err) @@ -506,7 +508,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addOpenLDAP7: %s' % err) @@ -517,7 +519,7 @@ except KeyError, e: res.addAttribute('shutdown_wait', '0') except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addOpenLDAP7: %s' % err) @@ -532,7 +534,7 @@ raise KeyError, 'No postmaster user was given for "%s"' % rname res.addAttribute('postmaster_user', user) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addPostgreSQL85: %s' % err) @@ -543,7 +545,7 @@ raise KeyError, 'No path to the PostgreSQL 8 configuration file was given for "%s"' % rname res.addAttribute('config_file', config_file) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addPostgreSQL86: %s' % err) @@ -559,7 +561,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addPostgreSQL87: %s' % err) @@ -570,7 +572,7 @@ except KeyError, e: res.addAttribute('shutdown_wait', '0') except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addPostgreSQL87: %s' % err) @@ -586,7 +588,7 @@ raise KeyError, 'No Tomcat user was given for "%s"' % rname res.addAttribute('tomcat_user', user) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addTomcat55: %s' % err) @@ -597,7 +599,7 @@ raise KeyError, 'No path to the Tomcat 5 configuration file was given for "%s"' % rname res.addAttribute('config_file', config_file) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addTomcat56: %s' % err) @@ -613,7 +615,7 @@ except: pass except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addTomcat57: %s' % err) @@ -624,7 +626,7 @@ raise KeyError, 'No cataliny base directory was given for "%s"' % rname res.addAttribute('catalina_base', catalina_base) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addTomcat58: %s' % err) @@ -635,7 +637,7 @@ except KeyError, e: res.addAttribute('shutdown_wait', '0') except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addTomcat59: %s' % err) @@ -651,7 +653,7 @@ raise KeyError, 'No volume group name was given for "%s"' % rname res.addAttribute('vg_name', vg_name) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addLVM5: %s' % err) @@ -662,28 +664,106 @@ raise KeyError, 'No logical volume name was given for "%s"' % rname res.addAttribute('lv_name', lv_name) except Exception, e: - err = repr(e) + err = str(e) errors.append(err) if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('addLVM6: %s' % err) return errors +def addSAPDatabase(res, rname, form, model): + errors = list() + + try: + sid = form['SID'].strip() + if not sid: + raise KeyError, 'No SAP system identifier was given.' + res.addAttribute('SID', sid) + except Exception, e: + err = str(e) + errors.append(err) + if LUCI_DEBUG_MODE is True: + luci_log.debug_verbose('addSAPD0: %s' % err) + + try: + dbtype = form['DBTYPE'].strip() + if not dbtype in [ 'ORA', 'DB6', 'ADA' ]: + raise Exception, 'You gave an invalid database type: %s' % dbtype + res.addAttribute('DBTYPE', dbtype) + except Exception, e: + err = str(e) + errors.append(err) + if LUCI_DEBUG_MODE is True: + luci_log.debug_verbose('addSAPD1: %s' % err) + + if form.has_key('DBJ2EE_ONLY'): + res.addAttribute('DBJ2EE_ONLY', 'TRUE') + else: + res.removeAttribute('DBJ2EE_ONLY') + + # Optional string parameters + for param in [ 'DIR_EXECUTABLE', 'NETSERVICENAME', 'DIR_BOOTSTRAP', 'DIR_SECSTORE' ]: + try: + pval = form[param].strip() + if not pval: + raise KeyError, 'blank' + res.addAttribute(param, pval) + except KeyError, e: + res.removeAttribute(param) + except Exception, e: + err = str(e) + errors.append(err) + if LUCI_DEBUG_MODE is True: + luci_log.debug_verbose('addSAPD2: %s %s' % (param, err)) + return errors + +def addSAPInstance(res, rname, form, model): + errors = list() + + try: + iname = form['InstanceName'].strip() + if not iname: + raise KeyError, 'No SAP instance name was given.' + res.addAttribute('InstanceName', iname) + except Exception, e: + err = str(e) + errors.append(err) + if LUCI_DEBUG_MODE is True: + luci_log.debug_verbose('addSAPI0: %s' % err) + + # Optional string parameters + for param in [ 'DIR_EXECUTABLE', 'DIR_PROFILE', 'START_PROFILE' ]: + try: + pval = form[param].strip() + if not pval: + raise KeyError, 'blank' + res.addAttribute(param, pval) + except KeyError, e: + res.removeAttribute(param) + except Exception, e: + err = str(e) + errors.append(err) + if LUCI_DEBUG_MODE is True: + luci_log.debug_verbose('addSAPI1: %s %s' % (param, err)) + return errors + resource_table = { - 'ip': [ addIp, Ip ], - 'fs': [ addFs, Fs ], - 'gfs': [ addClusterfs, Clusterfs ], - 'nfsm': [ addNetfs, Netfs ], - 'nfsx': [ addNFSExport, NFSExport ], - 'nfsc': [ addNFSClient, NFSClient ], - 'scr': [ addScript, Script ], - 'smb': [ addSamba, Samba ], - 'tomcat-5': [ addTomcat5, Tomcat5 ], - 'postgres-8': [ addPostgres8, Postgres8 ], - 'apache': [ addApache, Apache ], - 'openldap': [ addOpenLDAP, OpenLDAP ], - 'lvm': [ addLVM, LVM ], - 'mysql': [ addMySQL, MySQL ] + 'ip': [ addIp, Ip ], + 'fs': [ addFs, Fs ], + 'gfs': [ addClusterfs, Clusterfs ], + 'nfsm': [ addNetfs, Netfs ], + 'nfsx': [ addNFSExport, NFSExport ], + 'nfsc': [ addNFSClient, NFSClient ], + 'scr': [ addScript, Script ], + 'smb': [ addSamba, Samba ], + 'tomcat-5': [ addTomcat5, Tomcat5 ], + 'postgres-8': [ addPostgres8, Postgres8 ], + 'apache': [ addApache, Apache ], + 'openldap': [ addOpenLDAP, OpenLDAP ], + 'lvm': [ addLVM, LVM ], + 'mysql': [ addMySQL, MySQL ], + 'SAPDatabase': [ addSAPDatabase, SAPDatabase ], + 'SAPInstance': [ addSAPInstance, SAPInstance ] } def create_resource(res_type, form, model): --- conga/luci/site/luci/Extensions/homebase_adapters.py 2007/05/18 05:23:55 1.50.2.6 +++ conga/luci/site/luci/Extensions/homebase_adapters.py 2007/05/22 02:45:54 1.50.2.7 @@ -757,7 +757,7 @@ if not request.form.has_key('__CLUSTER'): for i in clusters: try: - if user.has_role('View', i[1]): + if user.has_permission('View', i[1]): roles = list(i[1].get_local_roles_for_userid(user_id)) roles.remove('View') @@ -775,7 +775,7 @@ for i in clusters: if i[0] in request.form['__CLUSTER']: try: - if not user.has_role('View', i[1]): + if not user.has_permission('View', i[1]): roles = list(i[1].get_local_roles_for_userid(user_id)) roles.append('View') i[1].manage_setLocalRoles(user_id, roles) @@ -787,7 +787,7 @@ errors.append('Failed to add permission for user "%s" for cluster "%s"' % (user_id, i[0])) else: try: - if user.has_role('View', i[1]): + if user.has_permission('View', i[1]): roles = list(i[1].get_local_roles_for_userid(user_id)) roles.remove('View') @@ -808,7 +808,7 @@ if not request.form.has_key('__SYSTEM'): for i in storage: try: - if user.has_role('View', i[1]): + if user.has_permission('View', i[1]): roles = list(i[1].get_local_roles_for_userid(user_id)) roles.remove('View') @@ -823,7 +823,7 @@ for i in storage: if i[0] in request.form['__SYSTEM']: try: - if not user.has_role('View', i[1]): + if not user.has_permission('View', i[1]): roles = list(i[1].get_local_roles_for_userid(user_id)) roles.append('View') i[1].manage_setLocalRoles(user_id, roles) @@ -832,7 +832,7 @@ errors.append('Failed to add permission for user "%s" for system "%s"' % (user_id, i[0])) else: try: - if user.has_role('View', i[1]): + if user.has_permission('View', i[1]): roles = list(i[1].get_local_roles_for_userid(user_id)) roles.remove('View') @@ -1279,14 +1279,14 @@ for c in clusters: try: - perms[userName]['cluster'][c[0]] = i.has_role('View', c[1]) + perms[userName]['cluster'][c[0]] = i.has_permission('View', c[1]) except Exception, e: if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('getUserPerms2: user %s, obj %s: %r %s' % (userName, c[0], e, str(e))) for s in storage: try: - perms[userName]['storage'][s[0]] = i.has_role('View', s[1]) + perms[userName]['storage'][s[0]] = i.has_permission('View', s[1]) except Exception, e: if LUCI_DEBUG_MODE is True: luci_log.debug_verbose('getUserPerms2: user %s, obj %s: %r %s' % (userName, s[0], e, str(e)))