@Override public ArrayList<HashMap> doExecute(Map<String, Object> args) { Cache cache = CacheFactory.getAnyInstance(); String regionPath = (String) args.get(ApiConstant.REGIONPATH); Region region = cache.getRegion(regionPath); ArrayList<HashMap> list = new ArrayList<HashMap>(); if (region != null && region instanceof PartitionedRegion) { DistributedMember member = cache.getDistributedSystem().getDistributedMember(); PartitionedRegion pr = (PartitionedRegion) region; if (pr.getDataStore() != null) { Set<BucketRegion> set2 = pr.getDataStore().getAllLocalBucketRegions(); for (BucketRegion br : set2) { HashMap map = new HashMap(); map.put("BucketId", br.getId()); map.put("Size", br.size()); map.put("Bytes", br.getTotalBytes()); map.put("host", getHost()); map.put("node", System.getProperty("NODE_NAME")); InternalDistributedMember m = pr.getBucketPrimary(br.getId()); if (m != null && member.getId().equals(m.getId())) { map.put("type", "primary"); } else { map.put("type", "redundant"); } map.put("TotalNumBuckets", pr.getPartitionAttributes().getTotalNumBuckets()); list.add(map); } } } return list; }
/** * Initializes without children. * * @param region The region from which RegionInfo is extracted. */ @SuppressWarnings({"unchecked", "rawtypes"}) private void init(Region region) { if (region == null) { return; } DistributedMember member = CacheFactory.getAnyInstance().getDistributedSystem().getDistributedMember(); setName(region.getName()); setFullPath(region.getFullPath()); GemfireRegionAttributeInfo attrInfo = new GemfireRegionAttributeInfo(); RegionAttributes<?, ?> attr = region.getAttributes(); attrInfo.setAttribute(GemfireRegionAttributeInfo.DATA_POLICY, attr.getDataPolicy().toString()); attrInfo.setAttribute(GemfireRegionAttributeInfo.SCOPE, attr.getScope().toString()); if (region instanceof PartitionedRegion) { PartitionedRegion pr = (PartitionedRegion) region; PartitionAttributes pattr = pr.getPartitionAttributes(); attrInfo.setAttribute( GemfireRegionAttributeInfo.LOCAL_MAX_MEMORY, pattr.getLocalMaxMemory() + ""); attrInfo.setAttribute( GemfireRegionAttributeInfo.REDUNDANT_COPIES, pattr.getRedundantCopies() + ""); attrInfo.setAttribute( GemfireRegionAttributeInfo.TOTAL_MAX_MEMORY, pattr.getTotalMaxMemory() + ""); attrInfo.setAttribute( GemfireRegionAttributeInfo.TOTAL_NUM_BUCKETS, pattr.getTotalNumBuckets() + ""); // data store is null if it's a proxy, i.e., LOCAL_MAX_MEMORY=0 if (pr.getDataStore() != null) { Set<BucketRegion> localtBuketSet = pr.getDataStore().getAllLocalBucketRegions(); List<BucketInfo> primaryList = new ArrayList<BucketInfo>(); List<BucketInfo> redundantList = new ArrayList<BucketInfo>(); this.size = 0; for (BucketRegion br : localtBuketSet) { BucketInfo bucketInfo = new GemfireBucketInfo( br.getId(), br.getBucketAdvisor().isPrimary(), br.size(), br.getTotalBytes()); // InternalDistributedMember m = pr.getBucketPrimary(br.getId()); // if (m.getId().equals(member.getId())) { if (bucketInfo.isPrimary()) { primaryList.add(bucketInfo); this.size += bucketInfo.getSize(); } else { redundantList.add(bucketInfo); } } Collections.sort(primaryList); Collections.sort(redundantList); setPrimaryBucketInfoList(primaryList); setRedundantBucketInfoList(redundantList); } } else { this.size = region.size(); } setAttrInfo(attrInfo); temporalType = GemfireTemporalManager.getTemporalType(region); if (region.isDestroyed() == false && region.isEmpty() == false) { Set<Map.Entry> regionEntrySet = region.entrySet(); for (Map.Entry entry : regionEntrySet) { Object key = entry.getKey(); Object value = entry.getValue(); keyTypeName = key.getClass().getName(); valueTypeName = value.getClass().getName(); break; } } }