func deleteInfo(regionName string) (bool, error) {
	key := "/cloud-info-spaces/regions/" + regionName
        keyValueList, err := store.GetList(key, true)
        if err != nil {
                return false, err
        }
        var isDelete bool
        for _, kv := range keyValueList {
                if utils.GetNodeValue(kv.Key, 3) == regionName {
                        err = store.Delete(kv.Key)
                        if err != nil {
                                return false, err
                        }
                        isDelete = true
                }
        }
        if isDelete {
                return true, nil
        }
        return false, fmt.Errorf(regionName + ": does not exist!")
}
1. get the original Key.
2. delete the key.
package regioninfomanager
import (
	"fmt"
	"github.com/cloud-barista/cb-store/utils"
	"github.com/cloud-barista/cb-store"
	icbs "github.com/cloud-barista/cb-store/interfaces"
)
var store icbs.Store
func init() {
        store = cbstore.GetStore()
}
func insertInfo(regionName string, providerName string, keyValueList []icbs.KeyValue) error {
	format := "/cloud-info-spaces/regions/" + regionName + "/" + providerName
	for _, kv := range keyValueList {
		key := format + "/" + kv.Key
		value := kv.Value
		err := store.Put(key, value)
		if err != nil {
			return err
		}
	}
	return nil
}
func listInfo() ([]*RegionInfo, error) {
        key := "/cloud-info-spaces/regions"
        keyValueList, err := store.GetList(key, true)
        if err != nil {
                return nil, err
        }
        var regionInfoList []*RegionInfo
	var inKeyValueList []icbs.KeyValue
	prevRegionName := ""
	prevProviderName := ""
        for _, kv := range keyValueList {
		regionName := utils.GetNodeValue(kv.Key, 3)
		providerName := utils.GetNodeValue(kv.Key, 4)
		if prevRegionName=="" || regionName == prevRegionName {
			prevRegionName = regionName
			prevProviderName = providerName
			keyValue := icbs.KeyValue{utils.GetNodeValue(kv.Key, 5), kv.Value}
			inKeyValueList = append(inKeyValueList, keyValue)
		} else {
			rgnInfo := &RegionInfo{prevRegionName, prevProviderName, inKeyValueList}
			regionInfoList = append(regionInfoList, rgnInfo)
			prevRegionName = regionName
			prevProviderName = providerName
			inKeyValueList = nil
			keyValue := icbs.KeyValue{utils.GetNodeValue(kv.Key, 5), kv.Value}
			inKeyValueList = append(inKeyValueList, keyValue)
		}
        }
	if len(keyValueList) > 0 {
		rgnInfo := &RegionInfo{prevRegionName, prevProviderName, inKeyValueList}
		regionInfoList = append(regionInfoList, rgnInfo)
	}
        return regionInfoList, nil
}
func getInfo(regionName string) (*RegionInfo, error) {
	key := "/cloud-info-spaces/regions/" + regionName
        keyValueList, err := store.GetList(key, true)
        if err != nil {
                return nil, err
        }
        if len(keyValueList) < 1 {
                return nil, fmt.Errorf(regionName + ": does not exist!")
        }
        var oneKeyValueList []icbs.KeyValue
        for _, kv := range keyValueList {
                if utils.GetNodeValue(kv.Key, 3) == regionName {
                        oneKeyValueList = append(oneKeyValueList, *kv)
                }
        }
        if len(oneKeyValueList) < 1 {
                return nil, fmt.Errorf(regionName + ": does not exist!")
        }
        var inKeyValueList []icbs.KeyValue
        providerName := utils.GetNodeValue(oneKeyValueList[0].Key, 4)
        for _, kv := range oneKeyValueList {
                keyValue := icbs.KeyValue{utils.GetNodeValue(kv.Key, 5), kv.Value}
                inKeyValueList = append(inKeyValueList, keyValue)
        }
	return &RegionInfo{regionName, providerName, inKeyValueList}, nil 
}