Merge "Folder Not Found with Git Downloadable File"
This commit is contained in:
commit
ce1b97382b
|
@ -18,13 +18,13 @@ import git
|
|||
import os
|
||||
import requests
|
||||
import shutil
|
||||
import subprocess
|
||||
import urlparse
|
||||
|
||||
from muranoagent.common import config
|
||||
|
||||
from muranoagent.openstack.common import log as logging
|
||||
|
||||
CONF = config.CONF
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FilesManager(object):
|
||||
|
@ -104,11 +104,23 @@ class FilesManager(object):
|
|||
|
||||
folder = self._get_file_folder(url_file, file_def['Name'])
|
||||
|
||||
if self._is_git_repository(url_file):
|
||||
if not os.path.isdir(folder):
|
||||
if not os.path.isdir(folder):
|
||||
os.makedirs(folder)
|
||||
|
||||
try:
|
||||
if self._is_git_repository(url_file):
|
||||
git.Git().clone(url_file, folder)
|
||||
else:
|
||||
self._download_file(url_file, folder)
|
||||
else:
|
||||
self._download_file(url_file, folder)
|
||||
except Exception as e:
|
||||
if self._is_git_repository(url_file):
|
||||
mns = ("Error to clone the git repository {0}: {1}".
|
||||
format(url_file, e.message))
|
||||
else:
|
||||
mns = ("Error to download the file {0}: {1}".
|
||||
format(url_file, e.message))
|
||||
LOG.warn(mns)
|
||||
raise ValueError(mns)
|
||||
|
||||
def clear(self):
|
||||
shutil.rmtree(self._cache_folder, ignore_errors=True)
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
# under the License.
|
||||
|
||||
import bunch
|
||||
import git
|
||||
import mock
|
||||
import os.path
|
||||
|
||||
from muranoagent.common import config as cfg
|
||||
from muranoagent import files_manager
|
||||
|
@ -41,7 +41,8 @@ class TestFileManager(base.MuranoAgentTestCase):
|
|||
mock_path.return_value = None
|
||||
files = files_manager.FilesManager(self.get_template_downloable())
|
||||
folder = files._get_file_folder("http://tomcat.git", "tomcat")
|
||||
self.assertEqual(folder, "cache/files/ID/files/tomcat")
|
||||
self.assertEqual(folder,
|
||||
os.path.normpath("cache/files/ID/files/tomcat"))
|
||||
|
||||
@mock.patch('os.makedirs')
|
||||
def test_get_folder_not_git(self, mock_path):
|
||||
|
@ -49,7 +50,8 @@ class TestFileManager(base.MuranoAgentTestCase):
|
|||
mock_path.return_value = None
|
||||
files = files_manager.FilesManager(self.get_template_downloable())
|
||||
folder = files._get_file_folder("http://tomcat", "tomcat")
|
||||
self.assertEqual(folder, "cache/files/ID/files/tomcat")
|
||||
self.assertEqual(folder,
|
||||
os.path.normpath("cache/files/ID/files/tomcat"))
|
||||
|
||||
@mock.patch("git.Git")
|
||||
@mock.patch('os.path.isdir')
|
||||
|
|
Loading…
Reference in New Issue