当前位置: 首页>>代码示例>>Python>>正文


Python BundleService.update_bundle_metadata方法代码示例

本文整理汇总了Python中apps.web.bundles.BundleService.update_bundle_metadata方法的典型用法代码示例。如果您正苦于以下问题:Python BundleService.update_bundle_metadata方法的具体用法?Python BundleService.update_bundle_metadata怎么用?Python BundleService.update_bundle_metadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在apps.web.bundles.BundleService的用法示例。


在下文中一共展示了BundleService.update_bundle_metadata方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: post

# 需要导入模块: from apps.web.bundles import BundleService [as 别名]
# 或者: from apps.web.bundles.BundleService import update_bundle_metadata [as 别名]
    def post(self, request, uuid):
        user_id = self.request.user.id
        logger.debug("BundleInfo: user_id=%s; uuid=%s.", user_id, uuid)
        service = BundleService(self.request.user)

        try:
            bundle_info = service.get_bundle_info(uuid)
            if bundle_info['owner_id'] == str(self.request.user.id):
                data = json.loads(request.body)
                new_metadata = data['metadata']
                #clean up stuff
                if new_metadata.get('data_size', None):
                    new_metadata.pop('data_size')
                if new_metadata.get('created', None):
                    new_metadata.pop('created')
                if new_metadata.get('time', None):
                    new_metadata.pop('time')

                if new_metadata.get('tags', None):
                    tags = new_metadata['tags']
                    tags = tags.split(',')
                    new_metadata['tags'] = tags
                else:
                    new_metadata['tags'] = []

                if new_metadata.get('language', None) or new_metadata.get('language') ==  u'':
                    language = new_metadata['language']
                    language = language.split(',')
                    new_metadata['language'] = language

                if new_metadata.get('architectures', None):
                    architectures = new_metadata['architectures']
                    architectures = architectures.split(',')
                    new_metadata['architectures'] = architectures

                # update and return
                # json load only gives string, convert them into needed type
                new_metadata['request_cpus'] = int(new_metadata['request_cpus']);
                new_metadata['request_gpus'] = int(new_metadata['request_gpus']);
                new_metadata['request_priority'] = int(new_metadata['request_priority']);
                new_metadata['actions'] = new_metadata['actions'].split();
                new_metadata['exitcode'] = int(new_metadata['exitcode']);
                print new_metadata
                service.update_bundle_metadata(uuid, new_metadata)
                bundle_info = service.get_bundle_info(uuid)
            return Response(bundle_info, content_type="application/json")
        except Exception as e:
            tb = traceback.format_exc()
            log_exception(self, e, tb)
            return Response({'error': smart_str(e)})
开发者ID:Rudianasaja,项目名称:codalab,代码行数:52,代码来源:worksheet_views.py

示例2: post

# 需要导入模块: from apps.web.bundles import BundleService [as 别名]
# 或者: from apps.web.bundles.BundleService import update_bundle_metadata [as 别名]
    def post(self, request, uuid):
        user_id = self.request.user.id
        logger.debug("BundleInfo: user_id=%s; uuid=%s.", user_id, uuid)
        service = BundleService(self.request.user)

        try:
            bundle_info = service.get_bundle_info(uuid)
            if bundle_info['owner_id'] == str(self.request.user.id):
                data = json.loads(request.body)
                new_metadata = data['metadata']
                #clean up stuff
                if new_metadata.get('data_size', None):
                    new_metadata.pop('data_size')
                if new_metadata.get('created', None):
                    new_metadata.pop('created')
                if new_metadata.get('time', None):
                    new_metadata.pop('time')

                if new_metadata.get('tags', None):
                    tags = new_metadata['tags']
                    tags = tags.split(',')
                    new_metadata['tags'] = tags
                else:
                    new_metadata['tags'] = []

                if new_metadata.get('language', None) or new_metadata.get('language') ==  u'':
                    language = new_metadata['language']
                    language = language.split(',')
                    new_metadata['language'] = language

                if new_metadata.get('architectures', None):
                    architectures = new_metadata['architectures']
                    architectures = architectures.split(',')
                    new_metadata['architectures'] = architectures

                # update and return
                print new_metadata
                service.update_bundle_metadata(uuid, new_metadata)
                bundle_info = service.get_bundle_info(uuid)
            return Response(bundle_info, content_type="application/json")
        except Exception as e:
            logging.error(self.__str__())
            logging.error(smart_str(e))
            logging.error('')
            logging.debug('-------------------------')
            tb = traceback.format_exc()
            logging.error(tb)
            logging.debug('-------------------------')
            return Response({'error': smart_str(e)})
开发者ID:TPNguyen,项目名称:codalab,代码行数:51,代码来源:worksheet_views.py

示例3: post

# 需要导入模块: from apps.web.bundles import BundleService [as 别名]
# 或者: from apps.web.bundles.BundleService import update_bundle_metadata [as 别名]
    def post(self, request, uuid):
        '''
        Save metadata information for a bundle.
        '''
        user_id = self.request.user.id
        logger.debug("BundleInfo: user_id=%s; uuid=%s.", user_id, uuid)
        service = BundleService(self.request.user)
        try:
            bundle_info = service.get_bundle_info(uuid)
            # Save only if we're the owner.
            if bundle_info['edit_permission']:
                data = json.loads(request.body)
                new_metadata = data['metadata']

                # TODO: do this generally based on the CLI specs.
                # Remove generated fields.
                for key in ['data_size', 'created', 'time', 'memory', 'exitcode', 'actions', 'started', 'last_updated']:
                    if key in new_metadata:
                        del new_metadata[key]

                # Convert to arrays
                for key in ['tags', 'language', 'architectures']:
                    if key in new_metadata and isinstance(new_metadata[key], basestring):
                        new_metadata[key] = new_metadata[key].split(',')

                # Convert to ints
                for key in ['request_cpus', 'request_gpus', 'request_priority']:
                    if key in new_metadata:
                        new_metadata[key] = int(new_metadata[key])

                service.update_bundle_metadata(uuid, new_metadata)
                bundle_info = service.get_bundle_info(uuid)
                return Response(bundle_info, content_type="application/json")
            else:
                return Response({'error': 'Can\'t save unless you\'re the owner'})
        except Exception as e:
            tb = traceback.format_exc()
            log_exception(self, e, tb)
            return Response({'error': smart_str(e)})
开发者ID:klopyrev,项目名称:codalab-worksheets,代码行数:41,代码来源:worksheet_views.py


注:本文中的apps.web.bundles.BundleService.update_bundle_metadata方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。