@@ -26,6 +26,8 @@ import { EnsureNoderedInstanceMessage } from "./EnsureNoderedInstanceMessage";
2626import { KubeUtil } from "../KubeUtil" ;
2727import { Role } from "../Role" ;
2828import { RestartNoderedInstanceMessage } from "./RestartNoderedInstanceMessage" ;
29+ import { DeleteNoderedInstanceMessage } from "./DeleteNoderedInstanceMessage" ;
30+ import { GetNoderedInstanceMessage } from "./GetNoderedInstanceMessage" ;
2931
3032export class Message {
3133 public id : string ;
@@ -134,6 +136,9 @@ export class Message {
134136 case "restartnoderedinstance" :
135137 this . RestartNoderedInstance ( cli ) ;
136138 break ;
139+ case "getnoderedinstance" :
140+ this . GetNoderedInstance ( cli ) ;
141+ break ;
137142 case "startnoderedinstance" :
138143 this . StartNoderedInstance ( cli ) ;
139144 break ;
@@ -503,6 +508,11 @@ export class Message {
503508 try {
504509 msg = EnsureNoderedInstanceMessage . assign ( this . data ) ;
505510 var name = cli . user . username ;
511+ if ( msg . name !== null && msg . name !== undefined && msg . name !== "" && msg . name != cli . user . username ) {
512+ var exists = User . FindByUsername ( msg . name , cli . jwt ) ;
513+ if ( exists == null ) { throw new Error ( "Unknown name " + msg . name ) }
514+ name = msg . name ;
515+ }
506516 var namespace = Config . namespace ;
507517 var hostname = Config . nodered_domain_schema . replace ( "$nodered_id$" , name ) ;
508518
@@ -616,11 +626,16 @@ export class Message {
616626 }
617627 private async DeleteNoderedInstance ( cli : WebSocketClient ) : Promise < void > {
618628 this . Reply ( ) ;
619- var msg : EnsureNoderedInstanceMessage ;
629+ var msg : DeleteNoderedInstanceMessage ;
620630 var user : User ;
621631 try {
622- msg = EnsureNoderedInstanceMessage . assign ( this . data ) ;
632+ msg = DeleteNoderedInstanceMessage . assign ( this . data ) ;
623633 var name = cli . user . username ;
634+ if ( msg . name !== null && msg . name !== undefined && msg . name !== "" && msg . name != cli . user . username ) {
635+ var exists = User . FindByUsername ( msg . name , cli . jwt ) ;
636+ if ( exists == null ) { throw new Error ( "Unknown name " + msg . name ) }
637+ name = msg . name ;
638+ }
624639 var namespace = Config . namespace ;
625640 var hostname = Config . nodered_domain_schema . replace ( "$nodered_id$" , name ) ;
626641
@@ -678,6 +693,11 @@ export class Message {
678693 try {
679694 msg = RestartNoderedInstanceMessage . assign ( this . data ) ;
680695 var name = cli . user . username ;
696+ if ( msg . name !== null && msg . name !== undefined && msg . name !== "" && msg . name != cli . user . username ) {
697+ var exists = User . FindByUsername ( msg . name , cli . jwt ) ;
698+ if ( exists == null ) { throw new Error ( "Unknown name " + msg . name ) }
699+ name = msg . name ;
700+ }
681701 var namespace = Config . namespace ;
682702 // var hostname = Config.nodered_domain_schema.replace("$nodered_id$", name);
683703
@@ -695,6 +715,30 @@ export class Message {
695715 }
696716 this . Send ( cli ) ;
697717 }
718+ private async GetNoderedInstance ( cli : WebSocketClient ) : Promise < void > {
719+ this . Reply ( ) ;
720+ var msg : GetNoderedInstanceMessage ;
721+ try {
722+ msg = GetNoderedInstanceMessage . assign ( this . data ) ;
723+ var name = cli . user . username ;
724+ if ( msg . name !== null && msg . name !== undefined && msg . name !== "" && msg . name != cli . user . username ) {
725+ var exists = User . FindByUsername ( msg . name , cli . jwt ) ;
726+ if ( exists == null ) { throw new Error ( "Unknown name " + msg . name ) }
727+ name = msg . name ;
728+ }
729+ var namespace = Config . namespace ;
730+ // var hostname = Config.nodered_domain_schema.replace("$nodered_id$", name);
731+
732+ var list = await KubeUtil . instance ( ) . CoreV1Api . listNamespacedPod ( namespace ) ;
733+ if ( list . body . items . length > 0 ) {
734+ msg . result = list . body . items [ 0 ] ;
735+ }
736+ } catch ( error ) {
737+ this . data = "" ;
738+ msg . error = JSON . stringify ( error , null , 2 ) ;
739+ }
740+ this . Send ( cli ) ;
741+ }
698742 private async StartNoderedInstance ( cli : WebSocketClient ) : Promise < void > {
699743 this . Reply ( ) ;
700744 this . Send ( cli ) ;
0 commit comments