Beispiel #1
0
        public override IList <CIJob> GetJobs(CIServer server)
        {
            var _jobs = default(IList <CIJob>);

            // if not server return null
            if (server == default(CIServer))
            {
                return(_jobs);
            }

            try
            {
                // get job list
                _jobs = GetInitialJobsList(server);
                if (_jobs == default(IList <CIJob>) || !_jobs.Any())
                {
                    return(default(IList <CIJob>));
                }

                // update each job with full descriptions
                for (var i = 0; i < _jobs.Count; i++)
                {
                    _jobs[i] = UpdateJob(_jobs[i]);
                }

                return(_jobs);
            }
            catch (Exception ex)
            {
                throw new NMCIException("Exception thrown while trying to retrieve jobs from Jenkins", ex);
            }
        }
Beispiel #2
0
        private CIJob InitialiseJob(JToken projectJson, CIServer server)
        {
            if (!GetBool(projectJson["active"]))
            {
                return(default(CIJob));
            }

            var _job = new CIJob();

            _job.ServerType = CIServerType.TravisCI;
            _job.ServerName = server.Name;
            _job.Name       = GetString(projectJson["slug"]);

            // is the server open source, pro or enterprise?
            if (server.Url.Contains("api.travis-ci.org"))
            {
                _job.Url = string.Format("https://travis-ci.org/{0}", _job.Name);
            }
            else if (server.Url.Contains("api.travis-ci.com"))
            {
                _job.Url = string.Format("https://travis-ci.com/{0}", _job.Name);
            }
            else
            {
                _job.Url = string.Format("{0}/{1}", server.Url.Split(new[] { "/api/" }, StringSplitOptions.RemoveEmptyEntries)[0], _job.Name);
            }

            _job.BuildId     = GetString(projectJson["last_build_number"]);
            _job.TimeStamp   = GetDateTime(projectJson["last_build_started_at"]);
            _job.Duration    = GetInt(projectJson["last_build_duration"]);
            _job.BuildStatus = MapBuildStatus(projectJson["last_build_state"].ToString());

            return(_job);
        }
Beispiel #3
0
        private CIJob InitialiseJob(JToken projectJson, CIServer server)
        {
            var job = new CIJob();

            job.ServerType = CIServerType.AppVeyor;
            job.ServerName = server.Name;
            job.Name       = string.Format("{0} ({1})", projectJson["name"], projectJson["repositoryBranch"]);

            job.Url = string.Format("{0}/{1}/{2}", server.Url.TrimEnd('/', '\\'), projectJson["accountName"], projectJson["slug"]);
            job.Url = job.Url.Replace("api/", string.Empty);
            job.Url = job.Url.Replace("/projects/", "/project/");

            var buildsJson = (JArray)projectJson["builds"];

            if (buildsJson == default(JArray) || !buildsJson.Any())
            {
                job.BuildStatus = BuildStatusType.Unknown;
                return(job);
            }

            var buildJson = buildsJson.First;

            job.BuildId   = GetString(buildJson["version"]);
            job.TimeStamp = GetDateTime(buildJson["started"]);

            var finished = GetDateTime(buildJson["finished"]);

            job.Duration = finished != DateTime.MinValue
                ? (int)(finished - job.TimeStamp).TotalMilliseconds
                : 0;

            job.BuildStatus = MapBuildStatus(buildJson["status"].ToString());

            return(job);
        }
Beispiel #4
0
 public CIServer Remove(CIServer server)
 {
     return(IcarusClient.Instance
            .GetDataStore(_dataStore)
            .GetCollection <CIServer>(_collectionName)
            .Remove(server._id));
 }
Beispiel #5
0
        public override IList <CIJob> GetJobs(CIServer server)
        {
            var _jobs = default(IList <CIJob>);

            // if not server return null
            if (server == default(CIServer))
            {
                return(_jobs);
            }

            try
            {
                // get job list
                _jobs = GetJobsList(server);
                if (_jobs == default(IList <CIJob>) || !_jobs.Any())
                {
                    return(default(IList <CIJob>));
                }

                return(_jobs);
            }
            catch (Exception ex)
            {
                throw new NMCIException("Exception thrown while trying to retrieve jobs from AppVeyor", ex);
            }
        }
