GithubHelp home page GithubHelp logo

mashling's Introduction

mashling's People

Contributors

aambhaik avatar akshaygadikar avatar beerinder avatar galois17 avatar ggrigore avatar jeffreybozek avatar jpark800 avatar lakshmimekala avatar mmussett avatar nareshkumarthota avatar pointlander avatar raji-narayanan avatar rameshpolishetti avatar retgits avatar wnichols avatar ykalidin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mashling's Issues

GB based recipe dep maintenance is broken with flogo's new dep mgmt

Flogo CLI upcoming app dependency mgmt is not compatible with mashling layer's recipe mgmt. Thus, an update is needed to keep the behavior in mashling consistent and functioning until the migration to the new Flogo CLI's dep mgmt is ready. Mashling to maintain GB based implementation at this time.

Create app default recipe has Kaffka connection !?

if you run the command:

mashling create testApp

the mashling.json that is created contains a superfluous configuration for a kafka server ... is this for a reason or just wrong ? The sample on the home page ( https://github.com/TIBCOSoftware/mashling ) is what would seem logical. But what is generated is the same as the cli documenation page ( https://github.com/TIBCOSoftware/mashling/tree/master/cli )

It also may be worth removing the duplicate documentation as the instructions are 99% identical...

update mashling publish option names

Update mashling publish option names to be consistent with other newly updated options such as areaId, areaDomain etc
Suggested:
-f --> configFile
-k --> apiKey
-s --> apiSecret
-u --> userName
-p --> password
-h --> publicHost

embeddable mashling

As a Flogo developer who's created a new API

I'd like to easily embed OOTB functionality from Mashling to perform things like rate limiting/authentication/security/circuit breaking

so that I don't need to separate runtime outside of my Flogo application to handle that functionality

See --> https://github.com/TIBCOSoftware/flogo/wiki/Go-App-Api-Proposal

Comment: Should be implemented as an action in Flogo.

Streaming: WebSockets

Two personas here. The goal here is to implement basic WebSockets support via Mashling via WS & WSS (WebSockets over SSL/TLS)

As an API provider, I want to leverage a microgateway to manage inbound connection requests to my WebSockets stream

As an API consumer, I want to leverage a microgateway to open a connection to a WebSockets stream

simple circuit breaker

As Aaron the developer

I want to implement a microgateway to front my microservices to set up a circuit breaker pattern

so that my microservice does not become a choke-point.

requirement!
The circuit breaker should have three distinct states: Closed, Open, and Half-Open

concurrent WebSockets

As an API Provider, I want to control the total number of concurrent connections opened to my WebSockets stream

Show warning message if referenced services are missing in the config file

When a service referenced in Dispatches---->Routes--->Steps is not given in the Services array in V2 Mashling.json , the gateway starts without any prompt to the user that the service is missing.
In the below sample "FlogoRestGetFlow" service is given in the steps to be executed , but its not given in the services section.

{ "mashling_schema": "1.0", "gateway": { "name": "MyProxy", "version": "1.0.0", "description": "This is a simple proxy.", "triggers": [ { "name": "MyProxy", "description": "Animals rest trigger - PUT animal details", "type": "github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger", "settings": { "port": "9096", "basicAuthFile": "${env.BASIC_AUTH_FILE}" }, "handlers": [ { "dispatch": "Pets", "settings": { "autoIdReply": "false", "method": "GET", "path": "/pets/{petId}", "useReplyHandler": "false" } } ] } ], "dispatches": [ { "name": "Pets", "routes": [ { "steps": [ { "service": "FlogoRestGetFlow", "input": { "inputs.pathParams": "${payload.pathParams}" } } ], "responses": [ { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not available." } }, { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body": "${FlogoRestGetFlow.response.outputs.data}" } } ] } ] } ], "services": [] } }

Using Make on Windows machines

Using Make on a Windows machine isn't the best idea from a developer experience point of view. Looking at the contents of the Make file it might be a better idea to use a go file to execute those commands or leverage Mage

Also, the statement that Windows users can execute above commands as is using git-bash terminal. is not entirely correct as the latest versions of Git for Windows no longer ship with Make.

Error with Tracing in V2

Unknown type error: is displayed while using the Tracing mashling jsons.

Run the attached json with the below command:
mashling-gateway-windows-amd64.exe -c rest-gateway-with-tracing.json

{ "mashling_schema": "1.0", "gateway": { "name": "MyProxy", "version": "1.0.0", "description": "This is a simple proxy.", "triggers": [ { "name": "MyProxy", "description": "Animals rest trigger - PUT animal details", "type": "github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger", "settings": { "port": "9096", "tracer": "zipkin", "tracerEndpoint": "http://localhost:9411/api/v1/spans" }, "handlers": [ { "dispatch": "Pets", "settings": { "autoIdReply": "false", "method": "GET", "path": "/pets/{petId}", "useReplyHandler": "false" } } ] } ], "dispatches": [ { "name": "Pets", "routes": [ { "steps": [ { "service": "FlogoRestGetFlow", "input": { "inputs.pathParams": "${payload.pathParams}", "inputs.tracing": "${payload.tracing}" } } ], "responses": [ { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Failure" } }, { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body": "${FlogoRestGetFlow.response.outputs.data}" } } ] } ] } ], "services": [ { "name": "FlogoRestGetFlow", "description": "Make GET calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/Tracing.json" } } ] } }

smart circuit breaker

As Aaron the developer

I want to implement a microgateway to front my microservices to set up a smart circuit breaker pattern

so that failures or outages can be predicted, and proactively addressed via [Load Balancing / DevOps integration / queuing / ??]

Header condition failing for V2 Json using V2 gateway binary.

The "if": "payload.header.name == 'test'", is always failing ,even if we pass header "name" as "test".Below is the json:
{ "mashling_schema": "1.0", "gateway": { "name": "MyProxy", "version": "1.0.0", "description": "This is a simple proxy.", "triggers": [ { "name": "MyProxy", "description": "Animals rest trigger - PUT animal details", "type": "github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger", "settings": { "port": "9096" }, "handlers": [ { "dispatch": "Pets", "settings": { "autoIdReply": "false", "method": "GET", "path": "/pets/{petId}", "useReplyHandler": "false" } }, { "dispatch": "Pets1", "settings": { "autoIdReply": "false", "method": "PUT", "path": "/pets", "useReplyHandler": "false" } } ] } ], "dispatches": [ { "name": "Pets", "routes": [ { "steps": [ { "service": "FlogoRestGetFlow", "input": { "inputs.pathParams": "${payload.pathParams}" } } ], "responses": [ { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not available." } }, { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body": "${FlogoRestGetFlow.response.outputs.data}" } } ] } ] }, { "name": "Pets1", "routes": [ { "if": "payload.content.name == 'SPARROW'", "steps": [ { "service": "birds_put", "input": { "inputs.content": "${payload.content}" } } ], "responses": [ { "if": "JSON.parse(birds_put.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not added." } }, { "if": "JSON.parse(birds_put.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body.pet": "${birds_put.response.outputs.data}" } } ] }, { "if": "payload.header.name == 'test'", "steps": [ { "service": "mammals_put", "input": { "inputs.content": "${payload.content}" } } ], "responses": [ { "if": "JSON.parse(mammals_put.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not added." } }, { "if": "JSON.parse(mammals_put.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body.pet": "${mammals_put.response.outputs.data}" } } ] }, { "steps": [ { "service": "animals_put", "input": { "inputs.content": "${payload.content}" } } ], "responses": [ { "if": "JSON.parse(animals_put.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not added." } }, { "if": "JSON.parse(animals_put.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body.pet": "${animals_put.response.outputs.data}" } } ] } ] } ], "services": [ { "name": "FlogoRestGetFlow", "description": "Make GET calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestGetActivity.json" } }, { "name": "birds_put", "description": "Make PUT calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestPutActivity.json" } }, { "name": "mammals_put", "description": "Make PUT calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestPutActivity.json" } }, { "name": "animals_put", "description": "Make PUT calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestPutActivity.json" } } ] } }

Error in Mashling CLI with latest flogo

Getting the below error while installing Mashling with the latest Flogo version.

Command:
go get github.com/TIBCOSoftware/mashling/...

Error:
$ go get github.com/TIBCOSoftware/mashling/...

github.com/TIBCOSoftware/mashling/cli/app

