コード例 #1
0
ファイル: storage.go プロジェクト: bkeyoumarsi/rexray
func getLunMaps(initiatorName, volumeID string) ([]*xmsv3.Ref, error) {
	if initiatorName == "" {
		return nil, errors.New("Missing initiatorName")
	}

	initiatorGroup, err := goxtremio.GetInitiatorGroup("", initiatorName)
	if err != nil {
		return nil, err
	}

	lunMaps, err := goxtremio.GetLunMaps()
	if err != nil {
		return nil, err
	}

	var refs []*xmsv3.Ref
	for _, ref := range lunMaps {

		idents := strings.Split(ref.Name, "_")
		if len(idents) < 3 {
			continue
		} else if strconv.Itoa(initiatorGroup.Index) == idents[1] && volumeID == idents[0] {
			refs = append(refs, ref)
		}
	}

	return refs, nil
}
コード例 #2
0
ファイル: storage.go プロジェクト: bkeyoumarsi/rexray
func (driver *Driver) getLunMapsSig() (string, error) {
	lunMap, err := goxtremio.GetLunMaps()
	if err != nil {
		return "", err
	}

	var lunMapsNameHref sort.StringSlice
	for _, lunMap := range lunMap {
		lunMapsNameHref = append(lunMapsNameHref, fmt.Sprintf("%s-%s", lunMap.Name, lunMap.Href))
	}
	lunMapsNameHref.Sort()
	return strings.Join(lunMapsNameHref, ";"), err
}