Python SDK Update (#523)

* added first iteration decorator for zrok and example flask server

* update requirements. Add context managing for share and access. Updated pastebin example to better cleanup

* setup and sample tweaks

* small linting updates and example changes

* A few small fixes

* fix long description

* Update the ignore file.
Considering moving location of this.

* Added flake8 linting for builds

* use python 3.10

* move setup python to its own block

* added back in the py name

* update changelogs and add readme

---------

Signed-off-by: Cam Otts <otts.cameron@gmail.com>
Co-authored-by: Kenneth Bingham <kenneth.bingham@netfoundry.io>
This commit is contained in:
Cam Otts
2024-01-17 10:46:19 -06:00
committed by GitHub
parent 16e2cff4c9
commit 3e6ab2b39b
30 changed files with 3424 additions and 83 deletions

View File

@ -0,0 +1,51 @@
package main
import (
"fmt"
"github.com/openziti/zrok/environment"
"github.com/openziti/zrok/sdk/golang/sdk"
"io"
"net/http"
"strings"
)
func helloZrok(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Hello zrok!\n")
}
func main() {
root, err := environment.LoadRoot()
if err != nil {
panic(err)
}
shr, err := sdk.CreateShare(root, &sdk.ShareRequest{
BackendMode: sdk.TcpTunnelBackendMode,
ShareMode: sdk.PublicShareMode,
Frontends: []string{"public"},
Target: "http-server",
})
if err != nil {
panic(err)
}
defer func() {
if err := sdk.DeleteShare(root, shr); err != nil {
panic(err)
}
}()
conn, err := sdk.NewListener(shr.Token, root)
if err != nil {
panic(err)
}
defer conn.Close()
fmt.Println("Access server at the following endpoints: ", strings.Join(shr.FrontendEndpoints, "\n"))
http.HandleFunc("/", helloZrok)
if err := http.Serve(conn, nil); err != nil {
panic(err)
}
}