@ -43,7 +43,8 @@ func TestStatus(t *testing.T) {
rw := db . New ( conn )
wrapper := db . TestWrapper ( t )
kms := kms . TestKms ( t , conn , wrapper )
org , prj := iam . TestScopes ( t , iam . TestRepo ( t , conn , wrapper ) )
iamRepo := iam . TestRepo ( t , conn , wrapper )
org , prj := iam . TestScopes ( t , iamRepo )
serverRepo , _ := server . NewRepository ( rw , rw , kms )
serverRepo . UpsertController ( ctx , & store . Controller {
@ -83,6 +84,16 @@ func TestStatus(t *testing.T) {
worker1 := server . TestKmsWorker ( t , conn , wrapper )
canceledSess := session . TestDefaultSession ( t , conn , wrapper , iamRepo )
tofu := session . TestTofu ( t )
canceledSess , _ , err = repo . ActivateSession ( ctx , canceledSess . PublicId , canceledSess . Version , tofu )
require . NoError ( t , err )
canceledConn , _ , err := connRepo . AuthorizeConnection ( ctx , canceledSess . PublicId , worker1 . PublicId )
require . NoError ( t , err )
canceledSess , err = repo . CancelSession ( ctx , canceledSess . PublicId , canceledSess . Version )
require . NoError ( t , err )
sess := session . TestSession ( t , conn , wrapper , session . ComposedOf {
UserId : uId ,
HostId : h . GetPublicId ( ) ,
@ -93,7 +104,7 @@ func TestStatus(t *testing.T) {
Endpoint : "tcp://127.0.0.1:22" ,
ConnectionLimit : 10 ,
} )
tofu : = session . TestTofu ( t )
tofu = session . TestTofu ( t )
sess , _ , err = repo . ActivateSession ( ctx , sess . PublicId , sess . Version , tofu )
require . NoError ( t , err )
require . NoError ( t , err )
@ -133,6 +144,220 @@ func TestStatus(t *testing.T) {
AuthorizedDownstreamWorkers : & pbs . AuthorizedDownstreamWorkerList { } ,
} ,
} ,
{
name : "One unrecognized session" ,
wantErr : false ,
req : & pbs . StatusRequest {
WorkerStatus : & pb . ServerWorkerStatus {
PublicId : worker1 . GetPublicId ( ) ,
Name : worker1 . GetName ( ) ,
Address : worker1 . GetAddress ( ) ,
} ,
Jobs : [ ] * pbs . JobStatus {
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_SESSION ,
JobInfo : & pbs . Job_SessionInfo {
SessionInfo : & pbs . SessionJobInfo {
SessionId : "unrecognized" ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
Connections : [ ] * pbs . Connection {
{
ConnectionId : canceledConn . PublicId ,
Status : pbs . CONNECTIONSTATUS_CONNECTIONSTATUS_CONNECTED ,
} ,
} ,
} ,
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_SESSION ,
JobInfo : & pbs . Job_SessionInfo {
SessionInfo : & pbs . SessionJobInfo {
SessionId : sess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
Connections : [ ] * pbs . Connection {
{
ConnectionId : connection . PublicId ,
Status : pbs . CONNECTIONSTATUS_CONNECTIONSTATUS_CONNECTED ,
} ,
} ,
} ,
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : "unrecognized" ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
} ,
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : sess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
} ,
} ,
} ,
} ,
} ,
} ,
want : & pbs . StatusResponse {
CalculatedUpstreams : [ ] * pbs . UpstreamServer {
{
Type : pbs . UpstreamServer_TYPE_CONTROLLER ,
Address : "127.0.0.1" ,
} ,
} ,
WorkerId : worker1 . PublicId ,
AuthorizedWorkers : & pbs . AuthorizedWorkerList { } ,
AuthorizedDownstreamWorkers : & pbs . AuthorizedDownstreamWorkerList { } ,
JobsRequests : [ ] * pbs . JobChangeRequest {
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_SESSION ,
JobInfo : & pbs . Job_SessionInfo {
SessionInfo : & pbs . SessionJobInfo {
SessionId : "unrecognized" ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_UNSPECIFIED ,
ProcessingError : pbs . SessionProcessingError_SESSION_PROCESSING_ERROR_UNRECOGNIZED ,
} ,
} ,
} ,
RequestType : pbs . CHANGETYPE_CHANGETYPE_UPDATE_STATE ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : "unrecognized" ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_UNSPECIFIED ,
ProcessingError : pbs . SessionProcessingError_SESSION_PROCESSING_ERROR_UNRECOGNIZED ,
} ,
} ,
} ,
RequestType : pbs . CHANGETYPE_CHANGETYPE_UPDATE_STATE ,
} ,
} ,
} ,
} ,
{
name : "One Cancelled Session" ,
wantErr : false ,
req : & pbs . StatusRequest {
WorkerStatus : & pb . ServerWorkerStatus {
PublicId : worker1 . GetPublicId ( ) ,
Name : worker1 . GetName ( ) ,
Address : worker1 . GetAddress ( ) ,
} ,
Jobs : [ ] * pbs . JobStatus {
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_SESSION ,
JobInfo : & pbs . Job_SessionInfo {
SessionInfo : & pbs . SessionJobInfo {
SessionId : canceledSess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
Connections : [ ] * pbs . Connection {
{
ConnectionId : canceledConn . PublicId ,
Status : pbs . CONNECTIONSTATUS_CONNECTIONSTATUS_CONNECTED ,
} ,
} ,
} ,
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_SESSION ,
JobInfo : & pbs . Job_SessionInfo {
SessionInfo : & pbs . SessionJobInfo {
SessionId : sess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
Connections : [ ] * pbs . Connection {
{
ConnectionId : connection . PublicId ,
Status : pbs . CONNECTIONSTATUS_CONNECTIONSTATUS_CONNECTED ,
} ,
} ,
} ,
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : canceledSess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
} ,
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : sess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
} ,
} ,
} ,
} ,
} ,
} ,
want : & pbs . StatusResponse {
CalculatedUpstreams : [ ] * pbs . UpstreamServer {
{
Type : pbs . UpstreamServer_TYPE_CONTROLLER ,
Address : "127.0.0.1" ,
} ,
} ,
WorkerId : worker1 . PublicId ,
AuthorizedWorkers : & pbs . AuthorizedWorkerList { } ,
AuthorizedDownstreamWorkers : & pbs . AuthorizedDownstreamWorkerList { } ,
JobsRequests : [ ] * pbs . JobChangeRequest {
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_SESSION ,
JobInfo : & pbs . Job_SessionInfo {
SessionInfo : & pbs . SessionJobInfo {
SessionId : canceledSess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_CANCELING ,
} ,
} ,
} ,
RequestType : pbs . CHANGETYPE_CHANGETYPE_UPDATE_STATE ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : canceledSess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_CANCELING ,
} ,
} ,
} ,
RequestType : pbs . CHANGETYPE_CHANGETYPE_UPDATE_STATE ,
} ,
} ,
} ,
} ,
{
name : "Still Active" ,
wantErr : false ,
@ -160,6 +385,17 @@ func TestStatus(t *testing.T) {
} ,
} ,
} ,
{
Job : & pbs . Job {
Type : pbs . JOBTYPE_JOBTYPE_MONITOR_SESSION ,
JobInfo : & pbs . Job_MonitorSessionInfo {
MonitorSessionInfo : & pbs . MonitorSessionJobInfo {
SessionId : sess . PublicId ,
Status : pbs . SESSIONSTATUS_SESSIONSTATUS_ACTIVE ,
} ,
} ,
} ,
} ,
} ,
} ,
want : & pbs . StatusResponse {
@ -220,7 +456,9 @@ func TestStatus(t *testing.T) {
pbs . JobChangeRequest { } ,
pbs . Job { } ,
pbs . Job_SessionInfo { } ,
pbs . Job_MonitorSessionInfo { } ,
pbs . SessionJobInfo { } ,
pbs . MonitorSessionJobInfo { } ,
pbs . Connection { } ,
pbs . AuthorizedWorkerList { } ,
pbs . AuthorizedDownstreamWorkerList { } ,