[
https://issues.apache.org/jira/browse/CASSANDRA-11683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15263789#comment-15263789
]
ASF GitHub Bot commented on CASSANDRA-11683:
--------------------------------------------
GitHub user peoplehlj opened a pull request:
https://github.com/apache/cassandra/pull/68
CASSANDRA-11683: Code refactor for StorageServiceMBean.forceRepair* methods
This patch is for https://issues.apache.org/jira/browse/CASSANDRA-11683
For the class StorageServiceMBean, it has below methods,
```
public int forceRepairAsync(String keyspace, boolean isSequential,
Collection<String> dataCenters, Collection<String> hosts, boolean
primaryRange, boolean repairedAt, String... columnFamilies) throws IOException;
public int forceRepairRangeAsync(String beginToken, String endToken, String
keyspaceName, boolean isSequential, Collection<String> dataCenters,
Collection<String> hosts, boolean repairedAt, String... columnFamilies) throws
IOException;
public int forceRepairRangeAsync(String beginToken, String endToken, String
keyspaceName, boolean isSequential, boolean isLocal, boolean repairedAt,
String... columnFamilies);
```
But in the implementation, the arguments are different from this MBean,
please notice the last second argument, from *repairedAt* to *fullRepair*, and
actually *fullRepair* is more clear for this API.
```
public int forceRepairAsync(String keyspace, boolean isSequential,
Collection<String> dataCenters, Collection<String> hosts, boolean primaryRange,
boolean fullRepair, String... columnFamilies) throws IOException{}
public int forceRepairRangeAsync(String beginToken, String endToken, String
keyspaceName, boolean isSequential, Collection<String> dataCenters,
Collection<String> hosts, boolean fullRepair, String... columnFamilies) throws
IOException{}
public int forceRepairRangeAsync(String beginToken, String endToken, String
keyspaceName, boolean isSequential, Collection<String> dataCenters,
Collection<String> hosts, boolean fullRepair, String... columnFamilies) throws
IOException{}
```
This will make developers confused, for example I met an issue that we
didn't want to do a "full" repair but from the MBean I didn't know how to pass
the argument.
Please help to merge it if we want to fix this issue, thanks in advance.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/peoplehlj/cassandra CASSANDRA-11683
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cassandra/pull/68.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #68
----
commit 4c8b75bc664371c19e118f8497f9777831721084
Author: Huang, Lijun <[email protected]>
Date: 2016-04-29T09:11:17Z
CASSANDRA-11683: Code refactor for StorageServiceMBean.forceRepair* methods
----
> Code refactor for StorageServiceMBean.forceRepair* methods
> ----------------------------------------------------------
>
> Key: CASSANDRA-11683
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11683
> Project: Cassandra
> Issue Type: Bug
> Reporter: Lijun Huang
> Priority: Trivial
> Fix For: 2.1.x
>
>
> For the class StorageServiceMBean, it has below methods,
> {code:title=org/apache/cassandra/service/StorageServiceMBean.java|borderStyle=solid}
> public int forceRepairAsync(String keyspace, boolean isSequential,
> Collection<String> dataCenters, Collection<String> hosts, boolean
> primaryRange, boolean repairedAt, String... columnFamilies) throws
> IOException;
> public int forceRepairRangeAsync(String beginToken, String endToken, String
> keyspaceName, boolean isSequential, Collection<String> dataCenters,
> Collection<String> hosts, boolean repairedAt, String... columnFamilies)
> throws IOException;
> public int forceRepairRangeAsync(String beginToken, String endToken, String
> keyspaceName, boolean isSequential, boolean isLocal, boolean repairedAt,
> String... columnFamilies);
> {code}
> But in the implementation, the arguments are different from this MBean,
> please notice the last second argument, from *repairedAt* to *fullRepair*,
> and actually *fullRepair* is more clear for this API.
> {code:title=org/apache/cassandra/service/StorageService.java|borderStyle=solid}
> public int forceRepairAsync(String keyspace, boolean isSequential,
> Collection<String> dataCenters, Collection<String> hosts, boolean
> primaryRange, boolean fullRepair, String... columnFamilies) throws
> IOException{}
> public int forceRepairRangeAsync(String beginToken, String endToken, String
> keyspaceName, boolean isSequential, Collection<String> dataCenters,
> Collection<String> hosts, boolean fullRepair, String... columnFamilies)
> throws IOException{}
> public int forceRepairRangeAsync(String beginToken, String endToken, String
> keyspaceName, boolean isSequential, Collection<String> dataCenters,
> Collection<String> hosts, boolean fullRepair, String... columnFamilies)
> throws IOException{}
> {code}
> This will make developers confused, for example I met an issue that we didn't
> want to do a "full" repair but from the MBean I didn't know how to pass the
> argument.
> I will send out a patch soon, and please help to merge it if we want to fix
> this issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)