mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-22 01:11:32 +00:00
Begin writing debora
This commit is contained in:
2
Makefile
2
Makefile
@ -5,10 +5,12 @@ all: build
|
||||
build: get_deps
|
||||
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/debora github.com/tendermint/tendermint/cmd/debora
|
||||
|
||||
build_race: get_deps
|
||||
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/debora github.com/tendermint/tendermint/cmd/debora
|
||||
|
||||
test: build
|
||||
go test github.com/tendermint/tendermint/...
|
||||
|
@ -34,10 +34,10 @@ func ReadJSON(o interface{}, bytes []byte, err *error) interface{} {
|
||||
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)
|
||||
if rv.Kind() == reflect.Ptr {
|
||||
readReflectJSON(rv.Elem(), rt.Elem(), object, err)
|
||||
|
@ -603,7 +603,7 @@ func readReflectJSON(rv reflect.Value, rt reflect.Type, o interface{}, err *erro
|
||||
// Read length
|
||||
oSlice, ok := o.([]interface{})
|
||||
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
|
||||
}
|
||||
length := len(oSlice)
|
||||
|
@ -16,6 +16,7 @@ import (
|
||||
|
||||
acm "github.com/tendermint/tendermint/account"
|
||||
"github.com/tendermint/tendermint/binary"
|
||||
. "github.com/tendermint/tendermint/cmd/barak/types"
|
||||
. "github.com/tendermint/tendermint/common"
|
||||
pcm "github.com/tendermint/tendermint/process"
|
||||
"github.com/tendermint/tendermint/rpc"
|
||||
@ -169,9 +170,6 @@ type CommandRunProcess struct {
|
||||
|
||||
func (_ CommandRunProcess) TypeByte() byte { return typeByteRunProcess }
|
||||
|
||||
type ResponseRunProcess struct {
|
||||
}
|
||||
|
||||
func RunProcess(wait bool, label string, execPath string, args []string, input string) (*ResponseRunProcess, error) {
|
||||
barak.mtx.Lock()
|
||||
|
||||
@ -204,9 +202,6 @@ type CommandStopProcess struct {
|
||||
|
||||
func (_ CommandStopProcess) TypeByte() byte { return typeByteStopProcess }
|
||||
|
||||
type ResponseStopProcess struct {
|
||||
}
|
||||
|
||||
func StopProcess(label string, kill bool) (*ResponseStopProcess, error) {
|
||||
barak.mtx.Lock()
|
||||
proc := barak.processes[label]
|
||||
@ -226,10 +221,6 @@ type CommandListProcesses struct{}
|
||||
|
||||
func (_ CommandListProcesses) TypeByte() byte { return typeByteListProcesses }
|
||||
|
||||
type ResponseListProcesses struct {
|
||||
Processes []*pcm.Process
|
||||
}
|
||||
|
||||
func ListProcesses() (*ResponseListProcesses, error) {
|
||||
var procs = []*pcm.Process{}
|
||||
barak.mtx.Lock()
|
||||
|
15
cmd/barak/types/responses.go
Normal file
15
cmd/barak/types/responses.go
Normal 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
7
cmd/debora/log.go
Normal 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
16
cmd/debora/main.go
Normal 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
5
common/array.go
Normal file
@ -0,0 +1,5 @@
|
||||
package common
|
||||
|
||||
func Arr(items ...interface{}) []interface{} {
|
||||
return items
|
||||
}
|
47
rpc/client.go
Normal file
47
rpc/client.go
Normal 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
|
||||
}
|
@ -128,7 +128,7 @@ func jsonParamsToArgs(rpcFunc *RPCFunc, params []interface{}) ([]reflect.Value,
|
||||
func _jsonObjectToArg(ty reflect.Type, object interface{}) (reflect.Value, error) {
|
||||
var err error
|
||||
v := reflect.New(ty)
|
||||
binary.ReadJSONFromObject(v.Interface(), object, &err)
|
||||
binary.ReadJSONObject(v.Interface(), object, &err)
|
||||
if err != nil {
|
||||
return v, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user