userdata.py fixed
This commit is contained in:
parent
08dea53445
commit
c1908d9e21
@ -30,18 +30,18 @@ from cloudbaseinit.plugins.base import *
|
|||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
opts = [
|
opts = [
|
||||||
cfg.StrOpt('user-data_folder', default='cloud-data',
|
cfg.StrOpt('user_data_folder', default='cloud-data',
|
||||||
help='Specifies a folder to store multipart data files.'),
|
help='Specifies a folder to store multipart data files.'),
|
||||||
]
|
]
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
CONF.register_opts(opts)
|
CONF.register_opts(opts)
|
||||||
|
|
||||||
class UserDataPlugin():
|
class UserDataPlugin():
|
||||||
def __init__(self, cfg=CONF):
|
def __init__(self, cfg=CONF):
|
||||||
self.cfg = cfg
|
self.cfg = cfg
|
||||||
self.msg = None
|
self.msg = None
|
||||||
return
|
return
|
||||||
|
|
||||||
def execute(self, service):
|
def execute(self, service):
|
||||||
user_data = service.get_user_data('openstack')
|
user_data = service.get_user_data('openstack')
|
||||||
@ -50,33 +50,33 @@ class UserDataPlugin():
|
|||||||
|
|
||||||
LOG.debug('User data content:\n%s' % user_data)
|
LOG.debug('User data content:\n%s' % user_data)
|
||||||
|
|
||||||
if user_data.starts_with('Content-Type: multipart'):
|
if user_data.starts_with('Content-Type: multipart'):
|
||||||
for part in self.parse_MIME(user_data):
|
for part in self.parse_MIME(user_data):
|
||||||
self.process_part(part)
|
self.process_part(part)
|
||||||
else:
|
else:
|
||||||
self.handle(user_data)
|
self.handle(user_data)
|
||||||
return
|
return
|
||||||
|
|
||||||
def process_part(self, part):
|
def process_part(self, part):
|
||||||
if part.get_filename() == 'cfn-userdata':
|
if part.get_filename() == 'cfn-userdata':
|
||||||
self.handle(part.get_payload())
|
self.handle(part.get_payload())
|
||||||
return
|
return
|
||||||
|
|
||||||
def parse_MIME(self, user_data):
|
def parse_MIME(self, user_data):
|
||||||
folder = self.cfg.user-data_folder
|
folder = self.cfg.user_data_folder
|
||||||
self.create_folder(folder)
|
self.create_folder(folder)
|
||||||
|
|
||||||
self.msg = email.message_from_string(user_data)
|
self.msg = email.message_from_string(user_data)
|
||||||
return self.msg.walk()
|
return self.msg.walk()
|
||||||
|
|
||||||
|
|
||||||
def create_folder(self, folder):
|
def create_folder(self, folder):
|
||||||
try:
|
try:
|
||||||
os.mkdir(folder)
|
os.mkdir(folder)
|
||||||
except os.OSError, e:
|
except os.OSError, e:
|
||||||
if e.errno != errno.EEXIST:
|
if e.errno != errno.EEXIST:
|
||||||
raise e
|
raise e
|
||||||
return
|
return
|
||||||
|
|
||||||
def handle(self, user_data):
|
def handle(self, user_data):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user