Beispiel #6
0
        public override IList <CIJob> GetJobs(CIServer server)
        {
            var _jobs = default(IList <CIJob>);

            // if not server return null
            if (server == default(CIServer))
            {
                return(_jobs);
            }

            try
            {
                // get job list
                _jobs = GetJobsList(server);
                if (_jobs == default(IList <CIJob>) || !_jobs.Any())
                {
                    return(default(IList <CIJob>));
                }

                return(_jobs);
            }
            catch (Exception)
            {
                return(default(IList <CIJob>));
            }
        }
        public override IList <CIJob> GetJobs(CIServer server)
        {
            var _jobs = default(IList <CIJob>);

            // if not server return null
            if (server == default(CIServer))
            {
                return(_jobs);
            }

            try
            {
                // get job list
                _jobs = GetInitialJobsList(server);
                if (_jobs == default(IList <CIJob>) || !_jobs.Any())
                {
                    return(default(IList <CIJob>));
                }

                // update each job with full descriptions
                for (var i = 0; i < _jobs.Count; i++)
                {
                    _jobs[i] = UpdateJob(_jobs[i], server.ApiToken);
                }

                return(_jobs);
            }
            catch (Exception)
            {
                return(default(IList <CIJob>));
            }
        }
Beispiel #8
0
        public CIServer Update(CIServer server)
        {
            server.LastUpdated = DateTime.Now;

            return(IcarusClient.Instance
                   .GetDataStore(_dataStore)
                   .GetCollection <CIServer>(_collectionName)
                   .Update(server));
        }
