<div dir="ltr">Hi all,<div><br></div><div style>I have some questions regarding the integration of Quantum in Heat:</div><div style>- I haven't found a way to attach an instance resource to a Quantum port that already exists. Is it possible?<br>

</div><div style>- When I create a Quantum port in my template and binds the instance to that port, why does Heat still create an additional port to the tenant-owned network?</div><div style><br></div><div style>I have created a very simple template to test:</div>

<div style><br></div><div style><div>{</div><div>  "AWSTemplateFormatVersion" : "2010-09-09",</div><div><br></div><div>  "Description" : "Test creation of Quantum resources with a very simple instance",</div>

<div><br></div><div>  "Parameters" : {</div><div><br></div><div>    "KeyName" : {</div><div>      "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances",</div>

<div>      "Type" : "String"</div><div>    },</div><div><br></div><div>    "NetworkUuid" : {</div><div>      "Description" : "Network UUID",</div><div>      "Type" : "String"</div>

<div>    },</div><div><br></div><div>    "SubnetUuid" : {</div><div>      "Description" : "Network UUID",</div><div>      "Type" : "String"</div><div>    }</div><div>  },</div>

<div><br></div><div>  "Resources" : {</div><div>    "QuantumPort": {</div><div>      "Type": "OS::Quantum::Port",</div><div>      "Properties": {</div><div>        "network_id": { "Ref" : "NetworkUuid" },</div>

<div>        "device_id": { "Ref": "CirrosInstance" },</div><div>        "fixed_ips": [{</div><div>          "subnet_id": { "Ref" : "SubnetUuid" },</div>

<div>          "ip_address": "10.0.0.100"</div><div>        }]</div><div>      }</div><div>    },</div><div><br></div><div>    "DefaultSecurityGroup" : {</div><div>      "Type" : "AWS::EC2::SecurityGroup",</div>

<div>      "Properties" : {</div><div>        "GroupDescription" : "Enable ICMP plus SSH access",</div><div>        "SecurityGroupIngress" : [</div><div>          {"IpProtocol" : "icmp", "FromPort" : "-1", "ToPort" : "-1", "CidrIp" : "<a href="http://0.0.0.0/0">0.0.0.0/0</a>"},</div>

<div>          {"IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "<a href="http://0.0.0.0/0">0.0.0.0/0</a>"}</div><div>        ]</div>

<div>      }</div><div>    },</div><div><br></div><div>    "CirrosInstance": {</div><div>      "Type": "AWS::EC2::Instance",</div><div>      "Properties": {</div><div>        "ImageId" : "cirros-0.3.0-x86_64-uec",</div>

<div>        "InstanceType"   : "m1.nano",</div><div>        "KeyName"        : { "Ref" : "KeyName" },</div><div>        "SecurityGroups" : [ {"Ref" : "DefaultSecurityGroup"} ]</div>

<div>      }</div><div>    }</div><div>  },</div><div><br></div><div>  "Outputs" : {</div><div>    "InstanceIPAddress" : {</div><div>      "Value" : { "Fn::GetAtt" : ["CirrosInstance", "PrivateIp"] },</div>

<div>      "Description": "Private IP address of the instance"</div><div>    }</div><div>  }</div><div>}</div><div><br></div></div><div style>For my tests, I use devstack and the Open vSwitch plugin. After the stack is created, the instance is up and running but it is connected to 2 ports:<br>

</div><div style><br></div><div style><div style><div>$ heat stack-show cirros<br></div></div><div style><div>+----------------------+-----------------------------------------------------------------------------------------------------------------+</div>

<div>| Property             | Value                                                                                                           |</div><div>+----------------------+-----------------------------------------------------------------------------------------------------------------+</div>

<div>| capabilities         | []                                                                                                              |</div><div>| creation_time        | 2013-02-05T09:11:39Z                                                                                            |</div>

<div>| description          | Test creation of Quantum resources with a very simple                                                           |</div><div>|                      | instance                                                                                                        |</div>

<div>| disable_rollback     | True                                                                                                            |</div><div>| id                   | 8c161ed2-691e-42e8-a872-e90f26a83ac5                                                                            |</div>

<div>| links                | <a href="http://192.168.1.94:8004/v1/bc7d29521a444d59b1d68f1e0a81ce90/stacks/cirros/8c161ed2-691e-42e8-a872-e90f26a83ac5">http://192.168.1.94:8004/v1/bc7d29521a444d59b1d68f1e0a81ce90/stacks/cirros/8c161ed2-691e-42e8-a872-e90f26a83ac5</a> |</div>

<div>| notification_topics  | []                                                                                                              |</div><div>| outputs              | [                                                                                                               |</div>

<div>|                      |   {                                                                                                             |</div><div>|                      |     "output_value": "10.0.0.3",                                                                                 |</div>

<div>|                      |     "description": "Private IP address of the instance",                                                        |</div><div>|                      |     "output_key": "InstanceIPAddress"                                                                           |</div>

<div>|                      |   }                                                                                                             |</div><div>|                      | ]                                                                                                               |</div>

<div>| parameters           | {                                                                                                               |</div><div>|                      |   "NetworkUuid": "e5b6584f-9ca8-4219-b2d4-1a2f56a502fe",                                                        |</div>

<div>|                      |   "SubnetUuid": "1aa32a3e-ec28-44aa-867c-fcb4f774fa43",                                                         |</div><div>|                      |   "AWS::StackName": "cirros",                                                                                   |</div>

<div>|                      |   "KeyName": "test",                                                                                            |</div><div>|                      |   "AWS::Region": "ap-southeast-1"                                                                               |</div>

<div>|                      | }                                                                                                               |</div><div>| stack_name           | cirros                                                                                                          |</div>

<div>| stack_status         | CREATE_COMPLETE                                                                                                 |</div><div>| stack_status_reason  | Stack successfully created                                                                                      |</div>

<div>| template_description | Test creation of Quantum resources with a very simple                                                           |</div><div>|                      | instance                                                                                                        |</div>

<div>| timeout_mins         | 60                                                                                                              |</div><div>| updated_time         | 2013-02-05T09:12:02Z                                                                                            |</div>

<div>+----------------------+-----------------------------------------------------------------------------------------------------------------+</div><div>$ nova show cirros.CirrosInstance<br></div></div><div><div>+-------------------------------------+----------------------------------------------------------------+</div>

<div>| Property                            | Value                                                          |</div><div>+-------------------------------------+----------------------------------------------------------------+</div>

<div>| OS-DCF:diskConfig                   | MANUAL                                                         |</div><div>| OS-EXT-SRV-ATTR:host                | controller                                                     |</div>

<div>| OS-EXT-SRV-ATTR:hypervisor_hostname | controller                                                     |</div><div>| OS-EXT-SRV-ATTR:instance_name       | instance-00000015                                              |</div>

<div>| OS-EXT-STS:power_state              | 1                                                              |</div><div>| OS-EXT-STS:task_state               | None                                                           |</div>

<div>| OS-EXT-STS:vm_state                 | active                                                         |</div><div>| accessIPv4                          |                                                                |</div>

<div>| accessIPv6                          |                                                                |</div><div>| config_drive                        |                                                                |</div>

<div>| created                             | 2013-02-05T09:11:43Z                                           |</div><div>| flavor                              | m1.nano (42)                                                   |</div>

<div>| hostId                              | 495aafe7667bb70bb90e80cbfff9921d2929d909bef01bb93189b631       |</div><div>| id                                  | 46f1542b-3c4c-4849-bf05-488aba266e06                           |</div>

<div>| image                               | cirros-0.3.0-x86_64-uec (3fecb845-3833-4731-beb6-cee4b6aca969) |</div><div>| key_name                            | test                                                           |</div>

<div>| metadata                            | {}                                                             |</div><div>| name                                | cirros.CirrosInstance                                          |</div>

<div>| private network                     | 10.0.0.3, 10.0.0.100                                           |</div><div>| progress                            | 0                                                              |</div>

<div>| security_groups                     | [{u'name': u'cirros.DefaultSecurityGroup'}]                    |</div><div>| status                              | ACTIVE                                                         |</div>

<div>| tenant_id                           | bc7d29521a444d59b1d68f1e0a81ce90                               |</div><div>| updated                             | 2013-02-05T09:12:00Z                                           |</div>

<div>| user_id                             | b8827fae4f7c4a0194b77ea3784d25d7                               |</div><div>+-------------------------------------+----------------------------------------------------------------+</div>

</div><div><br></div><div style>And the port created by the heat template is in DOWN state:</div><div style><br></div><div><div>$ quantum port-show e22bda12-e062-4c13-ad99-85f0ea994e9e</div><div>+----------------------+-----------------------------------------------------------------------------------+</div>

<div>| Field                | Value                                                                             |</div><div>+----------------------+-----------------------------------------------------------------------------------+</div>

<div>| admin_state_up       | True                                                                              |</div><div>| binding:capabilities | {"port_filter": false}                                                            |</div>

<div>| binding:vif_type     | ovs                                                                               |</div><div>| device_id            | 46f1542b-3c4c-4849-bf05-488aba266e06                                              |</div>

<div>| device_owner         |                                                                                   |</div><div>| fixed_ips            | {"subnet_id": "1aa32a3e-ec28-44aa-867c-fcb4f774fa43", "ip_address": "10.0.0.100"} |</div>

<div>| id                   | e22bda12-e062-4c13-ad99-85f0ea994e9e                                              |</div><div>| mac_address          | fa:16:3e:04:8a:56                                                                 |</div>

<div>| name                 | QuantumPort                                                                       |</div><div>| network_id           | e5b6584f-9ca8-4219-b2d4-1a2f56a502fe                                              |</div>

<div>| status               | DOWN                                                                              |</div><div>| tenant_id            | bc7d29521a444d59b1d68f1e0a81ce90                                                  |</div>

<div>+----------------------+-----------------------------------------------------------------------------------+</div></div><div><br></div><div style>Thanks in advance for the answers,</div><div><br></div><div style>Simon</div>

</div></div>