Search in sources :

Example 1 with RegionInformation

use of org.apache.geode.management.internal.cli.domain.RegionInformation in project geode by apache.

the class RegionCommands method listRegion.

@CliCommand(value = { CliStrings.LIST_REGION }, help = CliStrings.LIST_REGION__HELP)
@CliMetaData(shellOnly = false, relatedTopic = CliStrings.TOPIC_GEODE_REGION)
@ResourceOperation(resource = Resource.DATA, operation = Operation.READ)
public Result listRegion(@CliOption(key = { CliStrings.LIST_REGION__GROUP }, optionContext = ConverterHint.MEMBERGROUP, help = CliStrings.LIST_REGION__GROUP__HELP) String[] group, @CliOption(key = { CliStrings.LIST_REGION__MEMBER }, optionContext = ConverterHint.MEMBERIDNAME, help = CliStrings.LIST_REGION__MEMBER__HELP) String[] memberNameOrId) {
    Result result = null;
    try {
        Set<RegionInformation> regionInfoSet = new LinkedHashSet<RegionInformation>();
        ResultCollector<?, ?> rc = null;
        Set<DistributedMember> targetMembers = CliUtil.findMembers(group, memberNameOrId);
        if (targetMembers.isEmpty()) {
            return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
        }
        TabularResultData resultData = ResultBuilder.createTabularResultData();
        rc = CliUtil.executeFunction(getRegionsFunction, null, targetMembers);
        ArrayList<?> resultList = (ArrayList<?>) rc.getResult();
        if (resultList != null) {
            Iterator<?> iters = resultList.iterator();
            while (iters.hasNext()) {
                Object resultObj = iters.next();
                if (resultObj != null) {
                    if (resultObj instanceof Object[]) {
                        Object[] resultObjectArray = (Object[]) resultObj;
                        for (Object regionInfo : resultObjectArray) {
                            if (regionInfo instanceof RegionInformation) {
                                regionInfoSet.add((RegionInformation) regionInfo);
                            }
                        }
                    }
                }
            }
            Set<String> regionNames = new TreeSet<String>();
            for (RegionInformation regionInfo : regionInfoSet) {
                regionNames.add(regionInfo.getName());
                Set<String> subRegionNames = regionInfo.getSubRegionNames();
                for (String subRegionName : subRegionNames) {
                    regionNames.add(subRegionName);
                }
            }
            for (String regionName : regionNames) {
                resultData.accumulate("List of regions", regionName);
            }
            if (!regionNames.isEmpty()) {
                result = ResultBuilder.buildResult(resultData);
            } else {
                result = ResultBuilder.createInfoResult(CliStrings.LIST_REGION__MSG__NOT_FOUND);
            }
        }
    } catch (FunctionInvocationTargetException e) {
        result = ResultBuilder.createGemFireErrorResult(CliStrings.format(CliStrings.COULD_NOT_EXECUTE_COMMAND_TRY_AGAIN, CliStrings.LIST_REGION));
    } catch (Exception e) {
        result = ResultBuilder.createGemFireErrorResult(CliStrings.LIST_REGION__MSG__ERROR + " : " + e.getMessage());
    }
    return result;
}
Also used : LinkedHashSet(java.util.LinkedHashSet) RegionInformation(org.apache.geode.management.internal.cli.domain.RegionInformation) TabularResultData(org.apache.geode.management.internal.cli.result.TabularResultData) ArrayList(java.util.ArrayList) FunctionInvocationTargetException(org.apache.geode.cache.execute.FunctionInvocationTargetException) CommandResultException(org.apache.geode.management.internal.cli.result.CommandResultException) Result(org.apache.geode.management.cli.Result) TreeSet(java.util.TreeSet) DistributedMember(org.apache.geode.distributed.DistributedMember) FunctionInvocationTargetException(org.apache.geode.cache.execute.FunctionInvocationTargetException) CliCommand(org.springframework.shell.core.annotation.CliCommand) CliMetaData(org.apache.geode.management.cli.CliMetaData) ResourceOperation(org.apache.geode.management.internal.security.ResourceOperation)

Example 2 with RegionInformation

use of org.apache.geode.management.internal.cli.domain.RegionInformation in project geode by apache.

the class GetRegionsFunction method execute.

@Override
public void execute(FunctionContext functionContext) {
    try {
        Cache cache = CacheFactory.getAnyInstance();
        // should never return a null
        Set<Region<?, ?>> regions = cache.rootRegions();
        if (regions == null || regions.isEmpty()) {
            functionContext.getResultSender().lastResult(null);
        } else {
            Set<RegionInformation> regionInformationSet = new HashSet<>();
            for (Region<?, ?> region : regions) {
                RegionInformation regInfo = new RegionInformation(region, true);
                regionInformationSet.add(regInfo);
            }
            functionContext.getResultSender().lastResult(regionInformationSet.toArray());
        }
    } catch (Exception e) {
        functionContext.getResultSender().sendException(e);
    }
}
Also used : RegionInformation(org.apache.geode.management.internal.cli.domain.RegionInformation) Region(org.apache.geode.cache.Region) Cache(org.apache.geode.cache.Cache) HashSet(java.util.HashSet)

Aggregations

RegionInformation (org.apache.geode.management.internal.cli.domain.RegionInformation)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 LinkedHashSet (java.util.LinkedHashSet)1 TreeSet (java.util.TreeSet)1 Cache (org.apache.geode.cache.Cache)1 Region (org.apache.geode.cache.Region)1 FunctionInvocationTargetException (org.apache.geode.cache.execute.FunctionInvocationTargetException)1 DistributedMember (org.apache.geode.distributed.DistributedMember)1 CliMetaData (org.apache.geode.management.cli.CliMetaData)1 Result (org.apache.geode.management.cli.Result)1 CommandResultException (org.apache.geode.management.internal.cli.result.CommandResultException)1 TabularResultData (org.apache.geode.management.internal.cli.result.TabularResultData)1 ResourceOperation (org.apache.geode.management.internal.security.ResourceOperation)1 CliCommand (org.springframework.shell.core.annotation.CliCommand)1