src\github.com\TIBCOSoftware\mashling\cli\app\api.go:196: cannot use SetupExistingProjectEnv(appDir) (type "github.com/TIBCOSoftware/mashling/cli/env".Project) as type "github.com/TIBCOSoftware/flogo-cli/env".Project in argument to "github.com/TIBCOSoftware/flogo-cli/app".BuildApp:
"github.com/TIBCOSoftware/mashling/cli/env".Project does not implement "github.com/TIBCOSoftware/flogo-cli/env".Project (missing GetAppDir method)
src\github.com\TIBCOSoftware\mashling\cli\app\api.go:367: cannot use SetupExistingProjectEnv(appDir) (type "github.com/TIBCOSoftware/mashling/cli/env".Project) as type "github.com/TIBCOSoftware/flogo-cli/env".Project in argument to "github.com/TIBCOSoftware/flogo-cli/app".BuildApp:
"github.com/TIBCOSoftware/mashling/cli/env".Project does not implement "github.com/TIBCOSoftware/flogo-cli/env".Project (missing GetAppDir method)
src\github.com\TIBCOSoftware\mashling\cli\app\api.go:1223: undefined: "github.com/TIBCOSoftware/flogo-cli/app".ExtractDependencies
src\github.com\TIBCOSoftware\mashling\cli\app\files.go:136: undefined: "github.com/TIBCOSoftware/flogo-cli/app".Dependency

Mashling create myApp fails

$ mashling create myApp
Getting github.com/TIBCOSoftware/flogo-cli/util
Getting github.com/NodePrime/jsonpath
Getting github.com/TIBCOSoftware/flogo-contrib/action/flow
Getting github.com/Sirupsen/logrus
Getting github.com/Shopify/sarama
Getting github.com/TIBCOSoftware/flogo-cli/env
Getting github.com/TIBCOSoftware/flogo-contrib/activity/reply
Getting github.com/TIBCOSoftware/flogo-contrib/activity/log
Getting github.com/TIBCOSoftware/flogo-contrib/activity/rest
Getting github.com/TIBCOSoftware/flogo-contrib/model/simple
Getting github.com/TIBCOSoftware/flogo-contrib/trigger/rest/cors
Getting github.com/TIBCOSoftware/flogo-lib
Getting github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger
Getting github.com/TIBCOSoftware/mashling/lib/conditions
Getting github.com/TIBCOSoftware/mashling/lib/util
Getting github.com/apache/thrift/lib/go/thrift
Getting github.com/davecgh/go-spew/spew
Getting github.com/eapache/go-resiliency/breaker
Getting github.com/eapache/go-xerial-snappy
Getting github.com/eapache/queue
Getting github.com/go-logfmt/logfmt
Getting github.com/gogo/protobuf/io
Getting github.com/gogo/protobuf/proto
Getting github.com/golang/protobuf/proto
Getting github.com/golang/protobuf/protoc-gen-go/descriptor
Getting github.com/golang/protobuf/ptypes
Getting github.com/golang/protobuf/ptypes/timestamp
Getting github.com/golang/snappy
Getting github.com/gorilla/mux
Getting github.com/japm/goScript
Getting github.com/julienschmidt/httprouter
Getting github.com/lightstep/lightstep-tracer-go
Getting github.com/opentracing-contrib/go-observer
Getting github.com/opentracing/basictracer-go
Getting github.com/opentracing/opentracing-go
Getting github.com/openzipkin/zipkin-go-opentracing
Getting github.com/pierrec/lz4
Getting github.com/pierrec/xxHash/xxHash32
Getting github.com/pkg/errors
Getting github.com/rcrowley/go-metrics
Getting golang.org/x/crypto/ssh/terminal
Getting golang.org/x/net/context
Getting golang.org/x/net/http2
Getting golang.org/x/net/idna
Getting golang.org/x/net/internal/timeseries
Getting golang.org/x/net/lex/httplex
Getting golang.org/x/net/trace
Getting golang.org/x/sys/unix
Getting golang.org/x/sys/windows
Getting golang.org/x/text/secure/bidirule
Getting golang.org/x/text/transform
Getting golang.org/x/text/unicode/bidi
Getting golang.org/x/text/unicode/norm
Getting google.golang.org/genproto/googleapis/api/annotations
Getting google.golang.org/genproto/googleapis/rpc/status
Getting google.golang.org/grpc
Getting sourcegraph.com/sourcegraph/appdash
FATAL: command "restore" failed: could not process dependency: go-import metadata not found
FATAL: command "vendor" failed: exit status 1
Generated mashling Artifacts.
Building mashling Artifacts.
/Users/markmussett/src/mashling/myApp
FATAL: command "build" failed: failed to resolve import path "myapp": import "sourcegraph.com/sourcegraph/appdash": not found: stat /Users/markmussett/src/mashling/myApp/src/sourcegraph.com/sourcegraph/appdash: no such file or directory

basic rate limiter

As Aaron the developer

I want to implement my microservice gateway to implement a rate-limit policy

so that I can protect my microservice from overload

Use pathParams in expression

