Commit Graph

292 Commits

Author SHA1 Message Date
Joe Topjian 4a5cd0b415 provider/openstack: Fixing Image ID/Name areas
This commit cleans up areas that configure the image_id and image_name.

It enables the ability to not have to specify an image_id or image_name
when booting from a volume.

It also prevents Terraform from reporting an error when an image name is no
longer able to be resolved from an image ID. This usually happens when the
image has been deleted, but there are still running instances that were based
off of it.

The image_id and image_name parameters no longer immediately take a default
value from the OS_IMAGE_ID and OS_IMAGE_NAME environment variables. If no other
resolution of an image_id or image_name were found, then these variables will
be referenced. This further supports booting from a volume.

Finally, documentation was updated to take into account booting from a volume.
2015-10-31 22:45:34 +00:00
Joe Topjian 3d3f8122a9 provider/openstack: Volume Cleanup
This commit cleans up the volume and block device handling in the instance
resource. It also adds more acceptance tests to deal with different workflows
of attaching and detaching a volume through the instance's lifecycle.

No new functionality has been added.
2015-10-31 22:45:34 +00:00
Joe Topjian e75553fd9d provider/openstack: Fixes Boot From Volume
This commit fixes the previously broken "boot from volume" feature. It also
adds an acceptance test to ensure the feature continues to work.

The "delete_on_termination" option was also added.
2015-10-31 22:45:28 +00:00
Joe Topjian cc2b3677e6 Merge pull request #3091 from berendt/openstack_subnet_ip_default
provider/openstack: use '4' as default for ip_version of subnet
2015-10-31 22:15:48 +09:00
Joe Topjian 776f15f0f3 provider/openstack: added acceptance test to test security group order 2015-10-30 22:31:41 +00:00
Joe Topjian beab5619e2 Merge pull request #3651 from Sheile/ignore-sg-order
provider/openstack: Ignore order of security_groups in instance
2015-10-30 22:35:06 +09:00
Joe Topjian c4c480bb92 provider/openstack: Safe SecGroup Delete
This commit enables security groups to be deleted in a safe way by
checking their state over a period of time.

This fixes occurrences when the API says the instance is deleted but
it is still in the process of being deleted by OpenStack and thus the
security group returns an error saying that there are still instances
attached to the group.
2015-10-30 13:03:26 +00:00
Joe Topjian fd8dba4827 provider/openstack: add state 'creating' to blockstorage_volume_v1
This commit adds the "creating" status to the Pending phases of creating a
block storage device.

Closes #3224
2015-10-29 19:01:24 -05:00
Paul Hinze fe2bf2d473 Merge pull request #3440 from ggiamarchi/openstack/idempotency
Fix OpenStack provider idempotency bugs
2015-10-29 18:57:02 -05:00
Yo Takezawa 59828deb0f provider/openstack: Use security_groups as native set when update 2015-10-28 10:12:05 +09:00
Yo Takezawa d2cf45a057 provider/openstack: Ignore order of security_groups in instance 2015-10-27 15:57:28 +09:00
Panagiotis Moustafellos e4845f75cc removed extra parentheses 2015-10-08 15:48:04 +03:00
Guillaume Giamarchi e453decec8 Fix OpenStack provider idempotency bugs 2015-10-07 22:39:12 +02:00
Radek Simko f9efede852 gofmt files from recently merged PRs 2015-10-07 13:35:06 -07:00
Paul Hinze 5b4bbf08d0 Merge pull request #1788 from JeanMertz/openstack-floatingip-port
OpenStack: add functionality to attach FloatingIP to Port
2015-10-05 14:30:26 -05:00
Paul Hinze 50b8161da1 Merge pull request #2008 from dupuy/secgrp-delta-remove-then-add
remove security groups (by name) before adding security groups (by id)
2015-09-24 14:14:48 -05:00
Anthony Scalisi 198e1a5186 remove various typos 2015-09-11 11:56:20 -07:00
Christian Berendt 3af3ce4242 provider/openstack: use '4' as default for ip_version of subnet 2015-08-27 18:27:14 +02:00
Christian Berendt b38f0e2f67 provider/openstack: add state 'downloading' to resource 'blockstorage_volume_v1'
When using an image as the source of new volume the state 'downloading'
prior to the state 'available' is fine.

