Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync master to develop #1403

Merged
merged 3 commits into from
May 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed docs/asset/01-sp_arch.jpg
Binary file not shown.
Binary file removed docs/asset/02-get_approval.jpg
Binary file not shown.
Binary file removed docs/asset/03-put_object.jpg
Binary file not shown.
Binary file removed docs/asset/04-replicate_object.jpg
Binary file not shown.
Binary file removed docs/asset/05-get_object.jpg
Binary file not shown.
Binary file removed docs/asset/06-query_meta.jpg
Binary file not shown.
Binary file removed docs/asset/07-challenge.jpg
Binary file not shown.
Binary file removed docs/asset/08-gc_object.jpg
Binary file not shown.
Binary file removed docs/asset/09-piecestore_arch.jpg
Binary file not shown.
Binary file removed docs/asset/10-ec.jpg
Binary file not shown.
Binary file removed docs/asset/11-gater.jpg
Binary file not shown.
Binary file removed docs/asset/12-manager.jpg
Binary file not shown.
Binary file removed docs/asset/13-bucket_migrate.jpg
Binary file not shown.
Binary file removed docs/asset/14-sp_exit.jpg
Binary file not shown.
77 changes: 0 additions & 77 deletions docs/introduction/overview.md

This file was deleted.

18 changes: 6 additions & 12 deletions docs/modules/approver.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Approver

Approver module is used to handle approval requests including `CreateBucketApproval`, `MigrateBucketApproval` and `CreateObjectApproval`. The workflow of Approver users can refer [GetApproval](../workflow/workflow.md#get-approval). We currently abstract SP as the GfSp framework, which provides users with customizable capabilities to meet their specific requirements. Approver module provides an abstract interface, which is called `Approver`, as follows:
Approver module is used to handle approval requests including `MigrateBucketApproval` . The workflow of Approver users can refer [GetApproval](../introduction/workflow.md#get-approval). We currently abstract SP as the GfSp framework, which provides users with customizable capabilities to meet their specific requirements. Approver module provides an abstract interface, which is called `Approver`, as follows:

Approver is an abstract interface to handle ask approval requests.

Expand Down Expand Up @@ -36,33 +36,27 @@ type Approver interface {

Approver interface inherits [Modular interface](./common/lifecycle_modular.md#modular-interface), so Approver module can be managed by lifecycle and resource manager.

In terms of the functions provided by Approver module, it can be divided into two parts: CreateBucketApproval and CreateObjectApproval. Both CreateBucketApproval and CreateObjectApproval have three methods: PreXXX, HanldeXXX and PostXXX. Therefore, if you can rewrite these methods to meet your own requirements.
The functionality of the Approver module is primarily centered around the MigrateBucketApproval process. This process encompasses three distinct phases, each managed by a dedicated method: PreXXX for preliminary actions, HandleXXX for core processing, and PostXXX for follow-up operations. Users have the flexibility to customize these methods to align with their specific needs, enabling a tailored approach to the migration process.

As we can see from the second parameter of the methods defined in `Approver` interface, bucketApproval is splitted into `ApprovalCreateBucketTask` and objectApproval is splitted into `ApprovalCreateObjectTask`. They are also defined as an interface.
The second parameter in PreMigrateBucketApproval(ctx context.Context, task task.ApprovalMigrateBucketTask), which is ApprovalMigrateBucketTask, is also an interface. This design facilitates future customization by the user.

We can query ApprovalCreateBucket and ApprovalCreateObject tasks that we care about by `QueryTasks` method through using subKey.
We can query ApprovalMigrateBucket task that we care about by `QueryTasks` method through using subKey.

## ApprovalCreateBucketTask and ApprovalCreateObjectTask
## ApprovalMigrateBucketTask

ApprovalTask is used to record approval information for users creating buckets and objects. Primary SP approval is required before serving the bucket and object. If the SP approves the message, it will sign the approval message. The greenfield will verify the signature of the approval message to determine whether the SP accepts the bucket and object. ApprovalTask includes `ApprovalCreateBucketTask` and `ApprovalCreateBucketTask`.
ApprovalTask is used to record approval information for users creating buckets and objects. Primary SP approval is required before serving the bucket and object. If the SP approves the message, it will sign the approval message. The greenfield will verify the signature of the approval message to determine whether the SP accepts the bucket and object. ApprovalTask includes `ApprovalMigrateBucketTask`.

The corresponding interfaces definition is shown below:

- [ApprovalTask](./common/task.md#approvaltask)
- [ApprovalCreateBucketTask](./common/task.md#approvalcreatebuckettask)
- [ApprovalMigrateBucketTask](./common/task.md#approvalmigratebuckettask)
- [ApprovalCreateObjectTask](./common/task.md#approvalcreateobjecttask)

ApprovalTask interface inherits [Task interface](./common/task.md#task), it describes what operations does a Task have. You can overwrite all these methods in your own.

The corresponding `protobuf` definition is shown below:

- [GfSpCreateBucketApprovalTask](./common/proto.md#gfspcreatebucketapprovaltask-proto)
- [GfSpMigrateBucketApprovalTask](./common/proto.md#gfspmigratebucketapprovaltask-proto)
- [GfSpCreateObjectApprovalTask](./common/proto.md#gfspcreateobjectapprovaltask-proto)
- [MsgCreateBucket](./common/proto.md#msgcreatebucket-proto)
- [MsgMigrateBucket](./common/proto.md#msgmigratebucket-proto)
- [MsgCreateObject](./common/proto.md#msgcreateobject-proto)

## GfSp Framework Approver Code

Expand Down
Loading
Loading