Revision 60bcb377
b/kamaki/cli/commands/errors.py | ||
---|---|---|
516 | 516 |
try: |
517 | 517 |
return func(self, *args, **kwargs) |
518 | 518 |
except IOError as ioe: |
519 |
msg = 'Failed to access a file', |
|
519 |
msg = 'Failed to access a local file',
|
|
520 | 520 |
raiseCLIError(ioe, msg, importance=2, details=[ |
521 | 521 |
'Check if the file exists. Also check if the remote', |
522 | 522 |
'directories exist. All directories in a remote path', |
b/kamaki/cli/commands/pithos.py | ||
---|---|---|
1206 | 1206 |
parsed_name, self.container)]) |
1207 | 1207 |
else: |
1208 | 1208 |
# Remote object is just a file |
1209 |
if path.exists(local_path) and not self['resume']: |
|
1210 |
raise CLIError( |
|
1211 |
'Cannot overwrite local file %s' % (local_path), |
|
1212 |
details=['To overwrite/resume, use %s' % ( |
|
1213 |
self.arguments['resume'].lvalue)]) |
|
1209 |
if path.exists(local_path): |
|
1210 |
if not self['resume']: |
|
1211 |
raise CLIError( |
|
1212 |
'Cannot overwrite local file %s' % (local_path), |
|
1213 |
details=['To overwrite/resume, use %s' % ( |
|
1214 |
self.arguments['resume'].lvalue)]) |
|
1215 |
elif '/' in local_path[1:-1]: |
|
1216 |
dirs = [p for p in local_path.split('/') if p] |
|
1217 |
pref = '/' if local_path.startswith('/') else '' |
|
1218 |
for d in dirs[:-1]: |
|
1219 |
pref += d |
|
1220 |
if not path.exists(pref): |
|
1221 |
ret.append((None, d, None)) |
|
1222 |
elif not path.isdir(pref): |
|
1223 |
raise CLIError( |
|
1224 |
'Failed to use %s as a destination' % local_path, |
|
1225 |
importance=3, |
|
1226 |
details=[ |
|
1227 |
'Local file %s is not a directory' % pref, |
|
1228 |
'Destination prefix must consist of ' |
|
1229 |
'directories or non-existing names', |
|
1230 |
'Either remove the file, or choose another ' |
|
1231 |
'destination']) |
|
1214 | 1232 |
ret.append((rpath, local_path, self['resume'])) |
1215 | 1233 |
for r, l, resume in ret: |
1216 | 1234 |
if r: |
Also available in: Unified diff