本文整理汇总了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)})
示例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)})
示例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)})