예제 #1
0
 static VMDao()
 {
     ManagerType = ConfigurationManager.AppSettings["VMManagerType"];
     if (ManagerType.Equals("Sangfor"))
     {
         restful = new RESTful();
     }
     else
     {
         manager = new WebService();
     }
 }
예제 #2
0
        /// <summary>
        /// 合并数据
        /// </summary>
        /// <param name="vmConfigs">统一虚拟机数据</param>
        /// <returns></returns>
        public static List <VMConfig> MergeData(List <VMConfig> vmConfigs)
        {
            using (var dbContext = new DataModels())
            {
                RESTful restful = new RESTful();
                foreach (VMConfig config in vmConfigs)
                {
                    SangforInfo info = GetSangforInfoByName(config.Name);
                    config.admin_id     = info.admin_id;
                    config.teacher_id   = info.teacher_id;
                    config.student_id   = info.student_id;
                    config.is_exp       = info.is_exp;
                    config.is_exps      = info.is_exps;
                    config.IsTemplate   = info.IsTemplate;
                    config.TemplateName = info.TemplateName;
                    config.console_url  = restful.OpenConsole(info.id);

                    if (config.Status.PowerState.Equals("ACTIVE"))
                    {
                        config.Status.PowerState = "poweredOn";
                    }
                    else
                    {
                        config.Status.PowerState = "poweredOff";
                    }
                }
                List <SangforInfo> infos = dbContext.SangforInfos.ToList();
                infos = infos.Where(u => u.IsTemplate == true).ToList();
                foreach (SangforInfo info in infos)
                {
                    VMConfig config = new VMConfig();
                    config.admin_id     = info.admin_id;
                    config.teacher_id   = info.teacher_id;
                    config.student_id   = info.student_id;
                    config.is_exp       = info.is_exp;
                    config.is_exps      = info.is_exps;
                    config.IsTemplate   = info.IsTemplate;
                    config.TemplateName = info.TemplateName;
                    config.Name         = info.Name;
                    vmConfigs.Add(config);
                }
            }
            return(vmConfigs);
        }
예제 #3
0
 void Awake()
 {
     kayitliAyarlar();
     rest = GameObject.FindObjectOfType <RESTful>();
     hata = GameObject.FindObjectOfType <HataController>();
 }
예제 #4
0
 void Awake()
 {
     controller = GameObject.FindObjectOfType <GameController>();
     rest       = GameObject.FindObjectOfType <RESTful>();
 }
        public HttpResponseMessage HelloMessage()
        {
            string managerType = ConfigurationManager.AppSettings["VMManagerType"];
            string versionMsg  = "";
            string redisMsg    = "Redis: ERROR\n";
            string mySQLMsg    = "MySQL: ERROR\n";
            string vmMsg       = "Web Service: ERROR\n";
            string errorMsg    = "Error Message:\n";
            string netdiskMsg  = "Netdisk: OK\n";
            string publishTime = System.IO.File.GetLastWriteTime(this.GetType().Assembly.Location).ToString();
            string version     = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            HttpResponseMessage res;

            try
            {
#if DEBUG
                versionMsg = "Development Environment ";
#else
                versionMsg = "Production Environment";
#endif
                RedisHelper redis = RedisHelper.GetRedisHelper();
                redis.Set("cloud.beihangsoft.cn", "backend", 99999);
                if (redis.IsSet("cloud.beihangsoft.cn"))
                {
                    redisMsg = "Redis: OK\n";
                }
            }
            catch (Exception e)
            {
                errorMsg += e.Message + "\n";
                errorMsg += e.StackTrace + "\n";
            }
            try
            {
                using (var context = new DataModels())
                {
                    int userCount = context.Users.Count();
                    if (userCount > 0)
                    {
                        mySQLMsg = $"MySQL: OK. Users:  {userCount}\n";
                    }
                }
            }
            catch (Exception e)
            {
                errorMsg += e.Message + "\n";
            }
            try
            {
                if (managerType.Equals("VMware"))
                {
                    WebService ws        = new WebService();
                    int        hostCount = ws.GetHosts().Count();
                    if (hostCount > 0)
                    {
                        vmMsg = $"WebService: OK. Available hosts: {hostCount}\n";
                    }
                    else
                    {
                        vmMsg = "WebService: ERROR\n";
                    }
                }
                else
                {
                    RESTful rest = new RESTful();
                    vmMsg = "Using Sangfor REST api.\n";
                }
            }
            catch (Exception e)
            {
                errorMsg = e.Message + "\n";
            }
            try
            {
                var ret = HttpUtil.Method(HttpMethod.Get, ConfigurationManager.AppSettings["MyServer"] + "/netdisk/status");
                if (!ret.StatusCode.Equals(HttpStatusCode.OK))
                {
                    throw new Exception("Netdisk service error, " + ret.StatusCode);
                }
            }
            catch (Exception e)
            {
                errorMsg = e.Message + "\n";
            }
            finally
            {
                if (errorMsg.Equals("Error Message:\n"))
                {
                    errorMsg = "ERVERY THING IS OK!\n";
                }
                res = new HttpResponseMessage
                {
                    Content = new StringContent
                              (
                        $"cloud.beihangsoft.cn {versionMsg}\n" +
                        $"Last updated at {publishTime}\n" +
                        $"Version {version}\n" +
                        $"{redisMsg}" +
                        $"{mySQLMsg}" +
                        $"{vmMsg}" +
                        $"{netdiskMsg}" +
                        $"{errorMsg}" +
                        $"{DateTime.Now}\n" +
                        $"Copyright 2016-{DateTime.Now.Year} College of Software, BUAA"
                              )
                };
                res.Headers.Add("Collaborators", "xzh,jyf,xzy,zzw,cyk");
            }
            return(res);
        }