Compare commits

...

2 Commits

Author SHA1 Message Date
Peter Šurda a2b36e7299
PEP8
buildbot/travis_bionic Build done. Details
2021-12-02 15:50:34 +08:00
Peter Šurda a51b499cb3
Add UUID syntax validation 2021-12-02 15:43:43 +08:00
1 changed files with 25 additions and 18 deletions

43
main.py
View File

@ -7,6 +7,7 @@ import configparser
import os
import socket
import sys
import uuid as uuid_module
from ipaddress import AddressValueError, IPv4Address, IPv6Address
from os import access, R_OK
@ -33,10 +34,17 @@ class CloudInitRequest:
self.remoteip = None
self.hostinfo = ('localhost', )
self.request = request
self.uuid = uuid
self.meta_data = None
self.meta_data_loaded = False
self.user_data = None
try:
self.uuid = str(uuid_module.UUID('{' + uuid + '}'))
# ValueError is wrong UUID syntax
# TypeError is None
except (ValueError, TypeError):
self.uuid = None
self._init_ip()
self._generate_default_meta_data()
@ -126,7 +134,7 @@ class CloudInitRequest:
filename = self._get_filename(META_DATA_FILENAME)
if filename:
self._update_meta_data_from_file(
filename
filename
)
self.meta_data_loaded = True
return self.meta_data
@ -194,9 +202,8 @@ class CloudInitApp:
@staticmethod
def _wrap_metadata(metadata):
return {'ds': {
'meta_data': metadata
}
}
'meta_data': metadata
}}
def _user_data(self, uuid=None):
"""
@ -294,19 +301,19 @@ if __name__ == "__main__":
CONFIG["server"].getint("server_port", 8081)
ENGINE = cherrypy.engine
current_dir = os.path.dirname(os.path.abspath(__file__))
config = {
'/include': {
'tools.staticdir.on': True,
'tools.staticdir.dir': os.path.join(current_dir,
'data',
'include'),
'tools.staticdir.content_types': {
'yml': 'text/yaml'
}
}
}
cherrypy.tree.mount(ROOT, config=config)
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
CONFIG = {
'/include': {
'tools.staticdir.on': True,
'tools.staticdir.dir': os.path.join(CURRENT_DIR,
'data',
'include'),
'tools.staticdir.content_types': {
'yml': 'text/yaml'
}
}
}
cherrypy.tree.mount(ROOT, config=CONFIG)
if hasattr(ENGINE, "signal_handler"):
ENGINE.signal_handler.subscribe()