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 osdisk_delete(self, context, volume_uuid): log.info('osdisk delete, the context is: %s' % context) try: parameter_check(volume_uuid, exist='yes') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)
def templet_delete(self, context, templet_uuid): log.debug('delete the templet, the context is: %s' % context) try: parameter_check(templet_uuid, exist='yes') except Exception, e: log.error('parameters error, reason is: %s' % e) return request_result(101)
def service_detail(self, context, parameters): try: parameter_check(parameters.get('service_uuid'), ptype='puid') except Exception, e: log.error( 'parameters error, context=%s, parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def service_delete(self, context, parameters): try: source_ip = context.get('source_ip') token = parameters.get('token') service_uuid = parameters.get('service_uuid') parameter_check(parameters.get('token'), ptype='pstr') parameter_check(parameters.get('service_uuid'), ptype='puid') source_ip = parameter_check(source_ip, ptype='pnip', exist='no') except Exception, e: log.error( 'parameters error, context=%s, parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def cloudhost_password_change(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') vm_uuid = context['resource_uuid'] password = parameters.get('password') vm_uuid = parameter_check(vm_uuid, ptype='pstr') password = parameter_check(password, ptype='ppwd') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def cloudhost_mem_update(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') vm_uuid = context['resource_uuid'] vm_mem = parameters.get('vm_mem') vm_uuid = parameter_check(vm_uuid, ptype='pstr') vm_mem = parameter_check(vm_mem, ptype='pint') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def snap_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') volume_uuid = parameters.get('volume_uuid') page_size = parameters.get('page_size') page_num = parameters.get('page_num') parameter_check(volume_uuid, exist='no') 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 cloudhost_info(self, context, parameters): try: vm_uuid = context['resource_uuid'] vm_uuid = parameter_check(vm_uuid, ptype='pstr') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, 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 snapshot_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') cloudhost_uuid = parameters.get('cloudhost_uuid') snapshot_name = parameters.get('snapshot') comment = parameters.get('comment') cloudhost_uuid = parameter_check(cloudhost_uuid, ptype='pstr') snapshot_name = parameter_check(snapshot_name, ptype='pnam') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def cloudhost_floatip_bind(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') vm_uuid = context['resource_uuid'] lan_ip = parameters.get('lan_ip') floatip = parameters.get('floatip') start_port = parameters.get('start_port') end_port = parameters.get('end_port') lan_ip = parameter_check(lan_ip, ptype='pnip') floatip = parameter_check(floatip, ptype='pnip') start_port = parameter_check(start_port, ptype='pint', exist='no') end_port = parameter_check(end_port, ptype='pint', exist='no') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def snapshot_delete(self, context, parameters): try: token = context['token'] source_ip = context.get('source_ip') snapshot_uuid = context['resource_uuid'] snapshot_uuid = parameter_check(snapshot_uuid, ptype='pstr') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
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 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)
def cloudhost_create(self, context, parameters=None): 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') availzone_uuid = parameters.get('availzone_uuid') image_uuid = parameters.get('image_uuid') vm_name = parameters.get('vm_name') vm_cpu = parameters.get('vm_cpu') vm_mem = parameters.get('vm_mem') disk_list = parameters.get('disk_list') nic_list = parameters.get('nic_list') password = parameters.get('password') cost = parameters.get('cost') availzone_uuid = parameter_check(availzone_uuid, ptype='pstr') image_uuid = parameter_check(image_uuid, ptype='pstr') vm_name = parameter_check(vm_name, ptype='pnam') vm_cpu = parameter_check(vm_cpu, ptype='pint') vm_mem = parameter_check(vm_mem, ptype='pint') password = parameter_check(password, ptype='ppwd') if self.billing_check is True: cost = parameter_check(cost, ptype='pflt') if float(cost) < 0: raise (Exception('Parameter cost error, ' 'cost must greater than 0')) else: cost = parameter_check(cost, ptype='pflt', exist='no') except Exception, e: log.warning('parameters error, context=%s, ' 'parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def service_update(self, context, parameters): try: token = parameters.get('token') service_uuid = parameters.get('service_uuid') source_ip = context.get('source_ip') rtype = parameters.get('rtype') parameter_check(parameters.get('token'), ptype='pstr') source_ip = parameter_check(source_ip, ptype='pnip', exist='no') parameter_check(parameters.get('service_uuid'), ptype='puid') if rtype not in [ 'env', 'volume', 'container', 'status', 'telescopic', 'policy', 'command', 'domain', 'identify', 'cm', 'description', 'certify' ]: raise Exception('rtype error, not have this resource type') if rtype == 'env' and parameters.get( 'env') is not None and parameters.get('env') != '': for q in parameters.get('env'): if q.get('env_key') is None or q.get('env_value') is None: raise Exception('env parameter error') if rtype == 'volume' and parameters.get( 'volume') is not None and parameters.get('volume') != '': disk_path = [] for j in parameters.get('volume'): parameter_check(j.get('volume_uuid'), ptype='puid') if j.get('readonly') not in ['True', 'False']: raise Exception('volume_uuid parameter error') if j.get('disk_path') is None: raise Exception('disk path parameter error') disk_path.append(j.get('disk_path')) if len(disk_path) != len(set(disk_path)): raise Exception('disk path can not be same') if rtype == 'container': for i in parameters.get('container'): parameter_check(i.get('container_port'), ptype='container_port') if i.get('protocol') not in ['TCP', 'UDP']: raise Exception('protocol parameters error') if i.get('access_mode') not in [ 'TCP', 'HTTP', '', 'HTTPS', 'UDP' ]: raise Exception('access_mode parameters error') if i.get('access_scope') not in ['inside', 'outsisde']: raise Exception('access_scope parameters error') if rtype == 'telescopic': parameter_check(parameters.get('pods_num'), ptype='pod_num') if rtype == 'policy': parameter_check(parameters.get('policy'), ptype='choice') if parameters.get('policy') == 0: parameter_check(parameters.get('image_id'), ptype='pimgid') # if rtype == 'command': # parameter_check(parameters.get('command'), ptype='command', exist='no') if rtype == 'domain' and parameters.get( 'domain') is not None and parameters.get('domain') != '': parameter_check(parameters.get('domain'), ptype='domain', exist='no') if rtype == 'identify': if (parameters.get('domain') is None or parameters.get('domain') == '') or ( parameters.get('identify') is None or parameters.get('identify') == '') or (str( parameters.get('identify')) not in ['0', '1']): raise Exception('identify parameter error') if rtype == 'cm': try: if int(parameters.get('container_cpu')) not in [ 1, 2, 4, 8 ]: raise Exception('container_cpu parameters error') if parameters.get('container_memory') not in [ '256M', '512M', '1G', '2G' ]: raise Exception('container_memory parameters error') if parameters.get('cm_format').lower() not in [ '1x', '2x', '4x', '8x' ]: raise Exception('cm_format parameters error') except Exception, e: log.error('parameters explain error, reason is: %s' % e) raise Exception('cm parameter error') except Exception, e: log.error( 'parameters error, context=%s, parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)
def service_create(self, context, parameters): log.info('rpc server get the data is : %s' % parameters) try: source_ip = context.get('source_ip') parameter_check(parameters.get('token'), ptype='pstr') # parameter_check(parameters.get('service_name'), ptype='pnam') parameter_check(parameters.get('image_id'), ptype='pimgid') parameter_check(parameters.get('policy'), ptype='choice') parameter_check(parameters.get('pods_num'), ptype='pod_num') parameter_check(parameters.get('auto_startup'), ptype='choice') source_ip = parameter_check(source_ip, ptype='pnip', exist='no') # parameter_check(parameters.get('command'), ptype='command', exist='no') if '_' in parameters.get('service_name'): raise Exception('service_name can not have _') if int(parameters.get('container_cpu')) not in [1, 2, 4, 8]: raise Exception('container_cpu parameters error') if parameters.get('container_memory') not in [ '256M', '512M', '1G', '2G' ]: raise Exception('container_memory parameters error') if parameters.get('cm_format').lower() not in [ '1x', '2x', '4x', '8x' ]: raise Exception('cm_format parameters error') for i in parameters.get('container'): parameter_check(i.get('container_port'), ptype='container_port') if i.get('protocol') not in ['TCP', 'UDP']: raise Exception('protocol parameters error') if i.get('access_mode') not in [ 'TCP', 'HTTP', '', 'HTTPS', 'UDP' ]: raise Exception('access_mode parameters error') if i.get('access_scope') not in ['inside', 'outsisde']: raise Exception('access_scope parameters error') if parameters.get( 'volume') is not None and parameters.get('volume') != '': disk_path = [] for j in parameters.get('volume'): parameter_check(j.get('volume_uuid'), ptype='puid') if j.get('readonly') not in ['True', 'False']: raise Exception('volume_uuid parameter error') if j.get('disk_path') is None: raise Exception('disk path parameter error') disk_path.append(j.get('disk_path')) if len(disk_path) != len(set(disk_path)): raise Exception('disk path can not be same') if parameters.get( 'env') is not None and parameters.get('env') != '': for q in parameters.get('env'): if q.get('env_key') is None or q.get('env_value') is None: raise Exception('env parameter error') token = parameters.get('token') cost = parameters.get('cost') if type(cost) is not types.FloatType and type( cost) is not types.IntType: raise Exception('cost type error, cost is: %s' % cost) else: if cost < 0: raise Exception('cost number error, cost is: %s' % cost) except Exception, e: log.error( 'parameters error, context=%s, parameters=%s, reason=%s' % (context, parameters, e)) return request_result(101)