It is also fine to destroy a volume in the state 'downloading'.

Closes-bug: #2865
Co-Authored-By: Joe Topjian <joe@topjian.net>
2015-08-24 08:21:35 +02:00
Joe Topjian 5251193f87 Allow empty api_key and endpoint_type
These two provider options are optional though if they are not set,
the user will be prompted to enter values.

By changing them to use the envDefaultFuncAllowMissing, the values
are still passed in the environment if they are set and safely
discarded if they are not.
2015-07-06 03:14:13 +00:00
Mitchell Hashimoto ebc33d874a providers/openstack: fix vet issue 2015-06-24 23:16:06 -07:00
Mitchell Hashimoto ede6af8763 Merge pull request #1921 from jtopjian/openstack-servergroup-schedulerhints
provider/openstack: scheduler_hints and servergroups
2015-06-24 23:13:25 -07:00
Mitchell Hashimoto d1d2a90158 Revert "provider/openstack: change security groups to set"
This reverts commit 646fd76e07.
2015-06-24 23:10:30 -07:00
Mitchell Hashimoto 38151229b1 Merge pull request #2285 from cvvs/b_provider_openstack_router_adminbool
provider/openstack: change router resource admin_state_up from string to bool
2015-06-24 23:09:14 -07:00
Mitchell Hashimoto 09acd1f79d providers/openstack: fix crash case if network is nil [GH-2323] 2015-06-23 16:19:42 -07:00
cvvs eabaf8a088 provider/openstack: openstack router admin state
Change openstack router resource admin state from a string to a
boolean.

Same technique as mitchellh's fix in
https://github.com/hashicorp/terraform/pull/1745
2015-06-09 10:25:54 -06:00
cvvs 646fd76e07 provider/openstack: change security groups to set
This commit converts the openstack compute instances security groups to
a set from a list.

This fixes ordering problems which forces or indicates change to security
groups where none exist, and mimics the functionality in the aws
provider's compute resource.

