Ejemplo n.º 1
0
Archivo: cache.go Proyecto: mirmali/ovs
// load a set of columns of a table
func LoadTable(ovs *libovsdb.OvsdbClient, database string, table string, columns []string) *Database {
	db := Database{database, make(map[string]Table)}
	schema, _ := ovs.Schema[database]
	requests := make(map[string]libovsdb.MonitorRequest)

	tableSchema := schema.Tables[table]
	if len(columns) == 0 {
		for column := range tableSchema.Columns {
			columns = append(columns, column)
		}
	}
	requests[table] = libovsdb.MonitorRequest{
		Columns: columns,
		Select: libovsdb.MonitorSelect{
			Initial: true,
			Insert:  true,
			Delete:  true,
			Modify:  true}}

	initial, _ := ovs.Monitor(database, "", requests)
	populateDatabase(initial, &db)
	return &db
}