
Change-Id: Ieb82235bd6b436b6716992c1b45698b083d03d86 remove pre-existing chef files before uploading new chef files. having legacy stale chef roles/cookbooks/databags in the knife source directory will result in possible failure of dependency check, so gurantee we have the latest code in that directory. clean installation logs when refresh database. Change-Id: I6609e90e51d8ca3560f1848f2de62e148f0c5b49
72 lines
2.2 KiB
Python
Executable File
72 lines
2.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# Copyright 2014 Huawei Technologies Co. Ltd
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
"""main script to run as service to update hosts installing progress."""
|
|
import functools
|
|
import lockfile
|
|
import logging
|
|
import os
|
|
import site
|
|
import sys
|
|
|
|
activate_this = '$PythonHome/bin/activate_this.py'
|
|
execfile(activate_this, dict(__file__=activate_this))
|
|
site.addsitedir('$PythonHome/lib/python2.6/site-packages')
|
|
sys.path.append('$PythonHome')
|
|
os.environ['PYTHON_EGG_CACHE'] = '/tmp/.egg'
|
|
|
|
from compass.actions import update_progress
|
|
from compass.db.api import database
|
|
from compass.tasks.client import celery
|
|
from compass.utils import daemonize
|
|
from compass.utils import flags
|
|
from compass.utils import logsetting
|
|
from compass.utils import setting_wrapper as setting
|
|
from compass.utils import util
|
|
|
|
|
|
flags.add_bool('async',
|
|
help='run in async mode',
|
|
default=True)
|
|
flags.add('run_interval', type='int',
|
|
help='run interval in seconds',
|
|
default=setting.PROGRESS_UPDATE_INTERVAL)
|
|
|
|
|
|
def progress_update():
|
|
"""entry function."""
|
|
if flags.OPTIONS.async:
|
|
celery.send_task('compass.tasks.update_progress', ())
|
|
else:
|
|
try:
|
|
update_progress.update_progress()
|
|
except Exception as error:
|
|
logging.error('failed to update progress')
|
|
logging.exception(error)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
flags.init()
|
|
logsetting.init()
|
|
database.init()
|
|
logging.info('run progress update')
|
|
daemonize.daemonize(
|
|
progress_update,
|
|
flags.OPTIONS.run_interval,
|
|
pidfile=lockfile.FileLock('/var/run/progress_update.pid'),
|
|
stderr=open('/tmp/progress_update_err.log', 'w+'),
|
|
stdout=open('/tmp/progress_update_out.log', 'w+'))
|