
                             S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKrS	rS
rS rS r " S S5      rS r " S S5      rS rg)z9Instance inventory gcloud commands declarative functions.    )absolute_import)division)unicode_literals)encoding)flags)
propertiesNz3projects/{project}/locations/{location}/instances/-zFprojects/{project}/locations/{location}/instances/{instance}/inventoryc                 R   [         R                  R                  R                  R	                  5       nUR
                  =(       d2    [         R                  R                  R                  R                  5       n[        R                  " US5        [        R                  X4S9Ul        U$ )zAdd parent field to list request.

Args:
  unused_ref: A parsed resource reference; unused.
  args: The parsed args namespace from CLI
  request: List request for the API call

Returns:
  Modified request that includes the name field.

--location)projectlocation)r   VALUEScorer   	GetOrFailr   computezoneGetr   ValidateZone	_LIST_URIformatparent)
unused_refargsrequestr   r   s        Klib/googlecloudsdk/command_lib/compute/os_config/inventories/declarative.pySetParentOnListRequestHookr   !   sw     ""**446']]Bj//77<<@@B(X|,##G#G'.	.    c                    UR                   n[        R                  R                  R                  R                  5       nUR                  =(       d2    [        R                  R                  R                  R                  5       n[        R                  " US5        [        R                  " US5        [        R                  XEUS9Ul        U$ )zAdd name field to Describe request.

Args:
  unused_ref: A parsed resource reference; unused.
  args: The parsed args namespace from CLI
  request: Describe request for the API call

Returns:
  Modified request that includes the name field.
INSTANCEr
   )r   r   instance)r   r   r   r   r   r   r   r   r   r   r   ValidateInstancer   _DESCRIBE_URIr   name)r   r   r   r   r   r   s         r   SetNameOnDescribeRequestHookr#   5   s     ]](""**446']]Bj//77<<@@B(:.X|,%%8 & =',	.r   c                       \ rS rSrSrS rSrg)ListTableRowL   z.View model for table rows of inventories list.c                 X    Xl         X l        X0l        X@l        XPl        X`l        Xpl        g N)instance_idinstance_nameosinstalled_packagesavailable_packagesupdate_timeosconfig_agent_version)selfr)   r*   os_long_namer,   r-   r.   r/   s           r   __init__ListTableRow.__init__O   s-     #&G00""8r   )r-   r,   r)   r*   r+   r/   r.   N__name__
__module____qualname____firstlineno____doc__r2   __static_attributes__ r   r   r%   r%   L   s
    6	9r   r%   c                 b   UR                   (       a  U $ UR                  (       a  UR                  OSn/ nU  H  nSnSnUS:X  af  UR                  (       aU  [        R                  " [
        R                  " UR                  5      5       H  nSU;   a  US-  nM  SU;   d  M  US-  nM     UR                  [        UR                  R                  S5      S   UR                  R                  UR                  R                  UUUR                  UR                  R                  S	95        M     X#0$ )
zCreate ListTableRow from ListInventory response.

Args:
  inventory_list: Response from ListInventory
  args: gcloud invocation args

Returns:
  ListTableRow
basicr   fullinstalledPackage   availablePackage/)r)   r*   r1   r,   r-   r.   r/   )unmodified_api_responseviewitemssix
itervaluesr   MessageToDictappendr%   r"   splitosInfohostnamelongName
updateTimeosconfigAgentVersion)inventory_listr   rE   rows	inventoryr,   r-   vs           r   CreateTableViewResponseHookrU   [   s
    
!!iiW$	$!iv~)//~~h44Y__EF!"

!
1$

!
	 G
 	KK!,,S1"5#**33"))2211!,,#,#3#3#H#H	JK "$ r   c                       \ rS rSrSrS rSrg)DescribeTableView   z$View model for inventories describe.c                 (    Xl         X l        X0l        g r(   )r,   updatedable_packagessystem_information)r0   r,   rZ   r[   s       r   r2   DescribeTableView.__init__   s    0 40r   )r,   r[   rZ   Nr4   r;   r   r   rW   rW      s
    ,1r   rW   c                    0 n0 nU R                   (       a!  [        R                  " U R                   5      nO0 nU R                  US'   UR                  S:X  a  U R
                  (       a  [        R                  " [        R                  " U R
                  5      5       HP  nSU;   a  UnUS   nOSU;   a  UnUS   nOM!  S H)  nX;   d  M
  X;  a  / Xh'   Xh   R                  Xx   5          MN     MR     [        X#U5      $ )zCreate DescribeTableView from GetInventory response.

Args:
  response: Response from GetInventory
  args: gcloud invocation args

Returns:
  DescribeTableView
rO   r>   r?   rA   )	
yumPackage
aptPackagezypperPackagegoogetPackagezypperPatch
wuaPackage
qfePackage
cosPackagewindowsApplication)
rL   r   rI   rO   rE   rF   rG   rH   rJ   rW   )	responser   	installed	availabler[   rT   destpkgpkg_types	            r   #CreateDescribeTableViewResponseHookrm      s     ))__!//@%-%8%8\"	YY&X^^^^H228>>BC	q	 "#""#(
 ?!DN
.


.
 D& 
91C	DDr   )r9   
__future__r   r   r   apitools.base.pyr   ,googlecloudsdk.command_lib.compute.os_configr   googlecloudsdk.corer   rG   r   r!   r   r#   r%   rU   rW   rm   r;   r   r   <module>rr      sV    @ &  ' % > * 
B	3(.9 9!H1 1%Er   