mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-21 17:01:35 +00:00
Begin writing debora
This commit is contained in:
2
Makefile
2
Makefile
@ -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/...
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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()
|
||||||
|
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) {
|
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
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user