Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/develop' into develop
- Loading branch information
Showing
16 changed files
with
226 additions
and
6 deletions.
There are no files selected for viewing
26 changes: 26 additions & 0 deletions
26
...tSuite/output/data/html/partials/gcp/services.stackdriverlogging.projects.id.metrics.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
|
||
<!-- Stackdriver Logging metrics partial --> | ||
<script id="services.stackdriverlogging.projects.id.metrics.partial" type="text/x-handlebars-template"> | ||
<div id="resource-name" class="list-group-item active"> | ||
<h4 class="list-group-item-heading">{{name}}</h4> | ||
</div> | ||
<div class="list-group-item"> | ||
<h4 class="list-group-item-heading">Information</h4> | ||
<div class="list-group-item-text item-margin">Name: <span id="stackdriverlogging.projects.{{@../key}}.metrics.{{@key}}.name">{{name}}</span></div> | ||
<div class="list-group-item-text item-margin">Project ID: <span id="stackdriverlogging.projects.{{project}}.keyrings.{{@key}}.project_id"><samp>{{project}}</samp></span></div> | ||
<div class="list-group-item-text item-margin">Description: <span id="stackdriverlogging.projects.{{@../key}}.metrics.{{@key}}.description"><samp>{{value_or_none description}}</samp></span></div> | ||
<div class="list-group-item-text item-margin">Filter: <span id="stackdriverlogging.projects.{{@../key}}.metrics.{{@key}}.filter"><code>{{filter}}</code></span></div> | ||
</div> | ||
</script> | ||
|
||
<script> | ||
Handlebars.registerPartial("services.stackdriverlogging.projects.id.metrics", $("#services\\.stackdriverlogging\\.projects\\.id\\.metrics\\.partial").html()); | ||
</script> | ||
|
||
<!-- Single stackdriverlogging metric template --> | ||
<script id="single_stackdriverlogging_metric-template" type="text/x-handlebars-template"> | ||
{{> modal-template template='services.stackdriverlogging.projects.id.metrics'}} | ||
</script> | ||
<script> | ||
var single_stackdriverlogging_metric_template = Handlebars.compile($("#single_stackdriverlogging_metric-template").html()); | ||
</script> |
26 changes: 26 additions & 0 deletions
26
...put/data/html/partials/gcp/services.stackdrivermonitoring.projects.id.alert_policies.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<!-- stackdrivermonitoring uptime_checks --> | ||
<script id="services.stackdrivermonitoring.projects.id.uptime_checks.partial" type="text/x-handlebars-template"> | ||
<div id="resource-name" class="list-group-item active"> | ||
<h4 class="list-group-item-heading">{{name}}</h4> | ||
</div> | ||
<div class="list-group-item"> | ||
<h4 class="list-group-item-heading">Information</h4> | ||
<div class="list-group-item-text item-margin">Name: <span id="stackdrivermonitoring.projects.{{project}}.uptime_checks.{{@key}}.name"><samp>{{value_or_none display_name}}</samp></span></div> | ||
<div class="list-group-item-text item-margin">Monitored Resource: <span id="stackdrivermonitoring.projects.{{project}}.uptime_checks.{{@key}}.monitored_resource"><code>{{value_or_none monitored_resource}}</code></span></div> | ||
<div class="list-group-item-text item-margin">HTTP Check: <span id="stackdrivermonitoring.projects.{{project}}.uptime_checks.{{@key}}.http_check"><code>{{value_or_none http_check}}</code></span></div> | ||
<div class="list-group-item-text item-margin">Period: <span id="stackdrivermonitoring.projects.{{project}}.uptime_checks.{{@key}}.period"><samp>{{value_or_none period}}</samp></span></div> | ||
<div class="list-group-item-text item-margin">Timeout: <span id="stackdrivermonitoring.projects.{{project}}.uptime_checks.{{@key}}.timeout"><samp>{{value_or_none timeout}}</samp></span></div> | ||
</div> | ||
</script> | ||
|
||
<script> | ||
Handlebars.registerPartial("services.stackdrivermonitoring.projects.id.uptime_checks", $("#services\\.stackdrivermonitoring\\.projects\\.id\\.uptime_checks\\.partial").html()); | ||
</script> | ||
|
||
<!-- Single stackdrivermonitoring uptime_check template --> | ||
<script id="single_stackdrivermonitoring_uptime_check-template" type="text/x-handlebars-template"> | ||
{{> modal-template template='services.stackdrivermonitoring.projects.id.uptime_checks'}} | ||
</script> | ||
<script> | ||
var single_stackdrivermonitoring_uptime_check_template = Handlebars.compile($("#single_stackdrivermonitoring_uptime_check-template").html()); | ||
</script> |
27 changes: 27 additions & 0 deletions
27
...tput/data/html/partials/gcp/services.stackdrivermonitoring.projects.id.uptime_checks.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<!-- stackdrivermonitoring alert_policies --> | ||
<script id="services.stackdrivermonitoring.projects.id.alert_policies.partial" type="text/x-handlebars-template"> | ||
<div id="resource-name" class="list-group-item active"> | ||
<h4 class="list-group-item-heading">{{name}}</h4> | ||
</div> | ||
<div class="list-group-item"> | ||
<h4 class="list-group-item-heading">Information</h4> | ||
<div class="list-group-item-text item-margin">Name: <span id="stackdrivermonitoring.projects.{{project}}.alert_policies.{{@key}}.name"><samp>{{value_or_none name}}</samp></span></div> | ||
<div class="list-group-item-text item-margin">Creation Record: <span id="stackdrivermonitoring.projects.{{project}}.alert_policies.{{@key}}.creation_record"><code>{{value_or_none creation_record}}</code></span></div> | ||
<div class="list-group-item-text item-margin">Mutation Record: <span id="stackdrivermonitoring.projects.{{project}}.alert_policies.{{@key}}.mutation_record"><code>{{value_or_none mutation_record}}</code></span></div> | ||
<div class="list-group-item-text item-margin">Conditions: <span id="stackdrivermonitoring.projects.{{project}}.alert_policies.{{@key}}.conditions"><code>{{value_or_none conditions}}</code></span></div> | ||
<div class="list-group-item-text item-margin">Combiner: <span id="stackdrivermonitoring.projects.{{project}}.alert_policies.{{@key}}.combiner"><samp>{{value_or_none combiner}}</samp></span></div> | ||
<div class="list-group-item-text item-margin">Enabled: <span id="stackdrivermonitoring.projects.{{project}}.alert_policies.{{@key}}.enabled"><samp>{{value_or_none enabled}}</samp></span></div> | ||
</div> | ||
</script> | ||
|
||
<script> | ||
Handlebars.registerPartial("services.stackdrivermonitoring.projects.id.alert_policies", $("#services\\.stackdrivermonitoring\\.projects\\.id\\.alert_policies\\.partial").html()); | ||
</script> | ||
|
||
<!-- Single stackdrivermonitoring alert_policie template --> | ||
<script id="single_stackdrivermonitoring_alert_policie-template" type="text/x-handlebars-template"> | ||
{{> modal-template template='services.stackdrivermonitoring.projects.id.alert_policies'}} | ||
</script> | ||
<script> | ||
var single_stackdrivermonitoring_alert_policie_template = Handlebars.compile($("#single_stackdrivermonitoring_alert_policie-template").html()); | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from google.cloud import monitoring as stackdrivermonitoring | ||
|
||
from ScoutSuite.core.console import print_exception | ||
from ScoutSuite.providers.utils import run_concurrently | ||
|
||
|
||
class StackdriverMonitoringFacade: | ||
|
||
async def get_uptime_checks(self, project_id: str): | ||
try: | ||
client = stackdrivermonitoring.UptimeCheckServiceClient() | ||
name = client.project_path(project_id) | ||
return await run_concurrently(lambda: [r for r in client.list_uptime_check_configs(name)]) | ||
except Exception as e: | ||
print_exception('Failed to retrieve uptime checks: {}'.format(e)) | ||
return [] | ||
|
||
async def get_alert_policies(self, project_id: str): | ||
try: | ||
client = stackdrivermonitoring.AlertPolicyServiceClient() | ||
name = client.project_path(project_id) | ||
return await run_concurrently(lambda: [r for r in client.list_alert_policies(name)]) | ||
except Exception as e: | ||
print_exception('Failed to retrieve alert policies: {}'.format(e)) | ||
return [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,10 @@ | ||
from ScoutSuite.providers.gcp.resources.projects import Projects | ||
from ScoutSuite.providers.gcp.resources.stackdriverlogging.sinks import Sinks | ||
from ScoutSuite.providers.gcp.resources.stackdriverlogging.metrics import Metrics | ||
|
||
|
||
class StackdriverLogging(Projects): | ||
_children = [ | ||
(Sinks, 'sinks') | ||
(Sinks, 'sinks'), | ||
(Metrics, 'metrics') | ||
] |
21 changes: 21 additions & 0 deletions
21
ScoutSuite/providers/gcp/resources/stackdriverlogging/metrics.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
from ScoutSuite.providers.base.resources.base import Resources | ||
from ScoutSuite.providers.gcp.facade.base import GCPFacade | ||
|
||
|
||
class Metrics(Resources): | ||
def __init__(self, facade: GCPFacade, project_id: str): | ||
super(Metrics, self).__init__(facade) | ||
self.project_id = project_id | ||
|
||
async def fetch_all(self): | ||
raw_metrics = await self.facade.stackdriverlogging.get_metrics(self.project_id) | ||
for raw_metric in raw_metrics: | ||
metric_name, metric = self._parse_metric(raw_metric) | ||
self[metric_name] = metric | ||
|
||
def _parse_metric(self, raw_metric): | ||
metric_dict = {} | ||
metric_dict['name'] = raw_metric.name | ||
metric_dict['description'] = raw_metric.description | ||
metric_dict['filter'] = raw_metric.filter_ | ||
return metric_dict['name'], metric_dict |
Empty file.
28 changes: 28 additions & 0 deletions
28
ScoutSuite/providers/gcp/resources/stackdrivermonitoring/alert_policies.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
from ScoutSuite.providers.base.resources.base import Resources | ||
from ScoutSuite.providers.gcp.facade.base import GCPFacade | ||
from ScoutSuite.providers.utils import get_non_provider_id | ||
|
||
|
||
class AlertPolicies(Resources): | ||
def __init__(self, facade: GCPFacade, project_id: str): | ||
super(AlertPolicies, self).__init__(facade) | ||
self.project_id = project_id | ||
|
||
async def fetch_all(self): | ||
raw_alert_policies = await self.facade.stackdrivermonitoring.get_alert_policies(self.project_id) | ||
for raw_alert_policy in raw_alert_policies: | ||
alert_policy_name, alert_policy = self._parse_alert_policy(raw_alert_policy) | ||
self[alert_policy_name] = alert_policy | ||
|
||
def _parse_alert_policy(self, raw_alert_policy): | ||
alert_policy_dict = {} | ||
alert_policy_dict['id'] = get_non_provider_id(raw_alert_policy.name) | ||
alert_policy_dict['name'] = raw_alert_policy.display_name | ||
alert_policy_dict['combiner'] = raw_alert_policy.combiner | ||
alert_policy_dict['creation_record'] = raw_alert_policy.creation_record | ||
alert_policy_dict['mutation_record'] = raw_alert_policy.mutation_record | ||
alert_policy_dict['conditions'] = raw_alert_policy.conditions | ||
alert_policy_dict['enabled'] = raw_alert_policy.enabled | ||
return alert_policy_dict['id'], alert_policy_dict | ||
|
||
|
10 changes: 10 additions & 0 deletions
10
ScoutSuite/providers/gcp/resources/stackdrivermonitoring/base.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
from ScoutSuite.providers.gcp.resources.projects import Projects | ||
from ScoutSuite.providers.gcp.resources.stackdrivermonitoring.uptime_checks import UptimeChecks | ||
from ScoutSuite.providers.gcp.resources.stackdrivermonitoring.alert_policies import AlertPolicies | ||
|
||
|
||
class StackdriverMonitoring(Projects): | ||
_children = [ | ||
(UptimeChecks, 'uptime_checks'), | ||
(AlertPolicies, 'alert_policies') | ||
] |
25 changes: 25 additions & 0 deletions
25
ScoutSuite/providers/gcp/resources/stackdrivermonitoring/uptime_checks.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from ScoutSuite.providers.base.resources.base import Resources | ||
from ScoutSuite.providers.gcp.facade.base import GCPFacade | ||
from ScoutSuite.providers.utils import get_non_provider_id | ||
|
||
|
||
class UptimeChecks(Resources): | ||
def __init__(self, facade: GCPFacade, project_id: str): | ||
super(UptimeChecks, self).__init__(facade) | ||
self.project_id = project_id | ||
|
||
async def fetch_all(self): | ||
raw_uptime_checks = await self.facade.stackdrivermonitoring.get_uptime_checks(self.project_id) | ||
for raw_uptime_check in raw_uptime_checks: | ||
uptime_check_name, uptime_check = self._parse_uptime_check(raw_uptime_check) | ||
self[uptime_check_name] = uptime_check | ||
|
||
def _parse_uptime_check(self, raw_uptime_check): | ||
uptime_check_dict = {} | ||
uptime_check_dict['id'] = get_non_provider_id(raw_uptime_check.name) | ||
uptime_check_dict['name'] = raw_uptime_check.display_name | ||
uptime_check_dict['monitored_resource'] = raw_uptime_check.monitored_resource | ||
uptime_check_dict['http_check'] = raw_uptime_check.http_check | ||
uptime_check_dict['period'] = raw_uptime_check.period | ||
uptime_check_dict['timeout'] = raw_uptime_check.timeout | ||
return uptime_check_dict['id'], uptime_check_dict |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters