Import the new-election tool as create-directories
Change-Id: I9a1dc9f22683852af1527449b2b46c2eaf78ad9c
This commit is contained in:
parent
4d473dc0bd
commit
f6507b695d
@ -14,10 +14,10 @@ Preparation
|
|||||||
|
|
||||||
A month before election starts:
|
A month before election starts:
|
||||||
|
|
||||||
* Prepare new election, e.g.:
|
|
||||||
* tox -evenv -- new-election.py pike
|
|
||||||
* Edit elections details (timeline, cycle timeframe):
|
* Edit elections details (timeline, cycle timeframe):
|
||||||
* edit configuration.yaml
|
* edit configuration.yaml
|
||||||
|
* Prepare new election, e.g.:
|
||||||
|
* tox -evenv -- create-directories
|
||||||
* Update index.rst to include ptl.rst
|
* Update index.rst to include ptl.rst
|
||||||
* Commit to update website
|
* Commit to update website
|
||||||
|
|
||||||
|
41
openstack_election/cmds/create_directories.py
Executable file
41
openstack_election/cmds/create_directories.py
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from __future__ import absolute_import
|
||||||
|
from __future__ import print_function
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from openstack_election import utils
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if not os.path.isdir("candidates"):
|
||||||
|
print("candidates directory not found")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
base_dir = "candidates/%s" % utils.conf['release']
|
||||||
|
if os.path.exists(base_dir):
|
||||||
|
print("%s: directory already exists" % base_dir)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
projects = utils.get_projects()
|
||||||
|
project_list = projects.keys()
|
||||||
|
project_list.sort()
|
||||||
|
for project in project_list + ["TC"]:
|
||||||
|
dpath = "%s/%s" % (base_dir, utils.name2dir(project))
|
||||||
|
os.makedirs(dpath)
|
||||||
|
open("%s/.placeholder" % dpath, "w").close()
|
||||||
|
print("[+] Created %s" % (dpath))
|
@ -27,6 +27,7 @@ console_scripts =
|
|||||||
update-governance = openstack_election.cmds.update_governance:main
|
update-governance = openstack_election.cmds.update_governance:main
|
||||||
close-election = openstack_election.cmds.close_election:main
|
close-election = openstack_election.cmds.close_election:main
|
||||||
search-rolls = openstack_election.cmds.search_rolls:main
|
search-rolls = openstack_election.cmds.search_rolls:main
|
||||||
|
create-directories = openstack_election.cmds.create_directories:main
|
||||||
|
|
||||||
[build_sphinx]
|
[build_sphinx]
|
||||||
all_files = 1
|
all_files = 1
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
|
|
||||||
from openstack_election import utils
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('name', help='The release cycle name')
|
|
||||||
parser.add_argument("--root", help='Election directory', default='.')
|
|
||||||
options = parser.parse_args()
|
|
||||||
|
|
||||||
os.chdir(options.root)
|
|
||||||
if not os.path.isdir("candidates"):
|
|
||||||
print("candidates directory not found")
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
if os.path.exists("candidates/%s" % options.name):
|
|
||||||
print("candidates/%s: directory already exists" % (options.name))
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
projects = utils.get_projects()
|
|
||||||
project_list = projects.keys()
|
|
||||||
project_list.sort()
|
|
||||||
for project in project_list + ["TC"]:
|
|
||||||
dpath = "candidates/%s/%s" % (options.name, utils.name2dir(project))
|
|
||||||
os.makedirs(dpath)
|
|
||||||
open("%s/.placeholder" % dpath, "w").close()
|
|
||||||
print("[+] Created %s" % (dpath))
|
|
||||||
|
|
||||||
print("Done. Now please manually update events.yaml and "
|
|
||||||
"doc/source/index.rst substitutions")
|
|
Loading…
Reference in New Issue
Block a user