The conditions expression in the tunable gateway example starts with env.. How can I make use of a path parameter in my condition? Basically I want to have one URL /{type}/{name} and use the type parameter to send the request to a specific handler. I tried setting the condition to ${pathParams.type == bla} but that triggers an error saying condition expressions must start with trigger.content, trigger.header or env

Show warning message when config file contains ZERO triggers/handler/steps

The gateway is starting even if the V2 mashling.json has empty Triggers, empty Handlers , No services or Empty steps in the routes in Dispatches.
No warning message is displayed to the user that the Trigger is missing.

Sample V2 Mashling.json:
{ "mashling_schema": "1.0", "gateway": { "name": "MyProxy", "version": "1.0.0", "description": "This is a simple proxy.", "triggers": [], "dispatches": [ { "name": "Pets", "routes": [ { "steps": [], "responses": [ { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not available." } }, { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body": "${FlogoRestGetFlow.response.outputs.data}" } } ] } ] } ] } }

mashling create myApp fails

package references are broken. see the following errors:

Getting golang.org/x/net/idna
fatal: https://go.googlesource.com/crypto/info/refs not valid: is this a git repository?
fatal: https://go.googlesource.com/net/info/refs not valid: is this a git repository?
fatal: https://go.googlesource.com/net/info/refs not valid: is this a git repository?
fatal: https://go.googlesource.com/net/info/refs not valid: is this a git repository?
Getting golang.org/x/net/internal/timeseries
Getting golang.org/x/net/lex/httplex
Getting golang.org/x/net/trace
fatal: https://go.googlesource.com/net/info/refs not valid: is this a git repository?
fatal: https://go.googlesource.com/net/info/refs not valid: is this a git repository?
fatal: https://go.googlesource.com/net/info/refs not valid: is this a git repository?
Getting golang.org/x/sys/unix
fatal: https://go.googlesource.com/sys/info/refs not valid: is this a git repository?

Enhance Mashery Publishing Process

During publish process:

  1. allow for creation of io docs.
  2. allow for creation of test package and plan and key
  3. allow for setting api defaults in external file
  4. generate sample curl calls
  5. provide link to the control center page for the generated api
  6. allows for updating api definition (re-publishing)

Installing mashling cli fails

Installing the Mashling CLI fails:

command

go get github.com/TIBCOSoftware/mashling/...

result

# github.com/TIBCOSoftware/mashling/lib/util
../../go/src/github.com/TIBCOSoftware/mashling/lib/util/util.go:74:18: cannot call non-function element.Name (type string)
# github.com/TIBCOSoftware/flogo-contrib/action/flow/definition
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/definition_ser.go:82:24: cannot call non-function value.Name (type string)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/definition_ser.go:145:30: cannot call non-function value.Name (type string)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/definition_ser.go:176:31: cannot assign 1 values to 2 variables
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/definition_ser.go:176:66: cannot call non-function attr.Type (type data.Type)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/definition_ser.go:199:32: cannot assign 1 values to 2 variables
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/definition_ser.go:199:67: cannot call non-function attr.Type (type data.Type)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/mapper.go:89:43: cannot call non-function attr.Name (type string)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/mapper.go:92:35: cannot call non-function attr.Name (type string)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/mapper.go:92:48: cannot call non-function attr.Type (type data.Type)
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/mapper.go:92:63: cannot call non-function oAttr.Value (type interface {})
../../go/src/github.com/TIBCOSoftware/flogo-contrib/action/flow/definition/mapper.go:92:63: too many errors

Go version: go version go1.9.2 darwin/amd64

Mashling CREATE/BUILD - What is it doing to give these messages ?

At the start of the process it throws some messages that can only come from it looking/processing all the files in my GOPATH ... it seems odd to say the least...

I know exactly why there are errors but why would Mashling to touching ANY of that code ?

PS D:\Data\Documents\Work\Content\Mashling\test3> mashling build
FATAL: command "fetch" failed: loadPackage("D:\Data\Documents\GoWorkSpace\src\github.com\ayh20\GolangTraining\02_Exercises", "github.com\ayh20\GolangTraining\02_Exercises"): found packages main (main.go) and main2
(main2.go) in D:\Data\Documents\GoWorkSpace\src\github.com\ayh20\GolangTraining\02_Exercises
FATAL: command "vendor" failed: exit status 1
Installing dependencies...
D:\Data\Documents\Work\Content\Mashling\test3

Enhance response mapping

Enhance step's response output mapping when returning the output back to the trigger so that the usage of a flogo trigger in mashling results in a consistent behavior.

Error if Put operation is called after Get operation in V2 Gateway.

