[copr] master: comment config copr-be.conf and add defaults (a5af91d)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit a5af91de2236e540a3fd5592fce709200f2abcdc
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Thu Sep 12 14:43:17 2013 +0200
comment config copr-be.conf and add defaults
defaults are stored in copr-be.py
>---------------------------------------------------------------
copr-be.conf.example | 21 ++++++++++++++++++++-
copr-be.py | 2 +-
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/copr-be.conf.example b/copr-be.conf.example
index d19953e..da24b34 100644
--- a/copr-be.conf.example
+++ b/copr-be.conf.example
@@ -1,37 +1,56 @@
[backend]
# URL where are results visible
+# default is http://copr
results_baseurl=http://copr-be.cloud.fedoraproject.org/results
# ??? What is this
+# default is http://coprs/rest/api
frontend_url=http://copr-fe.cloud.fedoraproject.org/backend
# must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
+# default is PASSWORDHERE but you really should change it. really.
frontend_auth=backend_password_from_fe_config
# path to ansible playbook which spawns builder
# see /usr/share/copr*/playbooks/ for examples
+# default is /etc/copr/builder_playbook.yml
spawn_playbook=/srv/copr-work/provision/builderpb.yml
# path to ansible playbook which terminate builder
+# default is /etc/copr/terminate_playbook.yml
terminate_playbook=/srv/copr-work/provision/terminatepb.yml
# directory where jobs are stored
+# no defaults
jobsdir=/srv/copr-work/jobs
# directory where results are stored
# should be accessible from web using 'results_baseurl' URL
+# no default
destdir=/var/lib/copr/results
+# default is 10
sleeptime=30
+# default is 8
num_workers=5
# path to log file
-logfile=/var/log/copr/copr.log
+# default is /var/log/copr/backend.log
+logfile=/var/log/copr/backend.log
+# default is /var/log/copr/workers/
worker_logdir=/var/log/copr/workers/
+# exit on worker failure
+# default is false
+#exit_on_worker=false
+
+# Deamonize if true. Runs in foreground if false.
+# default is true
+#daemonize=true
[builder]
+# default is 1800
timeout=3600
diff --git a/copr-be.py b/copr-be.py
index dfcd4c0..1bac8ff 100644
--- a/copr-be.py
+++ b/copr-be.py
@@ -170,7 +170,7 @@ class CoprBackend(object):
opts.num_workers = int(_get_conf(cp, 'backend', 'num_workers', 8))
opts.timeout = int(_get_conf(cp, 'builder', 'timeout', 1800))
opts.logfile = _get_conf(cp, 'backend', 'logfile', '/var/log/copr/backend.log')
- opts.worker_logdir = _get_conf(cp, 'backend', 'worker_logdir', '/var/log/copr/worker/')
+ opts.worker_logdir = _get_conf(cp, 'backend', 'worker_logdir', '/var/log/copr/workers/')
# thoughts for later
# ssh key for connecting to builders?
# cloud key stuff?
10 years, 7 months
[copr] master: put examples of builderpb.yml and terminatepb.yml into doc dir (ffc3a80)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit ffc3a80f2e3e83f836ab506a6121d9e6f3816b42
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Thu Sep 12 14:30:00 2013 +0200
put examples of builderpb.yml and terminatepb.yml into doc dir
>---------------------------------------------------------------
copr-be.conf.example | 1 +
copr-setup.txt | 1 +
copr.spec | 2 +
playbooks/builderpb.yml | 75 +++++++++++++++++++++++++++++++++++++++++++++
playbooks/terminatepb.yml | 16 +++++++++
5 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/copr-be.conf.example b/copr-be.conf.example
index bde41cd..d19953e 100644
--- a/copr-be.conf.example
+++ b/copr-be.conf.example
@@ -10,6 +10,7 @@ frontend_url=http://copr-fe.cloud.fedoraproject.org/backend
frontend_auth=backend_password_from_fe_config
# path to ansible playbook which spawns builder
+# see /usr/share/copr*/playbooks/ for examples
spawn_playbook=/srv/copr-work/provision/builderpb.yml
# path to ansible playbook which terminate builder
diff --git a/copr-setup.txt b/copr-setup.txt
index 4f955a6..e6a6381 100644
--- a/copr-setup.txt
+++ b/copr-setup.txt
@@ -20,6 +20,7 @@ ansible playbook:
- frontend_auth must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
- spawn_playbook - path to ansible playbook which spawns builder
- terminate_playbook - path to ansible playbook which terminate builder
+ - you can see /usr/share/copr*/playbooks/ for examples
- others variables can be edited as well, but it is optional
Required pkgs:
diff --git a/copr.spec b/copr.spec
index 96cb8fa..c5e4e89 100644
--- a/copr.spec
+++ b/copr.spec
@@ -156,6 +156,7 @@ install -m 644 man/copr-cli.1 %{buildroot}/%{_mandir}/man1/
#doc
cp -a documentation/python-doc %{buildroot}%{_pkgdocdir}/
+cp -a playbooks %{buildroot}%{_pkgdocdir}/
%pre backend
getent group copr >/dev/null || groupadd -r copr
@@ -182,6 +183,7 @@ service httpd condrestart
%ghost %{_var}/log/copr/copr.log
%ghost %{_var}/log/copr/workers/worker-*.log
%doc %{_pkgdocdir}/lighttpd
+%doc %{_pkgdocdir}/playbooks
%config(noreplace) %{_sysconfdir}/copr/copr-be.conf
%{_datadir}/copr/backend
diff --git a/playbooks/builderpb.yml b/playbooks/builderpb.yml
new file mode 100644
index 0000000..be486f4
--- /dev/null
+++ b/playbooks/builderpb.yml
@@ -0,0 +1,75 @@
+---
+- name: check/create instance
+ hosts: localhost
+ user: copr
+ gather_facts: False
+
+ vars:
+ - keypair: buildsys
+ - image: ami-0000000e
+ - instance_type: m1.builder
+ - security_group: builder
+
+ tasks:
+ - name: spin it up
+ local_action: ec2 keypair=${keypair} image=${image} type=${instance_type} wait=true group=${security_group}
+ register: inst_res
+
+ - name: get its internal ip b/c openstack is sometimes stupid
+ local_action: shell euca-describe-instances ${inst_res.instances[0].id} | grep INSTANCE | cut -f 18
+ register: int_ip
+
+ - name: add it to the special group
+ local_action: add_host hostname=${int_ip.stdout} groupname=builder_temp_group
+
+ - name: wait for the host to be hot
+ local_action: wait_for host=${int_ip.stdout} port=22 delay=5 timeout=600
+
+
+- hosts: builder_temp_group
+ user: root
+ vars:
+ - files: files/
+
+ tasks:
+ - name: edit hostname to be instance name
+ action: shell hostname `curl -s http://169.254.169.254/2009-04-04/meta-data/instance-id`
+
+ - name: add repos
+ action: copy src=$files/$item dest=/etc/yum.repos.d/$item
+ with_items:
+ - builder.repo
+ - epel6.repo
+
+ - name: install pkgs
+ action: yum state=present pkg=$item
+ with_items:
+ - mock
+ - createrepo
+ - yum-utils
+ - rsync
+ - openssh-clients
+
+ - name: make sure newest rpm
+ action: yum name=rpm state=latest
+
+ - name: mockbuilder user
+ action: user name=mockbuilder groups=mock
+
+ - name: mockbuilder .ssh
+ action: file state=directory path=/home/mockbuilder/.ssh mode=0700 owner=mockbuilder group=mockbuilder
+
+ - name: mockbuilder authorized_keys
+ action: authorized_key user=mockbuilder key='$FILE(${files}/buildsys.pub)'
+
+ - name: put updated mock configs into /etc/mock
+ action: copy src=$files/mock/$item dest=/etc/mock
+ with_items:
+ - site-defaults.cfg
+ - epel-5-x86_64.cfg
+ - epel-5-i386.cfg
+
+ - name: put updated mockchain into /usr/bin
+ action: copy src=$files/mockchain dest=/usr/bin/mockchain mode=0755 owner=root group=root
+
+
diff --git a/playbooks/terminatepb.yml b/playbooks/terminatepb.yml
new file mode 100644
index 0000000..a95f810
--- /dev/null
+++ b/playbooks/terminatepb.yml
@@ -0,0 +1,16 @@
+---
+- name: terminate instance
+ hosts: all
+ user: root
+ gather_facts: False
+
+ tasks:
+ - name: find the instance id from the builder
+ action: command curl -s http://169.254.169.254/latest/meta-data/instance-id
+ register: instanceid
+
+ - name: terminate it
+ local_action: command euca-terminate-instances ${instanceid.stdout}
+
+
+
10 years, 7 months
[copr] master: more detailed description of copr-be.conf (5c0e6ac)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 5c0e6acfc0444e9bc5e3e319a309a3aab418ae1d
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Thu Sep 12 11:43:37 2013 +0200
more detailed description of copr-be.conf
>---------------------------------------------------------------
copr-be.conf.example | 20 ++++++++++++++++++++
copr-setup.txt | 6 ++++++
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/copr-be.conf.example b/copr-be.conf.example
index f68dcae..bde41cd 100644
--- a/copr-be.conf.example
+++ b/copr-be.conf.example
@@ -1,14 +1,34 @@
[backend]
+
+# URL where are results visible
results_baseurl=http://copr-be.cloud.fedoraproject.org/results
+
+# ??? What is this
frontend_url=http://copr-fe.cloud.fedoraproject.org/backend
+
+# must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
frontend_auth=backend_password_from_fe_config
+
+# path to ansible playbook which spawns builder
spawn_playbook=/srv/copr-work/provision/builderpb.yml
+
+# path to ansible playbook which terminate builder
terminate_playbook=/srv/copr-work/provision/terminatepb.yml
+
+# directory where jobs are stored
jobsdir=/srv/copr-work/jobs
+
+# directory where results are stored
+# should be accessible from web using 'results_baseurl' URL
destdir=/var/lib/copr/results
+
sleeptime=30
+
num_workers=5
+
+# path to log file
logfile=/var/log/copr/copr.log
+
worker_logdir=/var/log/copr/workers/
diff --git a/copr-setup.txt b/copr-setup.txt
index d0e9202..4f955a6 100644
--- a/copr-setup.txt
+++ b/copr-setup.txt
@@ -15,6 +15,12 @@ ansible playbook:
- enable epel (if you use RHEL)
- enable optional channel (if you use RHEL)
- install copr-backend package
+- edit /etc/copr/copr-be.conf
+ - change results_baseurl and frontend_url to your hostname
+ - frontend_auth must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
+ - spawn_playbook - path to ansible playbook which spawns builder
+ - terminate_playbook - path to ansible playbook which terminate builder
+ - others variables can be edited as well, but it is optional
Required pkgs:
- ansible - 0.9 or higher
10 years, 7 months
[copr] master: move files in config directory not directory itself (e04d93e)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit e04d93ee30f20bb55ed22bd71275a9b309e78f27
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Thu Sep 12 10:19:29 2013 +0200
move files in config directory not directory itself
>---------------------------------------------------------------
copr.spec | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/copr.spec b/copr.spec
index d6cbe90..96cb8fa 100644
--- a/copr.spec
+++ b/copr.spec
@@ -145,7 +145,7 @@ install -d %{buildroot}%{_datadir}/copr/data/whooshee/copr_user_whoosheer
cp -a coprs_frontend/* %{buildroot}%{_datadir}/copr/coprs_frontend
mv %{buildroot}%{_datadir}/copr/coprs_frontend/coprs.conf.example ./
-mv %{buildroot}%{_datadir}/copr/coprs_frontend/config %{buildroot}%{_sysconfdir}/copr
+mv %{buildroot}%{_datadir}/copr/coprs_frontend/config/* %{buildroot}%{_sysconfdir}/copr
rm %{buildroot}%{_datadir}/copr/coprs_frontend/CONTRIBUTION_GUIDELINES
touch %{buildroot}%{_datadir}/copr/data/copr.db
10 years, 7 months
[copr] master: include copr-be.conf (5fb82e6)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 5fb82e6370f7879dbe3b713e17cfebafbce242bf
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Thu Sep 12 10:16:35 2013 +0200
include copr-be.conf
>---------------------------------------------------------------
copr.spec | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/copr.spec b/copr.spec
index ca40c66..d6cbe90 100644
--- a/copr.spec
+++ b/copr.spec
@@ -121,8 +121,10 @@ install -d %{buildroot}%{_var}/log/copr
install -d %{buildroot}%{_var}/log/copr/workers/
install -d %{buildroot}%{_pkgdocdir}/lighttpd/
install -d %{buildroot}%{_datadir}/copr/backend
+install -d %{buildroot}%{_sysconfdir}/copr
cp -a backend/* %{buildroot}%{_datadir}/copr/backend
cp -a copr-be.py %{buildroot}%{_datadir}/copr/
+cp -a copr-be.conf.example %{buildroot}%{_sysconfdir}/copr/copr-be.conf
cp -a backend-dist/lighttpd/* %{buildroot}%{_pkgdocdir}/lighttpd/
# for ghost files
@@ -180,6 +182,7 @@ service httpd condrestart
%ghost %{_var}/log/copr/copr.log
%ghost %{_var}/log/copr/workers/worker-*.log
%doc %{_pkgdocdir}/lighttpd
+%config(noreplace) %{_sysconfdir}/copr/copr-be.conf
%{_datadir}/copr/backend
%{_datadir}/copr/copr-be.py*
@@ -198,7 +201,10 @@ service httpd condrestart
%defattr(600, copr-fe, copr-fe, 700)
%dir %{_sysconfdir}/copr
-%config(noreplace) %{_sysconfdir}/copr/*
+%config(noreplace) %{_sysconfdir}/copr/copr.conf
+%config(noreplace) %{_sysconfdir}/copr/copr_devel.conf
+%config(noreplace) %{_sysconfdir}/copr/copr_unit_test.conf
+
%files cli
%doc LICENSE README.rst
10 years, 7 months
[copr] master: include copr-be.py (9b553e2)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 9b553e24338a5197909ec52b14b72bbdb62078ac
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Wed Sep 11 16:11:00 2013 +0200
include copr-be.py
and install pyc and pyo files as well
>---------------------------------------------------------------
copr.spec | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/copr.spec b/copr.spec
index 70667d6..ca40c66 100644
--- a/copr.spec
+++ b/copr.spec
@@ -122,6 +122,7 @@ install -d %{buildroot}%{_var}/log/copr/workers/
install -d %{buildroot}%{_pkgdocdir}/lighttpd/
install -d %{buildroot}%{_datadir}/copr/backend
cp -a backend/* %{buildroot}%{_datadir}/copr/backend
+cp -a copr-be.py %{buildroot}%{_datadir}/copr/
cp -a backend-dist/lighttpd/* %{buildroot}%{_pkgdocdir}/lighttpd/
# for ghost files
@@ -179,7 +180,9 @@ service httpd condrestart
%ghost %{_var}/log/copr/copr.log
%ghost %{_var}/log/copr/workers/worker-*.log
%doc %{_pkgdocdir}/lighttpd
+
%{_datadir}/copr/backend
+%{_datadir}/copr/copr-be.py*
%files frontend
%doc LICENSE coprs.conf.example copr-setup.txt
10 years, 7 months
[copr] master: create copr with lighttpd group (136aab1)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 136aab13f8e6931e794b7e07cdacee67f79208a2
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Wed Sep 11 16:07:34 2013 +0200
create copr with lighttpd group
addressing:
Error in PREIN scriptlet in rpm package copr-backend-1.1-1.git.47.2255ac2.el6.noarch
useradd: group 'apache' does not exist
passwd: Unknown user name 'copr'.
error: %pre(copr-backend-1.1-1.git.47.2255ac2.el6.noarch) scriptlet failed, exit status 252
>---------------------------------------------------------------
copr.spec | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/copr.spec b/copr.spec
index f3faae2..70667d6 100644
--- a/copr.spec
+++ b/copr.spec
@@ -157,7 +157,7 @@ cp -a documentation/python-doc %{buildroot}%{_pkgdocdir}/
%pre backend
getent group copr >/dev/null || groupadd -r copr
getent passwd copr >/dev/null || \
-useradd -r -g copr -G apache -d %{_datadir}/copr -s /bin/bash -c "COPR user" copr
+useradd -r -g copr -G lighttpd -d %{_datadir}/copr -s /bin/bash -c "COPR user" copr
/usr/bin/passwd -l copr >/dev/null
%pre frontend
10 years, 7 months
[copr] master: edit backend part of copr-setup.txt (a7fb1cb)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit a7fb1cbaa8452a4c77d294a69268762c840eb0fa
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Wed Sep 11 16:03:58 2013 +0200
edit backend part of copr-setup.txt
>---------------------------------------------------------------
copr-setup.txt | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/copr-setup.txt b/copr-setup.txt
index c04836a..d0e9202 100644
--- a/copr-setup.txt
+++ b/copr-setup.txt
@@ -12,6 +12,10 @@ Backend:
ansible playbook:
http://infrastructure.fedoraproject.org/infra/ansible/playbooks/hosts/cop...
+- enable epel (if you use RHEL)
+- enable optional channel (if you use RHEL)
+- install copr-backend package
+
Required pkgs:
- ansible - 0.9 or higher
- [lig]httpd
10 years, 7 months
[copr] master: remove fedora16 and add 19 and 20 (0389054)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 038905402cceffaac5912266828a5329a20811f3
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Tue Sep 10 10:53:54 2013 +0200
remove fedora16 and add 19 and 20
>---------------------------------------------------------------
coprs_frontend/coprs/constants.py | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/coprs_frontend/coprs/constants.py b/coprs_frontend/coprs/constants.py
index d9968e0..04b7079 100644
--- a/coprs_frontend/coprs/constants.py
+++ b/coprs_frontend/coprs/constants.py
@@ -2,9 +2,11 @@
INTEL_ARCHES = ['i386', 'x86_64']
DEFAULT_ARCHES = INTEL_ARCHES
-CHROOTS = {'fedora-16': DEFAULT_ARCHES,
+CHROOTS = {
'fedora-17': DEFAULT_ARCHES,
'fedora-18': DEFAULT_ARCHES,
+ 'fedora-19': DEFAULT_ARCHES,
+ 'fedora-20': DEFAULT_ARCHES,
'fedora-rawhide': DEFAULT_ARCHES,
'epel-5': DEFAULT_ARCHES,
'epel-6': DEFAULT_ARCHES,
10 years, 7 months
[copr] master: create -doc subpackage with python documentation (15eab35)
by Miroslav Suchý
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 15eab351f77e8e028aba7f0d06bbb73916c95f79
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Tue Sep 10 09:44:24 2013 +0200
create -doc subpackage with python documentation
>---------------------------------------------------------------
copr.spec | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/copr.spec b/copr.spec
index dbf3f5a..f3faae2 100644
--- a/copr.spec
+++ b/copr.spec
@@ -21,6 +21,10 @@ BuildRequires: python-requests
%if 0%{?rhel} < 7 && 0%{?rhel} > 0
BuildRequires: python-argparse
%endif
+#for doc package
+BuildRequires: epydoc
+BuildRequires: graphviz
+BuildRequires: make
%description
COPR is lightweight buildsystem. It allows you to create new project in WebUI, and
@@ -84,6 +88,15 @@ submit new builds and COPR will create yum repository from latests builds.
This package contains command line interface.
+%package doc
+Summary: Code documentation for COPR
+
+%description doc
+COPR is lightweight buildsystem. It allows you to create new project in WebUI, and
+submit new builds and COPR will create yum repository from latests builds.
+
+This package include documentation for COPR code. Mostly useful for developers only.
+
%prep
%setup -q
@@ -94,6 +107,11 @@ mv copr_cli/README.rst ./
# convert manages
a2x -d manpage -f manpage man/copr-cli.1.asciidoc
+# build documentation
+pushd documentation
+make python
+popd
+
%install
#backend
@@ -133,6 +151,9 @@ touch %{buildroot}%{_datadir}/copr/data/copr.db
install -d %{buildroot}%{_mandir}/man1
install -m 644 man/copr-cli.1 %{buildroot}/%{_mandir}/man1/
+#doc
+cp -a documentation/python-doc %{buildroot}%{_pkgdocdir}/
+
%pre backend
getent group copr >/dev/null || groupadd -r copr
getent passwd copr >/dev/null || \
@@ -182,6 +203,9 @@ service httpd condrestart
%{python_sitelib}/*
%doc %{_mandir}/man1/copr-cli.1*
+%files doc
+%doc %{_pkgdocdir}/python-doc
+
%changelog
* Mon Jun 17 2013 Miroslav Suchý <msuchy(a)redhat.com> 1.1-1
- new package built with tito
10 years, 7 months