docs: def get_url(self,
  	            filename,
  	            locations,
  	            command='curl -L',
  	            timeout=shutit_global.shutit_global_object.default_timeout,
  	            fail_on_empty_before=True,
  	            record_command=True,
  	            exit_values=None,
  	            retry=3,
  	            note=None,
  	            loglevel=logging.DEBUG):
  		"""Handles the getting of a url for you.
  
  		Example:
  		get_url('somejar.jar', ['ftp://loc.org','http://anotherloc.com/jars'])
  
  		@param filename:             name of the file to download
  		@param locations:            list of URLs whence the file can be downloaded
  		@param command:              program to use to download the file (Default: wget)
  		@param timeout:              See send()
  		@param fail_on_empty_before: See send()
  		@param record_command:       See send()
  		@param exit_values:          See send()
  		@param retry:                How many times to retry the download
  		                             in case of failure. Default: 3
  		@param note:                 See send()
  
  		@type filename:              string
  		@type locations:             list of strings
  		@type retry:                 integer
  
  		@return: True if the download was completed successfully, False otherwise.
  		@rtype: boolean
  		"""
  		shutit = self.shutit
  		shutit.handle_note(note)
  		if not locations or not isinstance(locations, list):
  			raise ShutItFailException('Locations should be a list containing base of the url.')
  		retry_orig = retry
  		if not self.command_available(command):
  			self.install('curl')
  			if not self.command_available('curl'):
  				self.install('wget')
  				command = 'wget -qO- '
  				if not self.command_available('wget'):
  					shutit.fail('Could not install curl or wget, inform maintainers.') # pragma: no cover
  		for location in locations:
  			retry = retry_orig
  			if location[-1] == '/':
  				location = location[0:-1]
  			while retry >= 0:
  				send = command + ' ' + location + '/' + filename + ' > ' + filename
  				self.send(ShutItSendSpec(self,
  				                         send=send,
  				                         check_exit=False,
  				                         expect=self.default_expect,
  				                         timeout=timeout,
  				                         fail_on_empty_before=fail_on_empty_before,
  				                         record_command=record_command,
  				                         echo=False,
  				                         loglevel=loglevel,
  				                         ignore_background=True))
  				if retry == 0:
  					self.check_last_exit_values(send,
  					                            expect=self.default_expect,
  					                            exit_values=exit_values,
  					                            retbool=False)
  				elif not self.check_last_exit_values(send,
  				                                     expect=self.default_expect,
  				                                     exit_values=exit_values,
  				                                     retbool=True):
  					shutit.log('Sending: ' + send + ' failed, retrying', level=logging.DEBUG)
  					retry -= 1
  					continue
  				# If we get here, all is ok.
  				shutit.handle_note_after(note=note)
  				return True
  		# If we get here, it didn't work
  		return False