Beispiel #1
0
        // TODO : make sovereign cloud available
        public static Task <Image> GetVMConsoleScreenshot(int icm, ARMDeployment deployment)
        {
            Log.Information("Calling GenevaAction with params {0}", deployment);
            var param = new GenevaOperations.GetVMConsoleScreenshot
            {
                smecrpregion = deployment.Location,
                smeresourcegroupnameparameter = deployment.ResourceGroups,
                smevmnameparameter            = deployment.Name,
                wellknownsubscriptionid       = deployment.Subscriptions
            };
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.GetVMConsoleScreenshotExtensionName, Constants.GetVMConsoleScreenshotOperationName, actionParam).GetOperationFileOutputAsync(icm);

            // VMConsoleSerialLog contain only one file, compressed in a zip.
            return(Task.Run(() => (
                                task.Result != null ? Image.FromStream(Utility.ExtractZip(task.Result).Entries.Where(x => x.Name != "").First().Open()) : null
                                )));
        }
Beispiel #2
0
        public static Task <string> GetVMView(int icm, ARMDeployment deployment, string option)
        {
            Log.Information("Calling GenevaAction GetVMModelAndInstanceView of option:{0} with params {1}", option, deployment);
            var param = new GenevaOperations.GetVMModelAndInstanceView
            {
                smecrpregion = deployment.Location,
                smeresourcegroupnameparameter = deployment.ResourceGroups,
                smevmnameparameter            = deployment.Name,
                wellknownsubscriptionid       = deployment.Subscriptions,
                smegetvmoptionparameter       = option
            };
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.GetVMInfoExtensionName, Constants.GetVMInfoOperationName, actionParam).GetOperationResultOutputAsync(icm);

            return(Task.Run(() => (
                                task.Result
                                )));
        }
        // TODO : make sovereign cloud available
        public static Task <Image> GetClassicVMConsoleScreenshot(int icm, ShortRDFERoleInstance instance)
        {
            Log.Information("Calling GenevaAction GetARMSubscription with params {0}", instance);
            var param = new GenevaOperations.GetClassicVMScreenshot
            {
                smefabrichostparam     = instance.Fabric,
                smescreenshotsizeparam = Constants.GetClassicVMClassicScreenshotSize,
                smetenantnameparam     = instance.DeploymentId,
                smevmnameparam         = instance.InstanceName
            };
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.GetClassicVMClassicScreenshotExtensionName, Constants.GetClassicVMClassicScreenshotOperatorName, actionParam).GetOperationFileOutputAsync(icm);

            // VMConsoleSerialLog contain only one file, compressed in a zip.
            return(Task.Run(() => (
                                task.Result != null ? Image.FromStream(Utility.ExtractZip(task.Result).Entries.Where(x => x.Name != "").First().Open()) : null
                                )));
        }
Beispiel #4
0
        // TODO : make sovereign cloud available
        public static Task <ZipArchiveEntry> GetNodeDiagnosticsFilesByDeploymentIdorVMName(int icm, ShortRDFERoleInstance instance)
        {
            Log.Information("Calling GenevaAction GetNodeDiagnostics with params {0}", instance);
            var param = new GenevaOperations.GetNodeDiagnosticsDeployment
            {
                smefabrichostparam               = instance.Fabric,
                smenodediagnosticstagparam       = Constants.GetNodeDiagnosticsParam,
                smedeploymentidordeploymentparam = instance.DeploymentId,
                smevmnameparam = instance.InstanceName
            };
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.GetNodeDiagnosticsExtensionName, Constants.GetNodeDiagnosticsOperatorNameDeployment, actionParam).GetOperationFileOutputAsync(icm);

            // VMConsoleSerialLog contain only one file, compressed in a zip.
            return(Task.Run(() => (
                                task.Result != null ? Utility.ExtractZip(task.Result).Entries.Where(x => x.Name != "").First() : null
                                )));
        }
Beispiel #5
0
        // TODO : make sovereign cloud available
        public static Task <String> GetVMConsoleSerialLogs(int icm, ARMDeployment deployment, int id)
        {
            Log.Information("Calling GetVMConsoleSerialLogs of id:{0} with params {1}", id, deployment);
            var param = new GenevaOperations.GetVMConsoleSerialLogsVMSS
            {
                smecrpregion = deployment.Location,
                smeresourcegroupnameparameter          = deployment.ResourceGroups,
                smevirtualmachinescalesetnameparameter = deployment.Name,
                wellknownsubscriptionid = deployment.Subscriptions,
                smevirtualmachinescalesetvminstanceidparameter = id
            };
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.GetVMConsoleSerialLogsExtensionName, Constants.GetVMSSConsoleSerialLogsOperationName, actionParam).GetOperationFileOutputAsync(icm);

            // VMConsoleSerialLog contain only one file, compressed in a zip.
            return(Task.Run(() => (
                                task.Result != null ? new StreamReader(Utility.ExtractZip(task.Result).Entries.Where(x => x.Name != "").First().Open(), System.Text.Encoding.UTF8).ReadToEnd() : "N/A"
                                )));
        }
Beispiel #6
0
        public static Task <Stream> GetNodeDiagnosticsFiles(int icm, string cluster, string nodeid, string logType, string startTime, string endTime)
        {
            Log.Information("Calling GenevaAction GetNodeDiagnostics (for host type: {0}) with params cluster:{1} and nodeid:{2}", logType, cluster, nodeid);
            var param = new GenevaOperations.GetNodeDiagnosticsFiles
            {
                smefabrichostparam          = cluster,
                smenodeidparam              = nodeid,
                smenodediagnosticstypeparam = "",
                smenodediagnosticstagparam  = logType,
                smestarttimeparam           = startTime,
                smeendtimeparam             = endTime
            };
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.GetNodeDiagnosticsExtensionName, Constants.GetNodeDiagnosticsOperatorNameFiles, actionParam).GetOperationFileOutputAsync(icm);

            return(Task.Run(() => (
                                task.Result
                                )));
        }
Beispiel #7
0
        // TODO : make sovereign cloud available
        public static Task <Stream> InspectIaaSDiskForARMVM(int icm, ARMDeployment deployment)
        {
            var param = new GenevaOperations.InspectIaaSDiskForARMVM
            {
                smecrpregion                  = deployment.Location,
                smeresourcegroupname          = deployment.ResourceGroups,
                smevmname                     = deployment.Name,
                wellknownscopedsubscriptionid = deployment.Subscriptions,
                smelogextractmode             = Constants.InspectIaaSDiskForARMVMMode,
                smeskiptostep                 = Constants.InspectIaaSDiskForARMVMStep,
                smetimeoutinmins              = Constants.InspectIaaSDiskForARMVMTimeout
            };

            Log.Information("Calling InspectIaaSDiskForARMVM with params {0}", param);
            var actionParam = Utility.JsonToObject <Dictionary <string, string> >(Utility.ObjectToJson(param));
            var task        = new GenevaAction(icm, Constants.InspectIaaSDiskForARMVMExtensionName, Constants.InspectIaaSDiskForARMVMOperationName, actionParam).GetOperationFileOutputAsync(icm);

            // VMConsoleSerialLog contain only one file, compressed in a zip.
            return(Task.Run(() => (
                                task.Result
                                )));
        }