test/yao/resources/test_project.rb in yao-0.9.1 vs test/yao/resources/test_project.rb in yao-0.10.0

- old
+ new

@@ -27,6 +27,231 @@ assert_equal(true, project.enabled?) assert_equal("0c4e939acacf4376bdcd1129f1a054ad", project.id) assert_equal("admin", project.name) assert_equal(nil, project.parent_id) end + + def test_ports + stub = stub_request(:get, "https://example.com:12345/ports?tenant_id=d397de8a63f341818f198abb0966f6f3") + .to_return( + status: 200, + # https://docs.openstack.org/api-ref/network/v2/?expanded=list-floating-ips-detail,list-ports-detail#list-ports + body: <<-JSON, + { + "ports": [ + { + "admin_state_up": true, + "allowed_address_pairs": [], + "binding:host_id": "devstack", + "binding:profile": {}, + "binding:vif_details": { + "ovs_hybrid_plug": true, + "port_filter": true + }, + "binding:vif_type": "ovs", + "binding:vnic_type": "normal", + "created_at": "2016-03-08T20:19:41", + "data_plane_status": null, + "description": "", + "device_id": "9ae135f4-b6e0-4dad-9e91-3c223e385824", + "device_owner": "network:router_gateway", + "dns_assignment": { + "hostname": "myport", + "ip_address": "172.24.4.2", + "fqdn": "myport.my-domain.org" + }, + "dns_domain": "my-domain.org.", + "dns_name": "myport", + "extra_dhcp_opts": [], + "fixed_ips": [ + { + "ip_address": "172.24.4.2", + "subnet_id": "008ba151-0b8c-4a67-98b5-0d2b87666062" + } + ], + "id": "d80b1a3b-4fc1-49f3-952e-1e2ab7081d8b", + "ip_allocation": "immediate", + "mac_address": "fa:16:3e:58:42:ed", + "name": "", + "network_id": "70c1db1f-b701-45bd-96e0-a313ee3430b3", + "port_security_enabled": true, + "project_id": "", + "revision_number": 1, + "security_groups": [], + "status": "ACTIVE", + "tenant_id": "", + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", + "resource_request": { + "required": ["CUSTOM_PHYSNET_PUBLIC", "CUSTOM_VNIC_TYPE_NORMAL"], + "resources": {"NET_BW_EGR_KILOBIT_PER_SEC": 1000} + }, + "tags": ["tag1,tag2"], + "tenant_id": "", + "uplink_status_propagation": false + }, + { + "admin_state_up": true, + "allowed_address_pairs": [], + "binding:host_id": "devstack", + "binding:profile": {}, + "binding:vif_details": { + "ovs_hybrid_plug": true, + "port_filter": true + }, + "binding:vif_type": "ovs", + "binding:vnic_type": "normal", + "created_at": "2016-03-08T20:19:41", + "data_plane_status": null, + "description": "", + "device_id": "9ae135f4-b6e0-4dad-9e91-3c223e385824", + "device_owner": "network:router_interface", + "dns_assignment": { + "hostname": "myport2", + "ip_address": "10.0.0.1", + "fqdn": "myport2.my-domain.org" + }, + "dns_domain": "my-domain.org.", + "dns_name": "myport2", + "extra_dhcp_opts": [], + "fixed_ips": [ + { + "ip_address": "10.0.0.1", + "subnet_id": "288bf4a1-51ba-43b6-9d0a-520e9005db17" + } + ], + "id": "f71a6703-d6de-4be1-a91a-a570ede1d159", + "ip_allocation": "immediate", + "mac_address": "fa:16:3e:bb:3c:e4", + "name": "", + "network_id": "f27aa545-cbdd-4907-b0c6-c9e8b039dcc2", + "port_security_enabled": true, + "project_id": "d397de8a63f341818f198abb0966f6f3", + "revision_number": 2, + "security_groups": [], + "status": "ACTIVE", + "tenant_id": "d397de8a63f341818f198abb0966f6f3", + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": null, + "tags": ["tag1,tag2"], + "tenant_id": "d397de8a63f341818f198abb0966f6f3", + "uplink_status_propagation": false + } + ] + } + JSON + headers: {'Content-Type' => 'application/json'} + ) + params = { + "id" => "d397de8a63f341818f198abb0966f6f3", + } + project = Yao::Project.new(params) + assert_instance_of(Array, project.ports) + assert_requested(stub) + end + + def test_servers + stub = stub_request(:get, "https://example.com:12345/servers/detail?project_id=6f70656e737461636b20342065766572") + .to_return( + status: 200, + # https://docs.openstack.org/api-ref/compute/?expanded=list-servers-detailed-detail#list-servers-detailed + body: <<-JSON, + { + "servers": [ + { + "OS-DCF:diskConfig": "AUTO", + "OS-EXT-AZ:availability_zone": "nova", + "OS-EXT-SRV-ATTR:host": "compute", + "OS-EXT-SRV-ATTR:hostname": "new-server-test", + "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", + "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", + "OS-EXT-SRV-ATTR:kernel_id": "", + "OS-EXT-SRV-ATTR:launch_index": 0, + "OS-EXT-SRV-ATTR:ramdisk_id": "", + "OS-EXT-SRV-ATTR:reservation_id": "r-l0i0clt2", + "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", + "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", + "OS-EXT-STS:power_state": 1, + "OS-EXT-STS:task_state": null, + "OS-EXT-STS:vm_state": "active", + "OS-SRV-USG:launched_at": "2019-04-23T15:19:15.317839", + "OS-SRV-USG:terminated_at": null, + "accessIPv4": "1.2.3.4", + "accessIPv6": "80fe::", + "addresses": { + "private": [ + { + "OS-EXT-IPS-MAC:mac_addr": "00:0c:29:0d:11:74", + "OS-EXT-IPS:type": "fixed", + "addr": "192.168.1.30", + "version": 4 + } + ] + }, + "config_drive": "", + "created": "2019-04-23T15:19:14Z", + "description": null, + "flavor": { + "disk": 1, + "ephemeral": 0, + "extra_specs": {}, + "original_name": "m1.tiny", + "ram": 512, + "swap": 0, + "vcpus": 1 + }, + "hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6", + "host_status": "UP", + "id": "2ce4c5b3-2866-4972-93ce-77a2ea46a7f9", + "image": { + "id": "70a599e0-31e7-49b7-b260-868f441e862b", + "links": [ + { + "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", + "rel": "bookmark" + } + ] + }, + "key_name": null, + "links": [ + { + "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/2ce4c5b3-2866-4972-93ce-77a2ea46a7f9", + "rel": "self" + }, + { + "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/2ce4c5b3-2866-4972-93ce-77a2ea46a7f9", + "rel": "bookmark" + } + ], + "locked": true, + "locked_reason": "I don't want to work", + "metadata": { + "My Server Name": "Apache1" + }, + "name": "new-server-test", + "os-extended-volumes:volumes_attached": [], + "progress": 0, + "security_groups": [ + { + "name": "default" + } + ], + "status": "ACTIVE", + "tags": [], + "tenant_id": "6f70656e737461636b20342065766572", + "trusted_image_certificates": null, + "updated": "2019-04-23T15:19:15Z", + "user_id": "fake" + } + ] + } + JSON + headers: {'Content-Type' => 'application/json'} + ) + params = { + "id" => "6f70656e737461636b20342065766572", + } + project = Yao::Project.new(params) + assert_instance_of(Array, project.servers) + assert_requested(stub) + end end \ No newline at end of file