15
15
# limitations under the License.
16
16
17
17
import argparse
18
- import sys
19
18
20
19
from maas_common import get_auth_ref
21
20
from maas_common import get_keystone_client
22
21
from maas_common import get_nova_client
22
+ from maas_common import metric
23
23
from maas_common import metric_bool
24
24
from maas_common import print_output
25
25
from maas_common import status_err
26
26
from maas_common import status_err_no_exit
27
27
from maas_common import status_ok
28
+ from maas_common import NOVA_SERVICE_TYPE_LIST
28
29
29
30
30
31
def check (auth_ref , args ):
@@ -44,8 +45,13 @@ def check(auth_ref, args):
44
45
# not gathering api status metric here so catch any exception
45
46
except Exception as e :
46
47
metric_bool ('client_success' , False , m_name = 'maas_nova' )
48
+ for nova_service_type in NOVA_SERVICE_TYPE_LIST :
49
+ metric ('%s_status' % nova_service_type ,
50
+ 'string' ,
51
+ '%s cannot reach API' % nova_service_type ,
52
+ m_name = 'maas_nova' )
47
53
status_err_no_exit (str (e ), m_name = 'maas_nova' )
48
- sys . exit ( 0 )
54
+ return
49
55
else :
50
56
metric_bool ('client_success' , True , m_name = 'maas_nova' )
51
57
@@ -61,17 +67,17 @@ def check(auth_ref, args):
61
67
# return all the things
62
68
status_ok (m_name = 'maas_nova' )
63
69
for service in services :
64
- service_is_up = True
70
+ service_is_up = "Yes"
65
71
66
72
if service .status == 'enabled' and service .state == 'down' :
67
- service_is_up = False
73
+ service_is_up = "No"
68
74
69
75
if args .host :
70
76
name = '%s_status' % service .binary
71
77
else :
72
78
name = '%s_on_host_%s_status' % (service .binary , service .host )
73
79
74
- metric_bool (name , service_is_up , m_name = 'maas_nova' )
80
+ metric (name , 'string' , service_is_up , m_name = 'maas_nova' )
75
81
76
82
77
83
def main (args ):
0 commit comments