Sindbad~EG File Manager
3
�f� � @ sb d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl m
Z
mZmZ G dd� de
e�Z
dS ) � N)�HTTPResponse)�Any)�request)�URLError)�Plugin�IndependentPlugin� PluginOptc @ s� e Zd ZdZdZdZedddd�gZdZd Z d
Z
dZdZd
d� Z
dd� Zdd� Zed�dd�Zeeed�dd��Zdd� Zeeed�dd��ZdS )�GCPzGoogle Cloud Platform�gcp�virtzkeep-piiFzyStop the plugin from removing PIIs like project name or organization ID from the metadata retrieved from Metadata server.)�defaultZdescz3http://metadata.google.internal/computeMetadata/v1/zBhttp://metadata.google.internal/computeMetadata/v1/?recursive=truez[--REDACTED--]NzDDMI: Google Google Compute Engine/Google Compute Engine, BIOS Googlec C s( | j d�}|d dkrdS | j|d kS )z�
Checks if this plugin should be executed at all. In this case, it
will check the `dmesg` command output to see if the system is
running on a Google Cloud Compute instance.
�dmesgZstatusr F�output)Zexec_cmd�
GOOGLE_DMI)�selfr
� r �/usr/lib/python3.6/gcp.py�
check_enabled) s
zGCP.check_enabledc C s$ | j ddgd� | jddgd� dS )z�
Collect the following info:
* Metadata from the Metadata server
* `gcloud auth list` output
* Any google services output from journal
zgcloud auth listr
)�tagszgoogle*)Zunitsr N)Zadd_cmd_outputZadd_journal)r r r r �setup4 s z GCP.setupc C s~ | j ddgd��d}y,| j� | _| j� |jtj| jdd�� W n0 tk
rn } z|jt|�� W Y d d }~X nX W d Q R X d S )Nz
metadata.jsonr
)r � )�indent) Zcollection_file�get_metadata�metadata�scrub_metadata�write�json�dumps�RuntimeError�str)r Zmfile�errr r r �collectB s
zGCP.collect)�returnc C s"