Beispiel #1
0
        protected void buttonAddDp_OnClick(object sender, EventArgs e)
        {
            RequiresAuthorization(AuthorizationStrings.UpdateAdmin);
            var distributionPoint = new DistributionPointEntity
            {
                DisplayName  = txtDisplayName.Text,
                Server       = txtServer.Text,
                Protocol     = ddlProtocol.Text,
                ShareName    = txtShareName.Text,
                Domain       = txtDomain.Text,
                RwUsername   = txtRwUsername.Text,
                RwPassword   = txtRwPassword.Text,
                RoUsername   = txtRoUsername.Text,
                RoPassword   = txtRoPassword.Text,
                IsPrimary    = Convert.ToInt16(chkPrimary.Checked),
                PhysicalPath = txtPhysicalPath.Text,
                QueueSize    = Convert.ToInt32(qSize.Text),
                Location     = ddlPrimaryType.Text
            };

            var result = Call.DistributionPointApi.Post(distributionPoint);

            if (result.Success)
            {
                EndUserMessage = "Successfully Created Distribution Point";
                Response.Redirect("~/views/admin/dp/edit.aspx?level=2&dpid=" + result.Id);
            }
            else
            {
                EndUserMessage = result.ErrorMessage;
            }
        }
        public ActionResultDTO Post(DistributionPointEntity distributionPoint)
        {
            var result = _distributionPointServices.AddDistributionPoint(distributionPoint);

            if (result == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }
            return(result);
        }
        public ActionResultDTO Put(int id, DistributionPointEntity distributionPoint)
        {
            distributionPoint.Id = id;
            var result = _distributionPointServices.UpdateDistributionPoint(distributionPoint);

            if (result == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }
            return(result);
        }
        public ActionResultDTO Put(int id, DistributionPointEntity tObject)
        {
            Request.Method = Method.PUT;
            Request.AddJsonBody(tObject);
            Request.Resource = string.Format("api/{0}/Put/{1}", Resource, id);
            var response = _apiRequest.Execute <ActionResultDTO>(Request);

            if (response.Id == 0)
            {
                response.Success = false;
            }
            return(response);
        }
Beispiel #5
0
        public ActionResultDTO UpdateDistributionPoint(DistributionPointEntity distributionPoint)
        {
            var actionResult = new ActionResultDTO();
            var dp           = GetDistributionPoint(distributionPoint.Id);

            if (dp == null)
            {
                return new ActionResultDTO {
                           ErrorMessage = "Distribution Point Not Found", Id = 0
                }
            }
            ;

            if (string.IsNullOrEmpty(distributionPoint.RwPassword))
            {
                distributionPoint.RwPassword = dp.RwPassword;
            }
            else
            {
                distributionPoint.RwPassword = new EncryptionServices().EncryptText(distributionPoint.RwPassword);
            }
            if (string.IsNullOrEmpty(distributionPoint.RoPassword))
            {
                distributionPoint.RoPassword = dp.RoPassword;
            }
            else
            {
                distributionPoint.RoPassword = new EncryptionServices().EncryptText(distributionPoint.RoPassword);
            }

            var validationResult = ValidateDistributionPoint(distributionPoint, false);

            if (validationResult.Success)
            {
                _uow.DistributionPointRepository.Update(distributionPoint, distributionPoint.Id);
                _uow.Save();
                actionResult.Success = true;
                actionResult.Id      = distributionPoint.Id;
            }
            else
            {
                actionResult.ErrorMessage = validationResult.ErrorMessage;
            }

            return(actionResult);
        }
Beispiel #6
0
        public ActionResultDTO AddDistributionPoint(DistributionPointEntity distributionPoint)
        {
            distributionPoint.RoPassword = new EncryptionServices().EncryptText(distributionPoint.RoPassword);
            distributionPoint.RwPassword = new EncryptionServices().EncryptText(distributionPoint.RwPassword);
            var validationResult = ValidateDistributionPoint(distributionPoint, true);
            var actionResult     = new ActionResultDTO();

            if (validationResult.Success)
            {
                _uow.DistributionPointRepository.Insert(distributionPoint);
                _uow.Save();
                actionResult.Success = true;
                actionResult.Id      = distributionPoint.Id;
            }

            else
            {
                actionResult.ErrorMessage = validationResult.ErrorMessage;
            }
            return(actionResult);
        }
