del spacing

master3.3
Спиридонов Денис 12 years ago
parent 3a7432ebb2
commit cb10a9da49

@ -100,7 +100,6 @@ class Basic (DefinitionBase) :
#return obj
#return None
## function placing object in cache
#def set_cache(self, sid, meth_name, obj):
#try:
@ -123,7 +122,6 @@ class Basic (DefinitionBase) :
return self.cachedict[sid][meth_name][obj_name]
return None
# function placing object in cache
def set_cache(self, sid, meth_name, obj_name, obj, smart = True):
try:
@ -421,7 +419,6 @@ class Basic (DefinitionBase) :
def get_ca (self):
return send_cert.get_ca(self.cert_path)
@rpc(String, _returns = String)
def cl_unix_userdel ( self, param) :
return cl_unix_userdel.serv_cl_unix_userdel (param)

@ -130,7 +130,7 @@ def create_request(server_cert, cert_path, data_path, certbase,client_cert_path)
req_id = post_request.serv_post_client_request (data, data_path, ip, mac, \
client_type, certbase, cert_path)
fc = open(client_cert_path + 'req_id', 'w')
fc.write(req_id)
fc.close()

@ -28,7 +28,7 @@ from calculate.lib.datavars import VariableError
from itertools import *
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_core',sys.modules[__name__])
def getIpLocal():
for interface in ip.getInterfaces():
try:
@ -37,7 +37,7 @@ def getIpLocal():
continue
else:
return ""
def getHwAddr():
""" get MAC adress for interface """
for interface in ip.getInterfaces():
@ -61,7 +61,7 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
from M2Crypto import X509
import gettext
name = X509.X509_Name()
host_name = socket.getfqdn()
lang = gettext.locale.getdefaultlocale()[0][:2]
if c.lower() in ['n', 'no']:
@ -100,7 +100,7 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
name.C = raw_input (_('Country (only TWO letters!) [%s]: ') %lang)
if not name.C:
name.C = lang
cmd = ("openssl req -new -newkey rsa:2048 -nodes -keyout %s -x509 "
"-days 11000 -subj /C=%s/ST=%s/L=%s/O=%s"
"/OU=%s/CN=%s -out %s") \
@ -113,7 +113,7 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
p = subprocess.Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE,
stderr=subprocess.STDOUT, close_fds=True)
p.wait()
# add certificate in trusted
fd = open(cert_path+'/ca_root.crt', 'a')
try:
@ -122,14 +122,14 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
print _('error write (read) file from directory %s') %cert_path
fd.close()
print _("OK")
# use self root certificate as server certificate
elif args.use_root_cert:
if not os.path.exists(cert_path+'/root.crt'):
print _('root certificate not found (use cl-core with key '
'--gen-root-cert)')
return 1
# use root certificate as server certificate
ft = open(cert_path+'/root.crt', 'rb')
fd = open(cert_path+'/server.crt', 'wb')
@ -137,17 +137,17 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
fd.write(ft.read())
ft.close()
fd.close()
ft = open(cert_path+'/root.key', 'rb')
fd = open(cert_path+'/server.key', 'wb')
ft.seek(0)
fd.write(ft.read())
ft.close()
fd.close()
print _("OK")
return 0
# send a certificate signing request to another server
elif args.host:
port = raw_input (_("Enter port: "))
@ -167,7 +167,7 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
print _("\nClose. Connecting Error.")
#return 0
serv_host_name = client.service.get_server_host_name()
if os.path.exists(key) and os.path.exists(cert_path + '/server.csr'):
print _('secret key and request exists')
ask = raw_input(_("Create new secret key and request?")+" y/[n]: ")
@ -199,7 +199,7 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
fc = open(cert_path + '/req_id', 'r')
req_id = fc.read()
fc.close()
print _("\nURL has form"), "https://%s:[port]/?wsdl" \
%args.root_host
port = raw_input (_("Enter port: "))
@ -210,7 +210,7 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
return 1
url = "https://%s:%d/?wsdl" %(args.root_host, port)
print _("%s\nconnect...") % url
from suds.client import Client
from client_class import HTTPSClientsCertTransport
try:
@ -218,12 +218,12 @@ def check_server_certificate(cert, key, cert_path, args, port, auto = False):
transport = HTTPSClientsCertTransport(None, None, None))
except KeyboardInterrupt:
print _("\nClose. Connecting Error.")
request = open(cert_path + '/server.csr').read()
md5 = hashlib.md5()
md5.update(request)
md5sum = md5.hexdigest()
result = client.service.get_server_cert(req_id, md5sum)
print "result = ", result
cert = result[0][0]
@ -271,7 +271,7 @@ def create_path(data_path, certbase, rights, group_rights):
os.makedirs(data_path+'/conf')
except OSError:
print _("cannot create directory %s") %(data_path+'/conf')
if not os.path.isfile(rights):
rights_text = '# example of content:\n'+ \
'# certificate number 2 has right to run method ' + \
@ -294,7 +294,7 @@ def create_path(data_path, certbase, rights, group_rights):
# find a id by certificate
def find_cert_id(certificate, data_path, certbase):
# Open database
if not os.path.exists(certbase):
if not os.path.exists(data_path+'/client_certs'):
@ -320,9 +320,9 @@ def find_cert_id(certificate, data_path, certbase):
words = line.split()
# if in line present certificate id
if words[1] == md5sum:
cert_id.append (words[0])
cert_path = data_path+'/client_certs/'
for certId in cert_id:
if os.path.isfile(cert_path + certId + '.crt'):
@ -344,7 +344,7 @@ def find_id_cert(cert_id, data_path):
fp.close()
return cert
return 0
# delete selected clients certificate
def del_cert(certbase, data_path, cert_id):
cert_id = str(cert_id)
@ -360,7 +360,7 @@ def del_cert(certbase, data_path, cert_id):
ft.write(line + '\n')
ft.close()
fd.close()
ft = open(certbase + '_temp', 'rb')
fc = open(certbase, 'wb')
ft.seek(0)
@ -396,7 +396,7 @@ def add_right(cert_id, method, rights):
ft.write(line + '\n')
fd.close()
ft.close()
# copy all from temp file
ft = open(rights + '_temp', 'rb')
fd = open(rights, 'wb')
@ -430,7 +430,7 @@ def del_right(cert_id, method, rights):
ft.write(line + '\n')
fd.close()
ft.close()
# copy all from temp file
ft = open(rights + '_temp', 'rb')
fd = open(rights, 'wb')
@ -458,7 +458,7 @@ def change_rights_cert(cert_id, right_add, right_del, \
except:
print _("to change rights certificate number must be integer")
return 1
elif cert_id == 'all':
with open(certbase) as fd:
t = fd.read()
@ -468,7 +468,7 @@ def change_rights_cert(cert_id, right_add, right_del, \
words = line.split()
# if in line present certificate id
list_id.append(words[0])
for cert_id in list_id:
cert_id = str(cert_id)
@ -479,7 +479,7 @@ def change_rights_cert(cert_id, right_add, right_del, \
ls_rig_add = right_add.split(',')
for meth in ls_rig_add:
add_right(cert_id, meth, rights)
if right_del:
if not os.path.exists(rights):
print _('file %s not found!') %rights
@ -487,7 +487,7 @@ def change_rights_cert(cert_id, right_add, right_del, \
ls_rig_del = right_del.split(',')
for meth in ls_rig_del:
del_right(cert_id, meth, rights)
# Detailed view clients certificates
def view_cert_info(cert, cert_id, rights, group_rights):
certobj = OpenSSL.crypto.load_certificate (OpenSSL.SSL.FILETYPE_PEM, cert)
@ -528,7 +528,7 @@ def view_cert_info(cert, cert_id, rights, group_rights):
groups_list = groups.split(',')
#except:
#return ['-1']
results = []
if not os.path.exists (group_rights):
open(group_rights, 'w')
@ -542,7 +542,7 @@ def view_cert_info(cert, cert_id, rights, group_rights):
methods = words[1].split(',')
for i in methods:
results.append(i.strip())
results = uniq(results)
add_list_rights = []
@ -571,7 +571,7 @@ def view_cert_info(cert, cert_id, rights, group_rights):
for method in results:
if method in del_list_rights:
results.remove(method)
if results == []:
print _("no methods available")
else:
@ -585,13 +585,13 @@ def view_cert(args, certbase, data_path, rights, group_rights):
remove = args.remove
right_add = args.right_add
right_del = args.right_del
for i in [right_add, right_del]:
if i:
change_rights_cert (cert_id, right_add, right_del, \
rights, group_rights, certbase)
return 0
if not os.path.exists(certbase):
fc = open(certbase,"w")
fc.close()
@ -617,7 +617,7 @@ def view_cert(args, certbase, data_path, rights, group_rights):
view_cert_info(cert, words[0], rights, group_rights)
print "#############################################\n"
print _("Total %d certificates.") %count
if remove:
answer = \
raw_input(_("Are you sure? Delete all client certificates?") + \
@ -631,9 +631,9 @@ def view_cert(args, certbase, data_path, rights, group_rights):
except:
print _("certificate number not int and not 'all'")
return 1
cert = find_id_cert(cert_id, data_path)
if not cert:
print _("Certificate not found")
return 1
@ -641,7 +641,7 @@ def view_cert(args, certbase, data_path, rights, group_rights):
print cert
else:
view_cert_info(cert, cert_id, rights, group_rights)
if remove:
answer = \
raw_input("Delete client certificate with id = %d? y/[n]: "%cert_id)
@ -666,11 +666,11 @@ def sing_req_by_server(id_client_req, cert_path, data_path, auto = False):
if not os.path.exists(cl_req):
print _("Signing Request %s not found") %cl_req
return 1
if os.path.exists(cl_cert):
print _("certificate %s already exists") %cl_cert
return 1
if auto:
group = "group:all"
else:
@ -688,7 +688,7 @@ def sing_req_by_server(id_client_req, cert_path, data_path, auto = False):
fc = open(config, 'w')
fc.write(cfg_text)
fc.close()
cmd = ("openssl x509 -req -days 11000 -CA %s -CAkey %s -CAcreateserial "
"-extfile %s -extensions ssl_client -in %s -out %s") \
%(server_cert, server_key, config, cl_req, cl_cert)
@ -704,12 +704,12 @@ def sing_req_by_server(id_client_req, cert_path, data_path, auto = False):
def sing_req_by_root(args, cert_path, data_path):
root_cert = cert_path + '/root.crt'
root_key = cert_path + '/root.key'
if not os.path.exists(root_cert) or not os.path.exists(root_key):
print _("Root certificate or private key not found")
print _("look at %s") %cert_path
return 1
if args.id_server_req:
try:
int (args.id_server_req)
@ -721,7 +721,7 @@ def sing_req_by_root(args, cert_path, data_path):
if not os.path.exists(sign_req):
print _("Signing Request %s not found") %sign_req
return 1
if os.path.exists(sign_cert):
print _("certificate %s already exists") %sign_cert
return 1
@ -738,7 +738,7 @@ def sing_req_by_root(args, cert_path, data_path):
#fc = open(config, 'w')
#fc.write(cfg_text)
#fc.close()
#cmd = ("openssl x509 -req -days 11000 -CA %s -CAkey %s -CAcreateserial "
#"-extfile %s -extensions ssl_server_ca -in %s -out %s") \
#%(root_cert, root_key, config, sign_req, sign_cert)
@ -756,7 +756,7 @@ def sing_req_by_root(args, cert_path, data_path):
# Detailed view server signed certificates
def view_signed_cert_info(cert_id, serv_certbase, data_path, mid_path):
cert_file = data_path + '/%s/%d.crt' %(mid_path, cert_id)
print cert_file
if os.path.exists(cert_file):
@ -777,11 +777,11 @@ def view_signed_cert_info(cert_id, serv_certbase, data_path, mid_path):
print _("\nSubject")
for item in Subject:
print "%s : %s" %(item[0], item[1])
if not os.path.exists(serv_certbase):
fc = open(serv_certbase,"w")
fc.close()
with open(serv_certbase) as fd:
t = fd.read()
# See each line
@ -795,17 +795,17 @@ def view_signed_cert_info(cert_id, serv_certbase, data_path, mid_path):
print 'mac - %s' %words[5]
print _('date') + ' - %s %s' %(words[2], words[3])
break
else:
print _("Certificate not found!")
print "\n###################################################\n"
# Detailed view server request
req_file = data_path+'/%s/%d.csr' %(mid_path, cert_id)
print req_file
if os.path.exists(req_file):
fp = open(req_file, 'r')
request = fp.read()
@ -817,11 +817,11 @@ def view_signed_cert_info(cert_id, serv_certbase, data_path, mid_path):
print _("\nSubject")
for item in Subject:
print " %s : %s" %(item[0], item[1])
if not os.path.exists(serv_certbase):
fc = open(serv_certbase,"w")
fc.close()
with open(serv_certbase) as fd:
t = fd.read()
# See each line
@ -844,7 +844,7 @@ def view_signed_cert(args, serv_certbase, data_path):
cert_id = args.cert_id
dump = args.dump
remove = args.remove
if cert_id == 'all':
if not os.path.exists(serv_certbase):
fc = open(serv_certbase,"w")
@ -870,7 +870,7 @@ def view_signed_cert(args, serv_certbase, data_path):
if not count:
print _("Certificates or requests not found!")
return 0
try:
cert_id = int (cert_id)
except:
@ -884,7 +884,7 @@ def view_client_request(args, client_certbase, data_path):
req_id = args.req_id
dump = args.dump
remove = args.remove
if req_id == 'all':
if not os.path.exists(client_certbase):
fc = open(client_certbase,"w")
@ -910,7 +910,7 @@ def view_client_request(args, client_certbase, data_path):
if not count:
print _("Certificates or requests not found!")
return 0
try:
req_id = int (req_id)
except:
@ -926,26 +926,26 @@ def del_request(id_del_req, serv_certbase, data_path):
except:
print _("id must be int")
return 1
request = data_path + '/server_certs/%s.csr' %id_del_req
cert = data_path + '/server_certs/%s.crt' %id_del_req
# chect exists request and certificate files
print request
if not os.path.exists(request) and not os.path.exists(cert):
print _("Request or certificate with id = %s not found!") %id_del_req
return 1
if not os.path.exists(request):
print _("request %s not found!") %request
if os.path.exists(cert):
print _("This request has already been signed")
ask = raw_input (_("Delete certificate and request? y/[n]: "))
if not ask.lower() in ['y', 'yes']:
print _("Not deleted")
return 0
# create temp file
ft = open(serv_certbase + '_temp', 'w')
with open(serv_certbase) as fd:
@ -959,7 +959,7 @@ def del_request(id_del_req, serv_certbase, data_path):
ft.write(line + '\n')
ft.close()
fd.close()
ft = open(serv_certbase + '_temp', 'rb')
fc = open(serv_certbase, 'wb')
ft.seek(0)
@ -982,43 +982,43 @@ def revoke_signed_cert(revoke_cert_id, data_path, cert_path):
CRL = data_path + '/server_certs/ca.crl'
CRL_mid_dir = "/server_certs/CRL/"
CRL_db_dir = data_path + CRL_mid_dir
if revoke_cert_id == 'rm':
if os.path.exists(CRL_db_dir):
for filename in glob.glob(CRL_db_dir+"*"):
os.unlink (filename)
if os.path.exists(CRL):
os.unlink(CRL)
print _("CRL deleted")
return 0
print _("CRL not exists")
return 0
try:
int (revoke_cert_id)
except:
print _("Id revocation certificate must be integer!")
return 1
cert_file = data_path + "/server_certs/%s.crt" %revoke_cert_id
if not os.path.exists (cert_file):
print _("Certificate %s not found") %cert_file
return 1
if not os.path.exists(CRL_db_dir):
os.makedirs(CRL_db_dir)
index_file = CRL_db_dir + 'index'
if not os.path.exists (index_file):
open(index_file,'w')
serial_file = CRL_db_dir + 'serial'
if not os.path.exists (serial_file):
open(serial_file,'w')
default_crl_days = 14
conf_file = data_path + "/server_certs/ca.config"
#if not os.path.exists (conf_file):
content_conf = ("[ ca ]\ndefault_ca = CA_CLIENT\n"
@ -1036,15 +1036,15 @@ def revoke_signed_cert(revoke_cert_id, data_path, cert_path):
fd = open(conf_file,'w')
fd.write(content_conf)
fd.close()
server_cert = open (cert_file, 'r').read()
cmd_rev_cert = "openssl ca -config %s -revoke %s" %(conf_file, cert_file)
os.system(cmd_rev_cert)
cmd_create_crl = "openssl ca -gencrl -config %s -out %s" %(conf_file, CRL)
os.system(cmd_create_crl)
print
cmd_show_crl = "openssl crl -text -noout -in %s" %CRL
os.system(cmd_show_crl)

@ -72,7 +72,7 @@ class CoreWsdl:
data_path = dv.Get('cl_core_data')
group_rights = dv.Get('cl_core_group_rights')
rights = dv.Get('cl_core_rights')
# Помещение данных в словарь процессов
self.briefParams('cert_view')
if cert_id != 'all':
@ -89,7 +89,7 @@ class CoreWsdl:
self.printERROR ("Certificate not found in server!")
return True
cert = open(cert_file, 'r').read()
#try:
certobj = OpenSSL.crypto.load_certificate \
(OpenSSL.SSL.FILETYPE_PEM, cert)
@ -99,7 +99,7 @@ class CoreWsdl:
groups_list = groups.split(',')
#except:
#return ['-1']
# if group = all and not redefined group all
if 'all' in groups_list:
find_flag = False
@ -113,7 +113,7 @@ class CoreWsdl:
if not find_flag:
self.printSUCCESS(_("Certificate %d can run all methods!") \
%cert_id)
else:
results = []
if not os.path.exists (group_rights):
@ -127,7 +127,7 @@ class CoreWsdl:
methods = words[1].split(',')
for i in methods:
results.append(i.strip())
results = uniq(results)
add_list_rights = []
@ -159,7 +159,7 @@ class CoreWsdl:
if results == []:
results.append("No Methods")
self.printSUCCESS(_("Certificate %d can run: ") %cert_id)
for i in results:
self.printSUCCESS(i)
@ -189,7 +189,7 @@ class CoreWsdl:
return False
############################################
def check_cert_params (self, dv, info,allvars=False,ordered=None):
errors = []
keys = sorted(filter(lambda x:x.lower() == x,

@ -22,10 +22,10 @@ class CoreWsdl () :
def check_rights(self, cert, method_name):
if cert == None:
return -3
from cert_cmd import find_cert_id
cert_id = find_cert_id(certificate, self.data_path, self.certbase)
cert_id = int(cert_id)
# if certificate found
if cert_id > 0:

@ -53,7 +53,7 @@ class OpenSSLAdapter (pyOpenSSLAdapter):
#cert = OpenSSL.crypto.load_certificate(OpenSSL.SSL.FILETYPE_PEM,
#curThread.client_cert)
#subject = cert.get_subject()
#if ok:
#try:
#country = len (subject.get_components()) - 1
@ -64,18 +64,18 @@ class OpenSSLAdapter (pyOpenSSLAdapter):
else:
curThread.client_cert = None
return ok
def get_context(self):
"""Return an SSL.Context from self attributes."""
# See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/442473
c = SSL.Context(SSL.SSLv23_METHOD)
c.use_privatekey_file(self.private_key)
c.set_verify(SSL.VERIFY_PEER, self.verify_func)
if self.certificate_chain:
c.load_verify_locations(self.certificate_chain)
c.use_certificate_file(self.certificate)
return c
@ -87,7 +87,7 @@ def main(*args, **keywords):
port = args.port
ob = DataVarsCore()
ob.importCore()
# set var env
ob.flIniFile()
cl_wsdl = ob.Get('cl_wsdl')
@ -108,7 +108,7 @@ def main(*args, **keywords):
key = ob.Get('cl_core_key')
cl_ver = ob.Get('cl_ver')
log_path_var = ob.Get('cl_log_path')
import logging
import logging.handlers
@ -125,7 +125,7 @@ def main(*args, **keywords):
LOG_FILENAME, maxBytes=10000000, backupCount=3)
file_logger.addHandler(handler)
# debug
if args.debug:
logging.basicConfig(level=logging.DEBUG)
@ -184,12 +184,12 @@ def main(*args, **keywords):
#try:
pack = "calculate.core.server"
func_metaclass = importlib.import_module('%s.func_metaclass' %pack)
other_mod.append(func_metaclass.Func_MetaClass)
from calculate.core.server.cl_vers_api import VERS
other_mod.append(VERS)
from calculate.core.server.baseClass import Basic
other_mod.append(Basic)
other_mod.append(object)
@ -207,18 +207,18 @@ def main(*args, **keywords):
dispatcher = WSGIPathInfoDispatcher( { '' : App } )
server = CherryPyWSGIServer(('0.0.0.0', port), dispatcher,\
numthreads = 10, max = max_num, request_queue_size = max_num)
print _("listening to https://0.0.0.0:%d") % (port)
print _("wsdl is at: https://0.0.0.0:%d/?wsdl") %(port)
ca_cert = cert_path + "/ca_root.crt"
if not os.path.exists (ca_cert):
ca_cert = None
sslAdapter = OpenSSLAdapter(cert, key, ca_cert)
sslAdapter.certbase = certbase
server.ssl_adapter = sslAdapter
server.certbase = certbase
server.serv_certbase = serv_certbase
@ -233,7 +233,7 @@ def main(*args, **keywords):
server.ssl_certificate = cert
server.ssl_private_key = key
try:
print _("Server start")
if args.pidfile:

@ -59,13 +59,13 @@ class CoreWsdl:
escape_list = reg.findall(line)
for i in escape_list:
line = line.replace(i,'')
# delete escape characters (can not be transferred to xml)
#line = line.replace('\x1b[1;33m','')
#line = line.replace('\x1b[0m','')
#line = line.replace('\x1b[1;31m','')
self.printERROR(line)
except Exception, e:
self.printERROR (e)
sys.exit()
@ -105,10 +105,10 @@ class CoreWsdl:
@rpc( _returns = ViewInfo)
def cl_template_view (self):
view = ViewInfo(groups=[])
group = GroupField(name=_("cl-template"),nextlabel=_("Next"),last=True)
group.fields = []
group.fields.append(Field(
name = "args",
label = _("arguments: "),

@ -25,7 +25,7 @@ from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_core',sys.modules[__name__])
class clientHTTPSConnection (httplib.HTTPSConnection):
def __init__(self, host, port=None, key_file=None, cert_file=None,
strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
source_address=None, cert_path=None):
@ -34,7 +34,7 @@ class clientHTTPSConnection (httplib.HTTPSConnection):
self.key_file = key_file
self.cert_file = cert_file
self.cert_path = cert_path
# get filename store cert server
def cert_list (self, host, ca_certs, server_cert):
if not os.path.exists(self.ca_path):
@ -71,11 +71,11 @@ class clientHTTPSConnection (httplib.HTTPSConnection):
except:
print _("Error open file") + "%s%s" %(self.ca_path, filename)
return None
# add certificate server in trusted
def add_server_cert(self, cert):
print _("Untrusted Server Certificate!")
certobj = \
OpenSSL.crypto.load_certificate \
(OpenSSL.SSL.FILETYPE_PEM, cert)
@ -89,12 +89,12 @@ class clientHTTPSConnection (httplib.HTTPSConnection):
print _("\nSubject")
for item in Subject:
print "%s : %s" %(item[0], item[1])
choice = raw_input \
(_("add this certificate to trusted and continue? y/[n]: "))
if choice in ['y', 'yes', 'Y', 'YES']:
ca_certs = self.ca_path + "cert.list"
if not os.path.exists(ca_certs):
fc = open(ca_certs,"w")
fc.close()
@ -121,11 +121,11 @@ class clientHTTPSConnection (httplib.HTTPSConnection):
else:
sys.exit()
#def connect_trusted_root(self, sock, root_cert):
#self.ca_path = self.cert_path + "ca/"
#ca_certs = self.ca_path + "cert.list"
#server_cert = ssl.get_server_certificate(addr = (self.host, self.port))
#try:
@ -195,7 +195,7 @@ class clientHTTPSConnection (httplib.HTTPSConnection):
if self._tunnel_host:
self.sock = sock
self._tunnel()
from calculate.core.datavars import DataVarsCore
clVars = DataVarsCore()
clVars.importCore()
@ -226,7 +226,7 @@ class HTTPSClientAuthHandler(u2.HTTPSHandler):
return self.do_open(self.getConnection, req)
def getConnection(self, host, timeout=300):
#return httplib.HTTPSConnection(host, key_file=self.key, cert_file=self.cert)
return clientHTTPSConnection(host, key_file=self.key,\
cert_file=self.cert, cert_path = self.cert_path)

@ -88,7 +88,7 @@ def makeRequest(pubkey, pkey, serv_host, port):
else:
name.ST.replace(' ', '_').replace('\t', '_')
name.C = raw_input (_('Country (only TWO letters!): '))
req.set_subject_name(name)
#ext1 = X509.new_extension('nsComment', 'Hello there')
ext1 = X509.new_extension('Comment', 'Auto Generated')

@ -21,7 +21,7 @@ class Dec:
conMethods = {}
guiMethods = {}
rightsMethods = {}
# add wrapped method in list console methods
@classmethod
def console(cls,command):

@ -47,7 +47,7 @@ class AddGroupInfo(ClassSerializer):
"""Parameters for method install"""
cl_group_add = String
cl_group_rights = Array(String)
def catchExcept():
class wrapper:
def __init__(self,f):
@ -248,7 +248,7 @@ class CoreWsdl:
field = 'cl_group_name',
message = mess))
return errors
dv = datavars.DataVarsCore()
dv.importCore()
dv.flIniFile()
@ -265,13 +265,13 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_group_name')
dv.addGroup(_("Group detail"),
normal=('cl_group_name', 'cl_group_rights',
'cl_page_count','cl_page_offset'))
view = ViewInfo(dv)
group = GroupField(name='',last=True)
group.fields = []
group.fields.append(Field(
@ -321,13 +321,13 @@ class CoreWsdl:
def change_group_meth(self, dv):
try:
group_rights_file = dv.Get('cl_core_group_rights')
cl_group_name = str(dv.Get('cl_group_name'))
cl_group_rights = dv.Get('cl_group_rights')
#self.startTask('Confirm Request')
changed_flag = False
result = []
for line in readLinesFile(group_rights_file):
if line.startswith('#') or not line:
result.append(line)
@ -338,11 +338,11 @@ class CoreWsdl:
line = cl_group_name + ' ' + ','.join(cl_group_rights)
changed_flag = True
result.append(line)
if cl_group_name == 'all' and not changed_flag:
result.append(cl_group_name + ' ' + ','.join(cl_group_rights))
changed_flag = True
fd = open (group_rights_file, 'w')
for lines in result:
fd.write(lines + '\n')
@ -359,7 +359,7 @@ class CoreWsdl:
except (KeyboardInterrupt,):
self.printERROR('Process is interrupted!')
return False
@rpc(Integer, DetailGroupInfo, _returns = Array(ReturnedMessage))
@Dec.check_permissions(["edit-group"])
@Dec.console('cl-change-group')
@ -385,13 +385,13 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_group_name')
dv.addGroup(_("Change group"),
normal=('cl_group_name', 'cl_group_rights'),
next_label=_("Done"))
view = ViewInfo(dv)
group = GroupField(name=_("Change group"),nextlabel=_("Done"),last=True)
group.fields = []
group.fields.append(Field(
@ -447,7 +447,7 @@ class CoreWsdl:
result.append(line)
else:
deleted_flag = True
fd = open (group_rights_file, 'w')
for lines in result:
fd.write(lines + '\n')
@ -460,7 +460,7 @@ class CoreWsdl:
self.printSUCCESS ('<b>'+_('Group %s is not deleted') \
%cl_group_name + '!</b>')
return True
except KeyboardInterrupt:
self.endTask()
return False
@ -496,7 +496,7 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_group_name')
dv.addGroup(_("Group delete"),
normal=('cl_group_name', 'cl_group_rights'),
next_label=_("Delete"))
@ -553,7 +553,7 @@ class CoreWsdl:
#result.append(line)
#else:
#deleted_flag = True
#fd = open (group_rights_file, 'w')
#for lines in result:
#fd.write(lines + '\n')
@ -566,7 +566,7 @@ class CoreWsdl:
#self.printSUCCESS ('<b>'+_('Group %s is not deleted') \
#%cl_group_name + '!</b>')
#return True
except KeyboardInterrupt:
self.endTask()
return False
@ -576,7 +576,7 @@ class CoreWsdl:
msg = e.reason
self.printERROR (_("Exception!%s") %msg)
return False
@rpc(Integer, AddGroupInfo, _returns = Array(ReturnedMessage))
@Dec.check_permissions(["edit-group"])
@ -603,7 +603,7 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_group_name')
dv.addGroup(_("Group add"),
normal=('cl_group_add', 'cl_group_rights'),
next_label=_("Add"))

@ -32,7 +32,7 @@ from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_core',sys.modules[__name__])
class CoreWsdl () :
# client signals about presence
def active_clients (self, sid):
curThread = threading.currentThread()
@ -63,7 +63,7 @@ class CoreWsdl () :
certificate = curThread.client_cert
from cert_cmd import find_cert_id
cert_id = find_cert_id (certificate, self.data_path, self.certbase)
rights = self.serv_view_cert_right (cert_id, self.data_path)
return_list = []
if client_type == "console":
@ -117,7 +117,7 @@ class CoreWsdl () :
# get available sessions
def serv_get_sessions(self):
result = []
fd = open(self.sids_file, 'r')
while 1:
@ -130,7 +130,7 @@ class CoreWsdl () :
result.append (str(list_sid[0]))
fd.close()
return result
# check client alive
def client_alive(sid, SIDS_DIR):
sid_path = SIDS_DIR + "/%d.sid"%sid
@ -143,7 +143,7 @@ class CoreWsdl () :
return 0
else:
return 1
class Common:
""" class to interact with the processes """
def __init__(self, process_dict, progress_dict, table_dict, frame_list,
@ -155,7 +155,7 @@ class CoreWsdl () :
self.frame_list = frame_list
self.pid = pid
self.Num = 100000
def writeFile(self):
""" write data in file """
from baseClass import Basic
@ -168,27 +168,27 @@ class CoreWsdl () :
_fc.close()
except:
print _("Write pid file %s Error!") %self.PID_FILE
def setProgress(self, perc, short_message = None, long_message = None):
id = self.progress_dict['id']
self.progress_dict[id] = ReturnProgress(perc, short_message, \
long_message)
def setStatus(self, stat):
self.process_dict['status'] = stat
def setData(self, dat):
self.data_list = dat
def getStatus(self):
return self.process_dict['status']
def getProgress(self):
id = self.progress_dict['id']
if self.progress_dict.has_key(id):
return self.progress_dict[id].percent
return 0
def getAnswer(self):
while self.process_dict['answer'] == None:
time.sleep (2)
@ -197,7 +197,7 @@ class CoreWsdl () :
self.frame_list.pop(len(self.frame_list) - 1)
self.process_dict['counter'] -= 1
return res
def addProgress(self):
id = random.randint(1, self.Num)
while id in self.progress_dict:
@ -205,37 +205,37 @@ class CoreWsdl () :
self.progress_dict['id'] = id
self.progress_dict[id] = ReturnProgress(0, '', '')
self.addMessage(type = 'progress', id = id)
#class Table(ClassSerializer):
#head = Array(String)
#body = Array(Array(String))
#values = Array(ChoiceValue)
#message = api_types.Message
def printTable (self, table_name, head, body, fields = None,\
onClick = None, addAction = None):
id = random.randint(1, self.Num)
while id in self.table_dict:
id = random.randint(1, self.Num)
from api_types import Table
table = Table(head = head, body = body, fields = fields, \
onClick = onClick, addAction = addAction, \
values = None)
self.table_dict[id] = table
self.addMessage(type = 'table', message = table_name, id = id)
def addMessage(self, type = 'normal', message = None, id = None):
from api_types import Message
message = Message(type = type, message = message, id = id)
self.frame_list.append(message)
def printSUCCESS(self, message):
self.addMessage(type = 'normal', message = message)
def printWARNING(self, message):
self.addMessage(type = 'warning', message = message)
def printERROR(self, message):
perc = self.getProgress()
if perc == 0:
@ -253,43 +253,43 @@ class CoreWsdl () :
self.addProgress()
else:
self.addMessage(type = 'startTask', message = message, id = num)
def setTaskNumber(self, number = None):
self.addMessage(type = 'taskNumber', message = str(number))
def endTask(self, result = None):
self.addMessage(type = 'endTask', message = result)
self.setProgress(100)
def askQuestion(self, message):
self.addMessage(type = 'question', message = message)
return self.getAnswer()
def askPassword(self, message, twice = False):
pas_repeat = 2 if twice else 1
self.addMessage(type = 'password', message = message, \
id = pas_repeat)
return self.getAnswer()
def beginFrame(self, message = None):
self.addMessage(type = 'beginFrame', message = message)
def endFrame(self):
self.addMessage(type = 'endFrame')
def startGroup(self, message):
self.addMessage(type = 'startGroup', message = message)
def endGruop(self):
self.addMessage(type = 'endGruop')
def briefParams(self, view_name):
self.addMessage(type = 'briefParams', message = view_name)
#def cache(self, param):
#sid = self.process_dict['sid']
#self.args[sid] = collections.OrderedDict()
def startprocess (self, sid, target=None, method=None, method_name=None, \
auto_delete=False, args_proc = {}):
""" start process """
@ -306,11 +306,11 @@ class CoreWsdl () :
self.glob_process_dict[pid]['name'] = ""
self.glob_process_dict[pid]['flag'] = 0
self.glob_process_dict[pid]['counter'] = 0
self.glob_frame_list[pid] = self.manager.list()
self.glob_progress_dict[pid] = self.manager.dict()
self.glob_table_dict[pid] = self.manager.dict()
# create object Common and send parameters
com = target(self.glob_process_dict[pid], \
self.glob_progress_dict[pid], \
@ -329,10 +329,10 @@ class CoreWsdl () :
# start watcher (for kill process on signal)
watcher = threading.Thread(target = self.watcher_pid_proc,\
args = (pid, ))
watcher.start()
return str(pid)
# wrap all method
def target_helper(self, com, target_proc, method_name, *args_proc):
if not os.path.exists(self.pids):
@ -366,7 +366,7 @@ class CoreWsdl () :
com.setProgress(0 - com.getProgress())
except:
pass
if len(com.frame_list):
last_message = com.frame_list[len(com.frame_list)-1]
if last_message.type != 'endFrame':
@ -386,7 +386,7 @@ class CoreWsdl () :
if not os.path.exists(cert_file):
return ["-1"]
cert = open(cert_file, 'r').read()
#try:
certobj = OpenSSL.crypto.load_certificate \
(OpenSSL.SSL.FILETYPE_PEM, cert)
@ -434,7 +434,7 @@ class CoreWsdl () :
except IndexError:
print 'except IndexError in serv_view_cert_right'
continue
results = uniq(results)
add_list_rights = []
@ -521,11 +521,11 @@ def new_key_req(key, cert_path, serv_host_name, port):
rsa = generateRSAKey()
rsa.save_key(key+'_pub',\
cipher=None, callback=passphrase_callback)
pkey = makePKey(rsa)
pkey.save_key(key,\
cipher=None, callback=passphrase_callback)
req = makeRequest(rsa, pkey, serv_host_name, port)
if not req:
sys.exit()
@ -536,7 +536,7 @@ def new_key_req(key, cert_path, serv_host_name, port):
def _(s):
return s
# delete dublicate from list
def uniq(seq):
seen = set()

@ -32,7 +32,7 @@ class Parameter (ClassSerializer):
Element = String
Value = Any
Choise = Array (String)
class Table (ClassSerializer):
class types:
head = Array (String)

@ -30,7 +30,7 @@ class CoreWsdl () :
try:
rst = []
pid_str = str(pid)
# open the file list of process
with open(self.pids_file) as fd:
t = fd.read()
@ -51,11 +51,11 @@ class CoreWsdl () :
return 0
except:
return 1
# find process id in file processes, 1 - yes, 0 - none
def find_pid_in_file(self, find_pid):
temp_line = ''
# create, if file not exists
if not os.path.exists(self.pids_file):
temp = open(self.pids_file, 'w')
@ -99,9 +99,9 @@ class CoreWsdl () :
def check_sid_cert (self, sid):
curThread = threading.currentThread()
certificate = curThread.client_cert
cert_id = find_cert_id(certificate, self.data_path, self.certbase)
# if certificate not found in database
if cert_id == 0:
return -1
@ -134,7 +134,7 @@ class CoreWsdl () :
check_sid = self.check_sid_cert(sid)
if not check_sid:
return -2
# write complete flag (pid_list[6] = 1) in process file
if not os.path.exists(self.pids):
os.system('mkdir %s' %self.pids)

@ -24,7 +24,7 @@ from soaplib.serializers.clazz import Array
# session management
class CoreWsdl () :
# delete client session from file (close session)
def del_sid_from_file(self, sid):
try:
@ -32,7 +32,7 @@ class CoreWsdl () :
# temp file
SID_FILE = self.sids_file
SID_FILE_T = SID_FILE + 'temp'
fd = open(SID_FILE, 'r')
ft = open(SID_FILE_T, 'w')
while 1:
@ -46,7 +46,7 @@ class CoreWsdl () :
pickle.dump(list_sid, ft)
fd.close()
ft.close()
# copy all from temp file
ft = open(SID_FILE_T, 'rb')
fd = open(SID_FILE, 'wb')
@ -90,13 +90,13 @@ class CoreWsdl () :
os.system('mkdir %s' %self.sids)
SIDS_DIR = self.sids
sid_file = SIDS_DIR+"/%d.sid" %sid
# create session's file
fp = open(sid_file, 'w')
sid_list = [sid, 0, 0, lang]
pickle.dump(sid_list,fp)
fp.close()
# add session in list sessions
fd = open(self.sids_file, 'a')
pickle.dump(list_sid,fd)
@ -134,7 +134,7 @@ class CoreWsdl () :
# add session id
self.add_sid_in_file(new_sid, cert_id, lang)
sid = new_sid
# if session is old
else:
# find number in file registered
@ -147,13 +147,13 @@ class CoreWsdl () :
self.set_sid_lang(sid, lang)
# set - old session
session = 0
# session id and flad (new or old) session
result = []
result.append(sid)
result.append(session)
return result
def serv_sid_info(self, sid):
""" Get information about sid """
@ -171,11 +171,11 @@ class CoreWsdl () :
if sid == list_sid[0]:
cert_id = list_sid[1]
fd.close()
# Get information about sid
if cert_id == 0:
return ["-1"]
with open(self.certbase) as fd:
t = fd.read()
# See each line

@ -30,7 +30,7 @@ def serv_post_cert (self) :
results = []
if certificate == None:
return [-3]
lock = Lock()
lock.acquire()
checked_id = find_cert_id(certificate, self.data_path, self.certbase)

@ -17,17 +17,17 @@
import threading
import os, random
import time, hashlib, datetime
MAX = 10000
###################### sign client certificate ######################
def serv_post_client_request (request, data_path, ip, mac, client_type, \
client_certbase, cert_path):
if not os.path.exists (cert_path + '/root.crt') or \
not os.path.exists (cert_path + '/root.key'):
return '-1'
if not os.path.exists(client_certbase):
if not os.path.exists(data_path + '/client_certs/'):
os.makedirs(data_path + '/client_certs/')
@ -41,10 +41,10 @@ def serv_post_client_request (request, data_path, ip, mac, client_type, \
except:
print "EXCEPT ip = curThread.REMOTE_ADDR!!!"
ip = 'localhost'
# Finding Id for the current certificate
ID_FILE = data_path + '/client_certs/id.int'
if os.path.exists(ID_FILE):
temp = open(ID_FILE, 'r').read()
i = int(temp)
@ -55,7 +55,7 @@ def serv_post_client_request (request, data_path, ip, mac, client_type, \
# See each line
for line in t.splitlines():
count += 1
count += 1
fi = open(ID_FILE, 'w')
fi.write(str(count))
@ -63,12 +63,12 @@ def serv_post_client_request (request, data_path, ip, mac, client_type, \
i = count
REQ_FILE = data_path + '/client_certs/' + str(i) + '.csr'
# Record of request of the client in file REQ_FILE
f = open(REQ_FILE, 'w')
f.write(request)
f.close()
md5 = hashlib.md5()
md5.update(request)
md5sum = md5.hexdigest()
@ -92,20 +92,20 @@ def serv_get_client_cert (req_id, request, data_path, client_certbase, \
REQ_FILE = data_path + '/client_certs/' + req_id + '.csr'
if not os.path.exists(REQ_FILE):
return '1'
CERT_FILE = data_path + '/client_certs/' + req_id + '.crt'
if not os.path.exists(CERT_FILE):
return '2'
fp = open(REQ_FILE, 'r')
req = fp.read()
fp.close()
# read client certificate in buffer
fp = open(CERT_FILE, 'r')
cert = fp.read()
fp.close()
md5 = hashlib.md5()
md5.update(cert)
md5sum = md5.hexdigest()
@ -139,7 +139,7 @@ def serv_get_client_cert (req_id, request, data_path, client_certbase, \
line = ("%s %s %s %s %s %s" %(req_id, md5sum, date, ip, mac,\
client_type))
ft.write(line + '\n')
# copy all from temp file
ft = open(client_certbase + '_temp', 'rb')
fd = open(client_certbase, 'wb')
@ -150,7 +150,7 @@ def serv_get_client_cert (req_id, request, data_path, client_certbase, \
# delete temp file
os.unlink(client_certbase + '_temp')
os.unlink(REQ_FILE)
if not os.path.exists(cert_path + '/root.crt'):
open(cert_path + '/root.crt', 'w')
ca_root = open(cert_path + '/root.crt', 'r').read()
@ -159,11 +159,11 @@ def serv_get_client_cert (req_id, request, data_path, client_certbase, \
###################### sign server certificate ######################
def serv_post_server_request (request, data_path,\
ip, mac, serv_certbase, cert_path):
if not os.path.exists (cert_path + '/root.crt') or \
not os.path.exists (cert_path + '/root.key'):
return '-1'
if not os.path.exists(serv_certbase):
if not os.path.exists(data_path + '/server_certs/'):
os.makedirs(data_path + '/server_certs/')
@ -176,10 +176,10 @@ def serv_post_server_request (request, data_path,\
ip = curThread.REMOTE_ADDR
except:
print "EXCEPT ip = curThread.REMOTE_ADDR!!!!!!"
# Finding Id for the current certificate
ID_FILE = data_path + '/server_certs/id.int'
if os.path.exists(ID_FILE):
fi = open(ID_FILE, 'r')
temp = fi.read()
@ -192,7 +192,7 @@ def serv_post_server_request (request, data_path,\
# See each line
for line in t.splitlines():
count += 1
count += 1
fi = open(ID_FILE, 'w')
fi.write(str(count))
@ -200,12 +200,12 @@ def serv_post_server_request (request, data_path,\
i = count
REQ_FILE = data_path + '/server_certs/' + str(i) + '.csr'
# Record of request of the client in file REQ_FILE
f = open(REQ_FILE, 'w')
f.write(request)
f.close()
md5 = hashlib.md5()
md5.update(request)
md5sum = md5.hexdigest()
@ -218,33 +218,33 @@ def serv_post_server_request (request, data_path,\
# record next Id in id.int file
i += 1
fi = open(ID_FILE, 'w')
temp = str(i)
fi.write(temp)
fi.close()
return str(i-1)
def serv_get_server_request (req_id, request, data_path, serv_certbase, \
cert_path):
REQ_FILE = data_path + '/server_certs/' + req_id + '.csr'
if not os.path.exists(REQ_FILE):
return '1'
CERT_FILE = data_path + '/server_certs/' + req_id + '.crt'
if not os.path.exists(CERT_FILE):
return '2'
fp = open(REQ_FILE, 'r')
req = fp.read()
fp.close()
# read client certificate in buffer
fp = open(CERT_FILE, 'r')
cert = fp.read()
fp.close()
md5 = hashlib.md5()
md5.update(cert)
md5sum = md5.hexdigest()
@ -271,7 +271,7 @@ def serv_get_server_request (req_id, request, data_path, serv_certbase, \
mac = words[5]
line = ("%s %s %s %s %s" %(req_id, md5sum, date, ip, mac))
ft.write(line + '\n')
# copy all from temp file
ft = open(serv_certbase + '_temp', 'rb')
fd = open(serv_certbase, 'wb')
@ -282,7 +282,7 @@ def serv_get_server_request (req_id, request, data_path, serv_certbase, \
# delete temp file
os.unlink(serv_certbase + '_temp')
os.unlink(REQ_FILE)
if not os.path.exists(cert_path + '/ca_root.crt'):
open(cert_path + '/ca_root.crt', 'w')
ca_root = open(cert_path + '/ca_root.crt', 'r').read()

@ -249,7 +249,7 @@ class CoreWsdl:
errors.append(ReturnedMessage(type = 'error', field = 'cl_req_id',
message = mess))
return errors
dv = datavars.DataVarsCore()
dv.importCore()
dv.flIniFile()
@ -266,14 +266,14 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_req_id')
dv.addGroup(_("Requests detail"),
normal=('cl_req_id', 'cl_req_user_name', 'cl_req_ip', 'cl_req_mac',
'cl_req_date', 'cl_req_location', 'cl_req_group',
'cl_page_count','cl_page_offset'))
view = ViewInfo (dv)
group = GroupField(name='',nextlabel=_("Done"),last=True)
group.fields = []
group.fields.append(Field(
@ -339,7 +339,7 @@ class CoreWsdl:
self.printSUCCESS ('<b>'+_('Confirm Request')+'</b>')
self.printSUCCESS ("cl_req_id = %s" %cl_req_id)
self.printSUCCESS ("cl_req_group = %s" %cl_req_group)
server_cert = cert_path + '/root.crt'
server_key = cert_path + '/root.key'
@ -348,11 +348,11 @@ class CoreWsdl:
if not os.path.exists(cl_req):
self.printERROR (_("Signing Request %s not found") %cl_req)
return False
if os.path.exists(cl_cert):
self.printERROR (_("certificate %s already exists") %cl_cert)
return False
group = "group:%s" %cl_req_group
config = data_path + '/client_certs/ssl-client.cfg'
if os.path.exists(config):
@ -367,7 +367,7 @@ class CoreWsdl:
fc = open(config, 'w')
fc.write(cfg_text)
fc.close()
cmd = ("openssl x509 -req -days 11000 -CA %s -CAkey %s "
"-CAcreateserial "
"-extfile %s -extensions ssl_client -in %s -out %s") \
@ -384,7 +384,7 @@ class CoreWsdl:
except (KeyboardInterrupt,):
self.printERROR('Process is interrupted!')
return False
@rpc(Integer, DetailRequestInfo, _returns = Array(ReturnedMessage))
@Dec.check_permissions(["request"])
@Dec.console('cl-show-request')
@ -420,14 +420,14 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_req_id')
dv.addGroup(_("Requests detail"),
normal=('cl_req_id', 'cl_req_user_name', 'cl_req_ip', 'cl_req_mac',
'cl_req_date', 'cl_req_location', 'cl_req_group'),
next_label=_("Done"))
view = ViewInfo (dv)
group = GroupField(name=_("Requests detail"),nextlabel=_("Done"),
last=True)
group.fields = []
@ -477,7 +477,7 @@ class CoreWsdl:
def del_request_meth(self, dv):
#ob = datavars.DataVarsCore()
#ob.importCore()
# set var env
#ob.flIniFile()
try:
@ -489,17 +489,17 @@ class CoreWsdl:
print "id_del_req = ", id_del_req
request = data_path + '/client_certs/%s.csr' %id_del_req
cert = data_path + '/client_certs/%s.crt' %id_del_req
# chect exists request and certificate files
if not os.path.exists(request) and not os.path.exists(cert):
self.printERROR (
_("Request and certificate with id = %s not found!") \
%id_del_req)
return False
if not os.path.exists(request):
self.printERROR (_("request %s not found!") %request)
if os.path.exists(cert):
self.printERROR (_("This request has already been signed"))
@ -516,7 +516,7 @@ class CoreWsdl:
ft.write(line + '\n')
ft.close()
fd.close()
ft = open(certbase + '_temp', 'rb')
fc = open(certbase, 'wb')
ft.seek(0)
@ -543,7 +543,7 @@ class CoreWsdl:
msg = e.reason
self.printERROR (_("Exception!%s") %msg)
return False
@rpc(Integer, DetailRequestInfo, _returns = Array(ReturnedMessage))
@Dec.check_permissions(["request"])
@ -569,7 +569,7 @@ class CoreWsdl:
dv.importCore()
dv.flIniFile()
dv.Get('cl_req_id')
dv.addGroup(_("Requests delete"),
normal=('cl_req_id', 'cl_req_user_name', 'cl_req_ip', 'cl_req_mac',
'cl_req_date', 'cl_req_location', 'cl_req_group'),

@ -26,28 +26,28 @@ def serv_send_cert (num, data_path) :
lock = Lock()
lock.acquire()
data = open(CERT_FILE).read()
# delete temp file client's cert and request in server
for filename in glob.glob(data_path + "/client%d.crt" %num):
os.unlink (filename)
for filename in glob.glob(data_path + "/client%d.csr" %num):
os.unlink (filename)
lock.release()
return
return
def add_cert(mac, client_type, data_path, client_certbase):
curThread = threading.currentThread()
try:
ip = curThread.REMOTE_ADDR
except:
print "EXCEPT ip = curThread.REMOTE_ADDR!"
cert = curThread.client_cert
# Finding Id for the current certificate
ID_FILE = data_path + '/client_certs/id.int'
if os.path.exists(ID_FILE):
fi = open(ID_FILE, 'r')
temp = fi.read()
@ -60,18 +60,18 @@ def add_cert(mac, client_type, data_path, client_certbase):
# See each line
for line in t.splitlines():
count += 1
count += 1
fi = open(ID_FILE, 'w')
fi.write(str(count))
fi.close()
i = count
CERT_FILE = data_path + '/client_certs/' + str(i) + '.crt'
fc = open(CERT_FILE, 'w')
fc.write(cert)
fc.close()
md5 = hashlib.md5()
md5.update(cert)
md5sum = md5.hexdigest()
@ -88,11 +88,11 @@ def add_cert(mac, client_type, data_path, client_certbase):
fi.write(temp)
fi.close()
return str(i-1)
def get_ca(cert_path):
server_cert = open (cert_path + '/server.crt','r').read()
ca_certs = open (cert_path + '/ca_root.crt','r').read()
certobj = OpenSSL.crypto.load_certificate \
(OpenSSL.SSL.FILETYPE_PEM, server_cert)
@ -100,10 +100,10 @@ def get_ca(cert_path):
for item in Issuer:
if item[0] == 'CN':
issuer_CN = item[1]
if not 'issuer_CN' in locals():
return '1'
p = re.compile('[-]+[\w ]+[-]+\n+[\w\n\+\\=/]+[-]+[\w ]+[-]+\n?')
ca_certs_list = p.findall(ca_certs)
for ca in ca_certs_list:

@ -53,7 +53,7 @@ class ClApplication(Application):
cert_id = int(cert_id)
if cert_id == 0:
return 0
# session file
if not os.path.exists(server.sids):
os.system('mkdir %s' %server.sids)
@ -77,9 +77,9 @@ class ClApplication(Application):
rmethod = re.compile('[{\w]+[}]')
method_rep = rmethod.findall(method_name)
method_name = method_name.replace(method_rep[0],'')
curThread = threading.currentThread()
cert = curThread.client_cert
server_cert = curThread.server.ssl_certificate
server_key = curThread.server.ssl_private_key
@ -87,12 +87,12 @@ class ClApplication(Application):
rights = curThread.server.rights
group_rights = curThread.server.group_rights
data_path = curThread.server.data_path
ip = req_env.get('REMOTE_ADDR')
permitted_methods = ['post_server_request', 'post_client_request', \
'get_server_cert', 'get_client_cert', \
'get_crl', 'get_server_host_name', 'get_ca']
if method_name in permitted_methods:
return 1
if cert == None:
@ -103,18 +103,18 @@ class ClApplication(Application):
self.log.debug('%s NoneCert %s 1 %s' \
%(datetime.datetime.now().__str__(), ip, method_name))
return 1
if params:
if hasattr (params, 'sid') and (method_name in Dec.rightsMethods \
or (method_name.endswith('_view') and \
method_name[:-5] in Dec.rightsMethods)):
if not self.check_cert_sid(params.sid, curThread.server):
return 0
data_server_cert = open(server_cert,'r').read()
certobj = OpenSSL.crypto.load_certificate \
(OpenSSL.SSL.FILETYPE_PEM, data_server_cert)
data_server_key = open(server_key,'r').read()
Pkey = OpenSSL.crypto.load_privatekey \
(OpenSSL.SSL.FILETYPE_PEM, data_server_key)
@ -188,7 +188,7 @@ class ClApplication(Application):
if cert_id == -word:
return 0
if flag: break
if flag: break
# open file with groups rights
if not os.path.exists (group_rights):
@ -235,7 +235,7 @@ class ClApplication(Application):
if not os.path.exists(data_path):
os.makedirs(data_path)
os.makedirs(data_path + '/conf')
if not os.path.exists(data_path + '/conf/right.conf'):
open(data_path + '/conf/right.conf', 'w')
@ -260,13 +260,13 @@ class ClApplication(Application):
curThread.REMOTE_ADDR = req_env.get('REMOTE_ADDR')
curThread.REMOTE_PORT = req_env.get('REMOTE_PORT')
ip = req_env.get('REMOTE_ADDR')
http_resp_headers = {
'Content-Type': 'text/xml',
'Content-Length': '0',
}
method_name = None
self.create_path()
try:
# implementation hook
@ -315,7 +315,7 @@ class ClApplication(Application):
# retrieve the method descriptor
descriptor = service.get_method(method_name)
func = getattr(service, descriptor.name)
# decode header object
if soap_req_header is not None and len(soap_req_header) > 0:
in_header = descriptor.in_header
@ -348,7 +348,7 @@ class ClApplication(Application):
http_resp_headers['Content-Length'] = str(len(resp))
start_response(HTTP_403, http_resp_headers.items())
return [resp]
#### logging
if curThread.client_cert:
certobj = OpenSSL.crypto.load_certificate \

@ -32,10 +32,10 @@ class CoreWsdl () :
#try:
rst = []
SID_PID_T = self.sids_pids + '_temp'
lock = Lock()
lock.acquire()
lock.acquire()
fd = open(self.sids_pids, 'r')
ft = open(SID_PID_T, 'w')
while 1:
@ -64,7 +64,7 @@ class CoreWsdl () :
fd.write(ft.read())
ft.close()
fd.close()
# delete sid file
if os.path.exists(self.sids + "/%d.sid"%sid):
os.unlink(self.sids + "/%d.sid"%sid)
@ -83,10 +83,10 @@ class CoreWsdl () :
#try:
rst = []
SID_PID_T = self.sids_pids + '_temp'
lock = Lock()
lock.acquire()
fd = open(self.sids_pids, 'r')
ft = open(SID_PID_T, 'w')
while 1:
@ -106,7 +106,7 @@ class CoreWsdl () :
fd.write(ft.read())
ft.close()
fd.close()
# delete temp file
os.unlink(SID_PID_T)
lock.release()
@ -142,10 +142,10 @@ class CoreWsdl () :
f = 0
results = []
# Check pid presence and conformity sid
lock = Lock()
lock.acquire()
fd = open(self.sids_pids, 'r')
while 1:
try:
@ -158,13 +158,13 @@ class CoreWsdl () :
f = 1
fd.close()
lock.release()
# Get information about pid
if f == 1:
lock = Lock()
lock.acquire()
self.glob_process_dict[pid]
# process id
results.append(str(pid))
@ -176,7 +176,7 @@ class CoreWsdl () :
results.append(str(self.glob_process_dict[pid]['name']))
# process soap method name
results.append(str(self.glob_process_dict[pid]['method_name']))
lock.release()
return results
@ -186,7 +186,7 @@ class CoreWsdl () :
''' add conformity pid and sin in sid_pid file '''
lock = Lock()
lock.acquire()
if not os.path.exists(self.sids_pids):
temp = open(self.sids_pids, 'w')
temp.close()
@ -201,4 +201,4 @@ class CoreWsdl () :
return 0
except:
return 1

@ -1,17 +1,17 @@
#-*- coding: utf-8 -*-
#-*- coding: utf-8 -*-
# Copyright 2010-2012 Calculate Ltd. http://www.calculate-linux.org
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
import soaplib, sys, time, os
@ -42,15 +42,15 @@ class SU (ClassSerializer):
multichoice = Array(String)
Partition_table = Array(Array(String))
Partition_table2 = Array(Array(String))
Steps = Array(Array(String))
isopath = Array(String)
comboLang = String
# for check parameters without call method
CheckOnly = Boolean
class CoreWsdl:
def system_update_meth (self) :
try:
@ -66,10 +66,10 @@ class CoreWsdl:
perc += 10
# Увеличение процента выполнения процесса
self.setProgress (perc)
#self.printERROR ('No internet connected!')
self.endTask(_("System already update!"))
#self.endFrame()
# necessary for correct complete the process
return True
@ -80,7 +80,7 @@ class CoreWsdl:
except:
return False
from calculate.core.server.baseClass import Basic
from calculate.core.server.decorators import Dec

@ -1,17 +1,17 @@
#-*- coding: utf-8 -*-
#-*- coding: utf-8 -*-
# Copyright 2010-2012 Calculate Ltd. http://www.calculate-linux.org
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
import soaplib, sys, time, os
@ -43,16 +43,16 @@ class SH (ClassSerializer):
multichoice = Array(String)
Partition_table = Array(Array(String))
Partition_table2 = Array(Array(String))
Steps = Array(Array(String))
isopath = Array(String)
isopath_file = String
comboLang = String
# for check parameters without call method
CheckOnly = Boolean
Default = Array(String)
class CoreWsdl:
def say_hello_meth (self, name, times, town) :
print 'name = ', name, 'times = ', times, 'town = ',town
@ -64,7 +64,7 @@ class CoreWsdl:
# Помещение данных в словарь процессов
self.briefParams('say_hello_view')
self.setData (results)
# ask password
#passwd = self.askPassword(_('Enter Your Password: '), True)
#if passwd == "www":
@ -75,7 +75,7 @@ class CoreWsdl:
self.setTaskNumber(6)
self.startTask("Before", True, num = 1)
self.endTask()
self.startTask("NewTask", True, num = 3)
self.addMessage(type = 'warning', message = 'enter Russian name! Not %s' %name)
#self.askPassword('Enter Your Password: ')
@ -99,16 +99,16 @@ class CoreWsdl:
#print question
#print self.askPassword ('Please, your enter pass: ')
self.endTask()
#if not question in [None, "", []]:
#head = [' ', question, 'two', question]
#else:
head = [town,'One','Two','Three','Four']
body = [['One','11','12','13','14']]#,['Two','21','22','23','24'],\
#['Three','31','32','33','34'], ['Four','41','42','43','44']]
#self.printTable("Table 1!", head, body)
head = [town,'AAA','BBB','CCC','DDD']
body = [['One','11','12','13','14'],['Two','21','22','23','24'],\
['Three','31','32','33','34'], ['Four','41','42','43','44'],\
@ -138,13 +138,13 @@ class CoreWsdl:
except:
return False
#def check_params (self, dv, rrr):
#errors = []
#for i in rrr.compliance:
#if rrr.__getattribute__(i) != None:
##print '%%%%%%%%%%%%%%%%',i
##print rrr.__getattribute__(i)
@ -164,7 +164,7 @@ class CoreWsdl:
#return errors
##dv.Set('os_location_data',rrr.disk)
from calculate.core.server.baseClass import Basic
from calculate.core.server.decorators import Dec
@ -237,7 +237,7 @@ class CoreWsdl:
#returnmess.type = "pid"
#returnmess.message = pid
return [returnmess]
@rpc(Integer, ViewParams, _returns = ViewInfo)
def test_view (self, sid, vp):
print '%%%%%% test_view, step', vp.step
@ -248,10 +248,10 @@ class CoreWsdl:
step = None
if step in [0, None]:
view = ViewInfo(groups=[])
group = GroupField(name=_("TEST_METHOD"),nextlabel="To step 2",last=False)
group.fields = []
group.fields.append(Field(
name = "name",
label = _("YOUR NAME: "),
@ -306,21 +306,21 @@ class CoreWsdl:
comments = ['disk1','disk2','disk3']),
#onChanged = ['nothing',None,'get_body','get_body',\
#'get_body','get_body']),
ChoiceValue(
typefield = 'comboEdit',
values = ['/','swap','/var/calculate'],
comments = ['root','swap','calc']),
ChoiceValue(
typefield = 'multichoice_add',
values = ['swap','reiserfs','ext4'],
comments = ['swap1','reiserfs1','ext41']),
ChoiceValue(
typefield = 'check',
values = ['on','off']),
ChoiceValue(
typefield = 'text',
values = ['/dev/sda1','/dev/sda2','/dev/sda3'],
@ -418,15 +418,15 @@ class CoreWsdl:
#typefield = 'combo',
#values = ['/dev/sda1','/dev/sda2','/dev/sda3'],
#onChanged = ['nothing',None,'get_body','get_body','get_body','get_body']),
#ChoiceValue(
#typefield = 'comboEdit',
#values = ['/','swap','/var/calculate']),
#ChoiceValue(
#typefield = 'multichoice_add',
#values = ['swap','reiserfs','ext4']),
#ChoiceValue(
#typefield = 'check',
#values = ['on','off'])]
@ -436,16 +436,16 @@ class CoreWsdl:
#label = _("Next Step"),
#value = 'test_view',
#element = "button"))
if step in [1, None]:
if not 'view' in locals():
view = ViewInfo(groups=[])
else:
view.groups.append(group)
group = GroupField(name=_("Other Settings"),nextlabel=_("Next"))
group.fields = []
group.fields.append(Field(
name = "radiovariable",
label = "check city: ",
@ -513,15 +513,15 @@ class CoreWsdl:
values = ['/dev/sda1','/dev/sda2','/dev/sda3'],
onChanged = ['nothing',None,'get_body','get_body',\
'get_body','get_body']),
ChoiceValue(
typefield = 'comboEdit',
values = ['/','swap','/var/calculate']),
ChoiceValue(
typefield = 'multichoice_add',
values = ['swap','reiserfs','ext4']),
ChoiceValue(
typefield = 'check',
values = ['on','off'])]
@ -560,10 +560,10 @@ class CoreWsdl:
view = ViewInfo(groups=[])
else:
view.groups.append(group)
group = GroupField(name=_("Gratulations!"),last=True)
group.fields = []
group.fields.append(Field(
name = "final_label",
label = "Final step in system install!!! Congratulation!\n"\
@ -571,7 +571,7 @@ class CoreWsdl:
#value = "border-style: solid; border-width: "
#"2px;border-color: #ff2222;",
value = 'border: 0px outset gray;'
'border-radius: 6px;'
'border-radius: 6px;'
'subcontrol-origin: margin;'
'color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1,'
'stop: 0.1 #bb1111, stop: 0.5 #11bb11, stop: 0.9 #1111bb);'
@ -591,12 +591,12 @@ class CoreWsdl:
view = ViewInfo(groups=[])
else:
view.groups.append(group)
group = GroupField(name=_("Empty group"),last=True)
group.fields = []
view.groups.append(group)
return view
#@rpc(Array(String), Array(Array(String)), _returns = Integer)

@ -44,22 +44,22 @@ class SH2 (ClassSerializer):
os_install_mbr = Array(String)
os_install_locale_lang = String
r = String
#compliance = {'disk' : 'os_location_data', \
#'mbr' : 'os_install_mbr', \
#'lang' : 'os_install_locale_lang'}
# for check parameters without call method
CheckOnly = Boolean
#class ExampleInfo (ClassSerializer):
#disk = Array(Array(String))
#mbr = String
#lang = String
#CheckOnly = Boolean
class CoreWsdl:
def test2_meth (self, name, times, town) :
@ -85,14 +85,14 @@ class CoreWsdl:
#print question
#print self.askPassword ('Please, your enter pass: ')
self.endTask("Message with result work task 1!")
#if not question in [None, "", []]:
#head = [' ', question, 'two', question]
#else:
head = [town,'One','Two','Three','Four']
body = [['One','11','12','13','14'],['Two','21','22','23','24'],\
['Three','31','32','33','34'], ['Four','41','42','43','44']]
self.printTable("Table 1!", head, body)
self.startTask("Second task!", True)
perc = 0
@ -129,7 +129,7 @@ class CoreWsdl:
message = mess))
return errors
#dv.Set('os_location_data',rrr.disk)
from calculate.core.server.baseClass import Basic
from calculate.core.server.decorators import Dec
@ -143,13 +143,13 @@ class CoreWsdl:
curThread = threading.currentThread()
print curThread.lang
curThread.lang = self.get_lang(sid)
name_meth = 'test2'
dv = DataVarsInstall()
dv.importInstall()
#print '++++++++++',rrr.compliance
#print rrr.disk
#print rrr.r
@ -162,7 +162,7 @@ class CoreWsdl:
#dv.Set('os_install_mbr',rrr.mbr)
#else:
#dv.Set('os_install_locale_lang',rrr.lang)
self.set_cache(sid, name_meth, 'dv', dv)
#if rrr.name == 'qqq':
#errors = []
@ -183,7 +183,7 @@ class CoreWsdl:
#name = sh.name
#sh.iii = 4
#town = sh.combovariable
#print "------->>>", name, times, town
#self.set_cache(sid, name_meth, sh)
@ -197,14 +197,14 @@ class CoreWsdl:
#returnmess.type = "pid"
#returnmess.message = pid
return [returnmess]
@rpc(Integer, Integer, Boolean, _returns = ViewInfo)
def test2_view (self, sid, step, expert = False):
#print "+++++++++++++++++++", step
##if step == 0:
##view = ViewInfo(groups=[])
##group = GroupField(name=_("TEST2_METHOD"),nextlabel=_("Next"),last=False)
##group.fields = []
#import threading
@ -214,7 +214,7 @@ class CoreWsdl:
#print curThread.lang
##from func import get_lang
#print 'LANG = ',self.get_lang(sid)
dv = DataVarsInstall()
dv.importInstall()
view = ViewInfo(dv, [(_("First group"), \
@ -226,7 +226,7 @@ class CoreWsdl:
#self.set_cache(sid, 'test2', dv)
return view
#group.fields.append(Field(
#name = "name",
#label = _("YOUR NAME: "),
@ -265,27 +265,27 @@ class CoreWsdl:
#values = ['/dev/sda1','/dev/sda2','/dev/sda3'],
#readonly = False,
#onChanged = ['',None,'get_body','get_body','get_body','get_body']),
#ChoiceValue(
#typefield = 'comboEdit',
#values = ['/','swap','/var/calculate'],
#readonly = False),
#ChoiceValue(
#typefield = 'multichoice_add',
#values = ['swap','reiserfs','ext4'],
#readonly = False),
#ChoiceValue(
#typefield = 'check',
#values = ['on','off'],
#readonly = False),
#ChoiceValue(
#typefield = 'input',
#values = [],
#readonly = True),
#ChoiceValue(
#typefield = 'input',
#values = [],
@ -348,27 +348,27 @@ class CoreWsdl:
#values = ['/dev/sda1','/dev/sda2','/dev/sda3'],
#readonly = False,
#onChanged = ['',None,'get_body','get_body','get_body','get_body']),
#ChoiceValue(
#typefield = 'comboEdit',
#values = ['/','swap','/var/calculate'],
#readonly = False),
#ChoiceValue(
#typefield = 'multichoice_add',
#values = ['swap','reiserfs','ext4'],
#readonly = False),
#ChoiceValue(
#typefield = 'check',
#values = ['on','off'],
#readonly = False),
#ChoiceValue(
#typefield = 'input',
#values = [],
#readonly = True),
#ChoiceValue(
#typefield = 'input',
#values = [],
@ -382,17 +382,17 @@ class CoreWsdl:
#opt = Option(longopt="--bot",
#metavalue="BOT"),
#element = "button"))
#view.groups.append(group)
#return view
#elif step == 1:
#view = ViewInfo(groups=[])
#group = GroupField(name=_("TEST2_METHOD"),nextlabel=_("Next"),last=True)
#group.fields = []
#group.fields.append(Field(
#name = "radiovariable",
#label = _("check city: "),
@ -476,5 +476,5 @@ class CoreWsdl:
#element = "button"))
#view.groups.append(group)
#return view

@ -26,13 +26,13 @@ def writeToDb (num, ip, mac, client_type, data_path, certbase):
time.sleep(1)
#Finding Id for the current certificate
i = 1
ID_FILE = data_path + '/client_certs/id.int'
if not os.path.exists(certbase):
fp = open(certbase, 'w')
fp.close()
if os.path.exists(ID_FILE):
fi = open(ID_FILE, 'r')
temp = fi.read()
@ -45,7 +45,7 @@ def writeToDb (num, ip, mac, client_type, data_path, certbase):
# See each line
for line in t.splitlines():
count += 1
count += 1
fi = open(ID_FILE, 'w')
fi.write(str(count))
@ -66,12 +66,12 @@ def writeToDb (num, ip, mac, client_type, data_path, certbase):
fc = open(certbase,"a")
fc.write("%d %s %s %s %s %s\n" %(i, md5sum, date, ip, mac, client_type))
fc.close()
file_name = data_path+'/client_certs/' + str(i)
fp = open(file_name, 'w')
fp.write(c)
fp.close()
# record next Id in id.int file
i += 1
fi = open(ID_FILE, 'w')

Loading…
Cancel
Save