Beispiel #9
0
        private void AddServerBtn_Click(object sender, EventArgs e)
        {
            var errorTitle = "Error Adding New Server";

            try
            {
                // validate server info
                var selectedItem  = ServerTypeDdl.SelectedItem;
                var serverTypeTxt = selectedItem == default(object)
                    ? string.Empty
                    : selectedItem.ToString();

                var error = Validator.ValidateServerValues(serverTypeTxt, ServerNameTxt.Text, ServerUrlTxt.Text, (int)PollIntervalNbr.Value, ApiTokenTxt.Text);
                if (!string.IsNullOrWhiteSpace(error))
                {
                    Logger.ShowErrorMessage(error, errorTitle);
                    return;
                }

                // get server type
                var serverType = default(CIServerType);
                Enum.TryParse <CIServerType>(serverTypeTxt, true, out serverType);

                // insert server
                var server = new CIServer()
                {
                    ServerType       = serverType,
                    Name             = ServerNameTxt.Text,
                    Url              = ServerUrlTxt.Text,
                    PollInterval     = (int)PollIntervalNbr.Value,
                    CurrentlyPolling = false,
                    Enabled          = true,
                    ApiToken         = ApiTokenTxt.Visible ? ApiTokenTxt.Text : string.Empty
                };

                CIServerRepository.Insert(server);

                // clear fields
                ApiTokenTxt.Text      = string.Empty;
                ServerUrlTxt.Text     = string.Empty;
                ServerNameTxt.Text    = string.Empty;
                PollIntervalNbr.Value = 30;

                // declare success
                MessageBox.Show("New server added successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

                // refresh server and job lists
                SetupServerList();
            }
            catch (Exception ex)
            {
                Logger.ShowExceptionMessage("There was a fatal issue adding a new server:", ex, errorTitle);
                return;
            }
        }
Beispiel #10
0
        public static void SharedSetup()
        {
            testServer = new CIServer
                         {
                             Name = "ADP",
                             Url = "http://smeedee.org/ccnet/"
                         };

            testProject = new CIProject(projectName)
                          {
                              SystemId = "ProjectNr.1",
                              Server = testServer, 
                          };
        }
Beispiel #11
0
        public void SharedSetup()
        {
            testServer = new CIServer
                         {
                             Name = "ADP",
                             Url = "http://agileprojectdashboard.org/ccnet/"
                         };

            testProject = new CIProject(projectName)
                          {
                              SystemId = "ProjectNr.1",
                              Server = testServer
                          };
        }
Beispiel #12
0
        public void Insert(CIServer server)
        {
            var now = DateTime.Now;

            server.CreateDate   = now;
            server.LastUpdated  = now;
            server.LastPollDate = now;
            server.NextPollDate = now;

            IcarusClient.Instance
            .GetDataStore(_dataStore)
            .GetCollection <CIServer>(_collectionName)
            .Insert(server);
        }
        private IList <CIJob> GetJobsList(CIServer server)
        {
            var _jobsJson = GetJson(server.Url, server.ApiToken);

            // if no jobs then return
            if (_jobsJson == default(JArray) || !_jobsJson.Any())
            {
                return(default(IList <CIJob>));
            }

            // setup basic jobs with name, url and status
            return(_jobsJson
                   .Select(x => InitialiseJob(x, server))
                   .ToList());
        }
Beispiel #14
0
        public EditServerForm(CIServer server)
        {
            InitializeComponent();

            _server = server;
            if (_server == default(CIServer))
            {
                Close();
            }

            Text = string.Format("Edit Server - {0}", server.Name);

            ServerTypeDdl.SelectedItem = _server.ServerType.ToString();
            ServerNameTxt.Text = _server.Name;
            ServerUrlTxt.Text = _server.Url;
            ServerApiTokenTxt.Text = _server.ApiToken;
            ServerPollNum.Value = _server.PollInterval;
            ServerEnabledChk.Checked = _server.Enabled;
        }
Beispiel #15
0
        public SftpServer(string siteName, string address, int port, string userName, string passWord)
        {
            // Connecto to SFTP server
            _server = new CIServer();
            _server.Connect(address, port, userName, passWord);

            // Get site object
            _site = new CISite();
            CISites sites = _server.Sites();

            for (int i = 0; i < sites.Count(); i++)
            {
                CISite s = sites.Item(i);
                if (s.Name == siteName)
                {
                    _site = s;
                    break;
                }
            }
        }
Beispiel #16
0
        private IList <CIJob> GetInitialJobsList(CIServer server)
        {
            var _jobsJson = GetJson(server.Url);

            // if no jobs then return
            if (_jobsJson == default(JObject) || !((JArray)_jobsJson["jobs"]).Any())
            {
                return(default(IList <CIJob>));;
            }

            // setup basic jobs with name, url and status
            return(((JArray)_jobsJson["jobs"])
                   .Select(x => new CIJob()
            {
                ServerType = CIServerType.Jenkins,
                ServerName = server.Name,
                Name = x["name"].ToString(),
                Url = x["url"].ToString(),
                BuildStatus = MapBuildStatus(x["color"].ToString())
            })
                   .ToList());
        }
Beispiel #17
0
        private IList <CIJob> GetJobsList(CIServer server)
        {
            var _jobsJson = GetJson(server.Url);

            // if no jobs then return
            if (_jobsJson == default(JObject))
            {
                return(default(IList <CIJob>));
            }

            // get repos
            var _reposJson = (JArray)_jobsJson["repos"];

            if (_reposJson == default(JArray) || !_reposJson.Any())
            {
                return(default(IList <CIJob>));
            }

            // setup basic jobs with name, url and status
            return(_reposJson
                   .Select(x => InitialiseJob(x, server))
                   .Where(x => x != default(CIJob))
                   .ToList());
        }
Beispiel #18
0
 public virtual IList <CIJob> GetJobs(CIServer server)
 {
     return(default(IList <CIJob>));
 }
Beispiel #19
0
 public Shared()
 {
     server = new CIServer("CC.net", "http://smeedee.org/ccnet");   
 }
Beispiel #20
0
        public void Setup()
        {
            anotherServer = new CIServer("Hudson", "http://smeedee.org/hudson");

            server.AddProject(new CIProject("development"));
            server.AddProject(new CIProject("main"));

            anotherServer.AddProject(new CIProject("development"));
            anotherServer.AddProject(new CIProject("main"));
        }
Beispiel #21
0
 public CollectionReq(string name, int cloudId)
 {
     collectionName = name;
     ciserver       = new CIServer(cloudId);
 }