def item_version_rollback(item_id): ensure_item(item_id) op_info = parse_item_version_rollback_arguments(request) validate_for_item_modify(op_info.user_hash, item_id) rollback_info = item_rollback(op_info, item_id) return {"msg": "OK", "data": rollback_info}
def grey_item_create(op_info): op_info = parse_grey_item_creation_arguments(op_info) item = ensure_item(op_info.item_id) update_item_for_grey(item) return create_grey_item(op_info.item_id, item.name, op_info.item_data, op_info.item_type, op_info.visibility)
def grey_item_modify_or_create(resource_id=None, resource_data=None, item_type=0, visibility=None): item = ensure_item(resource_id) grey_item = GreyItem.get_by_item_id(resource_id) if grey_item: modify_grey_item(grey_item, resource_data, item_type, visibility) refresh_puller_cache_for_grey(resource_id, item.name, visibility) else: update_item_for_grey(item) create_grey_item(resource_id, item.name, resource_data, item_type, visibility)
def full_deploy_item(item_id): item = ensure_item(item_id) grey_item = ensure_grey_item(item_id) op_info = parse_grey_item_full_deploy_arguments(request) validate_for_item_modify( op_info.user_hash, item_id ) item_full_deploy(resource_id=item_id, item=item, grey_item=grey_item) return { "msg": "OK" }
def delete_item(item_id): item = ensure_item(item_id) op_info = parse_item_options_base(request) validate_for_item_modify( op_info.user_hash, item_id ) grey_item_delete(item_id) if not op_info.grey: item_delete(resource_id=item_id, resource_name=item.name, resource_visibility=item.visibility) return { "msg": "OK" }
def item_rollback(op_info, item_id): item = ensure_item(item_id) versions = ResourceVersion.get_versions_by_resource( item_id, Resource.Type.ITEM, [op_info.version_id]) if not versions: raise GulDanException().with_code(404).with_message( u"找不到对应的版本,版本号({})".format(op_info.version_id)) version = versions[0] item_modify( item_id=item_id, item_data=version.resource_content, item_type=Item.Type.to_str(version.type), item_visibility=version.resource_visibility, ) return { "id": item_id, "name": item.name, "type": version.resource_type, "visibility": Resource.Visibility.to_str(version.resource_visibility), "content": version.resource_content }