def __init__(self):
		self.db_session=None
		self.rmsvMan = RmSVManClass(self.db_session)
		print "ListName!!!"
示例#2
0
 def __init__(self):
     self.db_session = None
     self.rmsvMan = RmSVManClass(self.db_session)
     print "ListName!!!"
class ServiceMan(Controller):
	def __init__(self):
		self.db_session=None
		self.rmsvMan = RmSVManClass(self.db_session)
		print "ListName!!!"
	'''
	def get_html(self):
		html_f=open('html/upload.html','r')
		return html_f
	'''
	def index(self,req):
		'''
		user_id = req.environ['HTTP_X_USER_ID']
		user_name = req.environ['HTTP_X_USER_NAME'] 
		user_role = req.environ['HTTP_X_ROLES']
		'''
		
		self.db_session=req.environ['db_session']
		svs_data = db.getSvsInfo4All(self.db_session)
		svs_json = {}
		svs = []
		for sv_data in svs_data:
			sv={}
			sv['sv_id']=sv_data['sv_id']
			sv['sv_name']=sv_data['sv_name']
			sv['authority_type']=sv_data['authority_type']
			sv['sv_url']=sv_data['sv_url']
			sv['vm_id']=sv_data['vm_id']
			sv['user_id']=sv_data['user_id']
			sv['sv_lang']=sv_data['sv_lang']
			sv['sv_desc']=sv_data['sv_desc']
			svs.append(sv)
		svs_json['svs']=svs
		return svs
	def show(self,req,id):
		#print "START"
		#print id
# 		print "END"
# 		return "Have id"+id
		'''
		user_id = req.environ['HTTP_X_USER_ID']
		user_name = req.environ['HTTP_X_USER_NAME'] 
		user_role = req.environ['HTTP_X_ROLES']
		'''
		print 'show'
		print id
		self.db_session=req.environ['db_session']
		sv_data_list = db.getSvInfo4ID(self.db_session, id)
		
		sv_json={}
		input_args=[]
		input_arg={}
		output_args=[]
		output_arg={}
		#svs = []
		sv={}
		
		sv_data=sv_data_list[0]
		sv['sv_id']=sv_data['sv_id']
		sv['sv_name']=sv_data['sv_name']
		sv['authority_type']=sv_data['authority_type']
		sv['sv_url']=sv_data['sv_url']
		sv['vm_id']=sv_data['vm_id']
		sv['user_id']=sv_data['user_id']
		sv['sv_lang']=sv_data['sv_lang']
		sv['sv_desc']=sv_data['sv_desc']
		
		for sv_data in sv_data_list:
			if sv_data['arg_direct'] == 0:
				input_arg={}
				input_arg['sv_arg_id']=sv_data['sv_arg_id']
				input_arg['arg_name'] = sv_data['arg_name']
				input_arg['arg_type_id'] = sv_data['arg_type_id']
				input_arg['arg_index'] = sv_data['arg_index']
				input_arg['arg_type_name'] = sv_data['arg_type_name']
				input_args.append(input_arg)
			if sv_data['arg_direct'] == 1:
				output_arg={}
				output_arg['sv_arg_id']=sv_data['sv_arg_id']
				output_arg['arg_name'] = sv_data['arg_name']
				output_arg['arg_type_id'] = sv_data['arg_type_id']
				output_arg['arg_index'] = sv_data['arg_index']
				output_arg['arg_type_name'] = sv_data['arg_type_name']
				output_args.append(output_arg)
		
		sv['input_arg_types']=input_args
		sv['output_arg_types']=output_args
		sv_json['sv']=sv
		return sv_json
		
	def create(self,req,body=None):
		environ = req.environ
		'''
		user_id = environ['HTTP_X_USER_ID']'''
		self.db_session=environ['db_session']
		# need to upgrade to use permission engine
		
		'''
		if user_role == 'nuser':
			return "you have no permission to upload service"
		'''
		#登记服务的基本信息到sv_tb中
		try:
			request_body_size = int(environ.get('CONTENT_LENGTH',0))
		except ValueError:
			request_body_size=0
		fileds=cgi.FieldStorage(environ["wsgi.input"],environ=environ)
		
		#用于测试的代码段:
		#fileds={}
		#print fileds
		#print environ["wsgi.input"].read()
		#print self.db_session
		user_id = '123'
		
		
		#insert sv_tb table about service information
		sv_id=db.addSvInfo2TB(self.db_session, user_id, fileds)
		
		
		#登记服务的参数信息到sv_arg_type_tb中
		#insert service arg information into sv_arg_type_tb table
		
		db.addSvInputArg2TB(self.db_session, sv_id, fileds)
		
		db.addSvOutputArg2TB(self.db_session, sv_id, fileds)
		'''
		#将文件上传到虚拟机
		contenttype = environ['CONTENT_TYPE']
		sv_file = fileds['svfile']
		vm_id = fileds['vm_id'].value
		sv_url=self.rmsvMan.addSv2Vm(vm_id,sv_id, sv_file,contenttype)
		#将更新sv_tb数据库中年sv_url信息
		db.updatedSvUrl(self.db_session, sv_id, sv_url)
		'''
		return 'service upload successfully!!!'
	def delete(self,req,id=None):
		#1.获取服务所在的虚拟机
		#2.调用删除命令,删除虚拟机上的服务
		#3.删除sv_arg_type_tb数据库与该服务相关的信息,
		#4.删除sv_tb上与该服务相关的数据
		
		#删除远程虚拟机上的服务
		print 'for the test!!!'
		environ = req.environ
		'''
		user_id = environ['HTTP_X_USER_ID']
		user_name = environ['HTTP_X_USER_NAME']
		user_role = environ['HTTP_X_ROLES']
		'''
		
		self.db_session=environ['db_session']
		self.rmsvMan.deleteSvOnVM(id);
		#删除本地sv_arg_type_tb上的数据
		db.deleteSvInfoOnTB(self.db_session,id)
		#删除本地sv_tb上的数据
		db.deleteSvArg4IDOnTB(self.db_session,id)
		
		return 'delete successfully!'
	def update(self,req,body,id=None):
		environ = req.environ
		user_id = environ['HTTP_X_USER_ID']
		user_name = environ['HTTP_X_USER_NAME']
		user_role = environ['HTTP_X_ROLES']
		self.db_session=environ['db_session']
		#修改sv_arg_type_tb表
		input_arg_types=body.pop('input_arg_types')
		for key in input_arg_types.keys():
			db.updateSvArgtype(self.db_session,key,input_arg_types['key'])
		output_arg_types=body.pop('output_arg_types')
		for key in output_arg_types.keys():
			db.updateSvArgtype(self.db_session, key, input_arg_types['key'])
		
		#修改sv_tb表
		db.updateSvTB(self.db_session, id, body)
示例#4
0
class ServiceMan(Controller):
    def __init__(self):
        self.db_session = None
        self.rmsvMan = RmSVManClass(self.db_session)
        print "ListName!!!"

    '''
	def get_html(self):
		html_f=open('html/upload.html','r')
		return html_f
	'''

    def index(self, req):
        '''
		user_id = req.environ['HTTP_X_USER_ID']
		user_name = req.environ['HTTP_X_USER_NAME'] 
		user_role = req.environ['HTTP_X_ROLES']
		'''

        self.db_session = req.environ['db_session']
        svs_data = db.getSvsInfo4All(self.db_session)
        svs_json = {}
        svs = []
        for sv_data in svs_data:
            sv = {}
            sv['sv_id'] = sv_data['sv_id']
            sv['sv_name'] = sv_data['sv_name']
            sv['authority_type'] = sv_data['authority_type']
            sv['sv_url'] = sv_data['sv_url']
            sv['vm_id'] = sv_data['vm_id']
            sv['user_id'] = sv_data['user_id']
            sv['sv_lang'] = sv_data['sv_lang']
            sv['sv_desc'] = sv_data['sv_desc']
            svs.append(sv)
        svs_json['svs'] = svs
        return svs

    def show(self, req, id):
        #print "START"
        #print id
        # 		print "END"
        # 		return "Have id"+id
        '''
		user_id = req.environ['HTTP_X_USER_ID']
		user_name = req.environ['HTTP_X_USER_NAME'] 
		user_role = req.environ['HTTP_X_ROLES']
		'''
        print 'show'
        print id
        self.db_session = req.environ['db_session']
        sv_data_list = db.getSvInfo4ID(self.db_session, id)

        sv_json = {}
        input_args = []
        input_arg = {}
        output_args = []
        output_arg = {}
        #svs = []
        sv = {}

        sv_data = sv_data_list[0]
        sv['sv_id'] = sv_data['sv_id']
        sv['sv_name'] = sv_data['sv_name']
        sv['authority_type'] = sv_data['authority_type']
        sv['sv_url'] = sv_data['sv_url']
        sv['vm_id'] = sv_data['vm_id']
        sv['user_id'] = sv_data['user_id']
        sv['sv_lang'] = sv_data['sv_lang']
        sv['sv_desc'] = sv_data['sv_desc']

        for sv_data in sv_data_list:
            if sv_data['arg_direct'] == 0:
                input_arg = {}
                input_arg['sv_arg_id'] = sv_data['sv_arg_id']
                input_arg['arg_name'] = sv_data['arg_name']
                input_arg['arg_type_id'] = sv_data['arg_type_id']
                input_arg['arg_index'] = sv_data['arg_index']
                input_arg['arg_type_name'] = sv_data['arg_type_name']
                input_args.append(input_arg)
            if sv_data['arg_direct'] == 1:
                output_arg = {}
                output_arg['sv_arg_id'] = sv_data['sv_arg_id']
                output_arg['arg_name'] = sv_data['arg_name']
                output_arg['arg_type_id'] = sv_data['arg_type_id']
                output_arg['arg_index'] = sv_data['arg_index']
                output_arg['arg_type_name'] = sv_data['arg_type_name']
                output_args.append(output_arg)

        sv['input_arg_types'] = input_args
        sv['output_arg_types'] = output_args
        sv_json['sv'] = sv
        return sv_json

    def create(self, req, body=None):
        environ = req.environ
        '''
		user_id = environ['HTTP_X_USER_ID']'''
        self.db_session = environ['db_session']
        # need to upgrade to use permission engine
        '''
		if user_role == 'nuser':
			return "you have no permission to upload service"
		'''
        #登记服务的基本信息到sv_tb中
        try:
            request_body_size = int(environ.get('CONTENT_LENGTH', 0))
        except ValueError:
            request_body_size = 0
        fileds = cgi.FieldStorage(environ["wsgi.input"], environ=environ)

        #用于测试的代码段:
        #fileds={}
        #print fileds
        #print environ["wsgi.input"].read()
        #print self.db_session
        user_id = '123'

        #insert sv_tb table about service information
        sv_id = db.addSvInfo2TB(self.db_session, user_id, fileds)

        #登记服务的参数信息到sv_arg_type_tb中
        #insert service arg information into sv_arg_type_tb table

        db.addSvInputArg2TB(self.db_session, sv_id, fileds)

        db.addSvOutputArg2TB(self.db_session, sv_id, fileds)
        '''
		#将文件上传到虚拟机
		contenttype = environ['CONTENT_TYPE']
		sv_file = fileds['svfile']
		vm_id = fileds['vm_id'].value
		sv_url=self.rmsvMan.addSv2Vm(vm_id,sv_id, sv_file,contenttype)
		#将更新sv_tb数据库中年sv_url信息
		db.updatedSvUrl(self.db_session, sv_id, sv_url)
		'''
        return 'service upload successfully!!!'

    def delete(self, req, id=None):
        #1.获取服务所在的虚拟机
        #2.调用删除命令,删除虚拟机上的服务
        #3.删除sv_arg_type_tb数据库与该服务相关的信息,
        #4.删除sv_tb上与该服务相关的数据

        #删除远程虚拟机上的服务
        print 'for the test!!!'
        environ = req.environ
        '''
		user_id = environ['HTTP_X_USER_ID']
		user_name = environ['HTTP_X_USER_NAME']
		user_role = environ['HTTP_X_ROLES']
		'''

        self.db_session = environ['db_session']
        self.rmsvMan.deleteSvOnVM(id)
        #删除本地sv_arg_type_tb上的数据
        db.deleteSvInfoOnTB(self.db_session, id)
        #删除本地sv_tb上的数据
        db.deleteSvArg4IDOnTB(self.db_session, id)

        return 'delete successfully!'

    def update(self, req, body, id=None):
        environ = req.environ
        user_id = environ['HTTP_X_USER_ID']
        user_name = environ['HTTP_X_USER_NAME']
        user_role = environ['HTTP_X_ROLES']
        self.db_session = environ['db_session']
        #修改sv_arg_type_tb表
        input_arg_types = body.pop('input_arg_types')
        for key in input_arg_types.keys():
            db.updateSvArgtype(self.db_session, key, input_arg_types['key'])
        output_arg_types = body.pop('output_arg_types')
        for key in output_arg_types.keys():
            db.updateSvArgtype(self.db_session, key, input_arg_types['key'])

        #修改sv_tb表
        db.updateSvTB(self.db_session, id, body)