~wesley-wiedenmeier/curtin/curtin-1543263

« back to all changes in this revision

Viewing changes to curtin/block/mkfs.py

  • Committer: Scott Moser
  • Date: 2016-01-19 19:46:38 UTC
  • mfrom: (343.1.3 trunk.mkfs-fixes)
  • Revision ID: smoser@ubuntu.com-20160119194638-we700u8oe6cjwy4m
mkfs: fix for lack of uuid on precise or trusty

the last merge for mkfs broke vmtest. Precise's version of btrfs
lacks both uuid and force flag.  Trusty's lacks uuid.

Show diffs side-by-side

added added

removed removed

Lines of Context:
87
87
              "xfs": "--quiet"}
88
88
}
89
89
 
 
90
release_flag_mapping_overrides = {
 
91
    "precise": {
 
92
        "force": {"btrfs": None},
 
93
        "uuid": {"btrfs": None}},
 
94
    "trusty": {
 
95
        "uuid": {"btrfs": None}},
 
96
}
 
97
 
90
98
 
91
99
def valid_fstypes():
92
100
    return list(mkfs_commands.keys())
94
102
 
95
103
def get_flag_mapping(flag_name, fs_family, param=None, strict=False):
96
104
    ret = []
97
 
    flag_sym_families = family_flag_mappings.get(flag_name)
98
 
    if flag_sym_families is None:
99
 
        raise ValueError("unsupported flag '%s'" % flag_name)
100
 
    flag_sym = flag_sym_families.get(fs_family)
 
105
    release = util.lsb_release()['codename']
 
106
    overrides = release_flag_mapping_overrides.get(release, {})
 
107
    if flag_name in overrides and fs_family in overrides[flag_name]:
 
108
        flag_sym = overrides[flag_name][fs_family]
 
109
    else:
 
110
        flag_sym_families = family_flag_mappings.get(flag_name)
 
111
        if flag_sym_families is None:
 
112
            raise ValueError("unsupported flag '%s'" % flag_name)
 
113
        flag_sym = flag_sym_families.get(fs_family)
 
114
 
101
115
    if flag_sym is None:
102
116
        if strict:
103
117
            raise ValueError("flag '%s' not supported by fs family '%s'" %
141
155
    cmd = [mkfs_cmd]
142
156
 
143
157
    if force:
144
 
        # On precise mkfs.btrfs does not have a force flag, though it does in
145
 
        # later releases
146
 
        if not (util.lsb_release()['codename'] == "precise" and fstype ==
147
 
                "btrfs"):
148
 
            cmd.extend(get_flag_mapping("force", fs_family, strict=strict))
 
158
        cmd.extend(get_flag_mapping("force", fs_family, strict=strict))
149
159
    if label is not None:
150
160
        limit = label_length_limits.get(fs_family)
151
161
        if len(label) > limit: