mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1015 B
36 lines
1015 B
__all__ = ['FormatAssetInfo']
|
|
|
|
|
|
class FormatAssetInfo:
|
|
|
|
def __init__(self, tp):
|
|
self.tp = tp
|
|
|
|
@staticmethod
|
|
def posix_format(info):
|
|
for cpu_model in info.get('cpu_model', []):
|
|
if cpu_model.endswith('GHz') or cpu_model.startswith("Intel"):
|
|
break
|
|
else:
|
|
cpu_model = ''
|
|
info['cpu_model'] = cpu_model[:48]
|
|
info['cpu_count'] = info.get('cpu_count', 0)
|
|
return info
|
|
|
|
def run(self, method_id_meta_mapper, info):
|
|
for k, v in info.items():
|
|
info[k] = v.strip() if isinstance(v, str) else v
|
|
|
|
run_method_name = None
|
|
for k, v in method_id_meta_mapper.items():
|
|
if self.tp not in v['type']:
|
|
continue
|
|
run_method_name = k.replace(f'{v["method"]}_', '')
|
|
|
|
if not run_method_name:
|
|
return info
|
|
|
|
if hasattr(self, f'{run_method_name}_format'):
|
|
return getattr(self, f'{run_method_name}_format')(info)
|
|
return info
|