def get(self): try: token = request.headers.get('token') token_auth(token) except Exception, e: log.error('Token check error, reason=%s' % e) return request_result(201)
def get(self, cloudhost_uuid): try: token = request.headers.get('token') token_auth(token) except Exception, e: log.warning('Token check error, token=%s, reason=%s' % (token, e)) return request_result(201)
def delete(self, network_uuid): try: token = request.headers.get('token') token_auth(token) source_ip = request.headers.get('X-Real-IP') if source_ip is None: source_ip = request.remote_addr except Exception, e: log.error('Token check error, reason=%s' % e) return request_result(201)
def put(self, cloudhost_uuid): try: token = request.headers.get('token') token_auth(token) source_ip = request.headers.get('X-Real-IP') if source_ip is None: source_ip = request.remote_addr except Exception, e: log.warning('Token check error, token=%s, reason=%s' % (token, e)) return request_result(201)
def osdisk_create(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') user_info = token_auth(context['token'])['result'] user_uuid = user_info.get('user_uuid') team_uuid = user_info.get('team_uuid') project_uuid = user_info.get('project_uuid') log.info('the token is: %s, source_ip is: %s, user_uuid is: %s,' 'team_uuid is: %s, project_uuid is: %s' % (token, source_ip, user_uuid, team_uuid, project_uuid)) name = parameters.get('name') description = parameters.get('description') volume_uuid = parameters.get('volume_uuid') v_type = 'system' size = parameters.get('size') conn_to = parameters.get('conn_to') image_uuid = parameters.get('image_uuid') if name is None: name = volume_uuid parameter_check(volume_uuid, exist='yes') parameter_check(conn_to, exist='yes') parameter_check(image_uuid, exist='yes') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)
def snap_create(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') user_info = token_auth(context['token'])['result'] user_uuid = user_info.get('user_uuid') team_uuid = user_info.get('team_uuid') project_uuid = user_info.get('project_uuid') log.debug('the token is: %s, source_ip is: %s, user_uuid is: %s,' 'team_uuid is: %s, project_uuid is: %s' % (token, source_ip, user_uuid, team_uuid, project_uuid)) name = parameters.get('name') description = parameters.get('description') metadata = parameters.get('metadata') volume_uuid = parameters.get('volume_uuid') vm_uuid = parameters.get('vm_uuid') parameter_check(name, ptype='pnam') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)
def __aclauth(*args, **kwargs): func_args = inspect.getcallargs(func, *args, **kwargs) context = func_args.get('context') token = context['token'] resources_uuid = context['resource_uuid'] action = context['action'] user_info = token_auth(token)['result'] user_uuid = user_info['user_uuid'] team_uuid = user_info['team_uuid'] team_priv = user_info['team_priv'] project_uuid = user_info['project_uuid'] project_priv = user_info['project_priv'] context = "%s%s%s%s%s%s%s" % (user_uuid, team_uuid, team_priv, project_uuid, project_priv, resources_uuid, action) log.debug('start ack check, context=%s' % (context)) acl_info = caches.get(context) for resource_uuid in resources_uuid: if (acl_info is LocalCache.notFound): log.debug('Cache acl not hit, context=%s' % (context)) auth_manager = AuthManager(service_name) ret = auth_manager.resource_acl_check( user_uuid, team_uuid, team_priv, project_uuid, project_priv, resource_uuid, action) expire = int(time.time()) + 300 caches.set(context, {"acl_check": ret, "expire": expire}) log.debug('Cached acl check, context=%s' % (context)) else: log.debug('Cache acl hit, context=%s' % (context)) ret = acl_info['acl_check'] log.debug('ack check result=%s' % (ret)) if ret == 0: try: return func(*args, **kwargs) except Exception, e: log.error('function(%s) exec error, reason = %s' % (func.__name__, e)) return request_result(999) else: log.warning('Resource acl auth denied: user_uuid = %s, \ team_uuid=%s, team_priv=%s, project_uuid=%s, \ project_priv=%s, resource_uuid=%s, action=%s' % (user_uuid, team_uuid, team_priv, project_uuid, project_priv, resource_uuid, action)) return request_result(202)
def templet_list(self, context, parameters): try: user_info = token_auth(context['token'])['result'] user_uuid = user_info.get('user_uuid') team_uuid = user_info.get('team_uuid') team_priv = user_info.get('team_priv') project_uuid = user_info.get('project_uuid') project_priv = user_info.get('project_priv') page_size = parameters.get('page_size') page_num = parameters.get('page_num') except Exception, e: log.warning('parameters error, context=%s, reason=%s' % (context, e)) return request_result(101)
def templet_update(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') user_info = token_auth(context['token'])['result'] user_uuid = user_info.get('user_uuid') team_uuid = user_info.get('team_uuid') project_uuid = user_info.get('project_uuid') templet_uuid = context.get('resource_uuid') parameters = json.loads(parameters) name = parameters.get('name') description = parameters.get('description') parameter_check(name, ptype='pnam', exist='no') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)
def attachment_create(self, context, server_uuid, volume_uuid): try: token = context['token'] source_ip = context.get('source_ip') user_info = token_auth(context['token'])['result'] user_uuid = user_info.get('user_uuid') team_uuid = user_info.get('team_uuid') project_uuid = user_info.get('project_uuid') log.debug('the token is: %s, source_ip is: %s, user_uuid is: %s,' 'team_uuid is: %s, project_uuid is: %s' % (token, source_ip, user_uuid, team_uuid, project_uuid)) parameter_check(server_uuid, exist='yes') parameter_check(volume_uuid, exist='yes') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)
def volume_create(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') user_info = token_auth(context['token'])['result'] user_uuid = user_info.get('user_uuid') team_uuid = user_info.get('team_uuid') project_uuid = user_info.get('project_uuid') log.info('the token is: %s, source_ip is: %s, user_uuid is: %s,' 'team_uuid is: %s, project_uuid is: %s' % (token, source_ip, user_uuid, team_uuid, project_uuid)) name = parameters.get('name') size = parameters.get('size') description = parameters.get('description') v_type = parameters.get('v_type') conn_to = parameters.get('conn_to') snapshot_uuid = parameters.get('snapshot_uuid') is_use_domain = parameters.get('is_use_domain', 1) source_volume_uuid = parameters.get('templet_uuid') image_uuid = parameters.get('image_uuid') is_start = parameters.get('is_start') is_secret = parameters.get('is_secret') if is_start is None: is_start = 0 if is_secret is None: is_secret = 0 # if v_type not in ('ssd', 'hdd'): # raise Exception('v_type keyword error') parameter_check(is_use_domain, ptype='n01') parameter_check(is_start, ptype='n01') parameter_check(is_secret, ptype='n01') parameter_check(name, ptype='pnam') parameter_check(size, ptype='psiz') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)