Create new directories:
ceph
config
config-files
filesystem
kernel
kernel/kernel-modules
ldap
logging
strorage-drivers
tools
utilities
virt
Retire directories:
connectivity
core
devtools
support
extended
Delete two packages:
tgt
irqbalance
Relocated packages:
base/
dhcp
initscripts
libevent
lighttpd
linuxptp
memcached
net-snmp
novnc
ntp
openssh
pam
procps
sanlock
shadow
sudo
systemd
util-linux
vim
watchdog
ceph/
python-cephclient
config/
facter
puppet-4.8.2
puppet-modules
filesystem/
e2fsprogs
nfs-utils
nfscheck
kernel/
kernel-std
kernel-rt
kernel/kernel-modules/
mlnx-ofa_kernel
ldap/
nss-pam-ldapd
openldap
logging/
syslog-ng
logrotate
networking/
lldpd
iproute
mellanox
python-ryu
mlx4-config
python/
python-2.7.5
python-django
python-gunicorn
python-setuptools
python-smartpm
python-voluptuous
security/
shim-signed
shim-unsigned
tboot
strorage-drivers/
python-3parclient
python-lefthandclient
virt/
cloud-init
libvirt
libvirt-python
qemu
tools/
storage-topology
vm-topology
utilities/
tis-extensions
namespace-utils
nova-utils
update-motd
Change-Id: I37ade764d873c701b35eac5881eb40412ba64a86
Story: 2002801
Task: 22687
Signed-off-by: Scott Little <scott.little@windriver.com>
75 lines
2.6 KiB
Diff
75 lines
2.6 KiB
Diff
---
|
|
cloudinit/sources/DataSourceConfigDrive.py | 39 ++++++++++++++++++++---------
|
|
1 file changed, 27 insertions(+), 12 deletions(-)
|
|
|
|
--- a/cloudinit/sources/DataSourceConfigDrive.py
|
|
+++ b/cloudinit/sources/DataSourceConfigDrive.py
|
|
@@ -40,6 +40,12 @@ DEFAULT_METADATA = {
|
|
"instance-id": DEFAULT_IID,
|
|
}
|
|
VALID_DSMODES = ("local", "net", "pass", "disabled")
|
|
+FS_TYPES = ('vfat', 'iso9660')
|
|
+LABEL_TYPES = ('config-2',)
|
|
+POSSIBLE_MOUNTS = ('sr', 'cd')
|
|
+OPTICAL_DEVICES = tuple(('/dev/%s%s' % (z, i) for z in POSSIBLE_MOUNTS
|
|
+ for i in range(0, 2)))
|
|
+
|
|
|
|
|
|
class ConfigDriveHelper(object):
|
|
@@ -250,7 +256,7 @@ class BrokenConfigDriveDir(Exception):
|
|
pass
|
|
|
|
|
|
-def find_candidate_devs():
|
|
+def find_candidate_devs(probe_optical=True):
|
|
"""Return a list of devices that may contain the config drive.
|
|
|
|
The returned list is sorted by search order where the first item has
|
|
@@ -268,12 +274,20 @@ def find_candidate_devs():
|
|
"""
|
|
|
|
# Query optical drive to get it in blkid cache for 2.6 kernels
|
|
- util.find_devs_with(path="/dev/sr0")
|
|
- util.find_devs_with(path="/dev/sr1")
|
|
-
|
|
- by_fstype = (util.find_devs_with("TYPE=vfat") +
|
|
- util.find_devs_with("TYPE=iso9660"))
|
|
- by_label = util.find_devs_with("LABEL=config-2")
|
|
+ if probe_optical:
|
|
+ for device in OPTICAL_DEVICES:
|
|
+ try:
|
|
+ util.find_devs_with(path=device)
|
|
+ except util.ProcessExecutionError:
|
|
+ pass
|
|
+
|
|
+ by_fstype = []
|
|
+ for fs_type in FS_TYPES:
|
|
+ by_fstype.extend(util.find_devs_with("TYPE=%s" % (fs_type)))
|
|
+
|
|
+ by_label = []
|
|
+ for label in LABEL_TYPES:
|
|
+ by_label.extend(util.find_devs_with("LABEL=%s" % (label)))
|
|
|
|
# give preference to "last available disk" (vdb over vda)
|
|
# note, this is not a perfect rendition of that.
|
|
@@ -282,12 +296,13 @@ def find_candidate_devs():
|
|
|
|
# combine list of items by putting by-label items first
|
|
# followed by fstype items, but with dupes removed
|
|
- combined = (by_label + [d for d in by_fstype if d not in by_label])
|
|
-
|
|
- # We are looking for block device (sda, not sda1), ignore partitions
|
|
- combined = [d for d in combined if not util.is_partition(d)]
|
|
+ candidates = (by_label + [d for d in by_fstype if d not in by_label])
|
|
|
|
- return combined
|
|
+ # We are looking for a block device or partition with necessary label or
|
|
+ # an unpartitioned block device (ex sda, not sda1)
|
|
+ devices = [d for d in candidates
|
|
+ if d in by_label or not util.is_partition(d)]
|
|
+ return devices
|
|
|
|
|
|
def read_config_drive_dir(source_dir):
|