forked from ungleich-public/cdist
Merge remote-tracking branch 'steven/master'
This commit is contained in:
commit
72e930ac1c
4 changed files with 23 additions and 7 deletions
|
@ -41,8 +41,6 @@ class Context(object):
|
||||||
debug=False):
|
debug=False):
|
||||||
|
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
if self.debug:
|
|
||||||
os.environ['__debug'] = 'yes'
|
|
||||||
|
|
||||||
self.target_host = target_host
|
self.target_host = target_host
|
||||||
|
|
||||||
|
|
|
@ -105,10 +105,14 @@ class Explorer(object):
|
||||||
def transfer_type_explorers(self, cdist_type):
|
def transfer_type_explorers(self, cdist_type):
|
||||||
"""Transfer the type explorers for the given type to the remote side."""
|
"""Transfer the type explorers for the given type to the remote side."""
|
||||||
if cdist_type.explorers:
|
if cdist_type.explorers:
|
||||||
|
if cdist_type.explorers_transferred:
|
||||||
|
log.debug("Skipping retransfer of type explorers for: %s", cdist_type)
|
||||||
|
else:
|
||||||
source = os.path.join(self.local.type_path, cdist_type.explorer_path)
|
source = os.path.join(self.local.type_path, cdist_type.explorer_path)
|
||||||
destination = os.path.join(self.remote.type_path, cdist_type.explorer_path)
|
destination = os.path.join(self.remote.type_path, cdist_type.explorer_path)
|
||||||
self.remote.mkdir(destination)
|
self.remote.mkdir(destination)
|
||||||
self.remote.transfer(source, destination)
|
self.remote.transfer(source, destination)
|
||||||
|
cdist_type.explorers_transferred = True
|
||||||
|
|
||||||
def transfer_object_parameters(self, cdist_object):
|
def transfer_object_parameters(self, cdist_object):
|
||||||
"""Transfer the parameters for the given object to the remote side."""
|
"""Transfer the parameters for the given object to the remote side."""
|
||||||
|
|
|
@ -67,7 +67,7 @@ class Type(object):
|
||||||
self.gencode_remote_path = os.path.join(self.name, "gencode-remote")
|
self.gencode_remote_path = os.path.join(self.name, "gencode-remote")
|
||||||
self.manifest_path = os.path.join(self.name, "manifest")
|
self.manifest_path = os.path.join(self.name, "manifest")
|
||||||
|
|
||||||
self.transferred_explorers = False
|
self.explorers_transferred = False
|
||||||
|
|
||||||
self.__explorers = None
|
self.__explorers = None
|
||||||
self.__required_parameters = None
|
self.__required_parameters = None
|
||||||
|
|
|
@ -95,6 +95,20 @@ class ExplorerClassTestCase(unittest.TestCase):
|
||||||
destination = os.path.join(self.remote.type_path, cdist_type.explorer_path)
|
destination = os.path.join(self.remote.type_path, cdist_type.explorer_path)
|
||||||
self.assertEqual(os.listdir(source), os.listdir(destination))
|
self.assertEqual(os.listdir(source), os.listdir(destination))
|
||||||
|
|
||||||
|
def test_transfer_type_explorers_only_once(self):
|
||||||
|
cdist_type = core.Type(self.local.type_path, '__test_type')
|
||||||
|
# first transfer
|
||||||
|
self.explorer.transfer_type_explorers(cdist_type)
|
||||||
|
source = os.path.join(self.local.type_path, cdist_type.explorer_path)
|
||||||
|
destination = os.path.join(self.remote.type_path, cdist_type.explorer_path)
|
||||||
|
self.assertEqual(os.listdir(source), os.listdir(destination))
|
||||||
|
# nuke destination folder content, but recreate directory
|
||||||
|
shutil.rmtree(destination)
|
||||||
|
os.makedirs(destination)
|
||||||
|
# second transfer, should not happen
|
||||||
|
self.explorer.transfer_type_explorers(cdist_type)
|
||||||
|
self.assertFalse(os.listdir(destination))
|
||||||
|
|
||||||
def test_transfer_object_parameters(self):
|
def test_transfer_object_parameters(self):
|
||||||
cdist_type = core.Type(self.local.type_path, '__test_type')
|
cdist_type = core.Type(self.local.type_path, '__test_type')
|
||||||
cdist_object = core.Object(cdist_type, self.local.object_path, 'whatever')
|
cdist_object = core.Object(cdist_type, self.local.object_path, 'whatever')
|
||||||
|
|
Loading…
Reference in a new issue