altimeter.core.resource package¶
Submodules¶
altimeter.core.resource.exceptions module¶
Resource related Exceptions.
-
exception
MultipleResourceSpecClassesFoundException
¶ Bases:
altimeter.core.exceptions.AltimeterException
More than one ResourceSpec class exist for a given specification.
-
exception
ResourceSpecClassNotFoundException
¶ Bases:
altimeter.core.exceptions.AltimeterException
A specified ResourceSpecClass can not be found.
altimeter.core.resource.resource module¶
-
class
Resource
(**data)¶ Bases:
altimeter.core.base_model.BaseImmutableModel
A Resource defines a single scanned resource which is directly translatable to a graph node. It contains an id, type name and list of Links.
- Parameters
resource_id – id of this resource
type – type name of this resource
link_collection – a LinkCollection representing links from this resource
-
link_collection
: altimeter.core.graph.links.LinkCollection¶
-
resource_id
: str¶
-
to_lpg
(vertices, edges)¶ Graph this Resource as a dictionary into the vertices and edges lists.
- Parameters
vertices (
List
[Dict
]) – List containing dictionaries representing a vertexedges (
List
[Dict
]) – List containing dictionaries representing an edge
- Return type
None
-
to_rdf
(namespace, graph, node_cache)¶ Graph this Resource as a URIRef on a Graph.
- Parameters
namespace (
Namespace
) – RDF namespace to use for predicates and objects when graphing this resource’s linksgraph (
Graph
) – RDF graphnode_cache (
NodeCache
) – NodeCache to use for any cached URIRef lookups
- Return type
None
-
type
: str¶
altimeter.core.resource.resource_spec module¶
A ResourceSpec defines how an individual resource (e.g. EC2 Instances) JSON is converted into graph data. It contains a Schema which contains a set of Fields defining the transformation.
-
class
ResourceSpec
¶ Bases:
abc.ABC
A ResourceSpec defines how an individual resource (e.g. EC2 Instances) JSON is converted into graph data. It contains a Schema which contains a set of Fields defining the transformation.
-
allow_clobber
: List[Type] = []¶
-
classmethod
generate_id
(short_resource_id, context)¶ Generate a full id for this type given a short_resource_id.
- Parameters
short_resource_id (
str
) – short resource id for this resourcecontext (
Dict
[str
,Any
]) – contains auxiliary information which can be passed through the parse process.
- Return type
str
- Returns
full resource id string
-
static
get_by_class_name
(class_name)¶ Get a ResourceSpec class by class name.
- Parameters
class_name (
str
) – class name to match- Return type
Type
[ResourceSpec
]- Returns
ResourceSpec subclass
- Raises
MultipleResourceSpecClassesFoundException if more than one match was found. – this indicates a code bug.
ResourceSpecClassNotFoundException if no ResourceSpec class was found. –
-
static
get_by_full_type_name
(type_name)¶ Get a ResourceSpec classes by full_type name.
- Parameters
type_name (
str
) – type name of ResourceSpec to find- Return type
List
[Type
[ResourceSpec
]]- Returns
list of ResourceSpec classes matching type_name
- Raises
ResourceSpecClassNotFoundException if no ResourceSpec classes could be –
found matching type_name. –
-
classmethod
get_full_type_name
()¶ Get the fully qualified type name for this class. Generally this is something like aws:ec2:type_name.
- Return type
str
- Returns
full resource type name string
-
static
merge_resources
(resource_id, resources)¶ Merge multiple resources with the same id into one. This is permissible in two cases:
1) If all resources have the same value for ‘get_full_type’ and no key/values conflict they will be merged into a single resource by combining all key/values into a single resource
2) If all resources do not have the same value for ‘get_full_type’, if classes have the allow_clobber attribute set depending on the values a resource may be created.
-
abstract classmethod
scan
(scan_accessor)¶ Scan for this ResourceSpec using scan_accessor and return a list of Resource objects
- Parameters
scan_accessor (
Any
) – scan accessor object for accessing required APIs- Return type
List
[Resource
]- Returns
List of Resource objects
-
schema
: altimeter.core.graph.schema.Schema = <altimeter.core.graph.schema.Schema object>¶
-
type_name
: str = ''¶
-
-
get_concrete_subclasses
(cls)¶ Get all concrete subclasses of a class.
- Parameters
cls (
Type
[Any
]) – class to find subclasses of- Return type
List
[Type
]- Returns
list of classes which are concrete subclasses of cls