// Reads the group-file and returns it func getGroup(c *cli.Context) *config.Group { gfile := c.Args().Get(0) gr, err := os.Open(gfile) log.ErrFatal(err) defer gr.Close() groups, err := config.ReadGroupDescToml(gr) log.ErrFatal(err) if groups == nil || groups.Roster == nil || len(groups.Roster.List) == 0 { log.Fatal("No servers found in roster from", gfile) } return groups }
// Config contacts all servers and verifies if it receives a valid // signature from each. // If the roster is empty it will return an error. // If a server doesn't reply in time, it will return an error. func Config(tomlFileName string) error { f, err := os.Open(tomlFileName) log.ErrFatal(err, "Couldn't open group definition file") group, err := config.ReadGroupDescToml(f) log.ErrFatal(err, "Error while reading group definition file", err) if len(group.Roster.List) == 0 { log.ErrFatalf(err, "Empty entity or invalid group defintion in: %s", tomlFileName) } log.Info("Checking the availability and responsiveness of the servers in the group...") return Servers(group) }