# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
-gem 'sqlite3'
-
gem 'json'
gem 'execjs'
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
- sqlite3 (1.3.6)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.10)
mysql2 (> 0.3)
rails (= 3.2.8)
sass-rails (~> 3.2.3)
- sqlite3
uglifier (>= 1.0.3)
, projects.name
, projects.ptype
, projects.status
- , projects.password
FROM projects
, distributions
WHERE distributions.id = \"#{dist_id}\"
doc.Name(project.name)
doc.Type(project.ptype)
doc.ProjectStatus(project.status)
- doc.ProjectPassword(project.password)
os_list = ProjectOs.find_by_sql("SELECT supported_os.name AS name
FROM project_os
dist_id = change_item[:DistId]
project_name = change_item[:Name]
project_type = change_item[:ProjectType].upcase
- project_password = change_item[:ProjectPass]
project_status = change_item[:ProjectStatus].upcase
if dist_id.nil? or dist_id.empty? or
project.name = project_name
project.ptype = project_type
project.status = project_status
- project.password = project_password
project.distribution_id = dist_id
#TODO: set project user is admin. admin user id is '1'
project.user_id = 1
project_id = change_item[:Id]
project_name = change_item[:Name]
project_status = change_item[:ProjectStatus].upcase
- project_password = change_item[:ProjectPass]
if project_id.nil? or project_id.empty? or
project_name.nil? or project_name.empty? or
project.name = project_name
end
- project.password = project_password
project.status = project_status
# remove project os and reset project os
end
end
+ def get_user_password
+ if @current_user.nil?
+ current_user
+ end
+
+ if not @current_user.nil?
+ return @current_user.password_hash
+ else
+ return nil
+ end
+ end
+
def get_group_list(email)
if not email.nil?
group_list = Group.find_by_sql("SELECT groups.id
ELSE \"SINGLE\" END \"job_attribute\"
, projects.name AS project_name
, projects.ptype AS project_type
- , projects.password AS project_password
, users.name AS user_name
, users.email AS user_email
, supported_os.name AS supported_os_name
#check svr dir
if not File.exist?(svr_dir) then
- render :text => e.message, :status => 406
+ render :text => "[#{svr_dir}] does not exist. please mail to server administrator", :status => 406
return
end
# Check job builder
if get_user_email != job.user_email
if not is_admin(get_user_email)
- render :text => "You don't have authority to calcel.", :status => 406
+ render :text => "You don't have authority to cancel.", :status => 406
return
end
end
- # get password when Multi build
- if job.job_type.eql? "MULTIBUILD"
- sub_job = Job.find(:first, :conditions => ["parent_job_id=?", id])
- sub_job_project_info = Project.find(sub_job.project_id)
- job_password = sub_job_project_info.password
- else
- job_password = job.project_password
- end
-
# Excute command
message = ""
begin
- result, message = Utils.sbi_cancel_command(id, job_password)
+ result, message = Utils.sbi_cancel_command(id, get_user_email, get_user_password)
rescue => e
render :text => e.message, :status => 406
end
distribution_list = []
project_list = []
os_list = []
- password_list = []
dist_name = nil
distribution_list.push project.distribution_id
project_list.push project.name
- password_list.push project.password
os_list.push os.name
end
distribution_list.uniq!
project_list.uniq!
os_list.uniq!
- password_list.uniq!
if(distribution_list.length > 1)
errmsg = "Can't build multiple distribution"
# execute build command
begin
- result, job_id, msg = Utils.sbi_build_command(distribution.name, project_list, os_list, password_list, get_user_email)
+ result, job_id, msg = Utils.sbi_build_command(distribution.name, project_list, os_list, get_user_email, get_user_password)
if result then
render :json => { :result => "SUCCESS", :job_id => job_id }
else
end
begin
- Utils.sbi_register_command(distribution.name, file_path, project.password, get_user_email)
+ Utils.sbi_register_command(distribution.name, file_path, get_user_email, get_user_password)
rescue => e
render :text => e.message, :status => 406
return
DIBS_PATH = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__))))
class Utils < ApplicationController
- def Utils.sbi_build_command(distribution, project_list, os_list, password_list, email)
+ def Utils.sbi_build_command(distribution, project_list, os_list, email, password)
job_id = nil
dibs_config = Server_config.find(:first, :conditions => ["property = \"port\""])
if dibs_config.nil?
dibs_address = BUILD_SERVER_ADDRESS + ":" + dibs_config.value
end
- options = "-d #{dibs_address} --async "
+ options = "-d #{dibs_address} --async -U #{email} -w \'#{password}\'"
options = options + " -N #{project_list.join(",")} -D #{distribution} "
if (os_list.length > 1) or (not os_list[0].nil?)
options = options + " -o #{os_list.join(",")} "
end
- if (password_list.length > 1) or (not (password_list[0].nil? or password_list[0].empty?))
- options = options + " -w #{password_list.join(",")} "
- end
- if not email.nil?
- options = options + " -U #{email} "
- end
cmd = "#{DIBS_PATH}/build-cli build #{options}"
puts "Build command"
return result, job_id, msg
end
- def Utils.sbi_register_command(distribution, file_path, password, email)
+ def Utils.sbi_register_command(distribution, file_path, email, password)
dibs_config = Server_config.find(:first, :conditions => ["property = \"port\""])
if dibs_config.nil?
raise RuntimeError, "Can't find server port information"
dibs_address = BUILD_SERVER_ADDRESS + ":" + dibs_config.value
end
- options = "-P #{file_path} -d #{dibs_address} -D #{distribution} --async "
- if (not password.nil?)
- options = options + " -w #{password}"
- end
- if not email.nil?
- options = options + " -U #{email} "
- end
+ options = "-P #{file_path} -d #{dibs_address} -D #{distribution} --async -U #{email} -w \'#{password}\' "
cmd = "#{DIBS_PATH}/build-cli register #{options}"
puts "Register command"
return execute_shell_return(cmd)
end
- def Utils.sbi_cancel_command(job_id, password)
+ def Utils.sbi_cancel_command(job_id, email, password)
dibs_config = Server_config.find(:first, :conditions => ["property = \"port\""])
if dibs_config.nil?
raise RuntimeError, "Can't find server port information"
raise RuntimeError, "Invalid job id : #{job_id}"
end
- options = "-d #{dibs_address} "
- options = options + " -j #{job_id}"
- if (not password.nil?)
- options = options + " -w #{password}"
- end
+ options = "-d #{dibs_address} -j #{job_id} -U #{email} -w \'#{password}\' "
cmd = "#{DIBS_PATH}/build-cli cancel #{options}"
puts "Cancel command"
class Project < ActiveRecord::Base
- attr_accessible :id, :distribution_id, :name, :ptype, :password, :status
+ attr_accessible :id, :distribution_id, :name, :ptype, :status
end
class User < ActiveRecord::Base
# has_many :user_groups
# has_many :groups, :through => :user_groups
- attr_accessible :id, :email, :password, :password_confirmation, :name
+ attr_accessible :id, :email, :password, :password_confirmation, :password_hash, :name
attr_accessor :password
before_save :encrypt_password
<label for="adminProjectAddGit-name"> Project name </label>
<input type="text" id="adminProjectAddGit-name" name="name" />
<br>
- <label for="adminProjectAddGit-password"> Project password </label>
- <input type="text" id="adminProjectAddGit-password" name="password" />
- <br>
<label for="adminProjectAddGit-address"> Git address </label>
<input type="text" id="adminProjectAddGit-address" name="address" />
<br>
<label for="adminProjectAddBinary-name"> Project name </label>
<input type="text" id="adminProjectAddBinary-name" name="name" />
<br>
- <label for="adminProjectAddBinary-password"> Project password</label>
- <input type="text" id="adminProjectAddBinary-password" name="password" />
- <br>
<label for="adminProjectAddBinary-packagename"> Pakcage name</label>
<input type="text" id="adminProjectAddBinary-packagename" name="name" />
<br>
<label for="adminProjectModifyBinary-name"> Project name </label>
<input type="text" id="adminProjectModifyBinary-name" name="name" />
<br>
- <label for="adminProjectModifyBinary-password"> Project password</label>
- <input type="text" id="adminProjectModifyBinary-password" name="name" />
- <br>
<label for="adminProjectModifyBinary-status"> Project status </label>
<select id="adminProjectModifyBinary-status" name="status" >
</select>
<label for="adminProjectModifyGit-name"> Project name </label>
<input type="text" id="adminProjectModifyGit-name" name="name" />
<br>
- <label for="adminProjectModifyGit-password"> Project password</label>
- <input type="text" id="adminProjectModifyGit-password" name="password" />
- <br>
<label for="adminProjectModifyGit-status"> Project status </label>
<select id="adminProjectModifyGit-status" name="status" >
</select>
</form>
</div>
<div align="right" style="font-size: 10px">
- <a href=# onClick="adminServerModifyServerInfo()" data-role="button" data-inline="true" data-mini="true" data-icon="gear" id="adminServer-modifyServerInfo-save"Save</a>
+ <a href=# onClick="adminServerModifyServerInfo()" data-role="button" data-inline="true" data-mini="true" data-icon="gear" id="adminServer-modifyServerInfo-save">Save</a>
<a href=# onClick="adminServerRemoveServerInfo()" data-role="button" data-inline="true" data-mini="true" data-icon="minus">Delete</a>
</div>
</div><!-- /page -->
function adminProjectAddGitInit() {
$("#adminProjectAddGit-name").val("");
- $("#adminProjectAddGit-password").val("");
$("#adminProjectAddGit-address").val("");
$("#adminProjectAddGit-branch").val("");
$("#adminProjectAddGit-status").empty();
function adminProjectAddBinaryInit() {
$("#adminProjectAddBinary-name").val("");
- $("#adminProjectAddBinary-password").val("");
$("#adminProjectAddBinary-packagename").val("");
$("#adminProjectAddBinary-status").empty();
var changeInfoItem;
var distId = $("#adminProject-distribution-select option:selected").val();
var name = $("#adminProjectAddGit-name").val();
- var password = $("#adminProjectAddGit-password").val();
var address = $("#adminProjectAddGit-address").val();
var branch = $("#adminProjectAddGit-branch").val();
var projectStatus = $("#adminProjectAddGit-status option:selected").val();
}
}
- if(name == "" || password == "" || address == "" || branch == ""){
- alert("You must input full data(Project name, Git password, Git address, Branch)");
+ if(name == "" || address == "" || branch == ""){
+ alert("You must input full data(Project name, Git address, Branch)");
return;
}
- changeInfoItem = {"DistId":distId, "Name":name, "ProjectPass":password, "Address":address, "Branch":branch, "ProjectStatus":projectStatus, "ProjectType":"GIT", "OSIdList":selectOsList.toString()};
+ changeInfoItem = {"DistId":distId, "Name":name, "Address":address, "Branch":branch, "ProjectStatus":projectStatus, "ProjectType":"GIT", "OSIdList":selectOsList.toString()};
changeInfoList.push(changeInfoItem);
addProject(changeInfoList, function () {
var changeInfoItem;
var distId = $("#adminProject-distribution-select option:selected").val();
var name = $("#adminProjectAddBinary-name").val();
- var password = $("#adminProjectAddBinary-password").val();
var pkgName = $("#adminProjectAddBinary-packagename").val();
var projectStatus = $("#adminProjectAddBinary-status option:selected").val();
var selectOsList = [];
return;
}
- changeInfoItem = {"DistId":distId, "Name":name, "ProjectPass":password, "PackageName":pkgName, "ProjectStatus":projectStatus, "ProjectType":"BINARY", "OSIdList":selectOsList.toString()};
+ changeInfoItem = {"DistId":distId, "Name":name, "PackageName":pkgName, "ProjectStatus":projectStatus, "ProjectType":"BINARY", "OSIdList":selectOsList.toString()};
changeInfoList.push(changeInfoItem);
addProject(changeInfoList, function () {
function adminProjectModifyBinaryProjectInit(projectId) {
var projectName = $("#adminProject-binary-"+projectId+"-name").html();
var projectStatus = $("#adminProject-binary-"+projectId+"-status").html();
- var projectPassword = $("#adminProject-binary-"+projectId+"-password").html();
var packageName = $("#adminProject-binary-"+projectId+"-packageName").html();
$("#adminProjectModifyBinary-save").attr("onClick", "");
$("#adminProjectModifyBinary-id").val(projectId);
$("#adminProjectModifyBinary-name").val(projectName);
- $("#adminProjectModifyBinary-password").val(projectPassword);
$("#adminProjectModifyBinary-packageName").val(packageName);
$("#adminProjectModifyBinary-status").empty();
$("#adminProjectModifyBinary-os").empty();
var projectAddress = $("#adminProject-git-"+projectId+"-address").html();
var projectBranch = $("#adminProject-git-"+projectId+"-branch").html();
var projectStatus = $("#adminProject-git-"+projectId+"-status").html();
- var projectPassword = $("#adminProject-git-"+projectId+"-password").html();
$("#adminProjectModifyGit-save").attr("onClick", "");
$("#adminProjectModifyGit-id").val(projectId);
$("#adminProjectModifyGit-name").val(projectName);
- $("#adminProjectModifyGit-password").val(projectPassword);
$("#adminProjectModifyGit-address").val(projectAddress);
$("#adminProjectModifyGit-branch").val(projectBranch);
$("#adminProjectModifyGit-status").empty();
var changeInfoItem;
var projectId = $("#adminProjectModifyBinary-id").val();
var projectName = $("#adminProjectModifyBinary-name").val();
- var projectPassword = $("#adminProjectModifyBinary-password").val();
var projectStatus = $("#adminProjectModifyBinary-status option:selected").val();
var packageName = $("#adminProjectModifyBinary-packageName").val();
var selectOsList = [];
selectOsList.push($(this).val());
});
- if(projectId == "" || projectName == "" || projectPassword == "" || packageName == ""){
+ if(projectId == "" || projectName == "" || packageName == ""){
alert("You must input full data");
return;
}
- changeInfoItem = {"Id":projectId, "Name":projectName, "ProjectPass":projectPassword, "ProjectStatus":projectStatus, "PackageName":packageName, "OSIdList":selectOsList.toString()};
+ changeInfoItem = {"Id":projectId, "Name":projectName, "ProjectStatus":projectStatus, "PackageName":packageName, "OSIdList":selectOsList.toString()};
changeInfoList.push(changeInfoItem);
modifyProject(changeInfoList, function () {
var changeInfoItem;
var projectId = $("#adminProjectModifyGit-id").val();
var projectName = $("#adminProjectModifyGit-name").val();
- var projectPassword = $("#adminProjectModifyGit-password").val();
var projectAddress = $("#adminProjectModifyGit-address").val();
var projectBranch = $("#adminProjectModifyGit-branch").val();
var projectStatus = $("#adminProjectModifyGit-status option:selected").val();
selectOsList.push($(this).val());
});
- if(projectId == "" || projectName == "" || projectPassword == "" || projectAddress == "" || projectBranch == ""){
+ if(projectId == "" || projectName == "" || projectAddress == "" || projectBranch == ""){
alert("You must input full data");
return;
}
- changeInfoItem = {"Id":projectId, "Name":projectName, "ProjectPass":projectPassword, "ProjectAddress":projectAddress, "ProjectBranch":projectBranch, "ProjectStatus":projectStatus, "OSIdList":selectOsList.toString()};
+ changeInfoItem = {"Id":projectId, "Name":projectName, "ProjectAddress":projectAddress, "ProjectBranch":projectBranch, "ProjectStatus":projectStatus, "OSIdList":selectOsList.toString()};
changeInfoList.push(changeInfoItem);
modifyProject(changeInfoList, function () {
cell.setAttribute('id',"adminProject-git-"+id+"-status");
cell.innerHTML = projectStatus;
- cell = row.insertCell(-1);
- cell.setAttribute('hidden',"hidden");
- cell.setAttribute('id',"adminProject-git-"+id+"-password");
- cell.innerHTML = projectPassword;
-
cell = row.insertCell(-1);
var button = document.createElement('a');
button.setAttribute('href','#adminProjectModifyGit');
cell.setAttribute('id',"adminProject-binary-"+id+"-status");
cell.innerHTML = projectStatus;
- cell = row.insertCell(-1);
- cell.setAttribute('hidden',"hidden");
- cell.setAttribute('id',"adminProject-binary-"+id+"-password");
- cell.innerHTML = projectPassword;
-
cell = row.insertCell(-1);
var button = document.createElement('a');
button.setAttribute('href','#adminProjectModifyBinary');