Kaydet (Commit) 069af618 authored tarafından Suleyman Poyraz's avatar Suleyman Poyraz

validate_model_member hatası fixlendi.

üst dc3359af
......@@ -64,7 +64,7 @@ def model_xml(modelName):
xml = '<interface name="%s">' % config_interface()
else:
xml = '<interface name="%s.%s">' % (config_interface(), modelName)
for _name, (_type, _action_id, _sig_in, _sig_out) in config_modelbase()[modelName].iteritems():
for _name, (_type, _action_id, _sig_in, _sig_out) in config_modelbase()[modelName].items():
if _type == 0:
xml += '<method name="%s">' % _name
else:
......@@ -82,7 +82,7 @@ def model_xml(modelName):
def introspect():
path = bus_path()
path = bus_path().decode('utf-8')
xml = '<node name="%s">' % path
if path == '/':
xml += model_xml("Core")
......@@ -95,6 +95,7 @@ def introspect():
elif path.startswith('/package/'):
app = path.split("/package/")[1]
for name in listApplicationModels(app):
print(name)
xml += model_xml(name)
xml += '</node>'
return xml
......@@ -60,11 +60,10 @@ message_execute(DBusMessage *msg, const char *app, const char *model, const char
PyObject *py_args = pydbus_import(msg);
char *eStr, *vStr;
/* Validate model and method
if (validate_model_member(model, method, 0) != 0) {
bus_reply_unknown_method(msg);
return;
}*/
}
// Check policy
......@@ -78,7 +77,7 @@ message_execute(DBusMessage *msg, const char *app, const char *model, const char
if (strcmp(action_id, "") != 0) {
int result;
if (policy_check(sender, action_id, &result) == 0) {
if (policy_check(sender, action_id, &result) == 0) {
if (result != POLICY_YES) {
bus_reply_error(msg, "Scom.PolicyKit", action_id);
return;
......
......@@ -240,10 +240,10 @@ validate_model_member(const char *model, const char *member, int type)
* @return 0 if valid, -1 if invalid
*
*/
if (PyDict_Contains(PyDict_GetItemString(py_core, "models"), PyBytes_FromString(model))) {
//buraya neden girmiyor ki acaba
if (PyDict_Contains(PyDict_GetItemString(py_core, "models"), PyUnicode_FromString(model))) {
PyObject *py_dict_model = PyDict_GetItemString(PyDict_GetItemString(py_core, "models"), model);
if (PyDict_Contains(py_dict_model, PyBytes_FromString(member))) {
if (PyDict_Contains(py_dict_model, PyUnicode_FromString(member))) {
PyObject *py_tuple = PyDict_GetItemString(py_dict_model, member);
if (PyLong_AsLong(PyTuple_GetItem(py_tuple, 0)) == (long) type) {
return 0;
......@@ -537,7 +537,7 @@ py_execute(const char *app, const char *model, const char *method, PyObject *py_
PyList_Insert(py_list, 0, PyUnicode_FromString(config_dir_modules));
// Put CSL methods into __builtin__
py_mod_builtin = PyImport_AddModule("__builtins__");
py_mod_builtin = PyImport_AddModule("builtins");
py_dict_builtin = PyModule_GetDict(py_mod_builtin);
for (py_method = methods; py_method->ml_name; py_method++) {
py_method_code = PyCFunction_New(py_method, NULL);
......@@ -552,7 +552,7 @@ py_execute(const char *app, const char *model, const char *method, PyObject *py_
if (fn_script == NULL) oom();
snprintf(fn_script, size, "%s/%s/%s.py", config_dir_scripts, model, app);
fn_script[size - 1] = 0;
printf("Bura geldi\n" );
// Check script existance
if (access(fn_script, R_OK) != 0) {
log_error("Unable to find script: %s\n", fn_script);
......@@ -560,6 +560,8 @@ py_execute(const char *app, const char *model, const char *method, PyObject *py_
free(fn_script);
return -1;
}
printf("Bura geldi 2\n" );
// Load script file
char *code = load_file(fn_script, NULL);
......@@ -569,6 +571,7 @@ py_execute(const char *app, const char *model, const char *method, PyObject *py_
free(fn_script);
return -1;
}
printf("Bura geldi 3\n" );
// Compile script
py_code = Py_CompileString(code, fn_script, Py_file_input);
......
#!/usr/bin/python
# -*- coding: utf-8 -*-
MSG = {
'en': 'Hello',
'tr': 'Merhaba',
}
def info():
call("apache", "System.Service", "start")
return "a", "b", "c"
def start():
notify("System.Service", "Changed", (script(), "started"))
print((_(MSG)))
#!/usr/bin/python
# -*- coding: utf-8 -*-
import dbus
import locale
import sys
import os
def handleError(exception):
error = exception.get_dbus_name()
message = exception.message
if error.endswith("Scom.PolicyKit"):
print "Access denied. '%s' access required" % message
else:
print message
sys.exit(1)
def printUsage():
print "Usage: %s <command>" % sys.argv[0]
print "Commands:"
print " list-apps <model>"
print " list-models <app>"
print " register <app> <model> <script.py>"
print " remove <app>"
sys.exit(1)
def main():
if len(sys.argv) == 1:
printUsage()
bus = dbus.SystemBus()
obj = bus.get_object('tr.org.sulin.scom', '/', introspect=False)
lang = locale.getdefaultlocale()[0].split("_")[0]
obj.setLocale(lang, dbus_interface='tr.org.sulin.scom')
if sys.argv[1] == "list-apps":
try:
model = sys.argv[2]
except IndexError:
printUsage()
try:
apps = obj.listModelApplications(model, dbus_interface='tr.org.sulin.scom')
except dbus.exceptions.DBusException ase:
handleError(e)
return
for app in apps:
print app
elif sys.argv[1] == "list-models":
try:
app = sys.argv[2]
except IndexError:
printUsage()
try:
models = obj.listApplicationModels(app, dbus_interface='tr.org.sulin.scom')
except dbus.exceptions.DBusException ase:
handleError(e)
for model in models:
print model
elif sys.argv[1] == "register":
try:
app = sys.argv[2]
model = sys.argv[3]
script = sys.argv[4]
except IndexError:
printUsage()
path = os.path.realpath(script)
try:
obj.register(app, model, path, dbus_interface='tr.org.sulin.scom')
except dbus.exceptions.DBusException ase:
handleError(e)
elif sys.argv[1] == "remove":
try:
app = sys.argv[2]
except IndexError:
printUsage()
try:
obj.remove(app, dbus_interface='tr.org.sulin.scom')
except dbus.exceptions.DBusException ase:
handleError(e)
else:
printUsage()
if __name__ == "__main__":
main()
#!/bin/sh
rm -rf scom_root
mkdir -p scom_root/var/log
mkdir -p scom_root/var/db
cd ..
cmake .
make
make install DESTDIR=tests/scom_root
cd tests
echo
scom_root/usr/sbin/scom --datadir=scom_root/var/db/scom3 --logdir=scom_root/var/log/scom3 --debug --print
#!/usr/bin/python
# -*- coding: utf-8 -*-
import dbus
import time
bus = dbus.SystemBus()
obj = bus.get_object('tr.org.sulin.scom2', '/', introspect=False)
obj.setLocale('tr', dbus_interface='tr.org.sulin.scom2')
obj = bus.get_object('tr.org.sulin.scom2', '/package/apache', introspect=False)
print(obj.info(dbus_interface='tr.org.sulin.scom2.System.Service', timeout=60))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment