diff --git a/management/server/http/api/openapi.yml b/management/server/http/api/openapi.yml index f8f581bd41c..aeaef6f6412 100644 --- a/management/server/http/api/openapi.yml +++ b/management/server/http/api/openapi.yml @@ -335,6 +335,10 @@ components: $ref: '#/components/schemas/CountryCode' city_name: $ref: '#/components/schemas/CityName' + serial_number: + description: System serial number + type: string + example: "C02XJ0J0JGH7" required: - city_name - connected @@ -356,6 +360,7 @@ components: - version - ui_version - approval_required + - serial_number AccessiblePeer: allOf: - $ref: '#/components/schemas/PeerMinimum' diff --git a/management/server/http/api/types.gen.go b/management/server/http/api/types.gen.go index 0bed93b3c8e..e378213a116 100644 --- a/management/server/http/api/types.gen.go +++ b/management/server/http/api/types.gen.go @@ -523,6 +523,9 @@ type Peer struct { // Os Peer's operating system and version Os string `json:"os"` + // SerialNumber System serial number + SerialNumber string `json:"serial_number"` + // SshEnabled Indicates whether SSH server is enabled on this peer SshEnabled bool `json:"ssh_enabled"` @@ -592,6 +595,9 @@ type PeerBase struct { // Os Peer's operating system and version Os string `json:"os"` + // SerialNumber System serial number + SerialNumber string `json:"serial_number"` + // SshEnabled Indicates whether SSH server is enabled on this peer SshEnabled bool `json:"ssh_enabled"` @@ -664,6 +670,9 @@ type PeerBatch struct { // Os Peer's operating system and version Os string `json:"os"` + // SerialNumber System serial number + SerialNumber string `json:"serial_number"` + // SshEnabled Indicates whether SSH server is enabled on this peer SshEnabled bool `json:"ssh_enabled"` diff --git a/management/server/http/peers_handler.go b/management/server/http/peers_handler.go index 77b4578f8d6..7625765060d 100644 --- a/management/server/http/peers_handler.go +++ b/management/server/http/peers_handler.go @@ -308,6 +308,7 @@ func toSinglePeerResponse(peer *nbpeer.Peer, groupsInfo []api.GroupMinimum, dnsD ApprovalRequired: !approved, CountryCode: peer.Location.CountryCode, CityName: peer.Location.CityName, + SerialNumber: peer.Meta.SystemSerialNumber, } } @@ -340,6 +341,7 @@ func toPeerListItemResponse(peer *nbpeer.Peer, groupsInfo []api.GroupMinimum, dn AccessiblePeersCount: accessiblePeersCount, CountryCode: peer.Location.CountryCode, CityName: peer.Location.CityName, + SerialNumber: peer.Meta.SystemSerialNumber, } } diff --git a/management/server/http/peers_handler_test.go b/management/server/http/peers_handler_test.go index e43c4375e92..53df5cb004e 100644 --- a/management/server/http/peers_handler_test.go +++ b/management/server/http/peers_handler_test.go @@ -121,13 +121,14 @@ func TestGetPeers(t *testing.T) { Name: "PeerName", LoginExpirationEnabled: false, Meta: nbpeer.PeerSystemMeta{ - Hostname: "hostname", - GoOS: "GoOS", - Kernel: "kernel", - Core: "core", - Platform: "platform", - OS: "OS", - WtVersion: "development", + Hostname: "hostname", + GoOS: "GoOS", + Kernel: "kernel", + Core: "core", + Platform: "platform", + OS: "OS", + WtVersion: "development", + SystemSerialNumber: "C02XJ0J0JGH7", }, } @@ -245,6 +246,7 @@ func TestGetPeers(t *testing.T) { assert.Equal(t, got.LoginExpirationEnabled, tc.expectedPeer.LoginExpirationEnabled) assert.Equal(t, got.SshEnabled, tc.expectedPeer.SSHEnabled) assert.Equal(t, got.Connected, tc.expectedPeer.Status.Connected) + assert.Equal(t, got.SerialNumber, tc.expectedPeer.Meta.SystemSerialNumber) }) } }