Steps to reproduce:
1)Start the gateway and hit the Get Service.
2)Hit the Put service. The gateway still searches for Pathparams instead of Content and fails.

Note: The same issue is observed if we hit the Put service first and then the Get service.

Used the below rest-conditional-gateway.json:
{ "mashling_schema": "1.0", "gateway": { "name": "MyProxy", "version": "1.0.0", "description": "This is a simple proxy.", "triggers": [ { "name": "MyProxy", "description": "Animals rest trigger - PUT animal details", "type": "github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger", "settings": { "port": "9096" }, "handlers": [ { "dispatch": "Pets", "settings": { "autoIdReply": "false", "method": "GET", "path": "/pets/{petId}", "useReplyHandler": "false" } }, { "dispatch": "Pets1", "settings": { "autoIdReply": "false", "method": "PUT", "path": "/pets", "useReplyHandler": "false" } } ] } ], "dispatches": [ { "name": "Pets", "routes": [ { "steps": [ { "service": "FlogoRestGetFlow", "input": { "inputs.pathParams": "${payload.pathParams}" } } ], "responses": [ { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not available." } }, { "if": "JSON.parse(FlogoRestGetFlow.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body": "${FlogoRestGetFlow.response.outputs.data}" } } ] } ] }, { "name": "Pets1", "routes": [ { "if": "JSON.parse(payload.content.___copy___).name == 'SPARROW'", "steps": [ { "service": "birds_put", "input": { "inputs.content": "${payload.content}" } } ], "responses": [ { "if": "JSON.parse(birds_put.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not added." } }, { "if": "JSON.parse(birds_put.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body.pet": "${birds_put.response.outputs.data}" } } ] }, { "if": "JSON.parse(payload.content.___copy___).name == 'ELEPHANT' || JSON.parse(payload.content.___copy___).name == 'CAT'", "steps": [ { "service": "mammals_put", "input": { "inputs.content": "${payload.content}" } } ], "responses": [ { "if": "JSON.parse(mammals_put.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not added." } }, { "if": "JSON.parse(mammals_put.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body.pet": "${mammals_put.response.outputs.data}" } } ] }, { "steps": [ { "service": "animals_put", "input": { "inputs.content": "${payload.content}" } } ], "responses": [ { "if": "JSON.parse(animals_put.response.outputs.code) != 200", "error": true, "output": { "code": 403, "format": "json", "body": "Pet is not added." } }, { "if": "JSON.parse(animals_put.response.outputs.code) == 200", "error": false, "output": { "code": 200, "format": "json", "body.pet": "${animals_put.response.outputs.data}" } } ] } ] } ], "services": [ { "name": "FlogoRestGetFlow", "description": "Make GET calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestGetActivity.json" } }, { "name": "birds_put", "description": "Make PUT calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestPutActivity.json" } }, { "name": "mammals_put", "description": "Make PUT calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestPutActivity.json" } }, { "name": "animals_put", "description": "Make PUT calls against a remote HTTP service using a Flogo flow.", "type": "flogoFlow", "settings": { "reference": "github.com/TIBCOSoftware/mashling/lib/flow/RestTriggerToRestPutActivity.json" } } ] } }

FATAL: command "create" failed: open vendor/src/github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger/trigger.json: no such file or directory

Hi,

I am trying to play around with mashling and creating my app.

Basically, here is what I've done:

  1. Brand new Ubuntu server machine
  2. Install Go
  3. Create a folder "go" in my home directory and create an environment variable "GOPATH" pointing to this directory
  4. Installing GB tool
  5. Adding $GOPATH/bin folder to the PATH environment variable
  6. Calling mashling create myApp

And... This does not work... I get this error message:

FATAL: command "create" failed: open vendor/src/github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger/trigger.json: no such file or directory

  • Why is the "vendor" path added to the trigger.json path ?
  • How can this be solved?

I am completely new to GO so maybe I miss something very obvious... Any help appreciated !

Thanks

mashling build is failing due to thrift changes

Below is the output of 'mashling build' for the default recipe:

github.com/TIBCOSoftware/flogo-contrib/activity/log
github.com/TIBCOSoftware/flogo-contrib/activity/reply
# github.com/openzipkin/zipkin-go-opentracing/thrift/gen-go/scribe
scribe.go:286:17: cannot assign 1 values to 2 variables
github.com/TIBCOSoftware/flogo-contrib/activity/rest
github.com/TIBCOSoftware/flogo-contrib/action/flow
FATAL: command "build" failed: exit status 2
Mashling gateway successfully built!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.