// Copyright 2023 LiveKit, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package routing import ( "runtime" "time" "github.com/livekit/protocol/livekit" "github.com/livekit/protocol/utils" "github.com/livekit/livekit-server/pkg/config" ) type LocalNode *livekit.Node func NewLocalNode(conf *config.Config) (LocalNode, error) { nodeID, err := utils.LocalNodeID() if err != nil { return nil, err } if conf.RTC.NodeIP == "" { return nil, ErrIPNotSet } node := &livekit.Node{ Id: nodeID, Ip: conf.RTC.NodeIP, NumCpus: uint32(runtime.NumCPU()), Region: conf.Region, State: livekit.NodeState_SERVING, Stats: &livekit.NodeStats{ StartedAt: time.Now().Unix(), UpdatedAt: time.Now().Unix(), }, } return node, nil }