You can also specify a release (tag), if you do not want the latest code, by using the --branch <tag> flag. For example, you can clone the source code for the tagged 1.1.0 release
You can also pull the code from a fork of the repository. If you intend to become a Contributor to the project, read the section Contributing to the project below on how to setup a fork.
Building using go build
Change into the cloned project directory and use the following command to build all packages:
$ go build -v ./...
or simply build just the whisk commands:
$ go build -v ./whisk
Note: There is no main function in this project as the ./whisk packages are treated together as a client library.
Testing using go test
Open a terminal, change into the project directory and use the following command to run the unit tests:
$ go test -v ./... -tags=unit
You should see all the unit tests passed; if not, please log an issue for us.
Configuration
This Go client library is used to access the OpenWhisk API, so please make sure you have an OpenWhisk service running somewhere
available for you to run this library.
We use a configuration file called wskprop to specify all the parameters necessary for this Go client library to access the OpenWhisk services. Make sure you create or edit the file ~/.wskprops, and add the mandatory parameters APIHOST, APIVERSION, NAMESPACE and AUTH.
The parameter APIHOST is the OpenWhisk API hostname.
If you are using a local quick start standalone, OpenWhisk services APIHOST will look like http://localhost:3233
If you are using IBM cloud functions as your provider, APIHOST will look like <region>.functions.cloud.ibm.com where region can be us-east, us-south or any additional regions
The parameter APIVERSION is the version of OpenWhisk API to be used to access the OpenWhisk resources.
The parameter NAMESPACE is the OpenWhisk namespace used to specify the OpenWhisk resources about to be accessed.
The parameter AUTH is the authentication key used to authenticate the incoming requests to the OpenWhisk services.
For more information regarding the REST API of OpenWhisk, please refer to OpenWhisk REST API.
By default, this Go client library is automatically configured by the configuration file wskprop. The parameters of APIHOST, APIVERSION,
NAMESPACE and AUTH will be used to access the OpenWhisk services.
In addition, it can also be configured by passing in a *whisk.Config object as the second argument to whisk.New( ... ). For example:
If you intend to contribute code, you will want to fork the apache/openwhisk-client-go repository into your github account and use that as the source for your clone.
You can now use git push to push local commit changes to your origin repository and submit pull requests to the upstream project repository.
Optionally, prevent accidental pushes to upstream using this command:
git remote set-url --push upstream no_push
Be sure to Sync your fork before starting any contributions to keep it up-to-date with the upstream repository.
Adding new dependencies
Please use go get to add new dependencies to the go.mod file:
go get -u github.com/project/libname@v1.2.0
Please avoid using commit hashes for referencing non-OpenWhisk libraries.
Updating dependency versions
Although you might be tempted to edit the go.mod file directly, please use the recommended method of using the go get command:
go get -u github.com/project/libname # Using "latest" version
go get -u github.com/project/libname@v1.1.0 # Using tagged version
go get -u github.com/project/libname@aee5cab1c # Using a commit hash
Updating Go version
Although you could edit the version directly in the go.mod file, it is better to use the go edit command:
Openwhisk Client Go
This project
openwhisk-client-gois a Go client library to access the Openwhisk API.Building the project
Prerequisites
The Openwhisk Go Client library requires you to Download and install GoLang onto your local machine.
Make sure you select the package that fits your local environment, and set the GOPATH environment variable.
Download the source code from GitHub
As the code is managed using GitHub, it is easiest to retrieve the code using the
git clonecommand.If you just want to build the code and do not intend to be a Contributor, you can clone the latest code from the Apache repository:
You can also specify a release (tag), if you do not want the latest code, by using the
--branch <tag>flag. For example, you can clone the source code for the tagged 1.1.0 releaseYou can also pull the code from a fork of the repository. If you intend to become a Contributor to the project, read the section Contributing to the project below on how to setup a fork.
Building using
go buildChange into the cloned project directory and use the following command to build all packages:
or simply build just the whisk commands:
Testing using
go testOpen a terminal, change into the project directory and use the following command to run the unit tests:
You should see all the unit tests passed; if not, please log an issue for us.
Configuration
This Go client library is used to access the OpenWhisk API, so please make sure you have an OpenWhisk service running somewhere available for you to run this library.
We use a configuration file called wskprop to specify all the parameters necessary for this Go client library to access the OpenWhisk services. Make sure you create or edit the file ~/.wskprops, and add the mandatory parameters APIHOST, APIVERSION, NAMESPACE and AUTH.
The parameter
APIHOSTis the OpenWhisk API hostname.http://localhost:3233<region>.functions.cloud.ibm.comwhere region can beus-east,us-southor any additional regionsThe parameter
APIVERSIONis the version of OpenWhisk API to be used to access the OpenWhisk resources.The parameter
NAMESPACEis the OpenWhisk namespace used to specify the OpenWhisk resources about to be accessed.The parameter
AUTHis the authentication key used to authenticate the incoming requests to the OpenWhisk services.For more information regarding the REST API of OpenWhisk, please refer to OpenWhisk REST API.
Usage
Construct a new whisk client, then use various services to access different parts of the whisk api. For example to get the
hellopackage actions:Some API methods have optional parameters that can be passed. For example, to list the first 10 actions of the
hellopackage:By default, this Go client library is automatically configured by the configuration file wskprop. The parameters of APIHOST, APIVERSION, NAMESPACE and AUTH will be used to access the OpenWhisk services.
In addition, it can also be configured by passing in a
*whisk.Configobject as the second argument towhisk.New( ... ). For example:Example
You need to have an OpenWhisk service accessible, to run the following example.
Then run it with the
gotool:If the openWhisk service is available and your configuration is correct, you should receive the status and the actions with the above example.
Contributing to the project
Git repository setup
Fork the Apache repository
If you intend to contribute code, you will want to fork the
apache/openwhisk-client-gorepository into your github account and use that as the source for your clone.Clone the repository from your fork:
Add the Apache repository as a remote with the
upstreamalias:You can now use
git pushto push localcommitchanges to youroriginrepository and submit pull requests to theupstreamproject repository.Optionally, prevent accidental pushes to
upstreamusing this command:Adding new dependencies
Please use
go getto add new dependencies to thego.modfile:Updating dependency versions
Although you might be tempted to edit the go.mod file directly, please use the recommended method of using the
go getcommand:Updating Go version
Although you could edit the version directly in the go.mod file, it is better to use the
go editcommand: