cubefs

Форк
0
/
valid.go 
98 строк · 2.5 Кб
1
// Copyright 2018 The CubeFS Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12
// implied. See the License for the specific language governing
13
// permissions and limitations under the License.
14

15
package cmd
16

17
import (
18
	"github.com/cubefs/cubefs/proto"
19
	sdk "github.com/cubefs/cubefs/sdk/master"
20
)
21

22
func validVols(client, complete interface{}) []string {
23
	var (
24
		validVols []string
25
		vols      []*proto.VolInfo
26
		err       error
27
	)
28
	clientSdk := client.(*sdk.MasterClient)
29
	completeStr := complete.(string)
30
	if vols, err = clientSdk.AdminAPI().ListVols(completeStr); err != nil {
31
		errout(err)
32
	}
33
	for _, vol := range vols {
34
		validVols = append(validVols, vol.Name)
35
	}
36
	return validVols
37
}
38

39
func validDataNodes(client *sdk.MasterClient, toComplete string) []string {
40
	var (
41
		validDataNodes []string
42
		clusterView    *proto.ClusterView
43

44
		err error
45
	)
46
	if clusterView, err = client.AdminAPI().GetCluster(); err != nil {
47
		errout(err)
48
	}
49
	for _, dn := range clusterView.DataNodes {
50
		validDataNodes = append(validDataNodes, dn.Addr)
51
	}
52
	return validDataNodes
53
}
54

55
func validMetaNodes(client *sdk.MasterClient, toComplete string) []string {
56
	var (
57
		validMetaNodes []string
58
		clusterView    *proto.ClusterView
59
		err            error
60
	)
61
	if clusterView, err = client.AdminAPI().GetCluster(); err != nil {
62
		errout(err)
63
	}
64
	for _, mn := range clusterView.MetaNodes {
65
		validMetaNodes = append(validMetaNodes, mn.Addr)
66
	}
67
	return validMetaNodes
68
}
69

70
func validUsers(client *sdk.MasterClient, toComplete string) []string {
71
	var (
72
		validUsers []string
73
		users      []*proto.UserInfo
74
		err        error
75
	)
76
	if users, err = client.UserAPI().ListUsers(toComplete); err != nil {
77
		errout(err)
78
	}
79
	for _, user := range users {
80
		validUsers = append(validUsers, user.UserID)
81
	}
82
	return validUsers
83
}
84

85
func validZones(client *sdk.MasterClient, toComplete string) []string {
86
	var (
87
		validZones []string
88
		zones      []*proto.ZoneView
89
		err        error
90
	)
91
	if zones, err = client.AdminAPI().ListZones(); err != nil {
92
		errout(err)
93
	}
94
	for _, zone := range zones {
95
		validZones = append(validZones, zone.Name)
96
	}
97
	return validZones
98
}
99

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.