| 
									
										
										
										
											2014-12-16 19:04:08 +08:00
										 |  |  | package models | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-19 03:26:06 +08:00
										 |  |  | import ( | 
					
						
							|  |  |  | 	"errors" | 
					
						
							|  |  |  | 	"time" | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2014-12-16 19:04:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | const ( | 
					
						
							| 
									
										
										
										
											2014-12-18 22:41:38 +08:00
										 |  |  | 	DS_GRAPHITE      = "graphite" | 
					
						
							|  |  |  | 	DS_INFLUXDB      = "influxdb" | 
					
						
							| 
									
										
										
										
											2015-02-26 01:43:44 +08:00
										 |  |  | 	DS_INFLUXDB_08   = "influxdb_08" | 
					
						
							| 
									
										
										
										
											2015-01-17 17:39:26 +08:00
										 |  |  | 	DS_ES            = "elasticsearch" | 
					
						
							| 
									
										
										
										
											2015-02-16 04:22:20 +08:00
										 |  |  | 	DS_OPENTSDB      = "opentsdb" | 
					
						
							| 
									
										
										
										
											2014-12-18 22:41:38 +08:00
										 |  |  | 	DS_ACCESS_DIRECT = "direct" | 
					
						
							|  |  |  | 	DS_ACCESS_PROXY  = "proxy" | 
					
						
							| 
									
										
										
										
											2014-12-16 19:04:08 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-19 03:26:06 +08:00
										 |  |  | // Typed errors
 | 
					
						
							|  |  |  | var ( | 
					
						
							|  |  |  | 	ErrDataSourceNotFound = errors.New("Data source not found") | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-16 19:04:08 +08:00
										 |  |  | type DsAccess string | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type DataSource struct { | 
					
						
							| 
									
										
										
										
											2015-02-24 03:07:49 +08:00
										 |  |  | 	Id      int64 | 
					
						
							|  |  |  | 	OrgId   int64 | 
					
						
							|  |  |  | 	Version int | 
					
						
							| 
									
										
										
										
											2014-12-16 19:04:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-20 21:15:48 +08:00
										 |  |  | 	Name              string | 
					
						
							| 
									
										
										
										
											2015-02-28 05:29:00 +08:00
										 |  |  | 	Type              string | 
					
						
							| 
									
										
										
										
											2015-01-20 21:15:48 +08:00
										 |  |  | 	Access            DsAccess | 
					
						
							|  |  |  | 	Url               string | 
					
						
							|  |  |  | 	Password          string | 
					
						
							|  |  |  | 	User              string | 
					
						
							|  |  |  | 	Database          string | 
					
						
							|  |  |  | 	BasicAuth         bool | 
					
						
							|  |  |  | 	BasicAuthUser     string | 
					
						
							|  |  |  | 	BasicAuthPassword string | 
					
						
							|  |  |  | 	IsDefault         bool | 
					
						
							| 
									
										
										
										
											2015-03-01 00:27:30 +08:00
										 |  |  | 	JsonData          map[string]interface{} | 
					
						
							| 
									
										
										
										
											2014-12-16 19:04:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	Created time.Time | 
					
						
							|  |  |  | 	Updated time.Time | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-09 18:01:37 +08:00
										 |  |  | // ----------------------
 | 
					
						
							|  |  |  | // COMMANDS
 | 
					
						
							| 
									
										
										
										
											2014-12-19 03:26:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-09 23:36:23 +08:00
										 |  |  | // Also acts as api DTO
 | 
					
						
							| 
									
										
										
										
											2014-12-16 23:45:07 +08:00
										 |  |  | type AddDataSourceCommand struct { | 
					
						
							| 
									
										
										
										
											2015-03-02 16:58:35 +08:00
										 |  |  | 	Name              string                 `json:"name" binding:"Required"` | 
					
						
							|  |  |  | 	Type              string                 `json:"type" binding:"Required"` | 
					
						
							|  |  |  | 	Access            DsAccess               `json:"access" binding:"Required"` | 
					
						
							|  |  |  | 	Url               string                 `json:"url"` | 
					
						
							|  |  |  | 	Password          string                 `json:"password"` | 
					
						
							|  |  |  | 	Database          string                 `json:"database"` | 
					
						
							|  |  |  | 	User              string                 `json:"user"` | 
					
						
							|  |  |  | 	BasicAuth         bool                   `json:"basicAuth"` | 
					
						
							|  |  |  | 	BasicAuthUser     string                 `json:"basicAuthUser"` | 
					
						
							|  |  |  | 	BasicAuthPassword string                 `json:"basicAuthPassword"` | 
					
						
							|  |  |  | 	IsDefault         bool                   `json:"isDefault"` | 
					
						
							|  |  |  | 	JsonData          map[string]interface{} `json:"jsonData"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	OrgId int64 `json:"-"` | 
					
						
							| 
									
										
										
										
											2015-01-09 18:01:37 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	Result *DataSource | 
					
						
							| 
									
										
										
										
											2014-12-16 23:45:07 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2014-12-18 00:32:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-09 23:36:23 +08:00
										 |  |  | // Also acts as api DTO
 | 
					
						
							| 
									
										
										
										
											2014-12-18 00:32:22 +08:00
										 |  |  | type UpdateDataSourceCommand struct { | 
					
						
							| 
									
										
										
										
											2015-03-02 16:58:35 +08:00
										 |  |  | 	Name              string                 `json:"name" binding:"Required"` | 
					
						
							|  |  |  | 	Type              string                 `json:"type" binding:"Required"` | 
					
						
							|  |  |  | 	Access            DsAccess               `json:"access" binding:"Required"` | 
					
						
							|  |  |  | 	Url               string                 `json:"url"` | 
					
						
							|  |  |  | 	Password          string                 `json:"password"` | 
					
						
							|  |  |  | 	User              string                 `json:"user"` | 
					
						
							|  |  |  | 	Database          string                 `json:"database"` | 
					
						
							|  |  |  | 	BasicAuth         bool                   `json:"basicAuth"` | 
					
						
							|  |  |  | 	BasicAuthUser     string                 `json:"basicAuthUser"` | 
					
						
							|  |  |  | 	BasicAuthPassword string                 `json:"basicAuthPassword"` | 
					
						
							|  |  |  | 	IsDefault         bool                   `json:"isDefault"` | 
					
						
							|  |  |  | 	JsonData          map[string]interface{} `json:"jsonData"` | 
					
						
							| 
									
										
										
										
											2015-03-01 00:27:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	OrgId int64 `json:"-"` | 
					
						
							| 
									
										
										
										
											2015-06-01 18:15:49 +08:00
										 |  |  | 	Id    int64 `json:"-"` | 
					
						
							| 
									
										
										
										
											2014-12-18 00:32:22 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type DeleteDataSourceCommand struct { | 
					
						
							| 
									
										
										
										
											2015-02-24 03:07:49 +08:00
										 |  |  | 	Id    int64 | 
					
						
							|  |  |  | 	OrgId int64 | 
					
						
							| 
									
										
										
										
											2014-12-18 00:32:22 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-01-09 18:01:37 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // ---------------------
 | 
					
						
							|  |  |  | // QUERIES
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type GetDataSourcesQuery struct { | 
					
						
							| 
									
										
										
										
											2015-02-24 03:07:49 +08:00
										 |  |  | 	OrgId  int64 | 
					
						
							|  |  |  | 	Result []*DataSource | 
					
						
							| 
									
										
										
										
											2015-01-09 18:01:37 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type GetDataSourceByIdQuery struct { | 
					
						
							| 
									
										
										
										
											2015-02-24 03:07:49 +08:00
										 |  |  | 	Id     int64 | 
					
						
							|  |  |  | 	OrgId  int64 | 
					
						
							|  |  |  | 	Result DataSource | 
					
						
							| 
									
										
										
										
											2015-01-09 18:01:37 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-16 03:10:34 +08:00
										 |  |  | type GetDataSourceByNameQuery struct { | 
					
						
							| 
									
										
										
										
											2015-02-24 03:07:49 +08:00
										 |  |  | 	Name   string | 
					
						
							|  |  |  | 	OrgId  int64 | 
					
						
							|  |  |  | 	Result DataSource | 
					
						
							| 
									
										
										
										
											2015-02-16 03:10:34 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-09 18:01:37 +08:00
										 |  |  | // ---------------------
 | 
					
						
							|  |  |  | // EVENTS
 | 
					
						
							|  |  |  | type DataSourceCreatedEvent struct { | 
					
						
							|  |  |  | } |