MCPcopy Index your code
hub / github.com/cloudflare/cloudflared / CreateTunnel

Method CreateTunnel

cfapi/tunnel.go:92–122  ·  view source on GitHub ↗
(name string, tunnelSecret []byte)

Source from the content-addressed store, hash-verified

90}
91
92func (r *RESTClient) CreateTunnel(name string, tunnelSecret []byte) (*TunnelWithToken, error) {
93 if name == "" {
94 return nil, errors.New("tunnel name required")
95 }
96 if _, err := uuid.Parse(name); err == nil {
97 return nil, errors.New("you cannot use UUIDs as tunnel names")
98 }
99 body := &newTunnel{
100 Name: name,
101 TunnelSecret: tunnelSecret,
102 }
103
104 resp, err := r.sendRequest("POST", r.baseEndpoints.accountLevel, body)
105 if err != nil {
106 return nil, errors.Wrap(err, "REST request failed")
107 }
108 defer resp.Body.Close()
109
110 switch resp.StatusCode {
111 case http.StatusOK:
112 var tunnel TunnelWithToken
113 if serdeErr := parseResponse(resp.Body, &tunnel); serdeErr != nil {
114 return nil, serdeErr
115 }
116 return &tunnel, nil
117 case http.StatusConflict:
118 return nil, ErrTunnelNameConflict
119 }
120
121 return nil, r.statusCodeToError("create tunnel", resp)
122}
123
124func (r *RESTClient) GetTunnel(tunnelID uuid.UUID) (*Tunnel, error) {
125 endpoint := r.baseEndpoints.accountLevel

Callers

nothing calls this directly

Calls 4

sendRequestMethod · 0.95
statusCodeToErrorMethod · 0.95
parseResponseFunction · 0.85
CloseMethod · 0.65

Tested by

no test coverage detected