Includes fixes from dupuy addressing crashes due to an empty state.
2015-06-09 10:04:06 -06:00
Mitchell Hashimoto 27acb45522 Merge pull request #2262 from ggiamarchi/openstack/endpoint_type
Openstack / Add endpoint type provider configuration
2015-06-07 22:12:32 -07:00
Paul Hinze 84afeb73b1 acc tests: ensure each resource has a _basic test
Helpful for breadth first acc test sweeps `-run '_basic$'`
2015-06-07 18:18:14 -05:00
Guillaume Giamarchi 8d26e10aba go fmt 2015-06-07 23:50:51 +02:00
Guillaume Giamarchi e04a6cacc5 Enpoint type configuration for OpenStack provider
Add the possibility to specify the endpoint type
(public, admin, internal). The default remains the
same (public).
2015-06-07 23:50:34 +02:00
Travis Truman 7fe29efc1d Fixes #2212 by allowing OS_AUTH_TOKEN to set api_key config value 2015-06-04 14:27:18 -04:00
Alexander Dupuy 739a411b4d debug security group ids 2015-05-18 23:02:19 +02:00
Joe Topjian 4daaacd292 Minor volume fixes
This commit follows suit of #1897 by fixing volume-related
parameters which allow the volume attach acceptance test
to work. It also re-enables the volume attach test.
2015-05-14 02:59:21 +00:00
Joe Topjian 7ca7eeabe7 Added scheduler_hints to the OpenStack instance resource.
This allows various hints to be passed to the OpenStack scheduler
that will determine where the instance will be hosted in the cloud.
2015-05-12 01:08:20 +00:00
Joe Topjian b74e74fc16 ServerGroup Resource
This commit adds a server group resource. Users can create server
groups with different policies. If a server is launched in a certain
group, the server will adhere to that policy. For example, servers
can be made to all launch on the same compute node or different compute
nodes.
2015-05-12 01:08:19 +00:00
Joe Topjian 9c27194ee1 gofmt fixes 2015-05-11 00:58:16 +00:00
Joe Topjian fe668a1ac7 Fixing TestAccFWPolicyV1 2015-05-10 04:39:00 +00:00
Joe Topjian a6b9a63231 Fixing TestAccFWFirewallV1 2015-05-10 04:38:36 +00:00
Joe Topjian 4811112a6a Fixing TestAccNetworkingV2Subnet_basic 2015-05-10 04:38:06 +00:00
Joe Topjian feb5a3c6bb Fixing TestAccNetworkingV2RouterInterface_basic 2015-05-09 23:04:45 +00:00
Joe Topjian 1e7a227ea6 Fixing TestAccNetworkingV2FloatingIP_basic 2015-05-09 22:58:25 +00:00
Joe Topjian 5535a9ba32 Fixing TestAccLBV1Pool_basic 2015-05-09 22:43:40 +00:00
Joe Topjian de74f3e586 Fixing TestAccLBV1Monitor_basic 2015-05-09 22:26:23 +00:00
Joe Topjian 2d512343a0 Fixing TestAccBlockStorageV1Volume_basic 2015-05-09 20:31:34 +00:00
Joe Topjian 04d694fe53 Disabling volume attach test for now 2015-05-09 17:07:50 +00:00
Joe Topjian b54df9bc0b Fixing TestAccComputeV2FloatingIP_attach 2015-05-06 05:58:58 +00:00
Joe Topjian 219c86ef93 Fixing TestAccComputeV2Instance_floatingIPAttach 2015-05-06 05:53:17 +00:00
Joe Topjian e76dca9756 Fixing TestAccComputeV2Instance_basic 2015-05-06 05:50:21 +00:00
Alexander Dupuy 2ccaaf204d fix copy/paste typo in OpenStack FW error messages 2015-05-05 14:01:49 +02:00
Jean Mertz 87cde8834e OpenStack: add functionality to attach FloatingIP to Port 2015-05-03 16:00:00 +02:00
Mitchell Hashimoto aaf94e7cec Merge pull request #1745 from hashicorp/b-openstack-bool
provider/openstack: enable_dhcp should be bool [GH-1741]
2015-04-30 14:27:14 -07:00
Mitchell Hashimoto 914740f065 provider/openstack: enable_dhcp should be bool [GH-1741] 2015-04-29 17:30:58 -07:00
skfmu 2c32988743 Added availability zones for OpenStack block storage. 2015-04-27 05:52:45 +00:00
Guillaume Giamarchi d855047af3 Floating IP support for LBaaS Virtual IP 2015-04-16 02:51:05 +02:00
Guillaume Giamarchi b87c05e5a8 Allow to disable HTTPS certificate check 2015-04-15 21:54:44 +02:00
Joe Topjian fe0a7a5ec5 Allow Blank Region
When OS_REGION_NAME is not set, fall back to a blank string. This
will cause gophercloud to use the cloud's only region in
single-region clouds.
2015-04-11 05:10:10 +00:00
Joe Topjian 1693767922 Compute Instance basic acceptance test
A change was made to account for clouds with multiple networks.
2015-04-02 00:10:46 +00:00
Joe Topjian 7ca97f4bfc Updating Floating IP acceptance tests 2015-04-01 22:54:09 +00:00
Joe Topjian 99ac8b4410 Compute Floating IP Test Update
Changes the test to require a network UUID rather than a name.
2015-04-01 21:39:54 +00:00
Joe Topjian ef4e03a729 Workaround for missing tenant-network
This commit resolves an issue where the tenant-network api extension
does not exist. The caveat is that the user must either specify no
networks (single network environment) or can only specify UUIDs for
network configurations.
2015-04-01 21:31:55 +00:00
Joe Topjian 4244d0947e Making the network resource computable
This allows the obtained network information to be successfully stored
for environments that do not require a network resource to be specified.
2015-04-01 16:06:47 +00:00
Joe Topjian 67e33a7ac9 Updated compute_instance acceptance tests for floating IPs 2015-04-01 15:39:36 +00:00
Joe Topjian bb81228205 typo with netname when no networks are specified 2015-04-01 15:39:36 +00:00
Joe Topjian 30b0fc7489 Only attempt to get the MAC address if it exists. 2015-04-01 15:39:36 +00:00
Joe Topjian 0d77232196 Fixing computed parameters 2015-04-01 15:39:36 +00:00
Joe Topjian ccba698370 Network Read changes
This commit changes how the network info is read from OpenStack.
It pulls all relevant information from server.Addresses and merges
it with the available information from the networks parameters.
The access_v4, access_v6, and floating IP information is then
determined from the result.

A MAC address parameter is also added since that information is
available in server.Addresses.
2015-04-01 15:39:36 +00:00
Joe Topjian b160654cb3 Allow networks to be specified by name
This commit allows the user to specify a network by name rather than
just uuid. This is done via the os-tenant-networks api extension.
This works for both neutron and nova-network.
2015-04-01 15:39:36 +00:00
Joe Topjian b90a6152c5 Renamed fixed_ip to fixed_ip_v4 and added fixed_ip_v6 2015-04-01 15:39:36 +00:00
Joe Topjian d768a01cab Removes check for a "public" network
This is only possible if the OpenStack cloud explicitly has a network
called "public".
2015-04-01 15:39:36 +00:00
Joe Topjian 141b40189e os-floating-ips support
This commit causes the resource to manage floating IPs by way of the
os-floating-ips API.

At the moment, it works with both nova-network and Neutron environments,
but if you use multiple Neutron networks, the network that supports the
floating IP must be listed first.
2015-04-01 15:39:18 +00:00
Guillaume Giamarchi 56aa764b94 Add floating IP association in aceptance tests 2015-04-01 11:27:56 +02:00
Guillaume Giamarchi c0b85d4939 Use env var OS_POOL_NAME as default for pool attribute
To have the same behaviour for openstack_networking_floatingip_v2
and openstack_compute_foatingip_v2.
2015-04-01 11:24:54 +02:00
Guillaume Giamarchi a90b9db397 Bugfix on floating IP assignment
The `getFirstNetworkID` does not work correctly because the first
network is not always the private network of the instance.

As long as the `GET /networks` gives a list containing also public
networks we don't have any guarantee that the first network is the
one we want. Furthermore, with a loop over the network list we are
not able to determine which network is the one we want.

Instead of retrieving the network ID and then finding the port ID,
it's better to basically take the first port ID of the instance.
2015-04-01 00:14:56 +02:00
Chris Buben 0092946f74 user_data support
Mostly stolen from: https://github.com/jtopjian/terraform-provider-openstack/blob/master/openstack/resource_openstack_instance.go
2015-03-31 09:54:50 -06:00
Julien Vey 2e37784065 Fix general comments by @phinze 2015-03-31 09:54:50 -06:00
Joe Topjian f011462e30 Volume Pending States
This commit adds pending states for volume attachment, detachment,
and deletion.
2015-03-31 09:54:50 -06:00
Joe Topjian f5feb7fbbb Allows "self" to be discovered and recorded correctly. 2015-03-31 09:54:50 -06:00
Guillaume Giamarchi ba880b136b Code clean-up 2015-03-31 09:54:50 -06:00
Guillaume Giamarchi 83160acf69 Return Read call result in Create & Update 2015-03-31 09:54:50 -06:00
Guillaume Giamarchi bdeca31731 remove boilerplate code using CheckDeleted 2015-03-31 09:54:50 -06:00
Guillaume Giamarchi 16a963313f FWaaS version is actually v1 not v2
Rename files and methods.

Confusion have been made between neutron
version and FWaaS extension version.
2015-03-31 09:54:50 -06:00
Guillaume Giamarchi 1efaaeeca6 Use d.GetOk to populate data in read operations 2015-03-31 09:54:50 -06:00
Guillaume Giamarchi ed31588b84 Unassociate firewall rule from policy before delete 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 54174dcc05 Fix firewall policies tests 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi c5e861c049 Remove useless code 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 1c981d6f30 Fix race conditions on firewall state transition 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi d6733fb379 Fix code regarding to the latest gophercloud code 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi cfd3329e00 Add tenant_id attribute on FWaaS resources 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 0ab06af410 Add FWaaS firewall acceptance test 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 06826fb677 Add FWaaS policy acceptance test 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 88a55a5d58 Enable FWaaS resources 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 3d1001d8fe Add FWaaS rule acceptance test 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 5d42242d4b Add FWaaS firewall resource 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi f829427151 Add FWaaS policy resource 2015-03-31 09:54:49 -06:00
Guillaume Giamarchi 552b0af201 Add FWaaS rule resource 2015-03-31 09:54:49 -06:00
Joe Topjian 102848525f Added CheckDelete to handle bad Gets. Also removed unneeded Get
from Delete.
2015-03-31 09:54:49 -06:00
Joe Topjian b7091414fe Volume Safe Delete
This commit ensures that a volume is detached from all instances
before it is deleted.

It also adds in an `attachment` exported parameter that shows details
of the volume's attachment(s).
2015-03-31 09:54:49 -06:00
Joe Topjian c3c4840baf openstack_compute_floatingip_v2
This commit adds a resource that allows the user to allocate,
deallocate, associate, and disassociate floating IPs through the
nova api.
2015-03-31 09:54:49 -06:00
Eric Bellemon d03b420e62 Replace perigee.UnexpectedResponseCodeError with gophercloud.UnexpectedResponseCodeError 2015-03-31 09:54:49 -06:00
Long Nguyen 42fb14f19a Added self option to security groups 2015-03-31 09:54:49 -06:00
Joe Topjian 79e5c419c3 Fixing rule/rules and re-arranged order for schema consistency 2015-03-31 09:54:49 -06:00
Joe Topjian 4c9a44b69f Added access_ip_v6 support
This commit populates access_ip_v6 by either the AccessIPv6 attribute
or by finding the first available IPv6 address.

This commit retains the original feature of setting the default ssh
connection to the IPv4 address unless one is not found. IPv6 access
can still be enabled by explicitly setting it in the resource paramters.

This commit also removes d.Set("host") in favor of SetConnInfo
2015-03-31 09:54:49 -06:00
Jon Perritt 633e98dffe security group rule fix; still not exporting rule ID 2015-03-31 09:54:49 -06:00
Joe Topjian 4df32aebed Changing how security groups are read for compute instances 2015-03-31 09:54:49 -06:00
Jon Perritt 64d53009a0 typeset->typelist 2015-03-31 09:54:49 -06:00
Jon Perritt bb6969a4c5 resize server on flavor_id or flavor_name change 2015-03-31 09:54:49 -06:00
Jon Perritt 49b01a4f0a update compute instance security group Read operation 2015-03-31 09:54:49 -06:00
Joe Topjian e5f2315bfe Instance volume attach
This commit adds the ability for instances to attach volumes from within their resource.
2015-03-31 09:54:48 -06:00
Joe Topjian 16ea14e8c9 Grammar fix 2015-03-31 09:54:48 -06:00
Joe Topjian b3438d07d6 This commit enables both the image_id and the image_name to be
computed, so that specifying one will populate the other.
2015-03-31 09:54:48 -06:00
Joe Topjian 768292c069 Support for flavor_name
This commit renames flavor_ref to flavor_id and adds the flavor_name
parameter. Users can now specify either a flavor ID or name when launching
instances.
2015-03-31 09:54:48 -06:00
Joe Topjian 74482abc5b Refactoring multiple results 2015-03-31 09:54:48 -06:00
Joe Topjian bad2c9f18d Accounting for multiple results of an image name
If multiple results are found, an error will be returned to the user.
2015-03-31 09:54:48 -06:00
Joe Topjian f51a53000f Support for image_name
This commit renames image_ref to image_id and adds the image_name
parameter. Users can now specify either an image UUID or image name
when launching instances.

