2021-11-13 19:18:06 +00:00
// Copyright 2021 Woodpecker Authors
2018-03-21 13:02:17 +00:00
//
2018-02-19 22:24:10 +00:00
// 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
2018-03-21 13:02:17 +00:00
//
2018-02-19 22:24:10 +00:00
// http://www.apache.org/licenses/LICENSE-2.0
2018-03-21 13:02:17 +00:00
//
2018-02-19 22:24:10 +00:00
// 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.
2017-05-14 17:57:38 +00:00
package model
2021-11-13 19:18:06 +00:00
type Agent struct {
2023-01-28 13:13:04 +00:00
ID int64 ` json:"id" xorm:"pk autoincr 'id'" `
Created int64 ` json:"created" xorm:"created" `
Updated int64 ` json:"updated" xorm:"updated" `
2024-01-22 06:56:18 +00:00
Name string ` json:"name" xorm:"name" `
2023-01-28 13:13:04 +00:00
OwnerID int64 ` json:"owner_id" xorm:"'owner_id'" `
2024-01-22 06:56:18 +00:00
Token string ` json:"token" xorm:"token" `
LastContact int64 ` json:"last_contact" xorm:"last_contact" `
2024-07-01 17:34:47 +00:00
LastWork int64 ` json:"last_work" xorm:"last_work" ` // last time the agent did something, this value is used to determine if the agent is still doing work used by the autoscaler
2024-01-22 06:56:18 +00:00
Platform string ` json:"platform" xorm:"VARCHAR(100) 'platform'" `
Backend string ` json:"backend" xorm:"VARCHAR(100) 'backend'" `
Capacity int32 ` json:"capacity" xorm:"capacity" `
2024-01-28 11:29:56 +00:00
Version string ` json:"version" xorm:"'version'" `
2024-01-22 06:56:18 +00:00
NoSchedule bool ` json:"no_schedule" xorm:"no_schedule" `
2023-06-03 19:38:36 +00:00
} // @name Agent
2017-05-14 17:57:38 +00:00
2024-05-13 20:58:21 +00:00
// TableName return database table name for xorm.
2021-11-13 19:18:06 +00:00
func ( Agent ) TableName ( ) string {
return "agents"
2017-05-14 17:57:38 +00:00
}
2023-01-28 13:13:04 +00:00
func ( a * Agent ) IsSystemAgent ( ) bool {
return a . OwnerID == - 1
}