Begin writing debora

This commit is contained in:
Jae Kwon
2015-04-14 04:14:18 -07:00
parent bcfe33f15c
commit 89e05168d5
10 changed files with 97 additions and 14 deletions

View File

@ -5,10 +5,12 @@ all: build
build: get_deps build: get_deps
go build -o build/tendermint github.com/tendermint/tendermint/cmd/tendermint go build -o build/tendermint github.com/tendermint/tendermint/cmd/tendermint
go build -o build/barak github.com/tendermint/tendermint/cmd/barak go build -o build/barak github.com/tendermint/tendermint/cmd/barak
go build -o build/debora github.com/tendermint/tendermint/cmd/debora
build_race: get_deps build_race: get_deps
go build -race -o build/tendermint github.com/tendermint/tendermint/cmd/tendermint go build -race -o build/tendermint github.com/tendermint/tendermint/cmd/tendermint
go build -race -o build/barak github.com/tendermint/tendermint/cmd/barak go build -race -o build/barak github.com/tendermint/tendermint/cmd/barak
go build -race -o build/debora github.com/tendermint/tendermint/cmd/debora
test: build test: build
go test github.com/tendermint/tendermint/... go test github.com/tendermint/tendermint/...

View File

@ -34,10 +34,10 @@ func ReadJSON(o interface{}, bytes []byte, err *error) interface{} {
return o return o
} }
return ReadJSONFromObject(o, object, err) return ReadJSONObject(o, object, err)
} }
func ReadJSONFromObject(o interface{}, object interface{}, err *error) interface{} { func ReadJSONObject(o interface{}, object interface{}, err *error) interface{} {
rv, rt := reflect.ValueOf(o), reflect.TypeOf(o) rv, rt := reflect.ValueOf(o), reflect.TypeOf(o)
if rv.Kind() == reflect.Ptr { if rv.Kind() == reflect.Ptr {
readReflectJSON(rv.Elem(), rt.Elem(), object, err) readReflectJSON(rv.Elem(), rt.Elem(), object, err)

View File

@ -603,7 +603,7 @@ func readReflectJSON(rv reflect.Value, rt reflect.Type, o interface{}, err *erro
// Read length // Read length
oSlice, ok := o.([]interface{}) oSlice, ok := o.([]interface{})
if !ok { if !ok {
*err = errors.New(Fmt("Expected array but got type %v", reflect.TypeOf(o))) *err = errors.New(Fmt("Expected array of %v but got type %v", rt, reflect.TypeOf(o)))
return return
} }
length := len(oSlice) length := len(oSlice)

View File

@ -16,6 +16,7 @@ import (
acm "github.com/tendermint/tendermint/account" acm "github.com/tendermint/tendermint/account"
"github.com/tendermint/tendermint/binary" "github.com/tendermint/tendermint/binary"
. "github.com/tendermint/tendermint/cmd/barak/types"
. "github.com/tendermint/tendermint/common" . "github.com/tendermint/tendermint/common"
pcm "github.com/tendermint/tendermint/process" pcm "github.com/tendermint/tendermint/process"
"github.com/tendermint/tendermint/rpc" "github.com/tendermint/tendermint/rpc"
@ -169,9 +170,6 @@ type CommandRunProcess struct {
func (_ CommandRunProcess) TypeByte() byte { return typeByteRunProcess } func (_ CommandRunProcess) TypeByte() byte { return typeByteRunProcess }
type ResponseRunProcess struct {
}
func RunProcess(wait bool, label string, execPath string, args []string, input string) (*ResponseRunProcess, error) { func RunProcess(wait bool, label string, execPath string, args []string, input string) (*ResponseRunProcess, error) {
barak.mtx.Lock() barak.mtx.Lock()
@ -204,9 +202,6 @@ type CommandStopProcess struct {
func (_ CommandStopProcess) TypeByte() byte { return typeByteStopProcess } func (_ CommandStopProcess) TypeByte() byte { return typeByteStopProcess }
type ResponseStopProcess struct {
}
func StopProcess(label string, kill bool) (*ResponseStopProcess, error) { func StopProcess(label string, kill bool) (*ResponseStopProcess, error) {
barak.mtx.Lock() barak.mtx.Lock()
proc := barak.processes[label] proc := barak.processes[label]
@ -226,10 +221,6 @@ type CommandListProcesses struct{}
func (_ CommandListProcesses) TypeByte() byte { return typeByteListProcesses } func (_ CommandListProcesses) TypeByte() byte { return typeByteListProcesses }
type ResponseListProcesses struct {
Processes []*pcm.Process
}
func ListProcesses() (*ResponseListProcesses, error) { func ListProcesses() (*ResponseListProcesses, error) {
var procs = []*pcm.Process{} var procs = []*pcm.Process{}
barak.mtx.Lock() barak.mtx.Lock()

View File

@ -0,0 +1,15 @@
package types
import (
pcm "github.com/tendermint/tendermint/process"
)
type ResponseRunProcess struct {
}
type ResponseStopProcess struct {
}
type ResponseListProcesses struct {
Processes []*pcm.Process
}

7
cmd/debora/log.go Normal file
View File

@ -0,0 +1,7 @@
package main
import (
"github.com/tendermint/tendermint/logger"
)
var log = logger.New("module", "main")

16
cmd/debora/main.go Normal file
View File

@ -0,0 +1,16 @@
package main
import (
"fmt"
btypes "github.com/tendermint/tendermint/cmd/barak/types"
. "github.com/tendermint/tendermint/common"
"github.com/tendermint/tendermint/rpc"
// ctypes "github.com/tendermint/tendermint/rpc/core/types"
)
func main() {
response := []btypes.ResponseListProcesses{}
response2, err := rpc.Call("http://127.0.0.1:8082", "list_processes", Arr(), &response)
fmt.Printf("%v\n", response)
fmt.Printf("%v (error: %v)\n", response2, err)
}

5
common/array.go Normal file
View File

@ -0,0 +1,5 @@
package common
func Arr(items ...interface{}) []interface{} {
return items
}

47
rpc/client.go Normal file
View File

@ -0,0 +1,47 @@
package rpc
import (
"bytes"
"encoding/json"
"errors"
"io/ioutil"
"net/http"
"github.com/tendermint/tendermint/binary"
)
func Call(remote string, method string, params []interface{}, dest interface{}) (interface{}, error) {
// Make request and get responseBytes
request := RPCRequest{
JSONRPC: "2.0",
Method: method,
Params: params,
Id: 0,
}
requestBytes := binary.JSONBytes(request)
requestBuf := bytes.NewBuffer(requestBytes)
httpResponse, err := http.Post(remote, "text/json", requestBuf)
if err != nil {
return dest, err
}
defer httpResponse.Body.Close()
responseBytes, err := ioutil.ReadAll(httpResponse.Body)
if err != nil {
return dest, err
}
// Parse response into JSONResponse
response := RPCResponse{}
err = json.Unmarshal(responseBytes, &response)
if err != nil {
return dest, err
}
// Parse response into dest
resultJSONObject := response.Result
errorStr := response.Error
if errorStr != "" {
return dest, errors.New(errorStr)
}
dest = binary.ReadJSONObject(dest, resultJSONObject, &err)
return dest, err
}

View File

@ -128,7 +128,7 @@ func jsonParamsToArgs(rpcFunc *RPCFunc, params []interface{}) ([]reflect.Value,
func _jsonObjectToArg(ty reflect.Type, object interface{}) (reflect.Value, error) { func _jsonObjectToArg(ty reflect.Type, object interface{}) (reflect.Value, error) {
var err error var err error
v := reflect.New(ty) v := reflect.New(ty)
binary.ReadJSONFromObject(v.Interface(), object, &err) binary.ReadJSONObject(v.Interface(), object, &err)
if err != nil { if err != nil {
return v, err return v, err
} }