mirror of
https://github.com/openSUSE/osc.git
synced 2025-01-11 16:36:14 +01:00
- added "lock" command to lock a project or package
This commit is contained in:
parent
56a9ab60dc
commit
4dc236dea4
@ -3321,6 +3321,33 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
delete_project(apiurl, prj, opts.force, msg)
|
delete_project(apiurl, prj, opts.force, msg)
|
||||||
|
|
||||||
|
|
||||||
|
def do_lock(self, subcmd, opts, project, package=None):
|
||||||
|
"""${cmd_name}: Locks a project or package.
|
||||||
|
|
||||||
|
usage:
|
||||||
|
osc lock PROJECT [PACKAGE]
|
||||||
|
|
||||||
|
${cmd_option_list}
|
||||||
|
"""
|
||||||
|
apiurl = self.get_api_url()
|
||||||
|
kind = 'prj'
|
||||||
|
path_args = (project,)
|
||||||
|
if package is not None:
|
||||||
|
kind = 'pkg'
|
||||||
|
path_args = (project, package)
|
||||||
|
meta = meta_exists(kind, path_args, create_new=False, apiurl=apiurl)
|
||||||
|
root = ET.fromstring(''.join(meta))
|
||||||
|
if root.find('lock') is not None:
|
||||||
|
print('Already locked', file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
# alternatively, we could also use the set_flag api call
|
||||||
|
# instead of manually manipulating the xml
|
||||||
|
lock = ET.SubElement(root, 'lock')
|
||||||
|
ET.SubElement(lock, 'enable')
|
||||||
|
meta = ET.tostring(root)
|
||||||
|
edit_meta(kind, path_args=path_args, data=meta)
|
||||||
|
|
||||||
|
|
||||||
@cmdln.option('-m', '--message', metavar='TEXT',
|
@cmdln.option('-m', '--message', metavar='TEXT',
|
||||||
help='specify log message TEXT')
|
help='specify log message TEXT')
|
||||||
def do_unlock(self, subcmd, opts, *args):
|
def do_unlock(self, subcmd, opts, *args):
|
||||||
|
Loading…
Reference in New Issue
Block a user