mirror of
https://github.com/openSUSE/osc.git
synced 2024-11-10 06:46:15 +01:00
- add "createincident" command
This commit is contained in:
parent
5e74d75acf
commit
acbbbacabd
4
NEWS
4
NEWS
@ -1,5 +1,9 @@
|
|||||||
0.132
|
0.132
|
||||||
-
|
-
|
||||||
|
#
|
||||||
|
# Features which requires OBS 2.3
|
||||||
|
#
|
||||||
|
- new command "createincident" to create maintenance incidents without a request
|
||||||
|
|
||||||
0.131
|
0.131
|
||||||
- new command 'develproject' to print the devel project from the package meta.
|
- new command 'develproject' to print the devel project from the package meta.
|
||||||
|
@ -2441,6 +2441,55 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@cmdln.option('-a', '--attribute', metavar='ATTRIBUTE',
|
||||||
|
help='Use this attribute to find default maintenance project (default is OBS:MaintenanceProject)')
|
||||||
|
@cmdln.option('-m', '--message', metavar='TEXT',
|
||||||
|
help='specify message TEXT')
|
||||||
|
def do_createincident(self, subcmd, opts, *args):
|
||||||
|
"""${cmd_name}: Create a maintenance incident
|
||||||
|
|
||||||
|
[See http://doc.opensuse.org/products/draft/OBS/obs-reference-guide/cha.obs.maintenance_setup.html
|
||||||
|
for information on this topic.]
|
||||||
|
|
||||||
|
This command is asking to open an empty maintence incident. This can usually only be done by a responsible
|
||||||
|
maintenance team.
|
||||||
|
Please see the "mbranch" command on how to full such a project content and
|
||||||
|
the "patchinfo" command how add the required maintenance update informations.
|
||||||
|
|
||||||
|
usage:
|
||||||
|
osc createincident [ MAINTENANCEPROJECT ]
|
||||||
|
${cmd_option_list}
|
||||||
|
"""
|
||||||
|
|
||||||
|
args = slash_split(args)
|
||||||
|
apiurl = self.get_api_url()
|
||||||
|
maintenance_attribute = conf.config['maintenance_attribute']
|
||||||
|
if opts.attribute:
|
||||||
|
maintenance_attribute = opts.attribute
|
||||||
|
|
||||||
|
source_project = target_project = None
|
||||||
|
|
||||||
|
if len(args) > 1:
|
||||||
|
raise oscerr.WrongArgs('Too many arguments.')
|
||||||
|
|
||||||
|
if len(args) == 1:
|
||||||
|
target_project = args[1]
|
||||||
|
else:
|
||||||
|
xpath = 'attribute/@name = \'%s\'' % maintenance_attribute
|
||||||
|
res = search(apiurl, project_id=xpath)
|
||||||
|
root = res['project_id']
|
||||||
|
project = root.find('project')
|
||||||
|
if project is None:
|
||||||
|
sys.exit('Unable to find defined OBS:MaintenanceProject project on server.')
|
||||||
|
target_project = project.get('name')
|
||||||
|
print 'Using target project \'%s\'' % target_project
|
||||||
|
|
||||||
|
query = { 'cmd': 'createmaintenanceincident' }
|
||||||
|
url = makeurl(apiurl, ['source', target_project], query=query)
|
||||||
|
r = http_POST(url, data=opts.message)
|
||||||
|
print ET.parse(r).getroot().get('code')
|
||||||
|
|
||||||
|
|
||||||
@cmdln.option('-a', '--attribute', metavar='ATTRIBUTE',
|
@cmdln.option('-a', '--attribute', metavar='ATTRIBUTE',
|
||||||
help='Use this attribute to find default maintenance project (default is OBS:MaintenanceProject)')
|
help='Use this attribute to find default maintenance project (default is OBS:MaintenanceProject)')
|
||||||
@cmdln.option('-m', '--message', metavar='TEXT',
|
@cmdln.option('-m', '--message', metavar='TEXT',
|
||||||
@ -2462,9 +2511,9 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
|
|
||||||
args = slash_split(args)
|
args = slash_split(args)
|
||||||
apiurl = self.get_api_url()
|
apiurl = self.get_api_url()
|
||||||
attribute = "OBS:MaintenanceProject" # default attribute as defined in api code.
|
maintenance_attribute = conf.config['maintenance_attribute']
|
||||||
if opts.attribute:
|
if opts.attribute:
|
||||||
attribute = opts.attribute
|
maintenance_attribute = opts.attribute
|
||||||
|
|
||||||
source_project = target_project = None
|
source_project = target_project = None
|
||||||
|
|
||||||
@ -2481,7 +2530,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
if len(args) > 1:
|
if len(args) > 1:
|
||||||
target_project = args[1]
|
target_project = args[1]
|
||||||
else:
|
else:
|
||||||
xpath = 'attribute/@name = \'%s\'' % attribute
|
xpath = 'attribute/@name = \'%s\'' % maintenance_attribute
|
||||||
res = search(apiurl, project_id=xpath)
|
res = search(apiurl, project_id=xpath)
|
||||||
root = res['project_id']
|
root = res['project_id']
|
||||||
project = root.find('project')
|
project = root.find('project')
|
||||||
|
@ -139,6 +139,7 @@ DEFAULTS = { 'apiurl': 'https://api.opensuse.org',
|
|||||||
|
|
||||||
# Maintenance defaults to OBS instance defaults
|
# Maintenance defaults to OBS instance defaults
|
||||||
'maintained_attribute': 'OBS:Maintained',
|
'maintained_attribute': 'OBS:Maintained',
|
||||||
|
'maintenance_attribute': 'OBS:MaintenanceProject',
|
||||||
'maintained_update_project_attribute': 'OBS:UpdateProject',
|
'maintained_update_project_attribute': 'OBS:UpdateProject',
|
||||||
'show_download_progress': '0',
|
'show_download_progress': '0',
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user