image_name is preferrable as deployers/sysadmins generally regularly
deprecate/remove outdated and insecure images. Using a consistent
naming scheme allows end-users to always retrieve a working image.
2015-03-31 09:54:48 -06:00
Jon Perritt fafa946871 handle 404 (Not Found) in Get operations 2015-03-31 09:54:48 -06:00
Eric Bellemon 9b30ef4eb2 Remove region properties on acceptance tests 2015-03-31 09:54:48 -06:00
Eric Bellemon e9abf04e4b Add router interface resource 2015-03-31 09:54:48 -06:00
Eric Bellemon 32d0e36709 Add router resource 2015-03-31 09:54:48 -06:00
Julien Vey 132d5acb33 Make pool name configurable in tests 2015-03-31 09:54:48 -06:00
Julien Vey 760e03856e Manage floating IP in compute instances 2015-03-31 09:54:48 -06:00
Julien Vey 9aa9c90248 Add floating IP resource 2015-03-31 09:54:48 -06:00
Julien Vey aae87816f6 add ACTIVE as pending state when deleting instance 2015-03-31 09:54:48 -06:00
Julien Vey 8e9c6787dd Just try the first IP available if none found before
Some cloud don't implement correctly IP addresses.
Instead of failing during the provisionning, we just take the
first IP available and try with this one.
2015-03-31 09:54:48 -06:00
Jon Perritt ccd51ae3ab added ok codes to gophercloud -> update ServerV2StateRefreshFunc 2015-03-31 09:54:48 -06:00
Jon Perritt e2634562a4 define block_device schema 2015-03-31 09:54:48 -06:00
Jon Perritt 436ef9e53b boot from volume ops and docs 2015-03-31 09:54:48 -06:00
Jon Perritt 761d58df2f add container and volume resources 2015-03-31 09:54:48 -06:00
Jon Perritt a85067062d object storage v1 acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt d2169e0e96 block storage v1 acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt acd5a033f0 fix typo in client variable name 2015-03-31 09:54:47 -06:00
Jon Perritt f1ac6dbfec block storage volume v1 ops 2015-03-31 09:54:47 -06:00
Jon Perritt a5147f472b update metadata before actual Update op 2015-03-31 09:54:47 -06:00
Jon Perritt 43564d1c5c object storage container v1 ops 2015-03-31 09:54:47 -06:00
Jon Perritt 08672e697e networking subnets acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt e040934077 networking networks acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt d46d9a6540 lb vips acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt e7a69d0a6c lb pools acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt e08e97304f lb monitors acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt 66129632b3 security groups acceptance tests 2015-03-31 09:54:47 -06:00
Jon Perritt fa15d41d45 UpdateOpts not optional 2015-03-31 09:54:47 -06:00
Jon Perritt b9395b36d2 update client methods 2015-03-31 09:54:47 -06:00
Jon Perritt 6b2f2df042 'rules' -> 'rule' 2015-03-31 09:54:47 -06:00
Jon Perritt 33d62bbdbf 'networks' -> 'network' 2015-03-31 09:54:47 -06:00
Jon Perritt 777c34cf7c move lb member ops into lb pool file 2015-03-31 09:54:47 -06:00
Jon Perritt 1aba665ad7 refactor service clients to *Config 2015-03-31 09:54:47 -06:00
Jon Perritt 3627368fc0 remove security group rule option from provider 2015-03-31 09:54:47 -06:00
Jon Perritt a2d2f92741 remove security group rule file 2015-03-31 09:54:47 -06:00
Jon Perritt c233c7f7f0 fix typo in comment 2015-03-31 09:54:47 -06:00
Jon Perritt ea7c075273 add security group rules ops to security groups file 2015-03-31 09:54:47 -06:00