Skip to content

Commit

Permalink
Moved base resources to be more consistent. Moved services.py while I…
Browse files Browse the repository at this point in the history
… was there.
  • Loading branch information
Aboisier committed Apr 13, 2019
1 parent b20f2eb commit 195c875
Show file tree
Hide file tree
Showing 23 changed files with 29 additions and 46 deletions.
2 changes: 1 addition & 1 deletion ScoutSuite/providers/aws/resources/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import abc
import asyncio

from ScoutSuite.providers.base.configs.resources import Resources, CompositeResources
from ScoutSuite.providers.base.resources.base import Resources, CompositeResources


class AWSResources(Resources, metaclass=abc.ABCMeta):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/aws/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from ScoutSuite.providers.aws.resources.sns.base import SNS
from ScoutSuite.providers.aws.resources.sqs.base import SQS
from ScoutSuite.providers.aws.resources.vpc.base import VPC
from ScoutSuite.providers.base.configs.services import BaseServicesConfig
from ScoutSuite.providers.base.services import BaseServicesConfig

# Try to import proprietary services
try:
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/azure/resources/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import abc
import asyncio

from ScoutSuite.providers.base.configs.resources import Resources, CompositeResources
from ScoutSuite.providers.base.resources.base import Resources, CompositeResources
from ScoutSuite.providers.azure.facade.base import AzureFacade


Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/azure/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from ScoutSuite.providers.azure.resources.securitycenter.base import SecurityCenter
from ScoutSuite.providers.azure.resources.sqldatabase.base import Servers
from ScoutSuite.providers.azure.resources.storageaccounts.base import StorageAccounts
from ScoutSuite.providers.base.configs.services import BaseServicesConfig
from ScoutSuite.providers.base.services import BaseServicesConfig

# Try to import proprietary services
try:
Expand Down
7 changes: 0 additions & 7 deletions ScoutSuite/providers/base/configs/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +0,0 @@

resource_id_map = {
'network_interfaces': 'NetworkInterfaceId',
'peering_connections': 'VpcPeeringConnectionId',
'subnet_groups': 'DBSubnetGroupName'
}

15 changes: 0 additions & 15 deletions ScoutSuite/providers/base/configs/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,6 @@ def combine_paths(path1, path2):
return path


def get_attribute_at(config, target_path, key, default_value=None):
"""
Return attribute value at a given path.
:param config:
:param target_path:
:param key:
:param default_value:
:return:
"""
for target in target_path:
config = config[target]
return config[key] if key in config else default_value


def get_object_at(object, path, attribute_name=None):
"""
Get arbitrary object given a dictionary and path (list of keys).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
"""
This module provides some abstract classes for representing a hierarchical structure.
Especially since all cloud providers (AWS, Azure and GCP for now) organize their resources (virtual machines,
Expand Down Expand Up @@ -34,6 +33,9 @@ class CompositeResources(Resources, metaclass=abc.ABCMeta):
referred to as its 'children'.
"""

def __init__(self, facade):
self.facade = facade

@property
@abc.abstractmethod
def _children(self):
Expand All @@ -57,7 +59,8 @@ async def _fetch_children_of_all_resources(self, resources: dict, scopes: dict):

tasks = {
asyncio.ensure_future(
self._fetch_children(resource_parent=resource_parent, scope=scopes[resource_parent_key])
self._fetch_children(
resource_parent=resource_parent, scope=scopes[resource_parent_key])
) for (resource_parent_key, resource_parent) in resources.items()
}
await asyncio.wait(tasks)
Expand All @@ -70,10 +73,12 @@ async def _fetch_children(self, resource_parent: object, scope: dict):
:param resource_parent: The resource in which the children will be stored.
:param scope: The scope passed to the children constructors.
"""
children = [(child_class(self.facade, **scope), child_name) for (child_class, child_name) in self._children]
children = [(child_class(self.facade, **scope), child_name)
for (child_class, child_name) in self._children]
# Fetch all children concurrently:
await asyncio.wait(
{asyncio.ensure_future(child.fetch_all()) for (child, _) in children}
{asyncio.ensure_future(child.fetch_all())
for (child, _) in children}
)
# Update parent content:
for child, child_name in children:
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/base.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""This module provides implementations for CompositeResources for GCP."""

import asyncio
from ScoutSuite.providers.base.configs.resources import CompositeResources
from ScoutSuite.providers.base.resources.base import CompositeResources

class GCPCompositeResources(CompositeResources):

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ScoutSuite.core.console import print_exception
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.utils import get_non_provider_id

Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/cloudsql/backups.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources

class Backups(Resources):
def __init__(self, facade: GCPFacade, project_id: str, instance_name: str):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/cloudsql/users.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources

class Users(Resources):
def __init__(self, facade: GCPFacade, project_id: str, instance_name: str):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/cloudstorage/buckets.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.utils import get_non_provider_id

Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/gce/disks.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.utils import get_non_provider_id

class Disks(Resources):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/gce/firewalls.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade

class Firewalls(Resources):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/gce/networks.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.gcp.resources.projects import Projects

Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/gce/snapshots.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.gcp.resources.projects import Projects

Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/gce/subnetworks.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade

class Subnetworks(Resources):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/iam/bindings.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources

class Bindings(Resources):
def __init__(self, facade: GCPFacade, project_id: str, service_account_email: str):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/resources/iam/keys.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources

class Keys(Resources):
def __init__(self, facade: GCPFacade, project_id: str, service_account_email: str):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.resources import Resources
from ScoutSuite.providers.base.resources.base import Resources
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade

class Sinks(Resources):
Expand Down
2 changes: 1 addition & 1 deletion ScoutSuite/providers/gcp/services.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ScoutSuite.providers.base.configs.services import BaseServicesConfig
from ScoutSuite.providers.base.services import BaseServicesConfig
from ScoutSuite.providers.gcp.facade.gcp import GCPFacade
from ScoutSuite.providers.gcp.resources.cloudresourcemanager.base import CloudResourceManager
from ScoutSuite.providers.gcp.resources.cloudsql.base import CloudSQL
Expand Down
4 changes: 2 additions & 2 deletions tests/test-resources.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from unittest import TestCase
from ScoutSuite.providers.base.configs.resources import (
from ScoutSuite.providers.base.resources.base import (
Resources, CompositeResources)
import asyncio
import json
Expand Down Expand Up @@ -27,7 +27,7 @@ class DummyComposite(CompositeResources):
def __init__(self):
self.facade = None

async def fetch_all(self, **kwargs):
async def fetch_all(self):
for key in range(2):
self[str(key)] = {}

Expand Down

0 comments on commit 195c875

Please sign in to comment.