܍~c# dZddlZddlZddlZddlZddlZddlZddlmZm Z m Z ddl m Z m Z mZmZmZmZmZddlmZddlmZddlmZddlmZdd lmZmZmZd Zej Gd d ej!Z"ej Gd dej!Z#e$e#j%e#j&e#j'gZ(GddeZ)dZ*ddZ+de,fdZ-dee#e.ffdZ/ddeede)fdZ0dZ1e2dkr e1dSdS)zFDefine 'status' utility and handler as part of cloud-init commandline.N)gmtimesleepstrftime)AnyDictList NamedTupleOptionalTupleUnion)safeyaml)read_cfg_paths) uses_systemd)Paths) get_cmdline load_file load_jsonz/etc/cloud/cloud-init.disabledc&eZdZdZdZdZdZdZdZdS) UXAppStatusz=Enum representing user-visible cloud-init application status.znot runrunningdoneerrordisabledN) __name__ __module__ __qualname____doc__NOT_RUNRUNNINGDONEERRORDISABLED6/usr/lib/python3/dist-packages/cloudinit/cmd/status.pyrrs-GGGG D EHHHr$rc.eZdZdZdZdZdZdZdZdZ dZ d S) UXAppBootStatusCodezr)rget_status_detailswaitr2rrrformatsysstdoutwriteflushrr7r3valuer4r5r6copydeepcopyprintlongTABULAR_LONG_TMPLr<dumpsr r!)nameargspathsdetails details_dictrTr6s r%handle_status_argsrots5   E ''G yn!4k6I JJJ{i''   %%%   """(//G $KKK n!4k6I JJJ(#4:.&%.* LLL #DM,$?$?@L&)L"# {i* 77!577888 9 " !Eg.AEEE  !((!%6< ' 3 + )       JQ$;          hn\**++++"33311:r$ct}tstj}d}nd|vrtj}d}nt j|r"tj }d |}nd|vrtj }d}nt jt j |j drtj}d}n_t jt j |j d rtj}d }ntj}d }||fS) a Report whether cloud-init current boot status @param disable_file: The path to the cloud-init disable file. @param paths: An initialized cloudinit.helpers.Paths object. @returns: A tuple containing (code, reason) about cloud-init's status and why. zCloud-init enabled on sysvinitzcloud-init=enabledz>;-A1  . .-GO  % %;-E-44\BB - / /-HN  U]J?? @ @;-C>  U]I>> ? ?;-BE-5: V $$r$rlc|p t}tj}g}d}i}tj|jd}tj|jd}tt|\}}|tvr tj }tj |r[tj |s tj }tt|di}d} t!|D]\} } | dkr$| r!tj }d| }0| dkrI| | };| }| d \} } } | dd}t-| t.r|| d g| d pd}| d pd}|dkr|dkr tj }t3||}|| kr|} |r"tj}d|}n"|tjkr| dkr tj}| rt9dt;| nd}t=||||||S)zReturn a dict with status, details and errors. @param paths: An initialized cloudinit.helpers.paths object. Values are obtained from parsing paths.run_dir/status.json. rSz status.jsonz result.jsonv1rstagezRunning in stage: {0}r7N r5startfinishedrRz%a, %d %b %Y %H:%M:%S %z)rrrrsrtrvrwr|CLOUDINIT_DISABLED_FILEDISABLED_BOOT_CODESr"rurrrgetsorteditemsr^ partitionlowerreplace isinstancedictextendmaxr!r rrr1)rlr2r5r7 status_v1 status_file result_filer3r4 latest_eventkeyrcds_rr event_timer6s r%r\r\s  %^%%E  F F "JI',,u}m<> D$,5< >?????r$__main__)N)3rrErdenumr<rsr_timerrrtypingrrrr r r r cloudinitr cloudinit.cmd.develrcloudinit.distrosrcloudinit.helpersrcloudinit.utilrrrruniqueEnumrr' frozensetr)r*r+rr1rhrJintror9r|r\rrr#r$r%rsML ((((((((((FFFFFFFFFFFFFFFFFF......******######<<<<<<<<<<:$)      $)     i163J %%%%P/;c/;/;/;/;d%51Dc1I+J%%%%B>>huo>>>>>B@@@  zDFFFFFr$