⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3
/
dist-packages
/
cloudinit
/
filters
/
View File Name :
launch_index.py
# Copyright (C) 2012 Canonical Ltd. # Copyright (C) 2012 Hewlett-Packard Development Company, L.P. # Copyright (C) 2012 Yahoo! Inc. # # Author: Scott Moser
# Author: Juerg Haefliger
# Author: Joshua Harlow
# # This file is part of cloud-init. See LICENSE file for license information. import copy import logging from cloudinit import user_data as ud from cloudinit import util LOG = logging.getLogger(__name__) class Filter: def __init__(self, wanted_idx, allow_none=True): self.wanted_idx = wanted_idx self.allow_none = allow_none def _select(self, message): msg_idx = message.get("Launch-Index", None) if self.allow_none and msg_idx is None: return True msg_idx = util.safe_int(msg_idx) if msg_idx != self.wanted_idx: return False return True def _do_filter(self, message): # Don't use walk() here since we want to do the reforming of the # messages ourselves and not flatten the message listings... if not self._select(message): return None if message.is_multipart(): # Recreate it and its child messages prev_msgs = message.get_payload(decode=False) new_msgs = [] discarded = 0 for m in prev_msgs: m = self._do_filter(m) if m is not None: new_msgs.append(m) else: discarded += 1 LOG.debug( "Discarding %s multipart messages " "which do not match launch index %s", discarded, self.wanted_idx, ) new_message = copy.copy(message) new_message.set_payload(new_msgs) new_message[ud.ATTACHMENT_FIELD] = str(len(new_msgs)) return new_message else: return copy.copy(message) def apply(self, root_message): if self.wanted_idx is None: return root_message return self._do_filter(root_message)