Beispiel #7
0
        protected void btnSubmit_OnClick(object sender, EventArgs e)
        {
            string unixDist = null;

            if (ValidateForm())
            {
                var adminUser = Call.CloneDeployUserApi.GetByName("clonedeploy");
                adminUser.Salt     = Utility.CreateSalt(64);
                adminUser.Password = Utility.CreatePasswordHash(txtUserPwd.Text, adminUser.Salt);
                adminUser.Token    = Utility.GenerateKey();
                Call.CloneDeployUserApi.Put(adminUser.Id, adminUser);

                string tftpPath = null;
                if (Environment.OSVersion.ToString().Contains("Unix"))
                {
                    string dist     = null;
                    var    distInfo = new ProcessStartInfo
                    {
                        UseShellExecute        = false,
                        FileName               = "uname",
                        RedirectStandardOutput = true,
                        RedirectStandardError  = true
                    };

                    using (var process = Process.Start(distInfo))
                        if (process != null)
                        {
                            dist = process.StandardOutput.ReadToEnd();
                        }

                    unixDist = dist != null && dist.ToLower().Contains("bsd") ? "bsd" : "linux";
                    tftpPath = unixDist == "bsd" ? "/usr/pbi/clonedeploy-amd64/tftpboot/" : "/tftpboot/";
                }
                else
                {
                    tftpPath = Call.FilesystemApi.GetServerPaths("defaultTftp", "");
                }

                var physicalPath = "";
                if (Environment.OSVersion.ToString().Contains("Unix"))
                {
                    physicalPath = unixDist == "bsd" ? "/usr/pbi/clonedeploy-amd64/cd_dp" : "/cd_dp";
                }
                else
                {
                    physicalPath = Call.FilesystemApi.GetServerPaths("defaultDp", "");
                }

                var listSettings = new List <SettingEntity>
                {
                    new SettingEntity
                    {
                        Name  = "Server IP",
                        Value = txtServerIP.Text,
                        Id    = Call.SettingApi.GetSetting("Server IP").Id
                    },
                    new SettingEntity
                    {
                        Name  = "Tftp Path",
                        Value = tftpPath,
                        Id    = Call.SettingApi.GetSetting("Tftp Path").Id
                    },
                    new SettingEntity
                    {
                        Name  = "Tftp Server IP",
                        Value = txtServerIP.Text,
                        Id    = Call.SettingApi.GetSetting("Tftp Server IP").Id
                    }
                };

                if (unixDist == "bsd")
                {
                    listSettings.Add(new SettingEntity
                    {
                        Name  = "Sender Args",
                        Value = "--interface " + txtServerIP.Text,
                        Id    = Call.SettingApi.GetSetting("Sender Args").Id
                    });
                }

                Call.SettingApi.UpdateSettings(listSettings);

                var distributionPoint = new DistributionPointEntity();
                distributionPoint.DisplayName  = "Local_Default";
                distributionPoint.Server       = "[server-ip]";
                distributionPoint.Protocol     = "SMB";
                distributionPoint.ShareName    = "cd_share";
                distributionPoint.Domain       = "Workgroup";
                distributionPoint.RwUsername   = "******";
                distributionPoint.RwPassword   = txtReadWrite.Text;
                distributionPoint.RoUsername   = "******";
                distributionPoint.RoPassword   = txtReadOnly.Text;
                distributionPoint.IsPrimary    = 1;
                distributionPoint.QueueSize    = 3;
                distributionPoint.PhysicalPath = physicalPath;
                distributionPoint.Location     = "Local";
                Call.DistributionPointApi.Post(distributionPoint);


                var defaultBootMenuOptions = new BootMenuGenOptionsDTO();
                defaultBootMenuOptions.Kernel    = SettingStrings.DefaultKernel32;
                defaultBootMenuOptions.BootImage = "initrd.xz";
                defaultBootMenuOptions.Type      = "standard";
                Call.WorkflowApi.CreateDefaultBootMenu(defaultBootMenuOptions);

                var cdVersion = Call.CdVersionApi.Get(1);
                cdVersion.FirstRunCompleted = 1;

                if (Call.CdVersionApi.Put(cdVersion.Id, cdVersion).Success)
                {
                    EndUserMessage = "Setup Complete";
                    Response.Redirect("~/views/dashboard/dash.aspx?fromlogin=true");
                }
            }
        }
Beispiel #8
0
        private ValidationResultDTO ValidateDistributionPoint(DistributionPointEntity distributionPoint,
                                                              bool isNewDistributionPoint)
        {
            var validationResult = new ValidationResultDTO {
                Success = true
            };

            if (Convert.ToBoolean(distributionPoint.IsPrimary))
            {
                if (!distributionPoint.PhysicalPath.Trim().EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    distributionPoint.PhysicalPath += Path.DirectorySeparatorChar;
                }
            }

            if (string.IsNullOrEmpty(distributionPoint.DisplayName) || distributionPoint.DisplayName.Contains(" "))
            {
                validationResult.Success      = false;
                validationResult.ErrorMessage = "Distribution Point Name Is Not Valid";
                return(validationResult);
            }

            if (isNewDistributionPoint)
            {
                var primaryDp = GetPrimaryDistributionPoint();
                if (primaryDp != null && Convert.ToBoolean(distributionPoint.IsPrimary))
                {
                    validationResult.Success      = false;
                    validationResult.ErrorMessage = "There Can Only Be One Primary Distribution Point";
                    return(validationResult);
                }

                if (_uow.DistributionPointRepository.Exists(h => h.DisplayName == distributionPoint.DisplayName))
                {
                    validationResult.Success      = false;
                    validationResult.ErrorMessage = "This Distribution Point Already Exists";
                    return(validationResult);
                }
            }
            else
            {
                var originalDistributionPoint = _uow.DistributionPointRepository.GetById(distributionPoint.Id);
                var primaryDp = GetPrimaryDistributionPoint();
                if (primaryDp != null)
                {
                    if ((primaryDp.Id != distributionPoint.Id) && distributionPoint.IsPrimary == 1)
                    {
                        validationResult.Success      = false;
                        validationResult.ErrorMessage = "There Can Only Be One Primary Distribution Point";
                        return(validationResult);
                    }
                }
                if (originalDistributionPoint.DisplayName != distributionPoint.DisplayName)
                {
                    if (_uow.DistributionPointRepository.Exists(h => h.DisplayName == distributionPoint.DisplayName))
                    {
                        validationResult.Success      = false;
                        validationResult.ErrorMessage = "This Distribution Point Already Exists";
                        return(validationResult);
                    }
                }
            }

            return(validationResult);
        }