コード例 #1
0
ファイル: api.go プロジェクト: cafebazaar/blacksmith
func (ws *webServer) SetMachineVariable(w http.ResponseWriter, r *http.Request) {

	vars := mux.Vars(r)
	macStr := vars["mac"]
	name := vars["name"]
	value := r.FormValue("value")

	var machineInterface datasource.MachineInterface
	if macStr != "" {
		mac, err := net.ParseMAC(macStr)
		if err != nil {
			http.Error(w, `{"error": "Error while parsing the mac"}`, http.StatusInternalServerError)
			return
		}

		machineInterface = ws.ds.MachineInterface(mac)
	}

	var err error

	err = machineInterface.SetVariable(name, value)

	if err != nil {
		http.Error(w, `{"error": "Error while setting value"}`, http.StatusInternalServerError)
		return
	}

	io.WriteString(w, `"OK"`)
}