fedrtc.org -> infrastructure?
by Daniel Pocock
Hi all,
At some point, it would be good to see fedrtc.org migrate to Fedora
infrastructure and use the fedoraproject.org domain
I'd be happy to submit the full request for resources[1] but I just want
to see if there is any initial comment on it. Here is a list of what is
involved:
- it uses a PostgreSQL database schema[2]
- it requires some DNS entries (SRV and NAPTR), examples[3]
- it needs a TLS cert for fedoraproject.org on the host(s) where it runs
- it has static HTTP content and PHP that is currently hosted with all
but one problem[4] on a RHEL7 httpd. Content is in Github[5], it could
be presented as an RPM if necessary.
- all packages are in EPEL7, except:
cajun-json in EPEL6, in testing for EPEL7
resiprocate in Fedora, builds from SRPM on RHEL7
- the SIP proxy is a single daemon, managed by systemctl. All settings
in a single file, /etc/repro/repro.config
- the TURN server process is also a single daemon, managed by systemctl.
All settings in a single file, /etc/reTurn/reTurnServer.config
Just to clarify the scope of this: it is not a full telephony service
like Asterisk, just a SIP proxy and TURN server. There is no persistent
state information (as there would be for voicemail, email service, etc)
and no customized routing.
Ongoing maintenance requirements:
- TLS certificate renewals
- monitoring the ports
- package updates from time to time
It currently runs on a lab machine, I'd be happy to arrange SSH access
to the Fedora Infrastructure team to see exactly what is involved and
verify that it is manageable.
Regards,
Daniel
1. https://fedoraproject.org/wiki/Request_For_Resources
2.
https://github.com/resiprocate/resiprocate/blob/master/repro/create_postg...
3. http://rtcquickstart.org/guide/multi/dns.html
4. https://bugzilla.redhat.com/show_bug.cgi?id=1222649
5. https://github.com/opentelecoms-org/fedrtc-org
7 years, 10 months
Welcome to the batcave
by Kevin Fenzi
Welcome to the batcave!
In it's undisclosed location under stately wayne manner we manage all
of Fedora Infrastructure and keep villians off the streets of
gotham. ;)
Some things to note:
0. The ssh host key has changed since this is a new instance.
Update your host keys accordingly.
1, There were 5 hosts left using puppet when we retired lockbox01
(The old puppet host):
two of them are virthosts and just need reinstalling:
bodhost01.fedoraproject.org
internetx01.fedoraproject.org
three of them are our mailman2 machines, and will go away as soon as we
finish migrating to mailman3:
collab03.fedoraproject.org
hosted-lists01.fedoraproject.org
one of them we are working on migrating and just need to do it:
hosted03.fedoraproject.org
Everyone should take EXTRA CARE with any changes on these machines.
They are backed up, but everyone should consider them in a frozen state
(needing 2 +1's to change anything) so we avoid breaking them.
2. There will likely be things we need to fix. Please be patient with
us as we work through any issues. If you find something broken and no
one is available to fix it, please file a ticket on it so we can get it
sorted out.
I hope everyone enjoys the nice RHEL7, faster, larger, better batcave.
Now, go fight some crime. :)
kevin
7 years, 11 months
Plan for tomorrow's Fedora Infrastructure meeting - 2015-10-01
by Kevin Fenzi
The infrastructure team will be having it's weekly meeting tomorrow,
2015-10-01 at 18:00 UTC in #fedora-meeting on the freenode network.
We have a gobby document
(see: https://fedoraproject.org/wiki/Gobby )
fedora-infrastructure-meeting-next is the document.
Please try and review and edit that document before the meeting and we
will use it to have our agenda of things to discuss. A copy as of today
is included in this email.
If you have something to discuss, add the topic to the discussion area
with your name. If you would like to teach other folks about some
application or setup in our infrastructure, please add that topic and
your name to the learn about section.
kevin
--
= Introduction =
This shared document is for the next fedora infrastructure meeting.
We will use it over the week before the meeting to gather status and info and
discussion items and so forth, then use it in the irc meeting to transfer
information to the meetbot logs.
= Meeting start stuff =
#startmeeting Infrastructure (2015-10-01)
#meetingname infrastructure
#topic aloha
#chair smooge relrod nirik abadger1999 lmacken dgilmore mdomsch threebean pingou puiterwijk pbrobinson
#topic New folks introductions / Apprentice feedback
= Status / information / Trivia / Announcements =
(We put things here we want others on the team to know, but don't need to discuss)
(Please use #info <the thing> - your name)
#topic announcements and information
#info We have moved from lockbox01 to the batcave01 - kevin
#info Likely will have a mass update/reboot cycle next week - kevin/smooge/patrick/relrod
#info Apprentice nag email will be going out 2015-10-01, watch for it! - kevin
#info
= Things we should discuss =
We use this section to bring up discussion topics. Things we want to talk about
as a group and come up with some consensus or decision or just brainstorm a
problem or issue. If there are none of these we skip this section.
(Use #topic your discussion topic - your username)
#topic TRAC tickets review - everyone
= Learn about some application or setup in infrastructure =
(This section, each week we get 1 person to talk about an application or setup
that we have. Just going over what it is, how to contribute, ideas for improvement,
etc. Whoever would like to do this, just add the info in this section. In the
event we don't find someone to teach about something, we skip this section
and just move on to open floor.)
#topic Learn about:
= Meeting end stuff =
#topic Open Floor
#endmeeting
7 years, 12 months
rbac_playbook fix for RHEL7
by Tim Flink
Long story short, when the batcave upgrade happened on Friday we found
out that rbac_playbook doesn't work on el7 due to an issue with
nss-altfiles.
I figured out how to sidestep the issue by changing the approach that
rbac_playbook takes. It used to get all the groups for the user running
the script and check for an intersection between those groups and the
required groups for the playbook being run.
The new version looks at the groups required for the playbook being
run, gathers all the users in those groups and verifies that the user
running rbac_playbook is in that list before proceeding.
I've included the changes below for security review before updating
anything on batcave01
Tim
diff --git a/ansible_utils.spec b/ansible_utils.spec
index 2e26a70..f097020 100644
--- a/ansible_utils.spec
+++ b/ansible_utils.spec
@@ -20,12 +20,14 @@ Requires: PyYAML
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: python-kitchen
+BuildRequires: python-mock
# python-dingus isn't built for el7, can't run tests
%if 0%{?rhel} > 6
BuildRequires: pytest
BuildRequires: PyYAML
BuildRequires: python-dingus
+BuildRequires: python-mock
%endif
# the cli uses argparse, which is not part of the standard libaray in
python2.6 diff --git a/ansible_utils/rbac_playbook.py
b/ansible_utils/rbac_playbook.py index 42be23f..c6a952c 100755
--- a/ansible_utils/rbac_playbook.py
+++ b/ansible_utils/rbac_playbook.py
@@ -140,7 +140,7 @@ def generate_message(result, username,
playbook_name, args, checksum): :return: rendered string summarizing
rbac activity """
subject = "[rbac-playbook] {0} {1} ran {2}".format(result,
-
username.pw_name,
+ username,
playbook_name)
body = ['Details:']
body.extend(['{0}: {1}'.format(key, value) for key, value in
args.iteritems()]) @@ -188,10 +188,13 @@ def
run_sudo_command(playbook_file, playbook_args): full_filename =
os.path.abspath(os.path.join(config['config']['PLAYBOOKS_DIR'],
playbook_file))
+ python_args = ['cd', config['config']['ANSIBLE_DIR'], ';',
+ '/usr/bin/python2',
config['config']['ANSIBLE_PLAYBOOK'],
+ full_filename]
+ python_args.extend(playbook_args)
executable = '/usr/bin/sudo'
- args = ['-i', '/usr/bin/python2',
- config['config']['ANSIBLE_PLAYBOOK'], full_filename]
- args.extend(playbook_args)
+ args = ['-i', '/bin/bash', '-i', '-c',
+ ' '.join(python_args)]
# Note: (1) The function used here has to pass the environment to
# ansible-playbook so that it can connect to the ssh-agent
correctly @@ -206,36 +209,56 @@ def run_sudo_command(playbook_file,
playbook_args): print "EXECV: %s %s" % (executable, ' '.join(args))
os.execv(executable, args)
+def _get_username():
+ """Retrieve the username for the user which started execution of
rbac_playbook"""
-def can_run(acl, groups, playbook_file):
+ user = os.getlogin()
+ username = pwd.getpwnam(user)
+ return username.pw_name
+
+def _get_group_members(groupname):
+ """Find the members of a specific group
+
+ :param groupname: name of group to find members of
+ :return: list of usernames for members of the given group, empty
list if the group does not exist""" +
+ group_data = None
+ try:
+ group_data = grp.getgrnam(groupname)
+ except KeyError:
+ return []
+
+ return group_data.gr_mem
+
+def _get_playbook_authorized_users(grouplist):
+ """Retrieve a set of all users who are members of one or more
groups +
+ :param grouplist: list of one or more group names
+ :return: set of usernames corresponding to the union of members
for each group in the grouplist""" +
+ userlist = []
+ for groupname in grouplist:
+ userlist.extend(_get_group_members(groupname))
+
+ return set(userlist)
+
+def can_run(acl, username, playbook_file):
""" determines whether the current user is allowed to run a
playbook
:param acl: dictionary of acl information
- :param groups: groups of which the user is a member
+ :param username: username of user running the utility
:param playbook_file: playbook file that is being run
:return: True if the user is authorized, False if unauthorized
"""
- # exact match quick route
+
+ authorized_groups = acl[playbook_file]
+
if playbook_file in acl:
- pb_groups = frozenset(acl[playbook_file])
- if groups.intersection(pb_groups):
+ pb_authorized =
_get_playbook_authorized_users(authorized_groups)
+ if username in pb_authorized:
return True
return False
-
-def get_groups():
- """ retrieve the groups of which the current user is currently a
member
- :return: (username,groups) where groups is a set of groups which
the current user is a member
- """
- username = os.getlogin()
- user = pwd.getpwnam(username)
- groups = set(g.gr_name for g in grp.getgrall() if username in
g.gr_mem)
- groups.add(grp.getgrgid(user.pw_gid).gr_name)
- groups = frozenset(groups)
-
- return user, groups
-
-
def generate_args(options):
""" Generate ansible-playbook compatible args representing the
information passed into rbac
@@ -272,11 +295,11 @@ def rbac_playbook(playbook_name, options):
:param playbook_name: name of playbook file to run
:param options: dictionary of options
"""
- username, groups = get_groups()
+ username = _get_username()
checksum = get_checksum(playbook_name)
# raise exception if not allowed
- if not can_run(config['acls'], groups, playbook_name):
+ if not can_run(config['acls'], username, playbook_name):
notify(generate_message('FAILURE', username, playbook_name,
options, checksum)) msg ="user {0} is not authorized to run
{1}".format(username.pw_name, playbook_name) raise
RbacAuthException(msg) diff --git a/tests/test_rbac_playbook.py
b/tests/test_rbac_playbook.py index 765997d..0b76825 100644
--- a/tests/test_rbac_playbook.py
+++ b/tests/test_rbac_playbook.py
@@ -1,6 +1,8 @@
import copy
+import grp
from dingus import Dingus
+from mock import MagicMock, Mock
from ansible_utils import rbac_playbook as rbac
@@ -93,7 +95,7 @@ class TestGeneratePlaybookArgs(object):
test_args = rbac.generate_args(ref_options)
assert test_args == ['-l', ':'.join(ref_limit)]
- def test_simple_limit(self):
+ def test_simple_tag(self):
ref_tags = ['tag', 'tagg', 'tog', 'togg']
ref_options = {'tags': ref_tags}
@@ -123,25 +125,101 @@ class TestGeneratePlaybookArgs(object):
'--start-at-task="some task"']
-class TestDetermineCanRun(object):
+class TestCanRun(object):
def setup_method(self, method):
self.ref_acl = {'group/unicorns.yml': ['sysadmin-unicorn',
'sysadmin-pony'], 'pony.yml': ['sysadmin-pony']
}
- def test_allow_one_of_multiple(self, monkeypatch):
- ref_groups = set(['sysadmin-unicorn'])
- test_can_run = rbac.can_run(self.ref_acl, ref_groups,
'group/unicorns.yml')
+ def test_allow(self, monkeypatch):
+ ref_user = 'twilightsparkle'
+ ref_authorized = ['twilightsparkle', 'fluttershy']
+
+ stub_authorized = MagicMock(return_value=ref_authorized)
+ monkeypatch.setattr(rbac, '_get_playbook_authorized_users',
stub_authorized) +
+ test_can_run = rbac.can_run(self.ref_acl, ref_user,
'group/unicorns.yml')
assert test_can_run
- def test_allow_one_of_multiple(self, monkeypatch):
- ref_groups = set(['sysadmin-kittycat'])
- test_can_run = rbac.can_run(self.ref_acl, ref_groups,
'group/unicorns.yml')
+ def test_disallow(self, monkeypatch):
+ ref_user = 'mittens'
+ ref_authorized = ['twilightsparkle', 'fluttershy']
+
+ stub_authorized = MagicMock(return_value=ref_authorized)
+ monkeypatch.setattr(rbac, '_get_playbook_authorized_users',
stub_authorized) +
+ test_can_run = rbac.can_run(self.ref_acl, ref_user,
'group/unicorns.yml')
assert not test_can_run
+class TestGetAuthorizedUsers(object):
+
+ def setup_method(self, method):
+ self.ref_acl = {'group/unicorns.yml': ['sysadmin-unicorn',
'sysadmin-pony'],
+ 'pony.yml': ['sysadmin-pony']
+ }
+
+ def test_get_single_group_users(self, monkeypatch):
+ ref_authorized_groups = ['sysadmin-pony']
+ ref_group_members = ['twilightsparkle', 'fluttershy']
+ ref_members = set(ref_group_members)
+
+ stub_group_members = MagicMock(return_value=ref_group_members)
+ monkeypatch.setattr(rbac, '_get_group_members',
stub_group_members) +
+ test_group_members =
rbac._get_playbook_authorized_users(ref_authorized_groups) +
+ assert test_group_members == ref_members
+
+ def test_get_multiple_group_users(self, monkeypatch):
+ ref_authorized_groups = ['sysadmin-pony', 'sysadmin-unicorn']
+ ref_group_members = [['twilightsparkle', 'fluttershy'],
['charlie', 'buttercup']]
+ ref_members = set(ref_group_members[0] + ref_group_members[1])
+
+ stub_group_members = MagicMock(side_effect=ref_group_members)
+ monkeypatch.setattr(rbac, '_get_group_members',
stub_group_members) +
+ test_group_members =
rbac._get_playbook_authorized_users(ref_authorized_groups) +
+ assert test_group_members == ref_members
+
+ def test_get_multiple_group_with_overlap(self, monkeypatch):
+ ref_authorized_groups = ['sysadmin-pony', 'sysadmin-unicorn']
+ ref_group_members = [['twilightsparkle', 'fluttershy'],
['charlie', 'buttercup', 'twilightsparkle']]
+ ref_members = set(ref_group_members[0] + ref_group_members[1])
+
+ stub_group_members = MagicMock(side_effect=ref_group_members)
+ monkeypatch.setattr(rbac, '_get_group_members',
stub_group_members) +
+ test_group_members =
rbac._get_playbook_authorized_users(ref_authorized_groups) +
+ assert test_group_members == ref_members
+
+class TestGetGroupMembers(object):
+
+ def setup_method(self, method):
+ self.ref_groupname = 'sysadmin-ponies'
+
+ def test_valid_group(self, monkeypatch):
+ ref_members = ['twilightsparkle', 'fluttershy']
+
+ stub_getgrnam = Mock(gr_mem=ref_members)
+ stub_grp = MagicMock(return_value=stub_getgrnam)
+ monkeypatch.setattr(grp, 'getgrnam', stub_grp)
+
+ test_group_members =
rbac._get_group_members(self.ref_groupname) +
+ assert test_group_members == ref_members
+
+ def test_invalid_group(self, monkeypatch):
+ stub_grp = MagicMock(side_effect=KeyError)
+ monkeypatch.setattr(grp, 'getgrnam', stub_grp)
+
+ test_group_members =
rbac._get_group_members(self.ref_groupname) +
+ assert test_group_members == []
class TestConfigMerge(object):
7 years, 12 months
Re: redhat bugzilla probs
by Stanislav Ochotnicky
tl;dr: bz is back up and root cause has been identified and fixed (for
this outage type at least)
Update from admin team:
Bugzilla has been brought back up. OOM crashes in the database have
been traced to a specific query which was thought to be causing problems
in previous incidents due to a missing table. The removal of that data
error allowed this query to run and was causing the services to fault.
The data error has been reintroduced as a blocking mechanism to restore
service.
On Tue 29 Sep 2015 04:33:42 AM CEST Ralf Corsepius <rc040203(a)freenet.de> wrote:
> On 09/21/2015 03:38 PM, Ralf Corsepius wrote:
>> Hi,
>>
>> When trying to file a BZ, bugzilla just greeter me with this:
>>
>> <snip>
>> Proxy Error
>>
>> The proxy server received an invalid response from an upstream server.
>> The proxy server could not handle the request POST /post_bug.cgi.
>>
>> Reason: Error reading from remote server
>>
>> Apache Server at bugzilla.redhat.com Port 443
>> </snip>
>
> Right now, it is happening, again - Same error as last week:
>
> <snip>
> Proxy Error
>
> The proxy server received an invalid response from an upstream server.
> The proxy server could not handle the request POST /show_bug.cgi.
>
> Reason: Error reading from remote server
>
> Apache Server at bugzilla.redhat.com Port 443
> </snip>
>
> Ralf
>
>
> --
> devel mailing list
> devel(a)lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
> Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
--
Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Business System Analyst, PnT DevOps PMO Team - Brno
PGP: 7B087241
Red Hat Inc. http://cz.redhat.com
7 years, 12 months
[PATCH] Replace 'Medium' by 'Moderate' for the security category
by Michael Scherer
From: Michael Scherer <misc(a)fedoraproject.org>
The CSI document do not define Medium, but Moderate.
---
inventory/group_vars/bodhi-backend-stg | 2 +-
inventory/group_vars/bodhi2 | 2 +-
inventory/group_vars/bodhi2-stg | 2 +-
inventory/group_vars/kojipkgs | 2 +-
inventory/group_vars/mm-backend | 2 +-
inventory/group_vars/mm-backend-stg | 2 +-
inventory/group_vars/mm-crawler | 2 +-
inventory/group_vars/mm-crawler-stg | 2 +-
inventory/group_vars/mm-frontend | 2 +-
inventory/group_vars/mm-frontend-stg | 2 +-
10 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/inventory/group_vars/bodhi-backend-stg b/inventory/group_vars/bodhi-backend-stg
index c098a6a..e0600e5 100644
--- a/inventory/group_vars/bodhi-backend-stg
+++ b/inventory/group_vars/bodhi-backend-stg
@@ -77,7 +77,7 @@ sudoers: "{{ private }}/files/sudo/arm-releng-sudoers"
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Releng Admins sysadmin-releng-members(a)fedoraproject.org
csi_purpose: Run the Bodhi masher.
csi_relationship: |
diff --git a/inventory/group_vars/bodhi2 b/inventory/group_vars/bodhi2
index 96ed2a9..9983649 100644
--- a/inventory/group_vars/bodhi2
+++ b/inventory/group_vars/bodhi2
@@ -70,7 +70,7 @@ fedmsg_certs:
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Bodhi Admins bodhiadmin-members(a)fedoraproject.org
csi_purpose: Run the Bodhi mod_wsgi app for bodhi.fedoraproject.org
csi_relationship: |
diff --git a/inventory/group_vars/bodhi2-stg b/inventory/group_vars/bodhi2-stg
index d566fbb..e9c9af9 100644
--- a/inventory/group_vars/bodhi2-stg
+++ b/inventory/group_vars/bodhi2-stg
@@ -72,7 +72,7 @@ fedmsg_certs:
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Bodhi Admins bodhiadmin-members(a)fedoraproject.org
csi_purpose: Run the Bodhi mod_wsgi app for bodhi.fedoraproject.org
csi_relationship: |
diff --git a/inventory/group_vars/kojipkgs b/inventory/group_vars/kojipkgs
index e78b437..5bcc908 100644
--- a/inventory/group_vars/kojipkgs
+++ b/inventory/group_vars/kojipkgs
@@ -15,7 +15,7 @@ tcp_ports: [80, 443, 8080]
fas_client_groups: sysadmin-build,sysadmin-noc
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admins - admin(a)fedoraproject.org
csi_purpose: Cache packages from koji for builders and others
csi_relationship: |
diff --git a/inventory/group_vars/mm-backend b/inventory/group_vars/mm-backend
index 919c59b..9f00bb4 100644
--- a/inventory/group_vars/mm-backend
+++ b/inventory/group_vars/mm-backend
@@ -10,7 +10,7 @@ fedmsg_certs:
- mirrormanager.netblocks.get
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admin - admin(a)fedoraproject.org
csi_purpose: Run mirrormanager backend cron tasks
csi_relationship: |
diff --git a/inventory/group_vars/mm-backend-stg b/inventory/group_vars/mm-backend-stg
index f553876..104cb37 100644
--- a/inventory/group_vars/mm-backend-stg
+++ b/inventory/group_vars/mm-backend-stg
@@ -8,7 +8,7 @@ fedmsg_certs:
- mirrormanager.netblocks.get
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admin - admin(a)fedoraproject.org
csi_purpose: Run mirrormanager backend cron tasks
csi_relationship: |
diff --git a/inventory/group_vars/mm-crawler b/inventory/group_vars/mm-crawler
index 9cef392..7fec4e9 100644
--- a/inventory/group_vars/mm-crawler
+++ b/inventory/group_vars/mm-crawler
@@ -9,7 +9,7 @@ fedmsg_certs:
- mirrormanager.crawler.start
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admin - admin(a)fedoraproject.org
csi_purpose: Run mirrormanager crawlers
csi_relationship: |
diff --git a/inventory/group_vars/mm-crawler-stg b/inventory/group_vars/mm-crawler-stg
index 1aeb70c..ebaea80 100644
--- a/inventory/group_vars/mm-crawler-stg
+++ b/inventory/group_vars/mm-crawler-stg
@@ -9,7 +9,7 @@ fedmsg_certs:
- mirrormanager.crawler.start
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admin - admin(a)fedoraproject.org
csi_purpose: Run mirrormanager crawlers
csi_relationship: |
diff --git a/inventory/group_vars/mm-frontend b/inventory/group_vars/mm-frontend
index 92bfbc2..3e1a5d4 100644
--- a/inventory/group_vars/mm-frontend
+++ b/inventory/group_vars/mm-frontend
@@ -17,7 +17,7 @@ fedmsg_certs:
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admin - admin(a)fedoraproject.org
csi_purpose: Run mirrormanager frontend WSGI app
csi_relationship: |
diff --git a/inventory/group_vars/mm-frontend-stg b/inventory/group_vars/mm-frontend-stg
index e6acaea..daae4ee 100644
--- a/inventory/group_vars/mm-frontend-stg
+++ b/inventory/group_vars/mm-frontend-stg
@@ -16,7 +16,7 @@ fedmsg_certs:
# For the MOTD
-csi_security_category: Medium
+csi_security_category: Moderate
csi_primary_contact: Fedora admin - admin(a)fedoraproject.org
csi_purpose: Run mirrormanager frontend WSGI app
csi_relationship: |
--
1.8.3.1
7 years, 12 months
[release] the-new-hotness: 0.6.0
by Ralph Bean
Hello all,
I just cut a new release of 'the-new-hotness' -- that's the backend daemon that
listens for announcements about new upstream releases published by
https://release-monitoring.org, and in response does lots of stuff like filing
bugs in bugzilla, etc.
This new release includes a number of bug fixes which should cut down on error
emails sent to the developers.
The automatic building of new releases as scratch builds has been broken for a
few months now as a result of a change in the way 'fedpkg sources' output
needed to be parsed. That is fixed here.
We also will now add comments to Review Request bugs and FTBFS bugs when
relevant scratch and real builds complete respectively.
0.6.0
-----
Pull Requests
- (@danc86) #47, mark patches as such when attaching them in Bugzilla
https://github.com/fedora-infra/the-new-hotness/pull/47
- (@puiterwijk) #57, Use the root url to check for logged in state
https://github.com/fedora-infra/the-new-hotness/pull/57
- (@ralphbean) #61, Report successful rawhide builds (mostly) once.
https://github.com/fedora-infra/the-new-hotness/pull/61
- (@ralphbean) #62, Try twice to find the rawhide version of packages.
https://github.com/fedora-infra/the-new-hotness/pull/62
- (@ralphbean) #63, Fix fedpkg sources parsing.
https://github.com/fedora-infra/the-new-hotness/pull/63
- (@ralphbean) #64, Follow up on FTBFS bugs.
https://github.com/fedora-infra/the-new-hotness/pull/64
- (@ralphbean) #67, Match bugs also in the ASSIGNED state.
https://github.com/fedora-infra/the-new-hotness/pull/67
- (@ralphbean) #66, Handle pkgdb.package.update messages.
https://github.com/fedora-infra/the-new-hotness/pull/66
- (@ralphbean) #68, Be extra careful with anitya error panels.
https://github.com/fedora-infra/the-new-hotness/pull/68
- (@ralphbean) #69, Mention scratch build results in review request tickets.
https://github.com/fedora-infra/the-new-hotness/pull/69
Commits
- 3fef00949 Specbump.
https://github.com/fedora-infra/the-new-hotness/commit/3fef00949
- e2a682eeb mark patches as such when attaching them in Bugzilla
https://github.com/fedora-infra/the-new-hotness/commit/e2a682eeb
- 7cf5ebbe6 Use the root url to check for logged in state
https://github.com/fedora-infra/the-new-hotness/commit/7cf5ebbe6
- 8ad4b1863 Report successful rawhide builds (mostly) once.
https://github.com/fedora-infra/the-new-hotness/commit/8ad4b1863
- b24ada416 Save bz username so it can be referenced.
https://github.com/fedora-infra/the-new-hotness/commit/b24ada416
- cc4b7f4f0 Try twice to find the rawhide version of packages.
https://github.com/fedora-infra/the-new-hotness/commit/cc4b7f4f0
- 1e8fac332 Fix fedpkg sources parsing.
https://github.com/fedora-infra/the-new-hotness/commit/1e8fac332
- 4db986c9e Add a method to query for FTBFS bugs.
https://github.com/fedora-infra/the-new-hotness/commit/4db986c9e
- dc2aa7744 Follow up on FTBFS bugs.
https://github.com/fedora-infra/the-new-hotness/commit/dc2aa7744
- d6589d7c3 If pkgdb hands us no upstream_url, then bail out.
https://github.com/fedora-infra/the-new-hotness/commit/d6589d7c3
- 80f4042b2 Silence some BeautifulSoup warnings.
https://github.com/fedora-infra/the-new-hotness/commit/80f4042b2
- a9c8ffd42 Handle pkgdb.package.update messages.
https://github.com/fedora-infra/the-new-hotness/commit/a9c8ffd42
- 4648ed3ca Only return open FTBFS bugs.
https://github.com/fedora-infra/the-new-hotness/commit/4648ed3ca
- a64d7d338 Operate on all open FTBFS bugs we find, not just the first one.
https://github.com/fedora-infra/the-new-hotness/commit/a64d7d338
- 700925fa3 Match bugs also in the ASSIGNED state.
https://github.com/fedora-infra/the-new-hotness/commit/700925fa3
- db929f815 pep8
https://github.com/fedora-infra/the-new-hotness/commit/db929f815
- 493dba976 Update error text.
https://github.com/fedora-infra/the-new-hotness/commit/493dba976
- 56ea7ae6a Use different anitya API endpoint to query for packages by project.
https://github.com/fedora-infra/the-new-hotness/commit/56ea7ae6a
- 2249110d6 Add some tests.
https://github.com/fedora-infra/the-new-hotness/commit/2249110d6
- 427f443d4 Be extra careful with anitya error panels.
https://github.com/fedora-infra/the-new-hotness/commit/427f443d4
- 1510b7a10 Fix return statement.
https://github.com/fedora-infra/the-new-hotness/commit/1510b7a10
- 24b51ae61 Merge branch 'develop' of github.com:fedora-infra/the-new-hotness into develop
https://github.com/fedora-infra/the-new-hotness/commit/24b51ae61
- de2bd6c61 Make ftbfs_bugs plural to indicate that it returns a generator.
https://github.com/fedora-infra/the-new-hotness/commit/de2bd6c61
- 51fe83dd6 Change the way we compare dist tags so we compare '.fc24' with '.fc24'.
https://github.com/fedora-infra/the-new-hotness/commit/51fe83dd6
- 65ba74f4b Mention scratch build results in review request tickets.
https://github.com/fedora-infra/the-new-hotness/commit/65ba74f4b
- 62d10b1b2 Remove changelog header.
https://github.com/fedora-infra/the-new-hotness/commit/62d10b1b2
8 years