func listInfo() ([]*CredentialInfo, error) {
        key := "/cloud-info-spaces/credentials"
        keyValueList, err := store.GetList(key, true)
        if err != nil {
                return nil, err
        }
        var credentialInfoList []*CredentialInfo
	var inKeyValueList []icbs.KeyValue
	prevCredName := ""
	prevProviderName := ""
        for _, kv := range keyValueList {
		credName := utils.GetNodeValue(kv.Key, 3)
		providerName := utils.GetNodeValue(kv.Key, 4)
		if prevCredName=="" || credName == prevCredName {
			prevCredName = credName
			prevProviderName = providerName
			keyValue := icbs.KeyValue{utils.GetNodeValue(kv.Key, 5), kv.Value}
			inKeyValueList = append(inKeyValueList, keyValue)
		} else {
			crdInfo := &CredentialInfo{prevCredName, prevProviderName, inKeyValueList}
			credentialInfoList = append(credentialInfoList, crdInfo)
			prevCredName = credName
			prevProviderName = providerName
			inKeyValueList = nil
			keyValue := icbs.KeyValue{utils.GetNodeValue(kv.Key, 5), kv.Value}
			inKeyValueList = append(inKeyValueList, keyValue)
		}
        }
	if len(keyValueList) > 0 {
		crdInfo := &CredentialInfo{prevCredName, prevProviderName, inKeyValueList}
		credentialInfoList = append(credentialInfoList, crdInfo)
	}
        return credentialInfoList, nil
}
1. get key-value list
2. create CredentialInfo List & return
package credentialinfomanager
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(credentialName string, providerName string, keyValueList []icbs.KeyValue) error {
	format := "/cloud-info-spaces/credentials/" + credentialName + "/" + providerName
	for _, kv := range keyValueList {
		key := format + "/" + kv.Key
		value := kv.Value
		err := store.Put(key, value)
		if err != nil {
			return err
		}
	}
	return nil
}