Reflect template and scripts with OIF
1. Let's use OIF rather than OSF for less confusion 2. Template: clarifying that candidates and prospective voters need to make sure that they have reestablished their individual memberships in the new Open Infrastructure Foundation Change-Id: I79796124e5d1100c117426d97eebc52e2f04ef73 Signed-off-by: Ian Y. Choi <ianyrchoi@gmail.com>
This commit is contained in:
@@ -82,8 +82,8 @@ During the PTL Candidacy round:
|
||||
* To +Workflow, checks the previous +2 details, find another commits using
|
||||
``--limit 5`` (optional)
|
||||
* Check candidate list and fix badly generated names through changes to the
|
||||
``exception.txt`` file or requesting the candidate to update their OSF member
|
||||
profile.
|
||||
``exception.txt`` file or requesting the candidate to update their OIF
|
||||
member profile.
|
||||
|
||||
Once the email deadline is reached:
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@ def check_candidate(project_name, email, projects, limit=1, verbose=0):
|
||||
|
||||
found = 0
|
||||
|
||||
# OSF member validation with verbose output
|
||||
# OIF member validation with verbose output
|
||||
member = utils.lookup_member(email, verbose=1)
|
||||
is_valid = member.get('data', []) != []
|
||||
if is_valid is False:
|
||||
print('Email address not found in OSF member list')
|
||||
print('Email address not found in OIF member list')
|
||||
return found
|
||||
|
||||
# Print member affiliation if available
|
||||
|
||||
@@ -30,7 +30,7 @@ def print_member(filepath, verbose=0):
|
||||
member = utils.lookup_member(email, verbose=verbose)
|
||||
member_id = member.get('data', [{}])[0].get('id')
|
||||
base = 'https://openinfra.org/a/community/members'
|
||||
print('OSF member profile: %s/%s' % (base, member_id))
|
||||
print('OIF member profile: %s/%s' % (base, member_id))
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -60,7 +60,7 @@ def validate_project(filepath, projects):
|
||||
|
||||
|
||||
def validate_member(filepath, verbose=0):
|
||||
print('Validate email address is OSF member')
|
||||
print('Validate email address is OIF member')
|
||||
print('------------------------------------')
|
||||
|
||||
email = utils.get_email(filepath)
|
||||
|
||||
@@ -32,6 +32,6 @@ class ElectionException(Exception):
|
||||
|
||||
|
||||
class MemberNotFoundException(ElectionException):
|
||||
msg_fmt = ('No Openstack Foundation (OSF) data found for %(email)s please '
|
||||
'check that %(email)s is a valid email address and linked to a '
|
||||
'valid OSF account')
|
||||
msg_fmt = ('No Open Infrastructure Foundation (OIF) data found for'
|
||||
'%(email)s please check that %(email)s is a valid email address'
|
||||
' and linked to a valid OIF account')
|
||||
|
||||
@@ -599,20 +599,20 @@ def main(options):
|
||||
'SKIPPING MALFORMED OWNER: no preferred or extra '
|
||||
'addresses found for account %s' % owner, file=sys.stderr)
|
||||
continue
|
||||
# Record OSF member profile ID when it exists
|
||||
# Record OIF member profile ID when it exists
|
||||
for email in [owners[owner]['preferred']] + owners[owner]['extra']:
|
||||
profile = utils.lookup_member(email, verbose=options.verbose)
|
||||
if profile['data']:
|
||||
owners[owner]['member'] = profile['data'][0]['id']
|
||||
break
|
||||
# If not a member, record non-member OSF profile ID when there is one
|
||||
# If not a member, record non-member OIF profile ID when there is one
|
||||
if not profile['data']:
|
||||
for email in [owners[owner]['preferred']] + owners[owner]['extra']:
|
||||
profile = utils.lookup_osf(email, verbose=options.verbose)
|
||||
profile = utils.lookup_oif(email, verbose=options.verbose)
|
||||
if profile['data']:
|
||||
owners[owner]['nonmember'] = profile['data'][0]['id']
|
||||
break
|
||||
# Extract country and affiliations from the OSF profile
|
||||
# Extract country and affiliations from the OIF profile
|
||||
if profile['data']:
|
||||
if 'country' in profile['data'][0]:
|
||||
owners[owner]['country'] = profile['data'][0]['country']
|
||||
|
||||
@@ -25,6 +25,13 @@ candidates stepping forward the available TC positions.
|
||||
All members of the community are encouraged to confirm their email
|
||||
address as described at: https://governance.openstack.org/election/#electorate
|
||||
|
||||
All candidates and prospective voters need to make sure they have
|
||||
reestablished their individual memberships in the Open Infrastructure
|
||||
Foundation https://openinfra.org/a/renew-membership (if this URL redirects you
|
||||
to your profile page, your membership is already renewed and nothing more is
|
||||
required), otherwise their nominations won't be verified and ballots will not
|
||||
be sent.
|
||||
|
||||
There will be further announcements posted to the mailing list as
|
||||
action is required from the electorate or candidates. This email
|
||||
is for information purposes only.
|
||||
|
||||
@@ -14,16 +14,16 @@ candidates/{{ release }}/<Project_Name or "TC">/<email_address>
|
||||
(for example, "candidates/{{ release }}/TC/stacker@example.org").
|
||||
|
||||
The name of the file should match an email address for your current
|
||||
OpenStack Foundation Individual Membership. Take this opportunity to
|
||||
ensure that your OSF member profile contains current information:
|
||||
https://www.openstack.org/profile/
|
||||
Foundation Individual Membership. Take this opportunity to
|
||||
ensure that your Open Infrastructure Foundation member profile contains
|
||||
current information: https://openinfra.org/a/profile
|
||||
|
||||
Any OpenStack Foundation Individual Member can propose their
|
||||
Any Open Infrastructure Foundation Individual Member can propose their
|
||||
candidacy for an available, directly-elected seat on the Technical
|
||||
Committee.
|
||||
|
||||
In order to be an eligible candidate for PTL you must be an
|
||||
OpenStack Foundation Individual Member. PTL candidates must also
|
||||
Open Infrastructure Foundation Individual Member. PTL candidates must also
|
||||
have contributed to the corresponding team during the {{ start_release }} to {{ end_release }}
|
||||
timeframe, {{ time_frame }}. Your
|
||||
Gerrit account must also have a verified email address matching the
|
||||
@@ -31,11 +31,11 @@ one used in your candidacy filename.
|
||||
|
||||
Both PTL and TC elections will be held from {{ election_start }}
|
||||
through to {{ election_end }}. The electorate for the TC election
|
||||
are the OpenStack Foundation Individual Members who have a code
|
||||
are the Open Infrastructure Foundation Individual Members who have a code
|
||||
contribution to one of the official teams over the {{ start_release }} to {{ end_release }}
|
||||
timeframe, {{ time_frame }}, as well as
|
||||
any Extra ACs who are acknowledged by the TC. The electorate for a
|
||||
PTL election are the OpenStack Foundation Individual Members who
|
||||
PTL election are the Open Infrastructure Foundation Individual Members who
|
||||
have a code contribution over the {{ start_release }} to {{ end_release }} timeframe,
|
||||
{{ time_frame }}, in a deliverable
|
||||
repository maintained by the team which the PTL would lead, as
|
||||
@@ -60,9 +60,9 @@ The electorate is requested to confirm their email addresses in
|
||||
Gerrit prior to {{ email_deadline }}, so that the emailed ballots
|
||||
are sent to the correct email address. This email address should
|
||||
match one which was provided in your foundation member profile as
|
||||
well. Gerrit account information and OSF member profiles can be
|
||||
updated at https://review.openstack.org/#/settings/contact and
|
||||
https://www.openstack.org/profile/ accordingly.
|
||||
well. Gerrit account information and Foundation individual member
|
||||
profiles can be updated at https://review.opendev.org/#/settings/contact
|
||||
and https://openinfra.org/a/profile accordingly.
|
||||
|
||||
If you have any questions please be sure to either ask them on the
|
||||
mailing list or to the elections officials:
|
||||
|
||||
@@ -24,7 +24,7 @@ one of the official project teams' deliverable repositories[1]:
|
||||
|
||||
* find the ID of at least one commit merged to an official
|
||||
deliverable repo[1] over the current and previous cycles, confirm
|
||||
you are an OpenStack Foundation Individual Member[2], and then
|
||||
you are an Open Infrastructure Foundation Individual Member[2], and then
|
||||
email the election officials[3] or get in touch in the
|
||||
#openstack-elections channel on the Freenode IRC network.
|
||||
|
||||
|
||||
@@ -107,8 +107,8 @@ def get_schedule_data(series):
|
||||
'branch/master/doc/source/%s/schedule.yaml' % (series))
|
||||
|
||||
|
||||
def lookup_osf(email, membership_type=None, verbose=0):
|
||||
"""A requests wrapper to querying the OSF member directory API"""
|
||||
def lookup_oif(email, membership_type=None, verbose=0):
|
||||
"""A requests wrapper to querying the OIF member directory API"""
|
||||
|
||||
params = {
|
||||
'expand': 'groups,all_affiliations,all_affiliations.organization',
|
||||
@@ -143,9 +143,9 @@ def current_member_affiliation(member):
|
||||
|
||||
|
||||
def lookup_member(email, verbose=0):
|
||||
"""Lookup profiles of OSF members"""
|
||||
"""Lookup profiles of OIF members"""
|
||||
|
||||
return lookup_osf(
|
||||
return lookup_oif(
|
||||
email=email, membership_type='Individual', verbose=verbose)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user