Ejemplo n.º 1
0
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}
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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"
    }
Ejemplo n.º 5
0
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"
    }
Ejemplo n.º 6
0
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
    }