mirror of
https://github.com/openSUSE/osc.git
synced 2025-02-10 04:55:48 +01:00
Replace 'if not <cond> in ...' with 'if <cond> not in ...'
This commit is contained in:
parent
fe59986e1c
commit
7e67269b74
@ -550,7 +550,7 @@ def check_trusted_projects(apiurl, projects):
|
|||||||
trusted = config['api_host_options'][apiurl]['trusted_prj']
|
trusted = config['api_host_options'][apiurl]['trusted_prj']
|
||||||
tlen = len(trusted)
|
tlen = len(trusted)
|
||||||
for prj in projects:
|
for prj in projects:
|
||||||
if not prj in trusted:
|
if prj not in trusted:
|
||||||
print("\nThe build root needs packages from project '%s'." % prj)
|
print("\nThe build root needs packages from project '%s'." % prj)
|
||||||
print("Note that malicious packages can compromise the build result or even your system.")
|
print("Note that malicious packages can compromise the build result or even your system.")
|
||||||
r = raw_input(trustprompt % {'project': prj})
|
r = raw_input(trustprompt % {'project': prj})
|
||||||
@ -1044,11 +1044,11 @@ def main(apiurl, opts, argv):
|
|||||||
# arch we are supposed to build for
|
# arch we are supposed to build for
|
||||||
if vm_type != "emulator" and vm_type != "qemu":
|
if vm_type != "emulator" and vm_type != "qemu":
|
||||||
if bi.hostarch is not None:
|
if bi.hostarch is not None:
|
||||||
if hostarch != bi.hostarch and not bi.hostarch in can_also_build.get(hostarch, []):
|
if hostarch != bi.hostarch and bi.hostarch not in can_also_build.get(hostarch, []):
|
||||||
print('Error: hostarch \'%s\' is required.' % (bi.hostarch), file=sys.stderr)
|
print('Error: hostarch \'%s\' is required.' % (bi.hostarch), file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
elif hostarch != bi.buildarch:
|
elif hostarch != bi.buildarch:
|
||||||
if not bi.buildarch in can_also_build.get(hostarch, []):
|
if bi.buildarch not in can_also_build.get(hostarch, []):
|
||||||
print('WARNING: It is guessed to build on hostarch \'%s\' for \'%s\' via QEMU user emulation.' % (hostarch, bi.buildarch), file=sys.stderr)
|
print('WARNING: It is guessed to build on hostarch \'%s\' for \'%s\' via QEMU user emulation.' % (hostarch, bi.buildarch), file=sys.stderr)
|
||||||
|
|
||||||
rpmlist_prefers = []
|
rpmlist_prefers = []
|
||||||
|
@ -664,7 +664,7 @@ class Osc(cmdln.Cmdln):
|
|||||||
except HTTPError:
|
except HTTPError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if opts.force or not filelist or not '_patchinfo' in filelist:
|
if opts.force or not filelist or '_patchinfo' not in filelist:
|
||||||
print("Creating new patchinfo...")
|
print("Creating new patchinfo...")
|
||||||
query = 'cmd=createpatchinfo&name=' + patchinfo
|
query = 'cmd=createpatchinfo&name=' + patchinfo
|
||||||
if opts.force:
|
if opts.force:
|
||||||
@ -2005,7 +2005,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
role = 'bugowner'
|
role = 'bugowner'
|
||||||
if opts.role:
|
if opts.role:
|
||||||
role = opts.role
|
role = opts.role
|
||||||
if not role in ('maintainer', 'bugowner'):
|
if role not in ('maintainer', 'bugowner'):
|
||||||
raise oscerr.WrongOptions('invalid \'--role\': either specify \'maintainer\' or \'bugowner\'')
|
raise oscerr.WrongOptions('invalid \'--role\': either specify \'maintainer\' or \'bugowner\'')
|
||||||
if not opts.message:
|
if not opts.message:
|
||||||
opts.message = edit_message()
|
opts.message = edit_message()
|
||||||
@ -2423,7 +2423,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
state_list = ['all']
|
state_list = ['all']
|
||||||
else:
|
else:
|
||||||
for s in state_list:
|
for s in state_list:
|
||||||
if not s in states and not s == 'all':
|
if s not in states and not s == 'all':
|
||||||
raise oscerr.WrongArgs('Unknown state \'%s\', try one of %s' % (s, ','.join(states)))
|
raise oscerr.WrongArgs('Unknown state \'%s\', try one of %s' % (s, ','.join(states)))
|
||||||
if opts.mine:
|
if opts.mine:
|
||||||
who = conf.get_apiurl_usr(apiurl)
|
who = conf.get_apiurl_usr(apiurl)
|
||||||
@ -4681,7 +4681,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
# Do some magic here, when adding a url. We want that the server to download the tar ball and to verify it
|
# Do some magic here, when adding a url. We want that the server to download the tar ball and to verify it
|
||||||
for arg in parseargs(args):
|
for arg in parseargs(args):
|
||||||
if arg.endswith('.git') or arg.startswith('git://') or \
|
if arg.endswith('.git') or arg.startswith('git://') or \
|
||||||
arg.startswith('git@') or (arg.startswith('https://github.com') and not '/releases/' in arg) or \
|
arg.startswith('git@') or (arg.startswith('https://github.com') and '/releases/' not in arg) or \
|
||||||
arg.startswith('https://gitlab.com'):
|
arg.startswith('https://gitlab.com'):
|
||||||
addGitSource(arg)
|
addGitSource(arg)
|
||||||
elif arg.startswith('http://') or arg.startswith('https://') or arg.startswith('ftp://'):
|
elif arg.startswith('http://') or arg.startswith('https://') or arg.startswith('ftp://'):
|
||||||
@ -5199,7 +5199,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
apiurl = self.get_api_url()
|
apiurl = self.get_api_url()
|
||||||
|
|
||||||
if len(files) == 0:
|
if len(files) == 0:
|
||||||
if not '/' in project:
|
if '/' not in project:
|
||||||
raise oscerr.WrongArgs("Missing operand, type osc help rremove for help")
|
raise oscerr.WrongArgs("Missing operand, type osc help rremove for help")
|
||||||
else:
|
else:
|
||||||
files = (package, )
|
files = (package, )
|
||||||
@ -6152,10 +6152,10 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
if not arg_repository:
|
if not arg_repository:
|
||||||
raise oscerr.WrongArgs('please specify a repository')
|
raise oscerr.WrongArgs('please specify a repository')
|
||||||
if not noinit:
|
if not noinit:
|
||||||
if not arg_repository in repo_names:
|
if arg_repository not in repo_names:
|
||||||
raise oscerr.WrongArgs('%s is not a valid repository, use one of: %s' % (arg_repository, ', '.join(repo_names)))
|
raise oscerr.WrongArgs('%s is not a valid repository, use one of: %s' % (arg_repository, ', '.join(repo_names)))
|
||||||
arches = [r.arch for r in repositories if r.name == arg_repository and r.arch]
|
arches = [r.arch for r in repositories if r.name == arg_repository and r.arch]
|
||||||
if arches and not arg_arch in arches:
|
if arches and arg_arch not in arches:
|
||||||
raise oscerr.WrongArgs('%s is not a valid arch for the repository %s, use one of: %s' % (arg_arch, arg_repository, ', '.join(arches)))
|
raise oscerr.WrongArgs('%s is not a valid arch for the repository %s, use one of: %s' % (arg_arch, arg_repository, ', '.join(arches)))
|
||||||
|
|
||||||
# can be implemented using
|
# can be implemented using
|
||||||
@ -6569,7 +6569,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
|
|
||||||
cwd = os.getcwd()
|
cwd = os.getcwd()
|
||||||
basename = os.path.basename(cwd)
|
basename = os.path.basename(cwd)
|
||||||
if not ':' in opts.host:
|
if ':' not in opts.host:
|
||||||
hostname = opts.host
|
hostname = opts.host
|
||||||
hostpath = "~/"
|
hostpath = "~/"
|
||||||
else:
|
else:
|
||||||
@ -7411,7 +7411,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
for r in sorted(requests, key=lambda x: x.reqid):
|
for r in sorted(requests, key=lambda x: x.reqid):
|
||||||
print(r.list_view(), '\n')
|
print(r.list_view(), '\n')
|
||||||
return
|
return
|
||||||
elif not type in args_pkg:
|
elif type not in args_pkg:
|
||||||
raise oscerr.WrongArgs("invalid type %s" % type)
|
raise oscerr.WrongArgs("invalid type %s" % type)
|
||||||
|
|
||||||
role_filter = ''
|
role_filter = ''
|
||||||
@ -7528,7 +7528,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
for i in res.get('package_id', res.get('package', dummy_elm)).findall('package'):
|
for i in res.get('package_id', res.get('package', dummy_elm)).findall('package'):
|
||||||
prj = i.get('project')
|
prj = i.get('project')
|
||||||
roles['/'.join([prj, i.get('name')])] = [p.get('role') for p in i.findall('person') if p.get('userid') == user]
|
roles['/'.join([prj, i.get('name')])] = [p.get('role') for p in i.findall('person') if p.get('userid') == user]
|
||||||
if not prj in request_todo or request_todo[prj] != []:
|
if prj not in request_todo or request_todo[prj] != []:
|
||||||
request_todo.setdefault(prj, []).append(i.get('name'))
|
request_todo.setdefault(prj, []).append(i.get('name'))
|
||||||
else:
|
else:
|
||||||
for i in res.get('project_id', res.get('project', dummy_elm)).findall('project'):
|
for i in res.get('project_id', res.get('project', dummy_elm)).findall('project'):
|
||||||
@ -7972,7 +7972,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
|
|
||||||
apiurl = self.get_api_url()
|
apiurl = self.get_api_url()
|
||||||
|
|
||||||
if not opts.method in ['GET', 'PUT', 'POST', 'DELETE']:
|
if opts.method not in ['GET', 'PUT', 'POST', 'DELETE']:
|
||||||
sys.exit('unknown method %s' % opts.method)
|
sys.exit('unknown method %s' % opts.method)
|
||||||
|
|
||||||
# default is PUT when uploading files
|
# default is PUT when uploading files
|
||||||
@ -8989,7 +8989,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
print('[%s]' % sect)
|
print('[%s]' % sect)
|
||||||
for opt in sorted(cp.options(sect)):
|
for opt in sorted(cp.options(sect)):
|
||||||
if sect == 'general' and opt in conf.api_host_options or \
|
if sect == 'general' and opt in conf.api_host_options or \
|
||||||
sect != 'general' and not opt in conf.api_host_options:
|
sect != 'general' and opt not in conf.api_host_options:
|
||||||
continue
|
continue
|
||||||
if opt in ('pass', 'passx') and not opts.dump_full:
|
if opt in ('pass', 'passx') and not opts.dump_full:
|
||||||
continue
|
continue
|
||||||
|
10
osc/conf.py
10
osc/conf.py
@ -559,7 +559,7 @@ def config_set_option(section, opt, val=None, delete=False, update=True, creds_m
|
|||||||
"""
|
"""
|
||||||
cp = get_configParser(config['conffile'])
|
cp = get_configParser(config['conffile'])
|
||||||
# don't allow "internal" options
|
# don't allow "internal" options
|
||||||
general_opts = [i for i in DEFAULTS.keys() if not i in ['user', 'pass', 'passx']]
|
general_opts = [i for i in DEFAULTS.keys() if i not in ['user', 'pass', 'passx']]
|
||||||
if section != 'general':
|
if section != 'general':
|
||||||
section = config['apiurl_aliases'].get(section, section)
|
section = config['apiurl_aliases'].get(section, section)
|
||||||
scheme, host, path = \
|
scheme, host, path = \
|
||||||
@ -577,10 +577,10 @@ def config_set_option(section, opt, val=None, delete=False, update=True, creds_m
|
|||||||
sections[apiurl] = url
|
sections[apiurl] = url
|
||||||
|
|
||||||
section = sections.get(section.rstrip('/'), section)
|
section = sections.get(section.rstrip('/'), section)
|
||||||
if not section in cp.sections():
|
if section not in cp.sections():
|
||||||
raise oscerr.ConfigError('unknown section \'%s\'' % section, config['conffile'])
|
raise oscerr.ConfigError('unknown section \'%s\'' % section, config['conffile'])
|
||||||
if section == 'general' and not opt in general_opts or \
|
if section == 'general' and opt not in general_opts or \
|
||||||
section != 'general' and not opt in api_host_options:
|
section != 'general' and opt not in api_host_options:
|
||||||
raise oscerr.ConfigError('unknown config option \'%s\'' % opt, config['conffile'])
|
raise oscerr.ConfigError('unknown config option \'%s\'' % opt, config['conffile'])
|
||||||
|
|
||||||
if not val and not delete and opt == 'pass' and creds_mgr_descr is not None:
|
if not val and not delete and opt == 'pass' and creds_mgr_descr is not None:
|
||||||
@ -833,7 +833,7 @@ def get_config(override_conffile=None,
|
|||||||
if cp.has_option(url, 'build-root', proper=True):
|
if cp.has_option(url, 'build-root', proper=True):
|
||||||
api_host_options[apiurl]['build-root'] = cp.get(url, 'build-root', raw=True)
|
api_host_options[apiurl]['build-root'] = cp.get(url, 'build-root', raw=True)
|
||||||
|
|
||||||
if not 'sslcertck' in api_host_options[apiurl]:
|
if 'sslcertck' not in api_host_options[apiurl]:
|
||||||
api_host_options[apiurl]['sslcertck'] = True
|
api_host_options[apiurl]['sslcertck'] = True
|
||||||
|
|
||||||
if 'allow_http' not in api_host_options[apiurl]:
|
if 'allow_http' not in api_host_options[apiurl]:
|
||||||
|
64
osc/core.py
64
osc/core.py
@ -778,9 +778,9 @@ class Project:
|
|||||||
res = []
|
res = []
|
||||||
for pac in self.pacs_have:
|
for pac in self.pacs_have:
|
||||||
st = self.status(pac)
|
st = self.status(pac)
|
||||||
if not st in exclude_states:
|
if st not in exclude_states:
|
||||||
res.append((st, pac))
|
res.append((st, pac))
|
||||||
if not '?' in exclude_states:
|
if '?' not in exclude_states:
|
||||||
res.extend([('?', pac) for pac in self.pacs_unvers])
|
res.extend([('?', pac) for pac in self.pacs_unvers])
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@ -918,8 +918,8 @@ class Project:
|
|||||||
try:
|
try:
|
||||||
# update complete project
|
# update complete project
|
||||||
# packages which no longer exists upstream
|
# packages which no longer exists upstream
|
||||||
upstream_del = [pac for pac in self.pacs_have if not pac in self.pacs_available and self.get_state(pac) != 'A']
|
upstream_del = [pac for pac in self.pacs_have if pac not in self.pacs_available and self.get_state(pac) != 'A']
|
||||||
sinfo_pacs = [pac for pac in self.pacs_have if self.get_state(pac) in (' ', 'D') and not pac in self.pacs_broken]
|
sinfo_pacs = [pac for pac in self.pacs_have if self.get_state(pac) in (' ', 'D') and pac not in self.pacs_broken]
|
||||||
sinfo_pacs.extend(self.pacs_missing)
|
sinfo_pacs.extend(self.pacs_missing)
|
||||||
sinfos = get_project_sourceinfo(self.apiurl, self.name, True, *sinfo_pacs)
|
sinfos = get_project_sourceinfo(self.apiurl, self.name, True, *sinfo_pacs)
|
||||||
|
|
||||||
@ -1200,7 +1200,7 @@ class Package:
|
|||||||
if self.scm_url:
|
if self.scm_url:
|
||||||
return dirty_files
|
return dirty_files
|
||||||
for fname in self.filenamelist:
|
for fname in self.filenamelist:
|
||||||
if not os.path.exists(os.path.join(self.storedir, fname)) and not fname in self.skipped:
|
if not os.path.exists(os.path.join(self.storedir, fname)) and fname not in self.skipped:
|
||||||
dirty_files.append(fname)
|
dirty_files.append(fname)
|
||||||
for fname in Package.REQ_STOREFILES:
|
for fname in Package.REQ_STOREFILES:
|
||||||
if not os.path.isfile(os.path.join(self.storedir, fname)):
|
if not os.path.isfile(os.path.join(self.storedir, fname)):
|
||||||
@ -1211,13 +1211,13 @@ class Package:
|
|||||||
continue
|
continue
|
||||||
elif fname in self.filenamelist and fname in self.skipped:
|
elif fname in self.filenamelist and fname in self.skipped:
|
||||||
dirty_files.append(fname)
|
dirty_files.append(fname)
|
||||||
elif not fname in self.filenamelist:
|
elif fname not in self.filenamelist:
|
||||||
dirty_files.append(fname)
|
dirty_files.append(fname)
|
||||||
for fname in self.to_be_deleted[:]:
|
for fname in self.to_be_deleted[:]:
|
||||||
if not fname in self.filenamelist:
|
if fname not in self.filenamelist:
|
||||||
dirty_files.append(fname)
|
dirty_files.append(fname)
|
||||||
for fname in self.in_conflict[:]:
|
for fname in self.in_conflict[:]:
|
||||||
if not fname in self.filenamelist:
|
if fname not in self.filenamelist:
|
||||||
dirty_files.append(fname)
|
dirty_files.append(fname)
|
||||||
return dirty_files
|
return dirty_files
|
||||||
|
|
||||||
@ -1235,7 +1235,7 @@ class Package:
|
|||||||
# all files which are present in the filelist have to exist in the storedir
|
# all files which are present in the filelist have to exist in the storedir
|
||||||
for f in self.filelist:
|
for f in self.filelist:
|
||||||
# XXX: should we also check the md5?
|
# XXX: should we also check the md5?
|
||||||
if not os.path.exists(os.path.join(self.storedir, f.name)) and not f.name in self.skipped:
|
if not os.path.exists(os.path.join(self.storedir, f.name)) and f.name not in self.skipped:
|
||||||
# if get_source_file fails we're screwed up...
|
# if get_source_file fails we're screwed up...
|
||||||
get_source_file(self.apiurl, self.prjname, self.name, f.name,
|
get_source_file(self.apiurl, self.prjname, self.name, f.name,
|
||||||
targetfilename=os.path.join(self.storedir, f.name), revision=self.rev,
|
targetfilename=os.path.join(self.storedir, f.name), revision=self.rev,
|
||||||
@ -1244,15 +1244,15 @@ class Package:
|
|||||||
if fname in Package.REQ_STOREFILES or fname in Package.OPT_STOREFILES or \
|
if fname in Package.REQ_STOREFILES or fname in Package.OPT_STOREFILES or \
|
||||||
fname.startswith('_build'):
|
fname.startswith('_build'):
|
||||||
continue
|
continue
|
||||||
elif not fname in self.filenamelist or fname in self.skipped:
|
elif fname not in self.filenamelist or fname in self.skipped:
|
||||||
# this file does not belong to the storedir so remove it
|
# this file does not belong to the storedir so remove it
|
||||||
os.unlink(os.path.join(self.storedir, fname))
|
os.unlink(os.path.join(self.storedir, fname))
|
||||||
for fname in self.to_be_deleted[:]:
|
for fname in self.to_be_deleted[:]:
|
||||||
if not fname in self.filenamelist:
|
if fname not in self.filenamelist:
|
||||||
self.to_be_deleted.remove(fname)
|
self.to_be_deleted.remove(fname)
|
||||||
self.write_deletelist()
|
self.write_deletelist()
|
||||||
for fname in self.in_conflict[:]:
|
for fname in self.in_conflict[:]:
|
||||||
if not fname in self.filenamelist:
|
if fname not in self.filenamelist:
|
||||||
self.in_conflict.remove(fname)
|
self.in_conflict.remove(fname)
|
||||||
self.write_conflictlist()
|
self.write_conflictlist()
|
||||||
|
|
||||||
@ -1305,7 +1305,7 @@ class Package:
|
|||||||
# that's why we don't use clear_from_conflictlist
|
# that's why we don't use clear_from_conflictlist
|
||||||
self.in_conflict.remove(n)
|
self.in_conflict.remove(n)
|
||||||
self.write_conflictlist()
|
self.write_conflictlist()
|
||||||
if not state in ('A', '?') and not (state == '!' and was_added):
|
if state not in ('A', '?') and not (state == '!' and was_added):
|
||||||
self.put_on_deletelist(n)
|
self.put_on_deletelist(n)
|
||||||
self.write_deletelist()
|
self.write_deletelist()
|
||||||
return (True, state)
|
return (True, state)
|
||||||
@ -1489,7 +1489,7 @@ class Package:
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
if not self.todo:
|
if not self.todo:
|
||||||
self.todo = [i for i in self.to_be_added if not i in self.filenamelist] + self.filenamelist
|
self.todo = [i for i in self.to_be_added if i not in self.filenamelist] + self.filenamelist
|
||||||
|
|
||||||
pathn = getTransActPath(self.dir)
|
pathn = getTransActPath(self.dir)
|
||||||
|
|
||||||
@ -1497,7 +1497,7 @@ class Package:
|
|||||||
todo_delete = []
|
todo_delete = []
|
||||||
real_send = []
|
real_send = []
|
||||||
sha256sums = {}
|
sha256sums = {}
|
||||||
for filename in self.filenamelist + [i for i in self.to_be_added if not i in self.filenamelist]:
|
for filename in self.filenamelist + [i for i in self.to_be_added if i not in self.filenamelist]:
|
||||||
if filename.startswith('_service:') or filename.startswith('_service_'):
|
if filename.startswith('_service:') or filename.startswith('_service_'):
|
||||||
continue
|
continue
|
||||||
st = self.status(filename)
|
st = self.status(filename)
|
||||||
@ -1566,7 +1566,7 @@ class Package:
|
|||||||
fileelem.set('hash', 'sha256:%s' % sha256sums[filename])
|
fileelem.set('hash', 'sha256:%s' % sha256sums[filename])
|
||||||
sfilelist = self.__send_commitlog(msg, filelist)
|
sfilelist = self.__send_commitlog(msg, filelist)
|
||||||
send = self.commit_get_missing(sfilelist)
|
send = self.commit_get_missing(sfilelist)
|
||||||
real_send = [i for i in real_send if not i in send]
|
real_send = [i for i in real_send if i not in send]
|
||||||
# abort after 3 tries
|
# abort after 3 tries
|
||||||
tries = 3
|
tries = 3
|
||||||
tdir = None
|
tdir = None
|
||||||
@ -1924,7 +1924,7 @@ class Package:
|
|||||||
res = []
|
res = []
|
||||||
for fname in sorted(todo):
|
for fname in sorted(todo):
|
||||||
st = self.status(fname)
|
st = self.status(fname)
|
||||||
if not st in exclude_states:
|
if st not in exclude_states:
|
||||||
res.append((st, fname))
|
res.append((st, fname))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@ -1979,7 +1979,7 @@ class Package:
|
|||||||
state = 'M'
|
state = 'M'
|
||||||
elif n in self.to_be_added and not exists:
|
elif n in self.to_be_added and not exists:
|
||||||
state = '!'
|
state = '!'
|
||||||
elif not exists and exists_in_store and known_by_meta and not n in self.to_be_deleted:
|
elif not exists and exists_in_store and known_by_meta and n not in self.to_be_deleted:
|
||||||
state = '!'
|
state = '!'
|
||||||
elif exists and not exists_in_store and not known_by_meta:
|
elif exists and not exists_in_store and not known_by_meta:
|
||||||
state = '?'
|
state = '?'
|
||||||
@ -2016,7 +2016,7 @@ class Package:
|
|||||||
if add:
|
if add:
|
||||||
diff.append(b'--- %s\t(revision 0)\n' % fname.encode())
|
diff.append(b'--- %s\t(revision 0)\n' % fname.encode())
|
||||||
rev = 'revision 0'
|
rev = 'revision 0'
|
||||||
if revision and not fname in self.to_be_added:
|
if revision and fname not in self.to_be_added:
|
||||||
rev = 'working copy'
|
rev = 'working copy'
|
||||||
diff.append(b'+++ %s\t(%s)\n' % (fname.encode(), rev.encode()))
|
diff.append(b'+++ %s\t(%s)\n' % (fname.encode(), rev.encode()))
|
||||||
fname = os.path.join(self.absdir, fname)
|
fname = os.path.join(self.absdir, fname)
|
||||||
@ -2063,7 +2063,7 @@ class Package:
|
|||||||
return diff
|
return diff
|
||||||
|
|
||||||
if revision is None:
|
if revision is None:
|
||||||
todo = self.todo or [i for i in self.filenamelist if not i in self.to_be_added] + self.to_be_added
|
todo = self.todo or [i for i in self.filenamelist if i not in self.to_be_added] + self.to_be_added
|
||||||
for fname in todo:
|
for fname in todo:
|
||||||
if fname in self.to_be_added and self.status(fname) == 'A':
|
if fname in self.to_be_added and self.status(fname) == 'A':
|
||||||
added.append(fname)
|
added.append(fname)
|
||||||
@ -2083,7 +2083,7 @@ class Package:
|
|||||||
# swap added and deleted
|
# swap added and deleted
|
||||||
kept, deleted, added, services = self.__get_rev_changes(rfiles)
|
kept, deleted, added, services = self.__get_rev_changes(rfiles)
|
||||||
added = [f.name for f in added]
|
added = [f.name for f in added]
|
||||||
added.extend([f for f in self.to_be_added if not f in kept])
|
added.extend([f for f in self.to_be_added if f not in kept])
|
||||||
deleted = [f.name for f in deleted]
|
deleted = [f.name for f in deleted]
|
||||||
deleted.extend(self.to_be_deleted)
|
deleted.extend(self.to_be_deleted)
|
||||||
for f in added[:]:
|
for f in added[:]:
|
||||||
@ -2271,12 +2271,12 @@ rev: %s
|
|||||||
# treat skipped like added files
|
# treat skipped like added files
|
||||||
# problem: this overwrites existing files during the update
|
# problem: this overwrites existing files during the update
|
||||||
# (because skipped files aren't in self.filenamelist_unvers)
|
# (because skipped files aren't in self.filenamelist_unvers)
|
||||||
if f.name in self.filenamelist and not f.name in self.skipped:
|
if f.name in self.filenamelist and f.name not in self.skipped:
|
||||||
kept.append(f)
|
kept.append(f)
|
||||||
else:
|
else:
|
||||||
added.append(f)
|
added.append(f)
|
||||||
for f in self.filelist:
|
for f in self.filelist:
|
||||||
if not f.name in revfilenames:
|
if f.name not in revfilenames:
|
||||||
deleted.append(f)
|
deleted.append(f)
|
||||||
|
|
||||||
return kept, added, deleted, services
|
return kept, added, deleted, services
|
||||||
@ -2489,7 +2489,7 @@ rev: %s
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
def revert(self, filename):
|
def revert(self, filename):
|
||||||
if not filename in self.filenamelist and not filename in self.to_be_added:
|
if filename not in self.filenamelist and filename not in self.to_be_added:
|
||||||
raise oscerr.OscIOError(None, 'file \'%s\' is not under version control' % filename)
|
raise oscerr.OscIOError(None, 'file \'%s\' is not under version control' % filename)
|
||||||
elif filename in self.skipped:
|
elif filename in self.skipped:
|
||||||
raise oscerr.OscIOError(None, 'file \'%s\' is marked as skipped and cannot be reverted' % filename)
|
raise oscerr.OscIOError(None, 'file \'%s\' is marked as skipped and cannot be reverted' % filename)
|
||||||
@ -2728,11 +2728,11 @@ class Action:
|
|||||||
prefix_to_elm = {'src': 'source', 'tgt': 'target', 'opt': 'options'}
|
prefix_to_elm = {'src': 'source', 'tgt': 'target', 'opt': 'options'}
|
||||||
|
|
||||||
def __init__(self, type, **kwargs):
|
def __init__(self, type, **kwargs):
|
||||||
if not type in Action.type_args.keys():
|
if type not in Action.type_args.keys():
|
||||||
raise oscerr.WrongArgs('invalid action type: \'%s\'' % type)
|
raise oscerr.WrongArgs('invalid action type: \'%s\'' % type)
|
||||||
self.type = type
|
self.type = type
|
||||||
for i in kwargs.keys():
|
for i in kwargs.keys():
|
||||||
if not i in Action.type_args[type]:
|
if i not in Action.type_args[type]:
|
||||||
raise oscerr.WrongArgs('invalid argument: \'%s\'' % i)
|
raise oscerr.WrongArgs('invalid argument: \'%s\'' % i)
|
||||||
# set all type specific attributes
|
# set all type specific attributes
|
||||||
for i in Action.type_args[type]:
|
for i in Action.type_args[type]:
|
||||||
@ -2787,8 +2787,8 @@ class Action:
|
|||||||
def from_xml(action_node):
|
def from_xml(action_node):
|
||||||
"""create action from XML"""
|
"""create action from XML"""
|
||||||
if action_node is None or \
|
if action_node is None or \
|
||||||
not action_node.get('type') in Action.type_args.keys() or \
|
action_node.get('type') not in Action.type_args.keys() or \
|
||||||
not action_node.tag in ('action', 'submit'):
|
action_node.tag not in ('action', 'submit'):
|
||||||
raise oscerr.WrongArgs('invalid argument')
|
raise oscerr.WrongArgs('invalid argument')
|
||||||
elm_to_prefix = {i[1]: i[0] for i in Action.prefix_to_elm.items()}
|
elm_to_prefix = {i[1]: i[0] for i in Action.prefix_to_elm.items()}
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
@ -4453,7 +4453,7 @@ def get_request_collection(apiurl, role=None, req_who=None, req_states=('new', '
|
|||||||
|
|
||||||
def get_exact_request_list(apiurl, src_project, dst_project, src_package=None, dst_package=None, req_who=None, req_state=('new', 'review', 'declined'), req_type=None):
|
def get_exact_request_list(apiurl, src_project, dst_project, src_package=None, dst_package=None, req_who=None, req_state=('new', 'review', 'declined'), req_type=None):
|
||||||
xpath = ''
|
xpath = ''
|
||||||
if not 'all' in req_state:
|
if 'all' not in req_state:
|
||||||
for state in req_state:
|
for state in req_state:
|
||||||
xpath = xpath_join(xpath, 'state/@name=\'%s\'' % state, op='or', inner=True)
|
xpath = xpath_join(xpath, 'state/@name=\'%s\'' % state, op='or', inner=True)
|
||||||
xpath = '(%s)' % xpath
|
xpath = '(%s)' % xpath
|
||||||
@ -4487,7 +4487,7 @@ def get_request_list(apiurl, project='', package='', req_who='', req_state=('new
|
|||||||
withfullhistory=False):
|
withfullhistory=False):
|
||||||
exclude_target_projects = exclude_target_projects or []
|
exclude_target_projects = exclude_target_projects or []
|
||||||
xpath = ''
|
xpath = ''
|
||||||
if not 'all' in req_state:
|
if 'all' not in req_state:
|
||||||
for state in req_state:
|
for state in req_state:
|
||||||
xpath = xpath_join(xpath, 'state/@name=\'%s\'' % state, inner=True)
|
xpath = xpath_join(xpath, 'state/@name=\'%s\'' % state, inner=True)
|
||||||
if req_who:
|
if req_who:
|
||||||
@ -4556,7 +4556,7 @@ def get_user_projpkgs_request_list(apiurl, user, req_state=('new', 'review', ),
|
|||||||
xpath = xpath_join(xpath, xp, inner=True)
|
xpath = xpath_join(xpath, xp, inner=True)
|
||||||
if req_type:
|
if req_type:
|
||||||
xpath = xpath_join(xpath, 'action/@type=\'%s\'' % req_type, op='and')
|
xpath = xpath_join(xpath, 'action/@type=\'%s\'' % req_type, op='and')
|
||||||
if not 'all' in req_state:
|
if 'all' not in req_state:
|
||||||
xp = ''
|
xp = ''
|
||||||
for state in req_state:
|
for state in req_state:
|
||||||
xp = xpath_join(xp, 'state/@name=\'%s\'' % state, inner=True)
|
xp = xpath_join(xp, 'state/@name=\'%s\'' % state, inner=True)
|
||||||
@ -4932,7 +4932,7 @@ def server_diff_noex(apiurl,
|
|||||||
body = None
|
body = None
|
||||||
try:
|
try:
|
||||||
body = e.read()
|
body = e.read()
|
||||||
if not b'bad link' in body:
|
if b'bad link' not in body:
|
||||||
return b'# diff failed: ' + body
|
return b'# diff failed: ' + body
|
||||||
except:
|
except:
|
||||||
return b'# diff failed with unknown error'
|
return b'# diff failed with unknown error'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user