Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
f8e06483
Commit
f8e06483
authored
Apr 25, 2024
by
Brad Davidson
Committed by
Brad Davidson
May 28, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Convert remaining http handlers over to use util.SendError
Signed-off-by:
Brad Davidson
<
brad.davidson@rancher.com
>
parent
ff679fb3
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
30 additions
and
58 deletions
+30
-58
router.go
pkg/cluster/router.go
+7
-5
tunnel.go
pkg/daemons/control/tunnel.go
+1
-2
etcd.go
pkg/etcd/etcd.go
+2
-2
cert.go
pkg/server/cert.go
+2
-2
router.go
pkg/server/router.go
+10
-31
secrets-encrypt.go
pkg/server/secrets-encrypt.go
+2
-11
token.go
pkg/server/token.go
+3
-4
bootstrap.go
pkg/spegel/bootstrap.go
+2
-1
apierrors.go
pkg/util/apierrors.go
+1
-0
No files found.
pkg/cluster/router.go
View file @
f8e06483
package
cluster
package
cluster
import
(
import
(
"fmt"
"net/http"
"net/http"
"github.com/k3s-io/k3s/pkg/util"
)
)
// getHandler returns a basic request handler that processes requests through
// getHandler returns a basic request handler that processes requests through
...
@@ -19,11 +22,10 @@ func (c *Cluster) getHandler(handler http.Handler) (http.Handler, error) {
...
@@ -19,11 +22,10 @@ func (c *Cluster) getHandler(handler http.Handler) (http.Handler, error) {
// if no additional handlers are available.
// if no additional handlers are available.
func
(
c
*
Cluster
)
router
()
http
.
Handler
{
func
(
c
*
Cluster
)
router
()
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
c
.
config
.
Runtime
.
Handler
==
nil
{
if
c
.
config
.
Runtime
.
Handler
!=
nil
{
http
.
Error
(
rw
,
"starting"
,
http
.
StatusServiceUnavailable
)
c
.
config
.
Runtime
.
Handler
.
ServeHTTP
(
rw
,
req
)
return
}
else
{
util
.
SendError
(
fmt
.
Errorf
(
"starting"
),
rw
,
req
,
http
.
StatusServiceUnavailable
)
}
}
c
.
config
.
Runtime
.
Handler
.
ServeHTTP
(
rw
,
req
)
})
})
}
}
pkg/daemons/control/tunnel.go
View file @
f8e06483
...
@@ -29,8 +29,7 @@ var defaultDialer = net.Dialer{}
...
@@ -29,8 +29,7 @@ var defaultDialer = net.Dialer{}
func
loggingErrorWriter
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
,
code
int
,
err
error
)
{
func
loggingErrorWriter
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
,
code
int
,
err
error
)
{
logrus
.
Debugf
(
"Tunnel server error: %d %v"
,
code
,
err
)
logrus
.
Debugf
(
"Tunnel server error: %d %v"
,
code
,
err
)
rw
.
WriteHeader
(
code
)
util
.
SendError
(
err
,
rw
,
req
,
code
)
rw
.
Write
([]
byte
(
err
.
Error
()))
}
}
func
setupTunnel
(
ctx
context
.
Context
,
cfg
*
config
.
Control
)
(
http
.
Handler
,
error
)
{
func
setupTunnel
(
ctx
context
.
Context
,
cfg
*
config
.
Control
)
(
http
.
Handler
,
error
)
{
...
...
pkg/etcd/etcd.go
View file @
f8e06483
...
@@ -761,7 +761,7 @@ func getEndpoints(control *config.Control) []string {
...
@@ -761,7 +761,7 @@ func getEndpoints(control *config.Control) []string {
// for use by etcd.
// for use by etcd.
func
toTLSConfig
(
runtime
*
config
.
ControlRuntime
)
(
*
tls
.
Config
,
error
)
{
func
toTLSConfig
(
runtime
*
config
.
ControlRuntime
)
(
*
tls
.
Config
,
error
)
{
if
runtime
.
ClientETCDCert
==
""
||
runtime
.
ClientETCDKey
==
""
||
runtime
.
ETCDServerCA
==
""
{
if
runtime
.
ClientETCDCert
==
""
||
runtime
.
ClientETCDKey
==
""
||
runtime
.
ETCDServerCA
==
""
{
return
nil
,
errors
.
New
(
"runtime is not ready yet"
)
return
nil
,
util
.
ErrCoreNotReady
}
}
clientCert
,
err
:=
tls
.
LoadX509KeyPair
(
runtime
.
ClientETCDCert
,
runtime
.
ClientETCDKey
)
clientCert
,
err
:=
tls
.
LoadX509KeyPair
(
runtime
.
ClientETCDCert
,
runtime
.
ClientETCDKey
)
...
@@ -1177,7 +1177,7 @@ func (e *ETCD) manageLearners(ctx context.Context) {
...
@@ -1177,7 +1177,7 @@ func (e *ETCD) manageLearners(ctx context.Context) {
func
(
e
*
ETCD
)
getETCDNodes
()
([]
*
v1
.
Node
,
error
)
{
func
(
e
*
ETCD
)
getETCDNodes
()
([]
*
v1
.
Node
,
error
)
{
if
e
.
config
.
Runtime
.
Core
==
nil
{
if
e
.
config
.
Runtime
.
Core
==
nil
{
return
nil
,
errors
.
New
(
"runtime core not ready"
)
return
nil
,
util
.
ErrCoreNotReady
}
}
nodes
:=
e
.
config
.
Runtime
.
Core
.
Core
()
.
V1
()
.
Node
()
nodes
:=
e
.
config
.
Runtime
.
Core
.
Core
()
.
V1
()
.
Node
()
...
...
pkg/server/cert.go
View file @
f8e06483
...
@@ -30,8 +30,8 @@ import (
...
@@ -30,8 +30,8 @@ import (
func
caCertReplaceHandler
(
server
*
config
.
Control
)
http
.
HandlerFunc
{
func
caCertReplaceHandler
(
server
*
config
.
Control
)
http
.
HandlerFunc
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
||
req
.
Method
!=
http
.
MethodPut
{
if
req
.
Method
!=
http
.
MethodPut
{
resp
.
WriteHeader
(
http
.
StatusNotFoun
d
)
util
.
SendError
(
fmt
.
Errorf
(
"method not allowed"
),
resp
,
req
,
http
.
StatusMethodNotAllowe
d
)
return
return
}
}
force
,
_
:=
strconv
.
ParseBool
(
req
.
FormValue
(
"force"
))
force
,
_
:=
strconv
.
ParseBool
(
req
.
FormValue
(
"force"
))
...
...
pkg/server/router.go
View file @
f8e06483
...
@@ -200,11 +200,6 @@ func getCACertAndKeys(caCertFile, caKeyFile, signingKeyFile string) ([]*x509.Cer
...
@@ -200,11 +200,6 @@ func getCACertAndKeys(caCertFile, caKeyFile, signingKeyFile string) ([]*x509.Cer
func
servingKubeletCert
(
server
*
config
.
Control
,
keyFile
string
,
auth
nodePassBootstrapper
)
http
.
Handler
{
func
servingKubeletCert
(
server
*
config
.
Control
,
keyFile
string
,
auth
nodePassBootstrapper
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
{
resp
.
WriteHeader
(
http
.
StatusNotFound
)
return
}
nodeName
,
errCode
,
err
:=
auth
(
req
)
nodeName
,
errCode
,
err
:=
auth
(
req
)
if
err
!=
nil
{
if
err
!=
nil
{
util
.
SendError
(
err
,
resp
,
req
,
errCode
)
util
.
SendError
(
err
,
resp
,
req
,
errCode
)
...
@@ -256,11 +251,6 @@ func servingKubeletCert(server *config.Control, keyFile string, auth nodePassBoo
...
@@ -256,11 +251,6 @@ func servingKubeletCert(server *config.Control, keyFile string, auth nodePassBoo
func
clientKubeletCert
(
server
*
config
.
Control
,
keyFile
string
,
auth
nodePassBootstrapper
)
http
.
Handler
{
func
clientKubeletCert
(
server
*
config
.
Control
,
keyFile
string
,
auth
nodePassBootstrapper
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
{
resp
.
WriteHeader
(
http
.
StatusNotFound
)
return
}
nodeName
,
errCode
,
err
:=
auth
(
req
)
nodeName
,
errCode
,
err
:=
auth
(
req
)
if
err
!=
nil
{
if
err
!=
nil
{
util
.
SendError
(
err
,
resp
,
req
,
errCode
)
util
.
SendError
(
err
,
resp
,
req
,
errCode
)
...
@@ -296,10 +286,6 @@ func clientKubeletCert(server *config.Control, keyFile string, auth nodePassBoot
...
@@ -296,10 +286,6 @@ func clientKubeletCert(server *config.Control, keyFile string, auth nodePassBoot
func
fileHandler
(
fileName
...
string
)
http
.
Handler
{
func
fileHandler
(
fileName
...
string
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
{
resp
.
WriteHeader
(
http
.
StatusNotFound
)
return
}
resp
.
Header
()
.
Set
(
"Content-Type"
,
"text/plain"
)
resp
.
Header
()
.
Set
(
"Content-Type"
,
"text/plain"
)
if
len
(
fileName
)
==
1
{
if
len
(
fileName
)
==
1
{
...
@@ -310,8 +296,7 @@ func fileHandler(fileName ...string) http.Handler {
...
@@ -310,8 +296,7 @@ func fileHandler(fileName ...string) http.Handler {
for
_
,
f
:=
range
fileName
{
for
_
,
f
:=
range
fileName
{
bytes
,
err
:=
os
.
ReadFile
(
f
)
bytes
,
err
:=
os
.
ReadFile
(
f
)
if
err
!=
nil
{
if
err
!=
nil
{
logrus
.
Errorf
(
"Failed to read %s: %v"
,
f
,
err
)
util
.
SendError
(
errors
.
Wrapf
(
err
,
"failed to read %s"
,
f
),
resp
,
req
,
http
.
StatusInternalServerError
)
resp
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
return
}
}
resp
.
Write
(
bytes
)
resp
.
Write
(
bytes
)
...
@@ -336,18 +321,13 @@ func apiserversHandler(server *config.Control) http.Handler {
...
@@ -336,18 +321,13 @@ func apiserversHandler(server *config.Control) http.Handler {
resp
.
Header
()
.
Set
(
"content-type"
,
"application/json"
)
resp
.
Header
()
.
Set
(
"content-type"
,
"application/json"
)
if
err
:=
json
.
NewEncoder
(
resp
)
.
Encode
(
endpoints
);
err
!=
nil
{
if
err
:=
json
.
NewEncoder
(
resp
)
.
Encode
(
endpoints
);
err
!=
nil
{
logrus
.
Errorf
(
"Failed to encode apiserver endpoints: %v"
,
err
)
util
.
SendError
(
errors
.
Wrap
(
err
,
"failed to encode apiserver endpoints"
),
resp
,
req
,
http
.
StatusInternalServerError
)
resp
.
WriteHeader
(
http
.
StatusInternalServerError
)
}
}
})
})
}
}
func
configHandler
(
server
*
config
.
Control
,
cfg
*
cmds
.
Server
)
http
.
Handler
{
func
configHandler
(
server
*
config
.
Control
,
cfg
*
cmds
.
Server
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
{
resp
.
WriteHeader
(
http
.
StatusNotFound
)
return
}
// Startup hooks may read and modify cmds.Server in a goroutine, but as these are copied into
// Startup hooks may read and modify cmds.Server in a goroutine, but as these are copied into
// config.Control before the startup hooks are called, any modifications need to be sync'd back
// config.Control before the startup hooks are called, any modifications need to be sync'd back
// into the struct before it is sent to agents.
// into the struct before it is sent to agents.
...
@@ -355,23 +335,21 @@ func configHandler(server *config.Control, cfg *cmds.Server) http.Handler {
...
@@ -355,23 +335,21 @@ func configHandler(server *config.Control, cfg *cmds.Server) http.Handler {
server
.
DisableKubeProxy
=
cfg
.
DisableKubeProxy
server
.
DisableKubeProxy
=
cfg
.
DisableKubeProxy
resp
.
Header
()
.
Set
(
"content-type"
,
"application/json"
)
resp
.
Header
()
.
Set
(
"content-type"
,
"application/json"
)
if
err
:=
json
.
NewEncoder
(
resp
)
.
Encode
(
server
);
err
!=
nil
{
if
err
:=
json
.
NewEncoder
(
resp
)
.
Encode
(
server
);
err
!=
nil
{
logrus
.
Errorf
(
"Failed to encode agent config: %v"
,
err
)
util
.
SendError
(
errors
.
Wrap
(
err
,
"failed to encode agent config"
),
resp
,
req
,
http
.
StatusInternalServerError
)
resp
.
WriteHeader
(
http
.
StatusInternalServerError
)
}
}
})
})
}
}
func
readyzHandler
(
server
*
config
.
Control
)
http
.
Handler
{
func
readyzHandler
(
server
*
config
.
Control
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
code
:=
http
.
StatusOK
data
:=
[]
byte
(
"ok"
)
if
server
.
Runtime
.
Core
==
nil
{
if
server
.
Runtime
.
Core
==
nil
{
code
=
http
.
StatusInternalServerError
util
.
SendError
(
util
.
ErrCoreNotReady
,
resp
,
req
,
http
.
StatusServiceUnavailable
)
data
=
[]
byte
(
"runtime core not ready"
)
return
}
}
resp
.
WriteHeader
(
code
)
data
:=
[]
byte
(
"ok"
)
resp
.
WriteHeader
(
http
.
StatusOK
)
resp
.
Header
()
.
Set
(
"Content-Type"
,
"text/plain"
)
resp
.
Header
()
.
Set
(
"Content-Type"
,
"text/plain"
)
resp
.
Header
()
.
Set
(
"Content-
l
ength"
,
strconv
.
Itoa
(
len
(
data
)))
resp
.
Header
()
.
Set
(
"Content-
L
ength"
,
strconv
.
Itoa
(
len
(
data
)))
resp
.
Write
(
data
)
resp
.
Write
(
data
)
})
})
}
}
...
@@ -379,6 +357,7 @@ func readyzHandler(server *config.Control) http.Handler {
...
@@ -379,6 +357,7 @@ func readyzHandler(server *config.Control) http.Handler {
func
ping
()
http
.
Handler
{
func
ping
()
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
data
:=
[]
byte
(
"pong"
)
data
:=
[]
byte
(
"pong"
)
resp
.
WriteHeader
(
http
.
StatusOK
)
resp
.
Header
()
.
Set
(
"Content-Type"
,
"text/plain"
)
resp
.
Header
()
.
Set
(
"Content-Type"
,
"text/plain"
)
resp
.
Header
()
.
Set
(
"Content-Length"
,
strconv
.
Itoa
(
len
(
data
)))
resp
.
Header
()
.
Set
(
"Content-Length"
,
strconv
.
Itoa
(
len
(
data
)))
resp
.
Write
(
data
)
resp
.
Write
(
data
)
...
@@ -432,7 +411,7 @@ func passwordBootstrap(ctx context.Context, config *Config) nodePassBootstrapper
...
@@ -432,7 +411,7 @@ func passwordBootstrap(ctx context.Context, config *Config) nodePassBootstrapper
return
verifyRemotePassword
(
ctx
,
config
,
&
mu
,
deferredNodes
,
node
)
return
verifyRemotePassword
(
ctx
,
config
,
&
mu
,
deferredNodes
,
node
)
}
else
{
}
else
{
// Otherwise, reject the request until the core is ready.
// Otherwise, reject the request until the core is ready.
return
""
,
http
.
StatusServiceUnavailable
,
errors
.
New
(
"runtime core not ready"
)
return
""
,
http
.
StatusServiceUnavailable
,
util
.
ErrCoreNotReady
}
}
}
}
...
...
pkg/server/secrets-encrypt.go
View file @
f8e06483
...
@@ -56,10 +56,6 @@ func getEncryptionRequest(req *http.Request) (*EncryptionRequest, error) {
...
@@ -56,10 +56,6 @@ func getEncryptionRequest(req *http.Request) (*EncryptionRequest, error) {
func
encryptionStatusHandler
(
server
*
config
.
Control
)
http
.
Handler
{
func
encryptionStatusHandler
(
server
*
config
.
Control
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
{
resp
.
WriteHeader
(
http
.
StatusNotFound
)
return
}
status
,
err
:=
encryptionStatus
(
server
)
status
,
err
:=
encryptionStatus
(
server
)
if
err
!=
nil
{
if
err
!=
nil
{
util
.
SendErrorWithID
(
err
,
"secret-encrypt"
,
resp
,
req
,
http
.
StatusInternalServerError
)
util
.
SendErrorWithID
(
err
,
"secret-encrypt"
,
resp
,
req
,
http
.
StatusInternalServerError
)
...
@@ -160,18 +156,13 @@ func encryptionEnable(ctx context.Context, server *config.Control, enable bool)
...
@@ -160,18 +156,13 @@ func encryptionEnable(ctx context.Context, server *config.Control, enable bool)
func
encryptionConfigHandler
(
ctx
context
.
Context
,
server
*
config
.
Control
)
http
.
Handler
{
func
encryptionConfigHandler
(
ctx
context
.
Context
,
server
*
config
.
Control
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
{
resp
.
WriteHeader
(
http
.
StatusNotFound
)
return
}
if
req
.
Method
!=
http
.
MethodPut
{
if
req
.
Method
!=
http
.
MethodPut
{
resp
.
WriteHeader
(
http
.
StatusBadRequest
)
util
.
SendError
(
fmt
.
Errorf
(
"method not allowed"
),
resp
,
req
,
http
.
StatusMethodNotAllowed
)
return
return
}
}
encryptReq
,
err
:=
getEncryptionRequest
(
req
)
encryptReq
,
err
:=
getEncryptionRequest
(
req
)
if
err
!=
nil
{
if
err
!=
nil
{
resp
.
WriteHeader
(
http
.
StatusBadRequest
)
util
.
SendError
(
err
,
resp
,
req
,
http
.
StatusBadRequest
)
resp
.
Write
([]
byte
(
err
.
Error
()))
return
return
}
}
if
encryptReq
.
Stage
!=
nil
{
if
encryptReq
.
Stage
!=
nil
{
...
...
pkg/server/token.go
View file @
f8e06483
...
@@ -32,16 +32,15 @@ func getServerTokenRequest(req *http.Request) (TokenRotateRequest, error) {
...
@@ -32,16 +32,15 @@ func getServerTokenRequest(req *http.Request) (TokenRotateRequest, error) {
func
tokenRequestHandler
(
ctx
context
.
Context
,
server
*
config
.
Control
)
http
.
Handler
{
func
tokenRequestHandler
(
ctx
context
.
Context
,
server
*
config
.
Control
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
resp
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
if
req
.
TLS
==
nil
||
req
.
Method
!=
http
.
MethodPut
{
if
req
.
Method
!=
http
.
MethodPut
{
resp
.
WriteHeader
(
http
.
StatusBadRequest
)
util
.
SendError
(
fmt
.
Errorf
(
"method not allowed"
),
resp
,
req
,
http
.
StatusMethodNotAllowed
)
return
return
}
}
var
err
error
var
err
error
sTokenReq
,
err
:=
getServerTokenRequest
(
req
)
sTokenReq
,
err
:=
getServerTokenRequest
(
req
)
logrus
.
Debug
(
"Received token request"
)
logrus
.
Debug
(
"Received token request"
)
if
err
!=
nil
{
if
err
!=
nil
{
resp
.
WriteHeader
(
http
.
StatusBadRequest
)
util
.
SendError
(
err
,
resp
,
req
,
http
.
StatusBadRequest
)
resp
.
Write
([]
byte
(
err
.
Error
()))
return
return
}
}
if
err
=
tokenRotate
(
ctx
,
server
,
*
sTokenReq
.
NewToken
);
err
!=
nil
{
if
err
=
tokenRotate
(
ctx
,
server
,
*
sTokenReq
.
NewToken
);
err
!=
nil
{
...
...
pkg/spegel/bootstrap.go
View file @
f8e06483
...
@@ -10,6 +10,7 @@ import (
...
@@ -10,6 +10,7 @@ import (
"github.com/k3s-io/k3s/pkg/clientaccess"
"github.com/k3s-io/k3s/pkg/clientaccess"
"github.com/k3s-io/k3s/pkg/daemons/config"
"github.com/k3s-io/k3s/pkg/daemons/config"
"github.com/k3s-io/k3s/pkg/util"
"github.com/k3s-io/k3s/pkg/version"
"github.com/k3s-io/k3s/pkg/version"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/pkg/errors"
"github.com/pkg/errors"
...
@@ -133,7 +134,7 @@ func (s *serverBootstrapper) Run(_ context.Context, id string) error {
...
@@ -133,7 +134,7 @@ func (s *serverBootstrapper) Run(_ context.Context, id string) error {
func
(
s
*
serverBootstrapper
)
Get
()
(
addrInfo
*
peer
.
AddrInfo
,
err
error
)
{
func
(
s
*
serverBootstrapper
)
Get
()
(
addrInfo
*
peer
.
AddrInfo
,
err
error
)
{
if
s
.
controlConfig
.
Runtime
.
Core
==
nil
{
if
s
.
controlConfig
.
Runtime
.
Core
==
nil
{
return
nil
,
errors
.
New
(
"runtime core not ready"
)
return
nil
,
util
.
ErrCoreNotReady
}
}
nodeName
:=
os
.
Getenv
(
"NODE_NAME"
)
nodeName
:=
os
.
Getenv
(
"NODE_NAME"
)
if
nodeName
==
""
{
if
nodeName
==
""
{
...
...
pkg/util/apierrors.go
View file @
f8e06483
...
@@ -17,6 +17,7 @@ import (
...
@@ -17,6 +17,7 @@ import (
var
ErrAPINotReady
=
errors
.
New
(
"apiserver not ready"
)
var
ErrAPINotReady
=
errors
.
New
(
"apiserver not ready"
)
var
ErrAPIDisabled
=
errors
.
New
(
"apiserver disabled"
)
var
ErrAPIDisabled
=
errors
.
New
(
"apiserver disabled"
)
var
ErrCoreNotReady
=
errors
.
New
(
"runtime core not ready"
)
// SendErrorWithID sends and logs a random error ID so that logs can be correlated
// SendErrorWithID sends and logs a random error ID so that logs can be correlated
// between the REST API (which does not provide any detailed error output, to avoid
// between the REST API (which does not provide any detailed error output, to avoid
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment