diff --git a/external-script-iaas/.gitignore b/external-script-iaas/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..88306fb90afd8baf6f3544e5866d932414c27248
--- /dev/null
+++ b/external-script-iaas/.gitignore
@@ -0,0 +1,7 @@
+# Python generated files
+*.pyc
+*.py~
+.*.swp
+
+credentials.conf
+token_backup
diff --git a/external-script-iaas/credentials_template.conf b/external-script-iaas/credentials_template.conf
new file mode 100644
index 0000000000000000000000000000000000000000..28199a09f575347062fa5fe5c1f2dc6771bd0cac
--- /dev/null
+++ b/external-script-iaas/credentials_template.conf
@@ -0,0 +1,12 @@
+[ceilometer]
+protocol = 
+server = 
+port = 
+
+[keystone]
+protocol = 
+server = 
+port = 
+tenant = 
+username = 
+password = 
diff --git a/external-script-iaas/filelock.py b/external-script-iaas/filelock.py
new file mode 100755
index 0000000000000000000000000000000000000000..b01091926726b5dcae1029aa46d6a4501b07dcc7
--- /dev/null
+++ b/external-script-iaas/filelock.py
@@ -0,0 +1,79 @@
+import os
+import time
+import errno
+
+class FileLockException(Exception):
+    pass
+ 
+class FileLock(object):
+    """ A file locking mechanism that has context-manager support so 
+        you can use it in a with statement. This should be relatively cross
+        compatible as it doesn't rely on msvcrt or fcntl for the locking.
+    """
+ 
+    def __init__(self, file_name, timeout=90, delay=.05):
+        """ Prepare the file locker. Specify the file to lock and optionally
+            the maximum timeout and the delay between each attempt to lock.
+        """
+        self.is_locked = False
+        self.lockfile = os.path.join(os.getcwd(), "%s.lock" % file_name)
+        self.file_name = file_name
+        self.timeout = timeout
+        self.delay = delay
+ 
+ 
+    def acquire(self):
+        """ Acquire the lock, if possible. If the lock is in use, it check again
+            every `wait` seconds. It does this until it either gets the lock or
+            exceeds `timeout` number of seconds, in which case it throws 
+            an exception.
+        """
+        start_time = time.time()
+        while True:
+            try:
+                self.fd = os.open(self.lockfile, os.O_CREAT|os.O_EXCL|os.O_RDWR)
+                break;
+            except OSError as e:
+                if e.errno != errno.EEXIST:
+                    raise
+                if time.time() - os.stat(self.lockfile)[7] >= 60: # if the file is locked since 60 seconds
+                    os.remove(self.lockfile)
+                #if (time.time() - start_time) >= self.timeout:
+                    #raise FileLockException("Timeout occured.")
+                time.sleep(self.delay)
+        self.is_locked = True
+ 
+ 
+    def release(self):
+        """ Get rid of the lock by deleting the lockfile. 
+            When working in a `with` statement, this gets automatically 
+            called at the end.
+        """
+        if self.is_locked:
+            os.close(self.fd)
+            os.unlink(self.lockfile)
+            self.is_locked = False
+ 
+ 
+    def __enter__(self):
+        """ Activated when used in the with statement. 
+            Should automatically acquire a lock to be used in the with block.
+        """
+        if not self.is_locked:
+            self.acquire()
+        return self
+ 
+ 
+    def __exit__(self, type, value, traceback):
+        """ Activated at the end of the with statement.
+            It automatically releases the lock if it isn't locked.
+        """
+        if self.is_locked:
+            self.release()
+ 
+ 
+    def __del__(self):
+        """ Make sure that the FileLock instance doesn't leave a lockfile
+            lying around.
+        """
+        self.release()
diff --git a/external-script-iaas/prisma-iaas b/external-script-iaas/prisma-iaas
index ef7141305ec387092e43dba2fe82d3577d60ab64..c7516539964d03bdba73777e04ff3f45a95addab 100644
--- a/external-script-iaas/prisma-iaas
+++ b/external-script-iaas/prisma-iaas
@@ -221,7 +221,7 @@ class Prisma:
 def encode():
     struct = {}
 
-    config_file_path = os.path.join(os.path.dirname(__file__), 'proxy.conf')
+    config_file_path = os.path.join(os.path.dirname(__file__), 'credentials.conf')
     parser_config = ConfigParser.SafeConfigParser()
     parser_config.readfp(open(config_file_path))
 
diff --git a/external-script-iaas/token_backup_template b/external-script-iaas/token_backup_template
new file mode 100644
index 0000000000000000000000000000000000000000..19a7c10dcb36cdbc3b560250b33f78d9196022db
--- /dev/null
+++ b/external-script-iaas/token_backup_template
@@ -0,0 +1,3 @@
+[token]
+id = 
+expires =