almahmoud 7 лет назад
Родитель
Сommit
351c5d9b57

BIN
docs/topics/captures/aws-bucket.png


BIN
docs/topics/captures/aws-services-dash.png


+ 113 - 3
docs/topics/resource_types_and_mapping.rst

@@ -227,6 +227,7 @@ While these resources are similarly unlabeled, they do not follow the same
 general rules as the ones listed above. Firstly, they differ by the fact
 that they take neither a `name` nor a `label` parameter at creation.
 Moreover, each of them has other special properties.
+
 The FloatingIP resource has a traditional resource ID, but instead of a
 traditional name, its `name` property maps to its Public IP. Thus, the name
 seen in the Azure web portal will not map to the CloudBridge name, but will
@@ -241,7 +242,7 @@ with no need for an Internet gateway. However, in order to keep resources
 consistent across providers, the CloudBridge Gateway resource exists
 regardless of provider. For Azure, the gateway object created through
 CloudBridge will not appear on the dashboard, but will rather be a cached
-CloudBridge-level wrapper object.\
+CloudBridge-level wrapper object.
 For a succinct comparison between AWS Gateways and Azure, see `this answer
 <https://social.msdn.microsoft.com/Forums/en-US/
 814ccee0-9fbb-4c04-8135-49d0aaea5f38/
@@ -254,15 +255,58 @@ These rules can be found within each Firewall (i.e. Security Group) in the
 Azure web portal, and will have an automatically generated `name` of the form
 'cb-rule-[int]'.
 
+AWS Dashboard
+-------------
+AWS has a particular dashboard as resources are found within different
+services. The following table lists the dashboard location of each resource,
+and the below screenshot shows how the switch between the various services.
+
++------------------------+-----+
+| Instance               | EC2 |
++------------------------+-----+
+| MachineImage (Private) | EC2 |
++------------------------+-----+
+| Volume                 | EC2 |
++------------------------+-----+
+| Snapshot               | EC2 |
++------------------------+-----+
+| VMFirewall             | EC2 |
++------------------------+-----+
+| FloatingIP             | EC2 |
++------------------------+-----+
+| KeyPair                | EC2 |
++------------------------+-----+
+| VMFirewallRule         | EC2 |
++------------------------+-----+
+| Network                | VPC |
++------------------------+-----+
+| Subnet                 | VPC |
++------------------------+-----+
+| Router                 | VPC |
++------------------------+-----+
+| InternetGateway        | VPC |
++------------------------+-----+
+| Bucket                 | S2  |
++------------------------+-----+
+| BucketObject           | S2  |
++------------------------+-----+
+
+.. figure:: captures/aws-services-dash.png
+   :scale: 50 %
+   :alt: EC2, VPC, and S3
+
+   Resources in AWS are separated into three dashboards depending on the
+   type of service handling the resources
+
 
 AWS - Labeled Resources
--------------------------
+-----------------------
 +------------------------+-------------------+----------------+----------------+----------+
 | Labeled Resource       | AWS Resource Type | CB ID          | CB Name        | CB Label |
 +------------------------+-------------------+----------------+----------------+----------+
 | Instance               | Instance          | Instance ID    | Instance ID    | tag:Name |
 +------------------------+-------------------+----------------+----------------+----------+
-| MachineImage (Private) | AMI               | AMI ID         | AMI Name       | tag:Name |
+| MachineImage           | AMI               | AMI ID         | AMI Name       | tag:Name |
 +------------------------+-------------------+----------------+----------------+----------+
 | Network                | VPC               | VPC ID         | VPC ID         | tag:Name |
 +------------------------+-------------------+----------------+----------------+----------+
@@ -314,3 +358,69 @@ web portal.
    column.
 
 
+AWS - Unlabeled Resources
+---------------------------
++--------------------+--------------------+-------+---------+----------+
+| Unlabeled Resource | AWS Resource Type  | CB ID | CB Name | CB Label |
++--------------------+--------------------+-------+---------+----------+
+| KeyPair            | Key Pair           | Name  | Name    | -        |
++--------------------+--------------------+-------+---------+----------+
+| Bucket             | Bucket             | Name  | Name    | -        |
++--------------------+--------------------+-------+---------+----------+
+| BucketObject       | Bucket Object      | Key   | Key     | -        |
++--------------------+--------------------+-------+---------+----------+
+
+The resources listed above are unlabeled. They thus only have the `name`
+property in CloudBridge. These resources require a mandatory `name`
+parameter at creation, which will directly map to the unchangeable `name`
+property. Additionally, for these resources, the `ID` property also maps to
+the `name` in AWS, as these resources don't have an `ID` in the
+traditional sense and can be located by name. Finally, unlabeled resources
+support a `name` parameter for the `find` method in their corresponding
+services.
+
+.. figure:: captures/aws-bucket.png
+   :scale: 50 %
+   :alt: list of buckets on AWS dashboard
+
+   Buckets can be found in the Amazon S3 portal. BucketObjects are contained
+   within each Bucket.
+
+
+AWS - Special Unlabeled Resources
+-----------------------------------
++--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
+| Unlabeled Resource | Azure Resource Type    | CB ID | CB Name                                                                | CB Label |
++--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
+| FloatingIP         | Elastic IP             | ID    | [public_ip]                                                            | -        |
++--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
+| InternetGateway    | Internet Gateway       | ID    | tag:Name                                                               | -        |
++--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
+| VMFirewallRule     | Network Security Rules | ID    | Generated: [direction]-[protocol]-[from_port]-[to_port]-[cidr]-[fw_id] | -        |
++--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
+
+While these resources are similarly unlabeled, they do not follow the same
+general rules as the ones listed above. Firstly, they differ by the fact
+that they take neither a `name` nor a `label` parameter at creation.
+Moreover, each of them has other special properties.
+
+The FloatingIP resource has a traditional resource ID, but instead of a
+traditional name, its `name` property maps to its Public IP.
+Moreover, the corresponding `find` method for Floating IPs can thus help
+find a resource by `Public IP Address`.
+
+In terms of the gateway, given that gateways are not their own objects in
+other providers, we do not treat them like labeled resources in AWS although
+they could support labels. Thus, the internet gateway create method does not
+take a name parameter, and the `name` property is set automatically to a
+default value. Note that since this value is stored in the tag with key Name,
+the AWS dashboard does allow for its modification, although that is not
+encouraged as the default name is expected for the
+`get_or_create_inet_gateway` method.
+
+Finally, Firewall Rules in AWS differ from traditional unlabeled resources
+by the fact that they do not take a `name` parameter at creation, and the
+`name` property is automatically generated from the rule's properties, as
+shown above. These rules can be found within each Firewall (i.e. Security
+Group) in the AWS EC2 portal, and will not have any name in the AWS dashboard
+