Support client certificate on cli and nginx (#2427)

In order to increase the security of auth, it is necessary to add client
certificate on cli and nginx. So user can use wsk -i property set --cert
openwhisk-client-cert.pem --key openwhisk-client-key.pem to pass client
certificate to nginx. If you don't want to use default client certificate
which system provides, you can create your own client certificate instead
of them.
1 file changed
tree: 594ba37ce9323bd6cf6872fe0adad7352f5603ca
  1. Godeps/
  2. tools/
  3. whisk/
  4. wski18n/
  5. .gitignore
  6. .travis.yml
  7. CONTRIBUTING.md
  8. LICENSE.txt
  9. README.md
README.md

Openwhisk Client Go

License Build Status

This project openwhisk-client-go is a Go client library to access Openwhisk API.

Disclaimer

This project is currently on an experimental stage. We periodically synchronize the source code of this repository with the Go whisk folder in OpenWhisk. The framework of test cases is under construction for this repository. Please contribute to the Go whisk folder in OpenWhisk for any Go whisk changes, before we officially announce the separation of OpenWhisk CLI from OpenWhisk.

Usage

import "github.com/apache/incubator-openwhisk-client-go/whisk"

Construct a new whisk client, then use various services to access different parts of the whisk api. For example to get the hello action:

client, _ := whisk.NewClient(http.DefaultClient, nil)
action, resp, err := client.Actions.List("hello")

Some API methods have optional parameters that can be passed. For example, to list the first 30 actions, after the 30th action:

client, _ := whisk.NewClient(http.DefaultClient, nil)

options := &whisk.ActionListOptions{
  Limit: 30,
  Skip: 30,
}

actions, resp, err := client.Actions.List(options)

Whisk can be configured by passing in a *whisk.Config object as the second argument to whisk.New( ... ). For example:

u, _ := url.Parse("https://whisk.stage1.ng.bluemix.net:443/api/v1/")
config := &whisk.Config{
  Namespace: "_",
  AuthKey: "aaaaa-bbbbb-ccccc-ddddd-eeeee",
  BaseURL: u
}
client, err := whisk.Newclient(http.DefaultClient, config)

Example

import (
  "net/http"
  "net/url"

  "github.com/apache/incubator-openwhisk-client-go/whisk"
)

func main() {
  client, err := whisk.NewClient(http.DefaultClient, nil)
  if err != nil {
    fmt.Println(err)
    os.Exit(-1)
  }

  options := &whisk.ActionListOptions{
    Limit: 30,
    Skip: 30,
  }

  actions, resp, err := client.Actions.List(options)
  if err != nil {
    fmt.Println(err)
    os.Exit(-1)
  }

  fmt.Println("Returned with status: ", resp.Status)
  fmt.Println("Returned actions: \n%+v", actions)

}