merge
This commit is contained in:
commit
c7b19db4b6
|
@ -1,6 +1,7 @@
|
||||||
class ProductsController < ApplicationController
|
class ProductsController < ApplicationController
|
||||||
before_filter :authenticate_user!, :except => [:product_begin, :product_end]
|
before_filter :authenticate_user!, :except => [:product_begin, :product_end]
|
||||||
before_filter :find_product_by_name, :only => [:product_begin, :product_end]
|
before_filter :find_product_by_name, :only => [:product_begin, :product_end]
|
||||||
|
before_filter :find_platform, :except => [:product_begin, :product_end]
|
||||||
|
|
||||||
def product_begin
|
def product_begin
|
||||||
@product.build_status = Product::STATUS::BUILDING
|
@product.build_status = Product::STATUS::BUILDING
|
||||||
|
@ -17,10 +18,33 @@ class ProductsController < ApplicationController
|
||||||
|
|
||||||
render :nothing => true, :status => 200
|
render :nothing => true, :status => 200
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
@product = @platform.products.new
|
||||||
|
@product.ks = DEFAULT_KS
|
||||||
|
@product.menu = DEFAULT_MENU
|
||||||
|
@product.counter = DEFAULT_COUNTER
|
||||||
|
@product.build = DEFAULT_BUILD
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
@product = @platform.products.new params[:product]
|
||||||
|
if @product.save
|
||||||
|
flash[:notice] = ''
|
||||||
|
redirect_to @platform
|
||||||
|
else
|
||||||
|
flash[:error] = ''
|
||||||
|
render :action => :new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def find_product_by_name
|
def find_product_by_name
|
||||||
@product = Product.find_by_name params[:product_name]
|
@product = Product.find_by_name params[:product_name]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_platform
|
||||||
|
@platform = Platform.find params[:platform_id]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,6 +8,7 @@ class Platform < ActiveRecord::Base
|
||||||
|
|
||||||
before_create :xml_rpc_create
|
before_create :xml_rpc_create
|
||||||
before_destroy :xml_rpc_destroy
|
before_destroy :xml_rpc_destroy
|
||||||
|
before_update :check_freezing
|
||||||
|
|
||||||
|
|
||||||
def path
|
def path
|
||||||
|
@ -65,4 +66,10 @@ class Platform < ActiveRecord::Base
|
||||||
raise "Failed to delete platform #{name}."
|
raise "Failed to delete platform #{name}."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check_freezing
|
||||||
|
if released_changed?
|
||||||
|
BuildServer.freeze_platform self.name
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,4 +8,6 @@ class Product < ActiveRecord::Base
|
||||||
validates :build_status, :inclusion => { :in => [ NEVER_BUILT, BUILD_COMPLETED, BUILD_FAILED ] }
|
validates :build_status, :inclusion => { :in => [ NEVER_BUILT, BUILD_COMPLETED, BUILD_FAILED ] }
|
||||||
|
|
||||||
belongs_to :platform
|
belongs_to :platform
|
||||||
|
|
||||||
|
scope :recent, order("name ASC")
|
||||||
end
|
end
|
||||||
|
|
|
@ -60,5 +60,27 @@
|
||||||
.actions-bar.wat-cf
|
.actions-bar.wat-cf
|
||||||
.actions
|
.actions
|
||||||
|
|
||||||
|
%a{ :name => "producs" }
|
||||||
|
.block
|
||||||
|
.secondary-navigation
|
||||||
|
%ul.wat-cf
|
||||||
|
%li.first.active= link_to t("layout.products.list"), platform_path(@platform) + "#products"
|
||||||
|
%li= link_to t("layout.products.new"), new_platform_product_path(@platform)
|
||||||
|
.content
|
||||||
|
%h2.title
|
||||||
|
= t("layout.products.list_header")
|
||||||
|
.inner
|
||||||
|
%table.table
|
||||||
|
%tr
|
||||||
|
%th.first= t("activerecord.attributes.product.name")
|
||||||
|
%th.last
|
||||||
|
- @platform.products.recent.each do |product|
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td
|
||||||
|
= link_to product.name, platform_product_path(@platform, product)
|
||||||
|
%td.last
|
||||||
|
#{link_to t("layout.show"), platform_product_path(@platform, product)} | #{link_to t("layout.delete"), platform_product_path(@platform, product), :method => :delete, :confirm => t("layout.products.confirm_delete")}
|
||||||
|
.actions-bar.wat-cf
|
||||||
|
.actions
|
||||||
-#- content_for :sidebar do
|
-#- content_for :sidebar do
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
.group
|
||||||
|
= f.label :name, t("activerecord.attributes.product.name"), :class => :label
|
||||||
|
= f.text_field :name, :class => 'text_field'
|
||||||
|
.group
|
||||||
|
= f.label :build, t("activerecord.attributes.product.build"), :class => :label
|
||||||
|
= f.text_area :build, :class => 'text_field', :cols => 80
|
||||||
|
.group
|
||||||
|
= f.label :counter, t("activerecord.attributes.product.counter"), :class => :label
|
||||||
|
= f.text_area :counter, :class => 'text_field', :cols => 80
|
||||||
|
.group
|
||||||
|
= f.label :ks, t("activerecord.attributes.product.ks"), :class => :label
|
||||||
|
= f.text_area :ks, :class => 'text_field', :cols => 80
|
||||||
|
.group
|
||||||
|
= f.label :menu, t("activerecord.attributes.product.menu"), :class => :label
|
||||||
|
= f.text_area :menu, :class => 'text_field', :cols => 80
|
||||||
|
|
||||||
|
.group.navform.wat-cf
|
||||||
|
%button.button{:type => "submit"}
|
||||||
|
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
||||||
|
= t("layout.save")
|
||||||
|
%span.text_button_padding= t("layout.or")
|
||||||
|
= link_to t("layout.cancel"), platform_path(@platform), :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
.block
|
||||||
|
.secondary-navigation
|
||||||
|
%ul.wat-cf
|
||||||
|
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
||||||
|
%li.active= link_to t("layout.products.new"), new_platform_product_path(@platform)
|
||||||
|
.content
|
||||||
|
%h2.title= t("layout.products.new_header")
|
||||||
|
.inner
|
||||||
|
= form_for [@platform, @product], :html => { :class => :form } do |f|
|
||||||
|
= render :partial => "form", :locals => {:f => f}
|
||||||
|
|
||||||
|
-#- content_for :sidebar, render(:partial => 'sidebar')
|
|
@ -0,0 +1,238 @@
|
||||||
|
DEFAULT_KS = <<-eos
|
||||||
|
timezone Europe/Moscow
|
||||||
|
auth --useshadow --enablemd5
|
||||||
|
selinux --disabled
|
||||||
|
firewall --enabled
|
||||||
|
firstboot --enabled
|
||||||
|
part / --size 8692
|
||||||
|
|
||||||
|
services --enabled=acpid,alsa,atd,atieventsd,avahi-daemon,dm,haldaemon,iptables,ip6tables,irqbalance,mandi,messagebus,msec,netfs,network,network-up,numlock,partmon,resolvconf,rpcbind,rsyslog,shorewall,sound,stop-bootlogd,udev-post,cups,mandrake_everytime,mandrake_firsttime
|
||||||
|
services --disabled=kudzu,sshd,crond,auditd,autofs,fuse,pptp,pppoe,ntpd
|
||||||
|
|
||||||
|
repo --name=Main --baseurl=http://10.3.0.12/iso/repository/rpm/external/mdv/cooker/cooker/media/main/release/
|
||||||
|
#repo --name=Non-Free --baseurl=file:///mnt/BIG/devel/cooker/#ARCH#/media/non-free/release
|
||||||
|
#repo --name=Livecd --baseurl=file:///home/LIVE/rpm/i586/
|
||||||
|
repo --name=Rosa.add --baseurl=http://10.3.0.12/iso/repository/Projects/mdv/sasha/ROSA.add.2011/RPMS
|
||||||
|
#repo --name=Contrib --baseurl=http://10.3.0.12/iso/repository/rpm/external/mdv/cooker/cooker/media/contrib/release/
|
||||||
|
|
||||||
|
%packages
|
||||||
|
%include #PATH#/mdv-kde-one.lst.3
|
||||||
|
#%include #PATH#/mdv-base.lst
|
||||||
|
%end
|
||||||
|
|
||||||
|
%post
|
||||||
|
|
||||||
|
echo "ROSA Desktop 2011.beta" > /etc/redhat-release
|
||||||
|
echo "ROSA Desktop 2011.beta" > /etc/issue
|
||||||
|
echo "ROSA Desktop 2011.beta" > /etc/issue.net
|
||||||
|
echo "ROSA Desktop 2011.beta" > /etc/system-release
|
||||||
|
|
||||||
|
|
||||||
|
#### WORKAROUND FOR DBUS ###
|
||||||
|
/usr/sbin/useradd messagebus -d / -s /bin/false
|
||||||
|
#### END OF IT ####
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
/bin/ls -l /boot/
|
||||||
|
echo ""
|
||||||
|
echo "###################################### Make initrd symlink >> "
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
/usr/sbin/update-alternatives --set mkinitrd /sbin/mkinitrd-dracut
|
||||||
|
rm -rf /boot/initrd-*
|
||||||
|
|
||||||
|
|
||||||
|
# adding life user
|
||||||
|
/usr/sbin/adduser live
|
||||||
|
/usr/bin/passwd -d live
|
||||||
|
/bin/mkdir -p /home/live
|
||||||
|
/bin/cp -rfT /etc/skel /home/live/
|
||||||
|
/bin/chown -R live:live /home/live
|
||||||
|
|
||||||
|
|
||||||
|
# ldetect stuff
|
||||||
|
/usr/sbin/update-ldetect-lst
|
||||||
|
|
||||||
|
# setting up network manager by default
|
||||||
|
pushd /etc/sysconfig/network-scripts
|
||||||
|
for iface in eth0 wlan0; do
|
||||||
|
cat > ifcfg-$iface << EOF
|
||||||
|
DEVICE=eth0
|
||||||
|
ONBOOT=yes
|
||||||
|
NM_CONTROLLED=yes
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
#### workaround for NETWORKMANAGER
|
||||||
|
|
||||||
|
systemctl enable networkmanager.service
|
||||||
|
|
||||||
|
### END OF IT
|
||||||
|
|
||||||
|
# kde look-and-feel, should do into kde-common package
|
||||||
|
#sed -i 's/widgetStyle=iaorakde/widgetStyle=qtcurve/g' /var/lib/mandriva/kde4-profiles/common/share/config/kdeglobals
|
||||||
|
#sed -i 's/colorScheme=Ia Ora Smooth/colorScheme=Norway/g' /var/lib/mandriva/kde4-profiles/common/share/config/kdeglobals
|
||||||
|
|
||||||
|
# default background
|
||||||
|
pushd /usr/share/mdk/backgrounds/
|
||||||
|
ln -s rosa.jpg default.jpg
|
||||||
|
#popd
|
||||||
|
|
||||||
|
# mtab
|
||||||
|
pushd /etc/
|
||||||
|
ln -sf /proc/mounts mtab
|
||||||
|
popd
|
||||||
|
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# kernel
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sysfs must be mounted for dracut to work!
|
||||||
|
#
|
||||||
|
mount -t sysfs /sys /sys
|
||||||
|
|
||||||
|
pushd /lib/modules/
|
||||||
|
KERNEL=$(echo *)
|
||||||
|
popd
|
||||||
|
echo
|
||||||
|
echo Generating kernel. System kernel is `uname -r`, installed kernels are:
|
||||||
|
rpm -qa kernel-*
|
||||||
|
echo Detected kernel version: $KERNEL
|
||||||
|
|
||||||
|
/sbin/dracut --add-drivers "sr-mod" /boot/initramfs-$KERNEL.img $KERNEL
|
||||||
|
ls -l /boot/
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# echo
|
||||||
|
# echo
|
||||||
|
# echo "Giving you a shell to fix stuff, good luck!"
|
||||||
|
# echo
|
||||||
|
# echo
|
||||||
|
# echo
|
||||||
|
|
||||||
|
# /bin/bash
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "###################################### Build ISO >> "
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
%post --nochroot
|
||||||
|
|
||||||
|
cp -rfT #PATH#/extraconfig/etc $INSTALL_ROOT/etc/
|
||||||
|
|
||||||
|
cp -f #PATH#/root/GPL $LIVE_ROOT/
|
||||||
|
mkdir -p $LIVE_ROOT/Addons
|
||||||
|
cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/Addons/
|
||||||
|
chmod +x $LIVE_ROOT/Addons/livecd-iso-to-disk
|
||||||
|
rpm --root $INSTALL_ROOT -qa | sort > $LIVE_ROOT/rpm.lst
|
||||||
|
|
||||||
|
%end
|
||||||
|
|
||||||
|
eos
|
||||||
|
|
||||||
|
DEFAULT_MENU=<<-eos
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<menu_config>
|
||||||
|
<welcome_message>
|
||||||
|
Welcome to
|
||||||
|
</welcome_message>
|
||||||
|
<product_name>
|
||||||
|
ROSA 2011 Beta
|
||||||
|
</product_name>
|
||||||
|
<item name="Launch system">
|
||||||
|
vga=788
|
||||||
|
desktop
|
||||||
|
nopat
|
||||||
|
rd_NO_LUKS
|
||||||
|
rd_NO_MD
|
||||||
|
noiswmd
|
||||||
|
splash=silent
|
||||||
|
</item>
|
||||||
|
<item name="Install system">
|
||||||
|
vga=788
|
||||||
|
desktop
|
||||||
|
nopat
|
||||||
|
rd_NO_LUKS
|
||||||
|
rd_NO_MD
|
||||||
|
noiswmd
|
||||||
|
splash=silent
|
||||||
|
install
|
||||||
|
</item>
|
||||||
|
<background_img_path>
|
||||||
|
/home/LIVE/ROSA.2011/welcome.jpg
|
||||||
|
</background_img_path>
|
||||||
|
<font_path>
|
||||||
|
/home/LIVE/ROSA.2011/cyra8x16.psf
|
||||||
|
</font_path>
|
||||||
|
</menu_config>
|
||||||
|
eos
|
||||||
|
|
||||||
|
DEFAULT_COUNTER=<<-eos
|
||||||
|
63
|
||||||
|
eos
|
||||||
|
|
||||||
|
DEFAULT_BUILD=<<-eos
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#ARCHS="i586 x86_64"
|
||||||
|
#ARCHS="i586"
|
||||||
|
|
||||||
|
#if [ ! "$UID" = "0" ]; then#
|
||||||
|
# echo "Restarting as root.."
|
||||||
|
# exec sudo $0
|
||||||
|
#fi
|
||||||
|
|
||||||
|
# a temporary hack to make python 2.6 work
|
||||||
|
export PYTHONPATH=/usr/lib/python2.6/site-packages/
|
||||||
|
|
||||||
|
DIRNAME=$(dirname $0)
|
||||||
|
cd $DIRNAME
|
||||||
|
|
||||||
|
build_root="/home/LIVE/"
|
||||||
|
|
||||||
|
d=`date +%Y.%m.%d-%H.%M`
|
||||||
|
|
||||||
|
product_id="ROSA.2011"
|
||||||
|
product_name_file="${build_root}/${product_id}/.name.txt" ; touch ${product_name_file}
|
||||||
|
|
||||||
|
#ks="${build_root}/${product_id}/.ks"
|
||||||
|
|
||||||
|
ks="${build_root}/${product_id}/.ks"
|
||||||
|
counter="${build_root}/${product_id}/.counter"
|
||||||
|
menu="${build_root}/${product_id}/.menu.xml"
|
||||||
|
|
||||||
|
touch ${counter}
|
||||||
|
|
||||||
|
i=`cat ${counter}`
|
||||||
|
i=`expr $i + 1`
|
||||||
|
|
||||||
|
echo $i > ${counter}
|
||||||
|
|
||||||
|
echo "$i.$d" > ${build_root}/${product_id}/version.txt
|
||||||
|
|
||||||
|
# build different architectures
|
||||||
|
|
||||||
|
#for arch in $ARCHS; do
|
||||||
|
cp -f ${ks}.template ${ks}
|
||||||
|
# sed -i -e "s:#ARCH#:$arch:g" ${ks}
|
||||||
|
sed -i -e "s:#PATH#:${build_root}/${product_id}:g" ${ks}
|
||||||
|
sed -i -e "s:#PATH#:${build_root}/${product_id}:g" ${menu}
|
||||||
|
|
||||||
|
mkdir -p $build_root/iso/${product_id}/
|
||||||
|
# run with lower priority
|
||||||
|
livecd-creator --config=${ks} --fslabel=${product_id}.$i --menu-config=${build_root}/${product_id}/.menu.xml
|
||||||
|
|
||||||
|
mv ${product_id}.$i.iso $build_root/iso/${product_id}/
|
||||||
|
#md5sum /iso/${product_id}/${product_id}.$i.iso > /iso/${product_id}/${product_id}.$i.iso.md5sum
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo " ALL DONE! $build_root/iso/${product_id}/${product_id}.$i.iso"
|
||||||
|
echo ""
|
||||||
|
eos
|
|
@ -54,6 +54,12 @@ ru:
|
||||||
back_to_the_list: ⇐ К списку репозиториев
|
back_to_the_list: ⇐ К списку репозиториев
|
||||||
confirm_delete: Вы уверены, что хотите удалить этот репозиторий?
|
confirm_delete: Вы уверены, что хотите удалить этот репозиторий?
|
||||||
current_repository_header: Текущий репозиторий
|
current_repository_header: Текущий репозиторий
|
||||||
|
products:
|
||||||
|
list: Список
|
||||||
|
new: Новый продукт
|
||||||
|
list_header: Продукты
|
||||||
|
new_header: Новый продукт
|
||||||
|
confirm_delete: Вы уверены, что хотите удалить этот продукт?
|
||||||
projects:
|
projects:
|
||||||
list: Список
|
list: Список
|
||||||
list_header: Проекты
|
list_header: Проекты
|
||||||
|
@ -166,8 +172,9 @@ ru:
|
||||||
project: Проект
|
project: Проект
|
||||||
rpm: RPM
|
rpm: RPM
|
||||||
user: Пользователь
|
user: Пользователь
|
||||||
|
product: Продукт
|
||||||
build_list: Сборочный лист
|
build_list: Сборочный лист
|
||||||
build_list item: Элемент сборочного листа
|
build_list_item: Элемент сборочного листа
|
||||||
|
|
||||||
attributes:
|
attributes:
|
||||||
repository:
|
repository:
|
||||||
|
@ -175,8 +182,20 @@ ru:
|
||||||
platform_id: Платформа
|
platform_id: Платформа
|
||||||
platform: Платформа
|
platform: Платформа
|
||||||
unixname: Unixname
|
unixname: Unixname
|
||||||
created_at: Создана
|
created_at: Создан
|
||||||
updated_at: Обновлена
|
updated_at: Обновлен
|
||||||
|
|
||||||
|
product:
|
||||||
|
name: Название
|
||||||
|
platform_id: Платформа
|
||||||
|
build_status: Статус последней сборки
|
||||||
|
build_path: Путь к iso
|
||||||
|
created_at: Создан
|
||||||
|
updated_at: Обновлен
|
||||||
|
ks: Содержимое .ks.template
|
||||||
|
counter: Содержимое .counter
|
||||||
|
build: Содержимое build
|
||||||
|
menu: Содержимое .menu.xml
|
||||||
|
|
||||||
arch:
|
arch:
|
||||||
name: Название
|
name: Название
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
class AddFieldsToProducts < ActiveRecord::Migration
|
||||||
|
def self.up
|
||||||
|
add_column :products, :build, :text
|
||||||
|
add_column :products, :counter, :text
|
||||||
|
add_column :products, :ks, :text
|
||||||
|
add_column :products, :menu, :text
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.down
|
||||||
|
remove_column :products, :menu
|
||||||
|
remove_column :products, :ks
|
||||||
|
remove_column :products, :counter
|
||||||
|
remove_column :products, :build
|
||||||
|
end
|
||||||
|
end
|
|
@ -89,6 +89,10 @@ ActiveRecord::Schema.define(:version => 20110411160955) do
|
||||||
t.string "build_path"
|
t.string "build_path"
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
|
t.text "build"
|
||||||
|
t.text "counter"
|
||||||
|
t.text "ks"
|
||||||
|
t.text "menu"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "projects", :force => true do |t|
|
create_table "projects", :force => true do |t|
|
||||||
|
|
Loading…
Reference in New Issue