From d61a67159b56f99b7a1023b6c79ed9a8aab99f03 Mon Sep 17 00:00:00 2001 From: Daniele Belfiore <daniele.belfiore@pg.infn.it> Date: Tue, 19 Jan 2016 16:02:01 +0000 Subject: [PATCH] Update conf files --- external-script-iaas/.gitignore | 7 ++ .../credentials_template.conf | 12 +++ external-script-iaas/filelock.py | 79 +++++++++++++++++++ external-script-iaas/prisma-iaas | 2 +- external-script-iaas/token_backup_template | 3 + 5 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 external-script-iaas/.gitignore create mode 100644 external-script-iaas/credentials_template.conf create mode 100755 external-script-iaas/filelock.py create mode 100644 external-script-iaas/token_backup_template diff --git a/external-script-iaas/.gitignore b/external-script-iaas/.gitignore new file mode 100644 index 0000000..88306fb --- /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 0000000..28199a0 --- /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 0000000..b010919 --- /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 ef71413..c751653 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 0000000..19a7c10 --- /dev/null +++ b/external-script-iaas/token_backup_template @@ -0,0 +1,3 @@ +[token] +id = +expires = -- GitLab