func runLock(args []string) (exit int) { elc, err := getClient() if err != nil { fmt.Fprintln(os.Stderr, "Error initializing etcd client:", err) return 1 } var mID string if len(args) == 0 { mID = machineid.MachineID("/") if mID == "" { fmt.Fprintln(os.Stderr, "Cannot read machine-id") return 1 } } else { mID = args[0] } l := lock.New(mID, elc) err = l.Lock() if err != nil { fmt.Fprintln(os.Stderr, "Error locking:", err) return 1 } return 0 }
func runReboot(args []string) int { if os.Geteuid() != 0 { fmt.Fprintln(os.Stderr, "Must be root to initiate reboot.") return 1 } elc, _ := lock.NewEtcdLockClient(nil) lgn, err := login1.New() if err != nil { fmt.Fprintln(os.Stderr, "Cannot read machine-id") return 1 } mID := machineid.MachineID("/") if mID == "" { fmt.Fprintln(os.Stderr, "Cannot read machine-id") return 1 } l := lock.New(mID, elc) err = l.Lock() if err != nil { fmt.Fprintln(os.Stderr, "Error locking:", err) return 1 } lgn.Reboot(false) // TODO(philips): Unlock if the reboot fails. return 0 }
func setupLock() (lck *lock.Lock, err error) { elc, err := getClient() if err != nil { return nil, fmt.Errorf("Error initializing etcd client: %v", err) } mID := machineid.MachineID("/") if mID == "" { return nil, fmt.Errorf("Cannot read machine-id") } lck = lock.New(mID, elc) return lck, nil }