8000 [ISSUE #3314]Implement DeleteKvConfigCommand for name server tool by 578223592 · Pull Request #3332 · mxsm/rocketmq-rust · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[ISSUE #3314]Implement DeleteKvConfigCommand for name server tool #3332

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

Merged
merged 4 commits into from
May 30, 2025

Conversation

578223592
Copy link
Contributor
@578223592 578223592 commented May 25, 2025
  • 在 rocketmq-tools 中添加 DeleteKvConfigCommand 命令
  • 在 rocketmq-client 中实现 delete_kvconfig_value 方法
  • 更新相关模块以支持新的删除 KV 配置功能

Which Issue(s) This PR Fixes(Closes)

Fixes #3314

Brief Description

How Did You Test This Change?

Summary by CodeRabbit

  • New Features

    • Added a command-line tool to delete key-value configurations from a specified namespace.
    • Introduced a new subcommand for name server commands to support key-value configuration deletion.
    • Enhanced error reporting with more detailed error messages for subcommand failures.
  • Bug Fixes

    • Enabled actual deletion of key-value configurations instead of previously unimplemented placeholders.
  • Documentation

    • Updated command-line help and descriptions for the new delete key-value configuration functionality.

- 在 rocketmq-tools 中添加 DeleteKvConfigCommand 命令
- 在 rocketmq-client 中实现 delete_kvconfig_value 方法
- 更新相关模块以支持新的删除 KV 配置功能
Copy link
Contributor
coderabbitai bot commented May 25, 2025

Walkthrough

A new CLI subcommand, DeleteKvConfigCommand, was implemented to allow deletion of key-value configurations from a RocketMQ name server. Supporting functionality was added to the client, admin, and error handling layers to enable this feature, including new methods and error variants, and integration into the command dispatch system.

Changes

File(s) Change Summary
rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs New module: Implements DeleteKvConfigCommand CLI command for deleting KV configs.
rocketmq-tools/src/commands/namesrv_commands.rs Added DeleteKvConfig variant to NameServerCommands and integrated execution logic.
rocketmq-tools/src/admin/default_mq_admin_ext.rs Implemented delete_kv_config method for DefaultMQAdminExt.
rocketmq-client/src/admin/default_mq_admin_ext_impl.rs Implemented async delete_kv_config method, calling client API to perform deletion.
rocketmq-client/src/implementation/mq_client_api_impl.rs Added async delete_kvconfig_value method to handle deletion via remoting client.
rocketmq-client/src/base/client_config.rs Added set_instance_name method to ClientConfig.
rocketmq-error/src/lib.rs Added SubCommand(String, String) variant to RocketmqError for subcommand error context.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant AdminExt
    participant AdminExtImpl
    participant MQClientAPI
    participant NameServer

    User->>CLI: Run deleteKvConfig command
    CLI->>AdminExt: delete_kv_config(namespace, key)
    AdminExt->>AdminExtImpl: delete_kv_config(namespace, key)
    AdminExtImpl->>MQClientAPI: delete_kvconfig_value(namespace, key, timeout)
    loop For each NameServer address
        MQClientAPI->>NameServer: Send DeleteKvConfig request
        NameServer-->>MQClientAPI: Response (success/failure)
    end
    MQClientAPI-->>AdminExtImpl: Result
    AdminExtImpl-->>AdminExt: Result
    AdminExt-->>CLI: Result
    CLI-->>User: Print success or error message
Loading

Assessment against linked issues

Objective Addressed Explanation
Implement DeleteKvConfigCommand for name server tool (#3314)
Integrate command into CLI and ensure error handling for subcommand (#3314)
Add necessary client/admin methods to support delete operation (#3314)
Provide user feedback and clean shutdown after operation (#3314)

Poem

In the warren of code, a new tool appears,
To delete old configs and calm admin fears.
With a hop and a skip, through client and server,
The rabbit ensures your configs won't linger.
"Success!" it proclaims, with a twitch of its nose—
RocketMQ's cleaner, as everyone knows!
🐇✨


📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 900065d and 9c645e0.

📒 Files selected for processing (3)
  • rocketmq-client/src/base/client_config.rs (1 hunks)
  • rocketmq-client/src/implementation/mq_client_api_impl.rs (2 hunks)
  • rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • rocketmq-client/src/base/client_config.rs
  • rocketmq-client/src/implementation/mq_client_api_impl.rs
  • rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs
⏰ Context from checks skipped due to timeout of 90000ms (9)
  • GitHub Check: test
  • GitHub Check: build
  • GitHub Check: build (windows-latest, nightly)
  • GitHub Check: build (ubuntu-latest, nightly)
  • GitHub Check: build (macos-latest, stable)
  • GitHub Check: build (ubuntu-latest, stable)
  • GitHub Check: build (windows-latest, stable)
  • GitHub Check: build (macos-latest, nightly)
  • GitHub Check: auto-approve
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Collaborator

🔊@578223592 🚀Thanks for your contribution🎉!

💡CodeRabbit(AI) will review your code first🔥!

Note

🚨The code review suggestions from CodeRabbit are to be used as a reference only, and the PR submitter can decide whether to make changes based on their own judgment. Ultimately, the project management personnel will conduct the final code review💥.

@rocketmq-rust-robot rocketmq-rust-robot added Difficulty level/Moderate Moderate difficult ISSUE feature🚀 Suggest an idea for this project. rocketmq-tools crate labels May 25, 2025
@mxsm
Copy link
Owner
mxsm commented May 28, 2025

@578223592 Fix ci error and reopen this pr to submit?

- 修复 DefaultMQAdminExt 中 delete_kv_config 方法的实现- 优化 MQClientAPIImpl 中 delete_kvconfig_value 方法,改为异步实现
- 更新 DeleteKvConfigCommand 以使用异步调用
- 统一错误处理和命名规范
@rocketmq-rust-bot
Copy link
Collaborator
< 8000 /tr>

🔊@578223592 🚀Thanks for your contribution🎉!

💡CodeRabbit(AI) will review your code first🔥!

Note

🚨The code review suggestions from CodeRabbit are to be used as a reference only, and the PR submitter can decide whether to make changes based on their own judgment. Ultimately, the project management personnel will conduct the final code review💥.

@578223592 578223592 marked this pull request as ready for review May 30, 2025 09:04
@578223592
Copy link
Contributor Author

@578223592 Fix ci error and reopen this pr to submit?

i have done it just right now.sry miss the msg in work day

Copy link
codecov bot commented May 30, 2025

Codecov Report

Attention: Patch coverage is 0% with 69 lines in your changes missing coverage. Please review.

Project coverage is 26.34%. Comparing base (cfea1ca) to head (9c645e0).
Report is 12 commits behind head on main.

Files with missing lines Patch % Lines
...mands/namesrv_commands/delete_kv_config_command.rs 0.00% 30 Missing ⚠️
...mq-client/src/implementation/mq_client_api_impl.rs 0.00% 26 Missing ⚠️
...etmq-client/src/admin/default_mq_admin_ext_impl.rs 0.00% 6 Missing ⚠️
rocketmq-client/src/base/client_config.rs 0.00% 3 Missing ⚠️
rocketmq-tools/src/admin/default_mq_admin_ext.rs 0.00% 3 Missing ⚠️
rocketmq-tools/src/commands/namesrv_commands.rs 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3332      +/-   ##
==========================================
- Coverage   26.43%   26.34%   -0.09%     
==========================================
  Files         526      529       +3     
  Lines       74229    74572     +343     
==========================================
+ Hits        19619    19648      +29     
- Misses      54610    54924     +314     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor
@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (6)
rocketmq-remoting/src/protocol/header/namesrv/kv_config_header.rs (1)

88-88: Remove or improve the TODO comment.

The TODO comment has several issues:

  1. It's written in Chinese, which may not be accessible to all contributors
  2. It questions existing functionality without providing clear context or actionable next steps
  3. The #[required] attribute is part of the RequestHeaderCodec macro system and likely validates that the field is present during serialization/deserialization

Either remove the TODO comment entirely:

-    #[required] // //todo 看下这个有什么用 ,怎么起作用的
+    #[required]
     pub namespace: CheetahString,

Or replace it with a more informative comment in English:

-    #[required] // //todo 看下这个有什么用 ,怎么起作用的
+    #[required] // Ensures namespace field is validated during request processing
     pub namespace: CheetahString,
rocketmq-client/src/producer/producer_impl/default_mq_producer_impl.rs (1)

875-875: Improve TODO comment clarity and language consistency.

The TODO comment is in Chinese and lacks specificity about what needs to be investigated regarding the mq_client_err! macro. For better code maintainability in an international project, consider using English and being more specific about the investigation needed.

Apply this diff to improve the comment:

-            mq_client_err!(ClientErrorCode::BROKER_NOT_EXIST_EXCEPTION, info) //todo 看下这个宏
+            mq_client_err!(ClientErrorCode::BROKER_NOT_EXIST_EXCEPTION, info) // TODO: Review macro behavior for error handling consistency

Alternatively, if this TODO is temporary and relates to the current PR development, consider addressing it before merging or creating a separate issue to track the investigation.

rocketmq-client/src/factory/mq_client_instance.rs (1)

35-35: Fix formatting and avoid unnecessary import style changes.

The import statement change from use rocketmq_error::mq_client_err; to use rocketmq_error::{mq_client_err}; is unnecessary and doesn't improve readability. The original style is more conventional for single imports.

Consider reverting to the original import style:

-use rocketmq_error::{mq_client_err};
+use rocketmq_error::mq_client_err;
rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs (3)

46-46: Replace Chinese comment with English

The comment should be in English for consistency with the codebase.

-            // 立即执行的闭包
+            // Immediately executed closure

50-53: Remove unnecessary parse().unwrap() calls

The .parse().unwrap() calls on string literals that are guaranteed to succeed are unnecessary and add cognitive overhead.

                .map_err(|e| {
                    RocketmqError::SubCommand(
-                        "DeleteKvConfigCommand".parse().unwrap(),
+                        "DeleteKvConfigCommand".to_string(),
                        e.to_string(),
                    )
                })?;

Apply the same fix to lines 59-63.

Also applies to: 59-63


56-56: Break long line for better readability

The method call on line 56 exceeds reasonable line length and should be broken up.

-            MQAdminExt::delete_kv_config(&default_mqladmin_ext, self.namespace.parse().unwrap(), self.key.parse().unwrap())
+            MQAdminExt::delete_kv_config(
+                &default_mqladmin_ext,
+                self.namespace.clone().into(),
+                self.key.clone().into(),
+            )
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7497aa6 and 4c48807.

📒 Files selected for processing (10)
  • rocketmq-client/src/admin/default_mq_admin_ext_impl.rs (1 hunks)
  • rocketmq-client/src/base/client_config.rs (1 hunks)
  • rocketmq-client/src/factory/mq_client_instance.rs (2 hunks)
  • rocketmq-client/src/implementation/mq_client_api_impl.rs (2 hunks)
  • rocketmq-client/src/producer/producer_impl/default_mq_producer_impl.rs (1 hunks)
  • rocketmq-error/src/lib.rs (1 hunks)
  • rocketmq-remoting/src/protocol/header/namesrv/kv_config_header.rs (1 hunks)
  • rocketmq-tools/src/admin/default_mq_admin_ext.rs (1 hunks)
  • rocketmq-tools/src/commands/namesrv_commands.rs (3 hunks)
  • rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs (4)
rocketmq-tools/src/commands/namesrv_commands.rs (1)
  • execute (48-53)
rocketmq-error/src/lib.rs (3)
  • new (153-165)
  • new (232-241)
  • new (302-311)
rocketmq-client/src/admin/default_mq_admin_ext_impl.rs (4)
  • new (96-114)
  • start (124-178)
  • delete_kv_config (466-477)
  • shutdown (180-194)
rocketmq-tools/src/admin/default_mq_admin_ext.rs (4)
  • new (63-83)
  • start (205-207)
  • delete_kv_config (478-484)
  • shutdown (209-211)
🪛 GitHub Actions: CI
rocketmq-client/src/base/client_config.rs

[error] 191-191: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

rocketmq-client/src/implementation/mq_client_api_impl.rs

[error] 154-160: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.


[error] 165-174: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

rocketmq-tools/src/commands/namesrv_commands.rs

[error] 14-25: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

rocketmq-client/src/factory/mq_client_instance.rs

[error] 32-32: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.


[error] 119-121: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

rocketmq-tools/src/admin/default_mq_admin_ext.rs

[error] 480-484: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs

[error] 53-70: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: build
  • GitHub Check: test
  • GitHub Check: auto-approve
🔇 Additional comments (10)
rocketmq-error/src/lib.rs (1)

139-140: LGTM! Well-structured error variant for command failures.

The new SubCommand error variant follows the existing pattern and provides clear error context with the command name and failure details.

rocketmq-tools/src/admin/default_mq_admin_ext.rs (1)

478-484: Fix formatting and LGTM on implementation.

The implementation correctly delegates the delete KV config operation to the internal admin implementation, which is the expected pattern for this abstraction layer.

However, there's a formatting issue that needs to be fixed as indicated by the CI pipeline failure. Please run cargo fmt to fix the formatting:

 async fn delete_kv_config(
     &self,
     namespace: CheetahString,
     key: CheetahString,
 ) -> rocketmq_error::RocketMQResult<()> {
-    self.default_mqadmin_ext_impl.delete_kv_config(namespace,key).await
+    self.default_mqadmin_ext_impl
+        .delete_kv_config(namespace, key)
+        .await
 }
🧰 Tools
🪛 GitHub Actions: CI

[error] 480-484: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.

rocketmq-client/src/admin/default_mq_admin_ext_impl.rs (1)

466-477: LGTM! Proper implementation of delete KV config functionality.

The implementation correctly:

  • Accesses the client instance and MQ client API implementation
  • Calls the delete_kvconfig_value method with appropriate parameters
  • Converts timeout from Duration to milliseconds as required by the API
  • Returns the result directly, allowing proper error propagation

The use of unwrap() is acceptable here since the client instance should be properly initialized before this method is called.

rocketmq-tools/src/commands/namesrv_commands.rs (3)

18-18: LGTM on new command integration.

The addition of the delete_kv_config_command module import and corresponding use statement follows the correct pattern for integrating new CLI commands.

Also applies to: 28-28


39-44: Well-structured CLI command definition.

The new DeleteKvConfig command variant is properly defined with appropriate clap attributes, including a clear name and description. This follows the same pattern as existing commands.


51-51:

❓ Verification inconclusive

Correct pattern matching implementation.

The execute method properly delegates to the new command's execute method, maintaining consistency with the existing command handling pattern.

However, please fix the formatting issues indicated by the CI pipeline failure by running cargo fmt:


🏁 Script executed:

#!/bin/bash
# Fix formatting issues in the codebase
cargo fmt

Length of output: 1008


Approve DeleteKvConfig match handling; ensure formatting
The DeleteKvConfig arm correctly delegates to its execute method, matching the existing command pattern. However, CI flagged formatting issues that need to be addressed before merging.

• File to format: rocketmq-tools/src/commands/namesrv_commands.rs (match-arm indentation/spacing)

Please run cargo fmt (or install and run rustfmt) locally to fix these issues and push the formatted code.

rocketmq-client/src/implementation/mq_client_api_impl.rs (1)

74-74: LGTM: Import addition is correct

The import for DeleteKVConfigRequestHeader is properly added to support the new delete KV configuration functionality.

rocketmq-tools/src/commands/namesrv_commands/delete_kv_config_command.rs (3)

29-36: LGTM: Command structure is well-defined

The struct definition with clap parser annotations correctly defines the required namespace and key arguments for the delete KV config command.


38-71: LGTM: Overall command logic is well-structured

The command implementation correctly:

  • Creates and configures the admin client with a unique instance name
  • Handles the lifecycle (start/shutdown) properly
  • Implements proper error handling with command-specific error wrapping
  • Ensures cleanup by shutting down the client regardless of operation outcome

The async closure pattern ensures the admin client is always shut down even if an error occurs.

🧰 Tools
🪛 GitHub Actions: CI

[error] 53-70: cargo fmt check failed due to formatting differences. Run 'cargo fmt' to fix code style issues.


21-21:

✅ Verification successful

Verify the import path for TimeUtils

The import path rocketmq_common::TimeUtils::get_current_millis looks unusual. Please verify this is correct.


🏁 Script executed:

#!/bin/bash
# Description: Verify the correct import path for get_current_millis function
# Expected: Find the correct module path for time utilities

# Search for get_current_millis function definition
ast-grep --pattern 'pub fn get_current_millis() -> $_'

# Search for TimeUtils module or time_utils module
rg -A 3 "pub mod.*time" --type rust
rg -A 3 "mod TimeUtils" --type rust

Length of output: 2457


🏁 Script executed:

#!/bin/bash
# Locate the definition of get_current_millis across the repository
rg -n "get_current_millis" .

Length of output: 27152


🏁 Script executed:

#!/bin/bash
# Inspect rocketmq-common crate root for TimeUtils re-export or module definitions
echo "==== lib.rs top 50 lines ===="
sed -n '1,50p' rocketmq-common/src/lib.rs

echo
echo "==== Search for TimeUtils in lib.rs ===="
rg -n "TimeUtils" rocketmq-common/src/lib.rs

echo
echo "==== Search for pub use.*time_utils in lib.rs ===="
rg -n "pub use.*time_utils" rocketmq-common/src/lib.rs

Length of output: 2505


Import Path Validated

The import use rocketmq_common::TimeUtils::get_current_millis; is correct—rocketmq-common/src/lib.rs publicly re-exports crate::utils::time_utils as TimeUtils. No change needed here.

Comment on lines 193 to 196
#[inline]
pub fn setInstanceName(&mut self, instance_name: CheetahString) {
self.instance_name = instance_name;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix naming convention and formatting issues.

The method has two issues that need to be addressed:

  1. Naming Convention: The method name setInstanceName doesn't follow Rust naming conventions. It should use snake_case.
  2. Formatting: CI indicates formatting issues that need to be fixed.

Apply this diff to fix the naming convention:

-    pub fn setInstanceName(&mut self,  instance_name: CheetahString) {
+    pub fn set_instance_name(&mut self, instance_name: CheetahString) {
         self.instance_name = instance_name;
     }

Also run cargo fmt to fix the formatting issues reported by CI.

Consider returning &mut self to enable method chaining:

-    pub fn set_instance_name(&mut self, instance_name: CheetahString) {
+    pub fn set_instance_name(&mut self, instance_name: CheetahString) -> &mut Self {
         self.instance_name = instance_name;
+        self
     }
🤖 Prompt for AI Agents
In rocketmq-client/src/base/client_config.rs around lines 193 to 196, rename the
method from setInstanceName to set_instance_name to follow Rust snake_case
naming conventions. Adjust the method signature and all references accordingly.
Then run cargo fmt on the file to fix any formatting issues reported by CI.
Optionally, modify the method to return &mut self to support method chaining.

@rocketmq-rust-bot rocketmq-rust-bot self-requested a review May 30, 2025 09:09
@rocketmq-rust-bot
Copy link
Collaborator

🔊@578223592 🚀Thanks for your contribution🎉!

💡CodeRabbit(AI) will review your code first🔥!

Note

🚨The code review suggestions from CodeRabbit are to be used as a reference only, and the PR submitter can decide whether to make changes based on their own judgment. Ultimately, the project management personnel will conduct the final code review💥.

@mxsm
Copy link
Owner
mxsm commented May 30, 2025

@578223592 Please fix ci error thanks.

@mxsm mxsm changed the title feat(namesrv): 添加删除 KV配置的功能 [ISSUE #3314]Implement DeleteKvConfigCommand for name server tool May 30, 2025
@rocketmq-rust-bot
Copy link
Collaborator

🔊@578223592 🚀Thanks for your contribution🎉!

💡CodeRabbit(AI) will review your code first🔥!

Note

🚨The code review suggestions from CodeRabbit are to be used as a reference only, and the PR submitter can decide whether to make changes based on their own judgment. Ultimately, the project management personnel will conduct the final code review💥.

Copy link
Collaborator
@rocketmq-rust-bot rocketmq-rust-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mxsm mxsm merged commit aeae224 into mxsm:main May 30, 2025
15 of 19 checks passed
@rocketmq-rust-bot rocketmq-rust-bot added approved PR has approved and removed ready to review waiting-review waiting review this PR labels May 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AI review first Ai review pr first approved PR has approved auto merge Difficulty level/Moderate Moderate difficult ISSUE feature🚀 Suggest an idea for this project. rocketmq-tools crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature🚀] Implement DeleteKvConfigCommand for name server tool
4 participants
0