@@ -37,52 +37,18 @@ ImportSrv.prototype.dashboard = function(grafanaURL, options, dashboardName) {
37
37
logger . showError ( failureMessage ) ;
38
38
}
39
39
} ) ;
40
-
41
40
} ;
42
41
43
42
ImportSrv . prototype . dashboards = function ( grafanaURL , options ) {
44
- var successMessage = 'Dashboards import successful.' ;
45
- var failureMessage = 'Dashboards import failed.' ;
46
43
var output = '' ;
47
44
var failed = 0 ;
48
45
var success = 0 ;
49
- var method = 'GET' ;
46
+
50
47
options . url = createURL ( grafanaURL , 'dashboards' ) ;
51
48
options . json = true ;
49
+
52
50
request . get ( options , function saveHandler ( error , response , body ) {
53
- var dashList = [ ] ;
54
- if ( ! error && response . statusCode === 200 ) {
55
- _ . each ( body , function ( dashboard ) {
56
- dashList . push ( dashboard . uri . substring ( 3 ) ) ; //removing db/
57
- } ) ;
58
- logger . justShow ( 'Importing ' + dashList . length + ' dashboards:' ) ;
59
- _ . each ( dashList , function ( dash ) {
60
- var url = createURL ( grafanaURL , 'dashboard' , dash ) ;
61
- url = sanitizeUrl ( url , options . auth ) ;
62
- var response = syncReq ( method , url , { headers : options . headers } ) ;
63
- try {
64
- if ( response . statusCode === 200 ) {
65
- var dashResponse = JSON . parse ( response . getBody ( 'utf8' ) ) ;
66
- components . dashboards . saveDashboard ( dash , dashResponse . dashboard , false ) ;
67
- logger . showResult ( dash + ' imported successfully.' ) ;
68
- success ++ ;
69
- }
70
- } catch ( error ) {
71
- logger . showResult ( dash + ' import failed.' ) ;
72
- failed ++ ;
73
- throw new Error ( ) ;
74
- }
75
- } ) ;
76
- if ( success > 0 ) {
77
- logger . showResult ( success + ' dashboards imported successfully.' ) ;
78
- }
79
- if ( failed > 0 ) {
80
- logger . showError ( failed + ' dashboards import failed.' ) ;
81
- process . exit ( 1 ) ;
82
- } else {
83
- process . exit ( 0 ) ;
84
- }
85
- } else {
51
+ if ( error || response . statusCode !== 200 ) {
86
52
output += 'Grafana API response status code = ' + response . statusCode ;
87
53
if ( error === null ) {
88
54
output += '\nNo error body from Grafana API.' ;
@@ -91,14 +57,56 @@ ImportSrv.prototype.dashboards = function(grafanaURL, options) {
91
57
output += '\n' + error ;
92
58
}
93
59
logger . showOutput ( output ) ;
94
- logger . showError ( failureMessage ) ;
60
+ logger . showError ( 'Error getting list of dashboards from Grafana' ) ;
61
+ process . exit ( 1 ) ;
62
+ }
63
+
64
+ var dashList = [ ] ;
65
+ _ . forEach ( body , function ( dashboard ) {
66
+ dashList . push ( dashboard . uri . substring ( 3 ) ) ; //removing db/
67
+ } ) ;
68
+ logger . justShow ( 'Importing ' + dashList . length + ' dashboards:' ) ;
69
+
70
+ var headers = options . headers || { } ;
71
+ if ( options . auth . bearer ) {
72
+ headers . Authorization = 'Bearer ' + options . auth . bearer ;
73
+ }
74
+
75
+ // Here we try importing a dashboard
76
+ _ . forEach ( dashList , function ( dashboard ) {
77
+ var url = createURL ( grafanaURL , 'dashboard' , dashboard ) ;
78
+ url = sanitizeUrl ( url , options . auth ) ;
79
+ try {
80
+ var response = syncReq ( 'GET' , url , { headers : headers } ) ;
81
+ if ( response . statusCode !== 200 ) {
82
+ logger . showError ( 'Dashboard ' + dashboard + ' import failed: ' + response . getBody ( 'utf8' ) ) ;
83
+ failed ++ ;
84
+ } else {
85
+ var dashResponse = JSON . parse ( response . getBody ( 'utf8' ) ) ;
86
+ components . dashboards . saveDashboard ( dashboard , dashResponse . dashboard , false ) ;
87
+ logger . showResult ( 'Dashboard ' + dashboard + ' imported successfully.' ) ;
88
+ success ++ ;
89
+ }
90
+ } catch ( error ) {
91
+ logger . showError ( 'Dashboard ' + dashboard + ' import failed: ' + error ) ;
92
+ failed ++ ;
93
+ }
94
+ } ) ;
95
+
96
+ if ( success > 0 ) {
97
+ logger . showResult ( success + ' dashboards imported successfully.' ) ;
98
+ }
99
+
100
+ if ( failed > 0 ) {
101
+ logger . showError ( failed + ' dashboards import failed.' ) ;
102
+ process . exit ( 1 ) ;
95
103
}
96
104
} ) ;
97
105
} ;
98
106
99
107
ImportSrv . prototype . org = function ( grafanaURL , options , orgName ) {
100
108
var successMessage = 'Org ' + orgName + ' import successful.' ;
101
- var failureMessage = 'Org ' + orgName + ' import failed.' ;
109
+ var failureMessage = 'Org ' + orgName + ' import failed.' ;
102
110
var output = '' ;
103
111
options . url = createURL ( grafanaURL , 'org' , orgName ) ;
104
112
options . json = true ;
@@ -123,7 +131,7 @@ ImportSrv.prototype.org = function(grafanaURL, options, orgName) {
123
131
124
132
ImportSrv . prototype . orgs = function ( grafanaURL , options ) {
125
133
var successMessage = 'Orgs import successful.' ;
126
- var failureMessage = 'Orgs import failed.' ;
134
+ var failureMessage = 'Orgs import failed.' ;
127
135
var output = '' ;
128
136
options . url = createURL ( grafanaURL , 'orgs' ) ;
129
137
options . json = true ;
@@ -185,7 +193,7 @@ ImportSrv.prototype.datasource = function(grafanaURL, options, datasourceName) {
185
193
186
194
ImportSrv . prototype . datasources = function ( grafanaURL , options ) {
187
195
var successMessage = 'Datasources import successful.' ;
188
- var failureMessage = 'Datasources import failed.' ;
196
+ var failureMessage = 'Datasources import failed.' ;
189
197
var output = '' ;
190
198
options . url = createURL ( grafanaURL , 'datasources' ) ;
191
199
options . json = true ;
0 commit comments