@@ -28,6 +28,7 @@ import { Role } from "../Role";
2828import { RestartNoderedInstanceMessage } from "./RestartNoderedInstanceMessage" ;
2929import { DeleteNoderedInstanceMessage } from "./DeleteNoderedInstanceMessage" ;
3030import { GetNoderedInstanceMessage } from "./GetNoderedInstanceMessage" ;
31+ import { GetNoderedInstanceLogMessage } from "./GetNoderedInstanceLogMessage" ;
3132
3233export class Message {
3334 public id : string ;
@@ -139,6 +140,9 @@ export class Message {
139140 case "getnoderedinstance" :
140141 this . GetNoderedInstance ( cli ) ;
141142 break ;
143+ case "getnoderedinstancelog" :
144+ this . GetNoderedInstanceLog ( cli ) ;
145+ break ;
142146 case "startnoderedinstance" :
143147 this . StartNoderedInstance ( cli ) ;
144148 break ;
@@ -560,7 +564,7 @@ export class Message {
560564 containers : [
561565 {
562566 name : 'nodered' ,
563- image : 'cloudhack/openflownodered:0.0.233 ' ,
567+ image : 'cloudhack/openflownodered:0.0.235 ' ,
564568 imagePullPolicy : "Always" ,
565569 env : [
566570 { name : "saml_federation_metadata" , value : Config . saml_federation_metadata } ,
@@ -797,6 +801,52 @@ export class Message {
797801 }
798802 this . Send ( cli ) ;
799803 }
804+ private async GetNoderedInstanceLog ( cli : WebSocketClient ) : Promise < void > {
805+ this . Reply ( ) ;
806+ var msg : GetNoderedInstanceLogMessage ;
807+ try {
808+ cli . _logger . debug ( "[" + cli . user . username + "] GetNoderedInstance" ) ;
809+ msg = GetNoderedInstanceLogMessage . assign ( this . data ) ;
810+ var name = cli . user . username ;
811+ if ( msg . name !== null && msg . name !== undefined && msg . name !== "" && msg . name != cli . user . username ) {
812+ var exists = User . FindByUsername ( msg . name , cli . jwt ) ;
813+ if ( exists == null ) { throw new Error ( "Unknown name " + msg . name ) }
814+ name = msg . name ;
815+ }
816+ name = name . split ( "@" ) . join ( "" ) . split ( "." ) . join ( "" ) ;
817+ name = name . toLowerCase ( ) ;
818+ var namespace = Config . namespace ;
819+
820+
821+ var list = await KubeUtil . instance ( ) . CoreV1Api . listNamespacedPod ( namespace ) ;
822+
823+ if ( list . body . items . length > 0 ) {
824+ for ( var i = 0 ; i < list . body . items . length ; i ++ ) {
825+ var item = list . body . items [ i ] ;
826+ if ( item . metadata . labels . app === ( name + "nodered" ) ) {
827+ cli . _logger . debug ( "[" + cli . user . username + "] GetNoderedInstance:" + name + " found one as " + item . metadata . name ) ;
828+ var obj = await await KubeUtil . instance ( ) . CoreV1Api . readNamespacedPodLog ( item . metadata . name , namespace , "" , false ) ;
829+ msg . result = obj . body ;
830+ }
831+ }
832+ }
833+
834+
835+
836+ } catch ( error ) {
837+ this . data = "" ;
838+ console . error ( error ) ;
839+ //msg.error = JSON.stringify(error, null, 2);
840+ msg . error = "Request failed!"
841+ }
842+ try {
843+ this . data = JSON . stringify ( msg ) ;
844+ } catch ( error ) {
845+ this . data = "" ;
846+ msg . error = error . toString ( ) ;
847+ }
848+ this . Send ( cli ) ;
849+ }
800850 private async StartNoderedInstance ( cli : WebSocketClient ) : Promise < void > {
801851 this . Reply ( ) ;
802852 this . Send ( cli ) ;
0 commit comments