def __init__(self, name): setproctitle.setproctitle(process_name(name)) self.log, _ = logutil.setup(name) set_log_level(self.log, name) self.exit = Event() signal.signal(signal.SIGTERM, self.exit_gracefully)
import hashlib import os import re import requests import time from shakenfist import db from shakenfist.config import config from shakenfist import exceptions from shakenfist import image_resolver_cirros from shakenfist import image_resolver_ubuntu from shakenfist import logutil from shakenfist import util from shakenfist import virt LOG, _ = logutil.setup(__name__) resolvers = {'cirros': image_resolver_cirros, 'ubuntu': image_resolver_ubuntu} def _get_cache_path(): image_cache_path = os.path.join(config.get('STORAGE_PATH'), 'image_cache') if not os.path.exists(image_cache_path): LOG.withField('image_cache_path', image_cache_path).debug('Creating image cache') os.makedirs(image_cache_path, exist_ok=True) return image_cache_path class Image(object): def __init__(self, url, checksum, size, modified, fetched, file_version):
from flask_jwt_extended import get_jwt_identity from shakenfist.daemons import daemon from shakenfist.external_api import base as api_base from shakenfist import db from shakenfist.instance import Instance from shakenfist.ipmanager import IPManager from shakenfist import logutil from shakenfist import net from shakenfist.networkinterface import NetworkInterface LOG, HANDLER = logutil.setup(__name__) daemon.set_log_level(LOG, 'api') def metadata_putpost(meta_type, owner, key, value): if meta_type not in ['namespace', 'instance', 'network']: return api_base.error(500, 'invalid meta_type %s' % meta_type) if not key: return api_base.error(400, 'no key specified') if not value: return api_base.error(400, 'no value specified') with db.get_lock('metadata', meta_type, owner, op='Metadata update'): md = db.get_metadata(meta_type, owner) if md is None: md = {} md[key] = value db.persist_metadata(meta_type, owner, md)
def __init__(self, name): setproctitle.setproctitle(process_name(name)) log, _ = logutil.setup(name) set_log_level(log, name)
from shakenfist.config import config from shakenfist.daemons import daemon from shakenfist.daemons import external_api as external_api_daemon from shakenfist.daemons import cleaner as cleaner_daemon from shakenfist.daemons import queues as queues_daemon from shakenfist.daemons import net as net_daemon from shakenfist.daemons import resources as resource_daemon from shakenfist.daemons import triggers as trigger_daemon from shakenfist import db from shakenfist import logutil from shakenfist import net from shakenfist import util from shakenfist import virt LOG, HANDLER = logutil.setup('main') def restore_instances(): # Ensure all instances for this node are defined networks = [] instances = [] for inst in list(db.get_instances(only_node=config.NODE_NAME)): for iface in db.get_instance_interfaces(inst['uuid']): if not iface['network_uuid'] in networks: networks.append(iface['network_uuid']) instances.append(inst['uuid']) with util.RecordedOperation('restore networks', None): for network in networks: try:
import requests import sys import time import traceback import uuid from shakenfist import config from shakenfist import db from shakenfist import exceptions from shakenfist import logutil from shakenfist import net from shakenfist import scheduler from shakenfist import util from shakenfist import virt LOG, HANDLER = logutil.setup('api') TESTING = False SCHEDULER = None def error(status_code, message): global TESTING body = {'error': message, 'status': status_code} if TESTING or config.parsed.get('INCLUDE_TRACEBACKS') == '1': _, _, tb = sys.exc_info() if tb: body['traceback'] = traceback.format_exc()