blob: 65b2c696d17d15b800e5911484b691e0221c4ecf [file] [log] [blame]
from observertest import BaseObserverToscaTest
from core.models import Image, Deployment, ControllerImages
# Note that as a side effect, these tests will also create a Site
class ObserverImageTest(BaseObserverToscaTest):
tests = ["create_image"]
# hide_observer_output = False # uncomment to display lots of stuff to screen
def cleanup(self):
# We don't want to leak resources, so we make sure to let the observer
# attempt to delete these objects.
self.try_to_delete(Image, purge=False, name="testimg")
self.run_observer()
self.try_to_delete(Image, purge=True, name="testimg")
def create_image(self):
self.assert_noobj(Image, "testimg")
file("/tmp/testimg","w").write("this_is_a_test")
self.execute(self.make_nodetemplate(self.get_usable_deployment(), "tosca.nodes.Deployment",
props={"no-delete": True},
reqs=[("testimg", "tosca.relationships.SupportsImage")]) +
self.make_nodetemplate("testimg", "tosca.nodes.Image",
props={"path": "/tmp/testimg"}))
image = self.assert_obj(Image, "testimg")
self.run_model_policy()
# make sure a ControllerImages object was created
cims = ControllerImages.objects.filter(image=image)
assert(len(cims) == 1)
# first observer pass should make any necessary networks or ports
self.run_observer()
# reset the exponential backoff
image = self.assert_obj(Image, "testimg")
# make sure the ControllerImages object has its image_id filled in
cims = ControllerImages.objects.filter(image=image)
assert(len(cims) == 1)
assert(cims[0].glance_image_id is not None)
assert(cims[0].glance_image_id != "")
if __name__ == "__main__":
ObserverImageTest()