def __scheduleCommon(self, task): cur = self.con.cursor() cur.execute(( "INSERT INTO tm_tasks(name, description, location, method, next_start, status, timeout) VALUES(%s, %s, %s, %s, " + uSysDB.nowfun + "(), 'u', %s)"), (task.name, task.description, "%s:%s" % task.ref.to_db(), task.method, task.timeout)) return uSysDB.get_last_inserted_value(self.con, "tm_tasks")
def _createResourceTypeChildren(con, rt_id): cur = con.cursor() cur.execute("INSERT INTO resource_types (owner_id, parent_id, class_id, restype_name, description, parent_path) SELECT rt.owner_id, rt.rt_id, rc.class_id, rc.friendly_name, rc.description, rt.parent_path" + uSysDB.ConcatOperator + "CAST(rt.rt_id AS varchar)" + uSysDB.ConcatOperator + "'x' FROM resource_types rt JOIN resource_classes rc ON (rc.parent_class_id = rt.class_id) WHERE rt.rt_id = %s", rt_id) new_rt_id = uSysDB.get_last_inserted_value(con, "resource_types") if new_rt_id != rt_id: # something inserted cur.execute("SELECT rt_id FROM resource_types WHERE parent_id = %s", rt_id) for row in cur.fetchall(): _createResourceTypeChildren(con, row[0])
def __getInterfaceId(con, node): service_type = node.getAttribute("name") cur = con.cursor() cur.execute("SELECT interface_id FROM interfaces WHERE service_type = %s", service_type) row = cur.fetchone() if row: return row[0] cur.execute("INSERT INTO interfaces(service_type) VALUES (%s)", service_type) return uSysDB.get_last_inserted_value(con, "interfaces")
def _registerBoolPropertyInPEM27(name, is_visible, defval): """This function is called for PEM 2.7 only.""" import uSysDB con = uSysDB.connect() cur = con.cursor() cur.execute( "INSERT INTO confman_parameters (name, type, is_visible, user_id) VALUES (%s, %s, %s, %s)", (name, 0, int(is_visible), 1)) prop_id = uSysDB.get_last_inserted_value(con, "confman_parameters") cur.execute( "INSERT INTO confman_bool_parameters (parameter_id, value, vlimit) VALUES (%s, %s, %s)", (prop_id, int(defval), -1))
def _setComponentProperty(component_id, pkg_id, propname, propvalue, description, cname, con, b64key): cur = con.cursor() cur.execute("SELECT prop_id, protected FROM properties WHERE pkg_id = %s AND name = %s", (pkg_id, propname)) row = cur.fetchone() value = propvalue protected = 'n' if row: prop_id, protected = row else: if propname == 'db_passwd' or propname == 'dsn_passwd' or propname == 'windows.admin.user.password': protected = 'y' else: protected = 'n' cur.execute("INSERT INTO properties (pkg_id, name, default_value, description, protected) VALUES(%s, %s, %s, %s, %s)", (pkg_id, propname, value, description, protected)) prop_id = uSysDB.get_last_inserted_value(con, "properties") if protected == 'y': value = uCrypt.encryptData(propvalue, b64key) cur.execute("SELECT value_id FROM component_properties WHERE component_id = %s AND prop_id = %s", (component_id, prop_id)) row = cur.fetchone() if row: cur.execute("UPDATE property_values SET value = %s WHERE value_id = %s", (value, row[0])) uLogging.debug("Updating already existent value %d for %s property %s", row[0], cname, propname) else: uLogging.debug("Adding new value for %s property %s", cname, propname) cur.execute("INSERT INTO property_values(component_id, value) VALUES(%s, %s)", (component_id, value)) value_id = uSysDB.get_last_inserted_value(con, "property_values") cur.execute("INSERT INTO component_properties(component_id, value_id, prop_id ) VALUES(%s, %s, %s)", (component_id, value_id, prop_id))
def createResourceType(con, parent_class, name, description): cur = con.cursor() cur.execute("SELECT class_id FROM resource_classes WHERE name= %s", parent_class) row = cur.fetchone() if not row: raise Exception("%s: no such resource class", parent_class) rc_id = row[0] cur.execute("INSERT INTO resource_types (owner_id, restype_name, description, class_id, parent_path, parent_id) SELECT 1, %s, %s, %s, 'x', -1 FROM dual WHERE NOT EXISTS (SELECT 1 FROM resource_types rt, resource_classes rc WHERE rt.restype_name = %s AND rt.parent_id = -1 AND rt.class_id = rc.class_id AND (rc.partible = 'n' OR (rc.partible = 'y' AND rt.system='n')))", name, description, rc_id, name) rt_id = uSysDB.get_last_inserted_value(con, "resource_types") _createResourceTypeChildren(con, rt_id) _fakeSubscribeOnRT(con, rt_id) return rt_id