コード例 #1
0
    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)
コード例 #2
0
 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)
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
 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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
 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)
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
    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)
コード例 #12
0
    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)
コード例 #13
0
    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)
コード例 #14
0
    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)
コード例 #15
0
    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)
コード例 #16
0
    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)
コード例 #17
0
    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)
コード例 #18
0
    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)
コード例 #19
0
    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)