fog-openstack 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +30 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/CONTRIBUTING.md +18 -0
- data/Gemfile +4 -0
- data/LICENSE.md +20 -0
- data/README.md +41 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/fog-openstack.gemspec +33 -0
- data/lib/fog/openstack.rb +508 -0
- data/lib/fog/openstack/CHANGELOG.md +47 -0
- data/lib/fog/openstack/baremetal.rb +308 -0
- data/lib/fog/openstack/common.rb +46 -0
- data/lib/fog/openstack/compute.rb +397 -0
- data/lib/fog/openstack/core.rb +114 -0
- data/lib/fog/openstack/docs/compute.md +681 -0
- data/lib/fog/openstack/docs/getting_started.md +81 -0
- data/lib/fog/openstack/docs/orchestration.md +318 -0
- data/lib/fog/openstack/docs/planning.md +270 -0
- data/lib/fog/openstack/docs/storage.md +453 -0
- data/lib/fog/openstack/errors.rb +42 -0
- data/lib/fog/openstack/examples/compute/basics.rb +50 -0
- data/lib/fog/openstack/examples/compute/block_device_mapping_v2.rb +32 -0
- data/lib/fog/openstack/examples/identity/basics.rb +68 -0
- data/lib/fog/openstack/examples/image/upload-test-image.rb +77 -0
- data/lib/fog/openstack/examples/network/network_subnets_routers.rb +62 -0
- data/lib/fog/openstack/examples/planning/basics.rb +53 -0
- data/lib/fog/openstack/examples/storage/set-account-quota.rb +66 -0
- data/lib/fog/openstack/identity.rb +27 -0
- data/lib/fog/openstack/identity_v2.rb +203 -0
- data/lib/fog/openstack/identity_v3.rb +181 -0
- data/lib/fog/openstack/image.rb +22 -0
- data/lib/fog/openstack/image_v1.rb +148 -0
- data/lib/fog/openstack/image_v2.rb +142 -0
- data/lib/fog/openstack/metering.rb +145 -0
- data/lib/fog/openstack/models/baremetal/chassis.rb +49 -0
- data/lib/fog/openstack/models/baremetal/chassis_collection.rb +44 -0
- data/lib/fog/openstack/models/baremetal/driver.rb +24 -0
- data/lib/fog/openstack/models/baremetal/drivers.rb +21 -0
- data/lib/fog/openstack/models/baremetal/node.rb +96 -0
- data/lib/fog/openstack/models/baremetal/nodes.rb +44 -0
- data/lib/fog/openstack/models/baremetal/port.rb +50 -0
- data/lib/fog/openstack/models/baremetal/ports.rb +44 -0
- data/lib/fog/openstack/models/collection.rb +45 -0
- data/lib/fog/openstack/models/compute/address.rb +67 -0
- data/lib/fog/openstack/models/compute/addresses.rb +28 -0
- data/lib/fog/openstack/models/compute/aggregate.rb +58 -0
- data/lib/fog/openstack/models/compute/aggregates.rb +26 -0
- data/lib/fog/openstack/models/compute/availability_zone.rb +14 -0
- data/lib/fog/openstack/models/compute/availability_zones.rb +22 -0
- data/lib/fog/openstack/models/compute/flavor.rb +52 -0
- data/lib/fog/openstack/models/compute/flavors.rb +29 -0
- data/lib/fog/openstack/models/compute/host.rb +28 -0
- data/lib/fog/openstack/models/compute/hosts.rb +28 -0
- data/lib/fog/openstack/models/compute/image.rb +48 -0
- data/lib/fog/openstack/models/compute/images.rb +38 -0
- data/lib/fog/openstack/models/compute/key_pair.rb +56 -0
- data/lib/fog/openstack/models/compute/key_pairs.rb +29 -0
- data/lib/fog/openstack/models/compute/metadata.rb +65 -0
- data/lib/fog/openstack/models/compute/metadatum.rb +27 -0
- data/lib/fog/openstack/models/compute/network.rb +13 -0
- data/lib/fog/openstack/models/compute/networks.rb +30 -0
- data/lib/fog/openstack/models/compute/security_group.rb +57 -0
- data/lib/fog/openstack/models/compute/security_group_rule.rb +32 -0
- data/lib/fog/openstack/models/compute/security_group_rules.rb +21 -0
- data/lib/fog/openstack/models/compute/security_groups.rb +24 -0
- data/lib/fog/openstack/models/compute/server.rb +410 -0
- data/lib/fog/openstack/models/compute/servers.rb +59 -0
- data/lib/fog/openstack/models/compute/service.rb +42 -0
- data/lib/fog/openstack/models/compute/services.rb +23 -0
- data/lib/fog/openstack/models/compute/snapshot.rb +32 -0
- data/lib/fog/openstack/models/compute/snapshots.rb +37 -0
- data/lib/fog/openstack/models/compute/tenant.rb +24 -0
- data/lib/fog/openstack/models/compute/tenants.rb +25 -0
- data/lib/fog/openstack/models/compute/volume.rb +52 -0
- data/lib/fog/openstack/models/compute/volumes.rb +37 -0
- data/lib/fog/openstack/models/identity_v2/ec2_credential.rb +39 -0
- data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +56 -0
- data/lib/fog/openstack/models/identity_v2/role.rb +52 -0
- data/lib/fog/openstack/models/identity_v2/roles.rb +22 -0
- data/lib/fog/openstack/models/identity_v2/tenant.rb +60 -0
- data/lib/fog/openstack/models/identity_v2/tenants.rb +31 -0
- data/lib/fog/openstack/models/identity_v2/user.rb +69 -0
- data/lib/fog/openstack/models/identity_v2/users.rb +45 -0
- data/lib/fog/openstack/models/identity_v3/domain.rb +49 -0
- data/lib/fog/openstack/models/identity_v3/domains.rb +50 -0
- data/lib/fog/openstack/models/identity_v3/endpoint.rb +46 -0
- data/lib/fog/openstack/models/identity_v3/endpoints.rb +26 -0
- data/lib/fog/openstack/models/identity_v3/group.rb +92 -0
- data/lib/fog/openstack/models/identity_v3/groups.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/os_credential.rb +73 -0
- data/lib/fog/openstack/models/identity_v3/os_credentials.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/policies.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/policy.rb +42 -0
- data/lib/fog/openstack/models/identity_v3/project.rb +106 -0
- data/lib/fog/openstack/models/identity_v3/projects.rb +57 -0
- data/lib/fog/openstack/models/identity_v3/role.rb +40 -0
- data/lib/fog/openstack/models/identity_v3/role_assignment.rb +22 -0
- data/lib/fog/openstack/models/identity_v3/role_assignments.rb +25 -0
- data/lib/fog/openstack/models/identity_v3/roles.rb +39 -0
- data/lib/fog/openstack/models/identity_v3/service.rb +47 -0
- data/lib/fog/openstack/models/identity_v3/services.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/token.rb +26 -0
- data/lib/fog/openstack/models/identity_v3/tokens.rb +41 -0
- data/lib/fog/openstack/models/identity_v3/user.rb +81 -0
- data/lib/fog/openstack/models/identity_v3/users.rb +35 -0
- data/lib/fog/openstack/models/image_v1/image.rb +78 -0
- data/lib/fog/openstack/models/image_v1/images.rb +70 -0
- data/lib/fog/openstack/models/image_v2/image.rb +149 -0
- data/lib/fog/openstack/models/image_v2/images.rb +67 -0
- data/lib/fog/openstack/models/meta_parent.rb +31 -0
- data/lib/fog/openstack/models/metering/meter.rb +0 -0
- data/lib/fog/openstack/models/metering/meters.rb +0 -0
- data/lib/fog/openstack/models/metering/resource.rb +15 -0
- data/lib/fog/openstack/models/metering/resources.rb +23 -0
- data/lib/fog/openstack/models/model.rb +44 -0
- data/lib/fog/openstack/models/network/floating_ip.rb +40 -0
- data/lib/fog/openstack/models/network/floating_ips.rb +32 -0
- data/lib/fog/openstack/models/network/lb_health_monitor.rb +57 -0
- data/lib/fog/openstack/models/network/lb_health_monitors.rb +32 -0
- data/lib/fog/openstack/models/network/lb_member.rb +42 -0
- data/lib/fog/openstack/models/network/lb_members.rb +32 -0
- data/lib/fog/openstack/models/network/lb_pool.rb +67 -0
- data/lib/fog/openstack/models/network/lb_pools.rb +32 -0
- data/lib/fog/openstack/models/network/lb_vip.rb +48 -0
- data/lib/fog/openstack/models/network/lb_vips.rb +32 -0
- data/lib/fog/openstack/models/network/network.rb +43 -0
- data/lib/fog/openstack/models/network/networks.rb +32 -0
- data/lib/fog/openstack/models/network/port.rb +42 -0
- data/lib/fog/openstack/models/network/ports.rb +32 -0
- data/lib/fog/openstack/models/network/router.rb +61 -0
- data/lib/fog/openstack/models/network/routers.rb +32 -0
- data/lib/fog/openstack/models/network/security_group.rb +32 -0
- data/lib/fog/openstack/models/network/security_group_rule.rb +33 -0
- data/lib/fog/openstack/models/network/security_group_rules.rb +32 -0
- data/lib/fog/openstack/models/network/security_groups.rb +32 -0
- data/lib/fog/openstack/models/network/subnet.rb +44 -0
- data/lib/fog/openstack/models/network/subnets.rb +32 -0
- data/lib/fog/openstack/models/orchestration/event.rb +20 -0
- data/lib/fog/openstack/models/orchestration/events.rb +31 -0
- data/lib/fog/openstack/models/orchestration/resource.rb +32 -0
- data/lib/fog/openstack/models/orchestration/resource_schemas.rb +17 -0
- data/lib/fog/openstack/models/orchestration/resources.rb +36 -0
- data/lib/fog/openstack/models/orchestration/stack.rb +120 -0
- data/lib/fog/openstack/models/orchestration/stacks.rb +64 -0
- data/lib/fog/openstack/models/orchestration/template.rb +15 -0
- data/lib/fog/openstack/models/orchestration/templates.rb +45 -0
- data/lib/fog/openstack/models/planning/plan.rb +70 -0
- data/lib/fog/openstack/models/planning/plans.rb +31 -0
- data/lib/fog/openstack/models/planning/role.rb +23 -0
- data/lib/fog/openstack/models/planning/roles.rb +16 -0
- data/lib/fog/openstack/models/storage/directories.rb +36 -0
- data/lib/fog/openstack/models/storage/directory.rb +50 -0
- data/lib/fog/openstack/models/storage/file.rb +185 -0
- data/lib/fog/openstack/models/storage/files.rb +101 -0
- data/lib/fog/openstack/models/volume/availability_zone.rb +10 -0
- data/lib/fog/openstack/models/volume/availability_zones.rb +14 -0
- data/lib/fog/openstack/models/volume/transfer.rb +28 -0
- data/lib/fog/openstack/models/volume/transfers.rb +35 -0
- data/lib/fog/openstack/models/volume/volume.rb +36 -0
- data/lib/fog/openstack/models/volume/volume_type.rb +36 -0
- data/lib/fog/openstack/models/volume/volume_types.rb +22 -0
- data/lib/fog/openstack/models/volume/volumes.rb +35 -0
- data/lib/fog/openstack/models/volume_v1/availability_zone.rb +15 -0
- data/lib/fog/openstack/models/volume_v1/availability_zones.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/transfer.rb +18 -0
- data/lib/fog/openstack/models/volume_v1/transfers.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volume.rb +26 -0
- data/lib/fog/openstack/models/volume_v1/volume_type.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volume_types.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volumes.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/availability_zone.rb +15 -0
- data/lib/fog/openstack/models/volume_v2/availability_zones.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/transfer.rb +19 -0
- data/lib/fog/openstack/models/volume_v2/transfers.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volume.rb +27 -0
- data/lib/fog/openstack/models/volume_v2/volume_type.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volume_types.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volumes.rb +16 -0
- data/lib/fog/openstack/network.rb +293 -0
- data/lib/fog/openstack/orchestration.rb +192 -0
- data/lib/fog/openstack/planning.rb +174 -0
- data/lib/fog/openstack/requests/baremetal/create_chassis.rb +44 -0
- data/lib/fog/openstack/requests/baremetal/create_node.rb +54 -0
- data/lib/fog/openstack/requests/baremetal/create_port.rb +46 -0
- data/lib/fog/openstack/requests/baremetal/delete_chassis.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/delete_node.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/delete_port.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/get_chassis.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/get_driver.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/get_driver_properties.rb +40 -0
- data/lib/fog/openstack/requests/baremetal/get_node.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/get_port.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/list_chassis.rb +42 -0
- data/lib/fog/openstack/requests/baremetal/list_chassis_detailed.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/list_drivers.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/list_nodes.rb +34 -0
- data/lib/fog/openstack/requests/baremetal/list_nodes_detailed.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/list_ports.rb +42 -0
- data/lib/fog/openstack/requests/baremetal/list_ports_detailed.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/patch_chassis.rb +42 -0
- data/lib/fog/openstack/requests/baremetal/patch_node.rb +41 -0
- data/lib/fog/openstack/requests/baremetal/patch_port.rb +41 -0
- data/lib/fog/openstack/requests/baremetal/set_node_maintenance.rb +30 -0
- data/lib/fog/openstack/requests/baremetal/set_node_power_state.rb +35 -0
- data/lib/fog/openstack/requests/baremetal/set_node_provision_state.rb +38 -0
- data/lib/fog/openstack/requests/baremetal/unset_node_maintenance.rb +30 -0
- data/lib/fog/openstack/requests/compute/add_aggregate_host.rb +30 -0
- data/lib/fog/openstack/requests/compute/add_fixed_ip.rb +29 -0
- data/lib/fog/openstack/requests/compute/add_flavor_access.rb +31 -0
- data/lib/fog/openstack/requests/compute/add_security_group.rb +20 -0
- data/lib/fog/openstack/requests/compute/allocate_address.rb +39 -0
- data/lib/fog/openstack/requests/compute/associate_address.rb +30 -0
- data/lib/fog/openstack/requests/compute/attach_volume.rb +38 -0
- data/lib/fog/openstack/requests/compute/boot_from_snapshot.rb +41 -0
- data/lib/fog/openstack/requests/compute/change_server_password.rb +20 -0
- data/lib/fog/openstack/requests/compute/confirm_resize_server.rb +20 -0
- data/lib/fog/openstack/requests/compute/create_aggregate.rb +42 -0
- data/lib/fog/openstack/requests/compute/create_flavor.rb +85 -0
- data/lib/fog/openstack/requests/compute/create_flavor_metadata.rb +38 -0
- data/lib/fog/openstack/requests/compute/create_image.rb +44 -0
- data/lib/fog/openstack/requests/compute/create_key_pair.rb +46 -0
- data/lib/fog/openstack/requests/compute/create_security_group.rb +50 -0
- data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +57 -0
- data/lib/fog/openstack/requests/compute/create_server.rb +185 -0
- data/lib/fog/openstack/requests/compute/create_volume.rb +51 -0
- data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +51 -0
- data/lib/fog/openstack/requests/compute/delete_aggregate.rb +28 -0
- data/lib/fog/openstack/requests/compute/delete_flavor.rb +28 -0
- data/lib/fog/openstack/requests/compute/delete_image.rb +35 -0
- data/lib/fog/openstack/requests/compute/delete_key_pair.rb +29 -0
- data/lib/fog/openstack/requests/compute/delete_meta.rb +35 -0
- data/lib/fog/openstack/requests/compute/delete_metadata.rb +23 -0
- data/lib/fog/openstack/requests/compute/delete_security_group.rb +31 -0
- data/lib/fog/openstack/requests/compute/delete_security_group_rule.rb +31 -0
- data/lib/fog/openstack/requests/compute/delete_server.rb +34 -0
- data/lib/fog/openstack/requests/compute/delete_service.rb +32 -0
- data/lib/fog/openstack/requests/compute/delete_snapshot.rb +28 -0
- data/lib/fog/openstack/requests/compute/delete_volume.rb +28 -0
- data/lib/fog/openstack/requests/compute/detach_volume.rb +28 -0
- data/lib/fog/openstack/requests/compute/disable_service.rb +37 -0
- data/lib/fog/openstack/requests/compute/disable_service_log_reason.rb +38 -0
- data/lib/fog/openstack/requests/compute/disassociate_address.rb +25 -0
- data/lib/fog/openstack/requests/compute/enable_service.rb +38 -0
- data/lib/fog/openstack/requests/compute/evacuate_server.rb +26 -0
- data/lib/fog/openstack/requests/compute/get_address.rb +38 -0
- data/lib/fog/openstack/requests/compute/get_aggregate.rb +26 -0
- data/lib/fog/openstack/requests/compute/get_console_output.rb +24 -0
- data/lib/fog/openstack/requests/compute/get_flavor_details.rb +39 -0
- data/lib/fog/openstack/requests/compute/get_flavor_metadata.rb +27 -0
- data/lib/fog/openstack/requests/compute/get_host_details.rb +66 -0
- data/lib/fog/openstack/requests/compute/get_hypervisor_statistics.rb +39 -0
- data/lib/fog/openstack/requests/compute/get_image_details.rb +28 -0
- data/lib/fog/openstack/requests/compute/get_limits.rb +89 -0
- data/lib/fog/openstack/requests/compute/get_metadata.rb +24 -0
- data/lib/fog/openstack/requests/compute/get_quota.rb +26 -0
- data/lib/fog/openstack/requests/compute/get_quota_defaults.rb +26 -0
- data/lib/fog/openstack/requests/compute/get_security_group.rb +37 -0
- data/lib/fog/openstack/requests/compute/get_security_group_rule.rb +38 -0
- data/lib/fog/openstack/requests/compute/get_server_details.rb +28 -0
- data/lib/fog/openstack/requests/compute/get_server_password.rb +28 -0
- data/lib/fog/openstack/requests/compute/get_server_volumes.rb +27 -0
- data/lib/fog/openstack/requests/compute/get_snapshot_details.rb +29 -0
- data/lib/fog/openstack/requests/compute/get_usage.rb +51 -0
- data/lib/fog/openstack/requests/compute/get_vnc_console.rb +40 -0
- data/lib/fog/openstack/requests/compute/get_volume_details.rb +28 -0
- data/lib/fog/openstack/requests/compute/list_address_pools.rb +28 -0
- data/lib/fog/openstack/requests/compute/list_addresses.rb +28 -0
- data/lib/fog/openstack/requests/compute/list_aggregates.rb +36 -0
- data/lib/fog/openstack/requests/compute/list_all_addresses.rb +62 -0
- data/lib/fog/openstack/requests/compute/list_flavors.rb +35 -0
- data/lib/fog/openstack/requests/compute/list_flavors_detail.rb +35 -0
- data/lib/fog/openstack/requests/compute/list_hosts.rb +28 -0
- data/lib/fog/openstack/requests/compute/list_images.rb +29 -0
- data/lib/fog/openstack/requests/compute/list_images_detail.rb +36 -0
- data/lib/fog/openstack/requests/compute/list_key_pairs.rb +38 -0
- data/lib/fog/openstack/requests/compute/list_metadata.rb +24 -0
- data/lib/fog/openstack/requests/compute/list_private_addresses.rb +28 -0
- data/lib/fog/openstack/requests/compute/list_public_addresses.rb +28 -0
- data/lib/fog/openstack/requests/compute/list_security_groups.rb +69 -0
- data/lib/fog/openstack/requests/compute/list_servers.rb +36 -0
- data/lib/fog/openstack/requests/compute/list_servers_detail.rb +43 -0
- data/lib/fog/openstack/requests/compute/list_services.rb +66 -0
- data/lib/fog/openstack/requests/compute/list_snapshots.rb +40 -0
- data/lib/fog/openstack/requests/compute/list_snapshots_detail.rb +26 -0
- data/lib/fog/openstack/requests/compute/list_tenants.rb +45 -0
- data/lib/fog/openstack/requests/compute/list_tenants_with_flavor_access.rb +26 -0
- data/lib/fog/openstack/requests/compute/list_usages.rb +41 -0
- data/lib/fog/openstack/requests/compute/list_volumes.rb +39 -0
- data/lib/fog/openstack/requests/compute/list_volumes_detail.rb +25 -0
- data/lib/fog/openstack/requests/compute/list_zones.rb +33 -0
- data/lib/fog/openstack/requests/compute/list_zones_detailed.rb +55 -0
- data/lib/fog/openstack/requests/compute/live_migrate_server.rb +26 -0
- data/lib/fog/openstack/requests/compute/migrate_server.rb +20 -0
- data/lib/fog/openstack/requests/compute/pause_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/reboot_server.rb +20 -0
- data/lib/fog/openstack/requests/compute/rebuild_server.rb +34 -0
- data/lib/fog/openstack/requests/compute/release_address.rb +29 -0
- data/lib/fog/openstack/requests/compute/remove_aggregate_host.rb +30 -0
- data/lib/fog/openstack/requests/compute/remove_fixed_ip.rb +29 -0
- data/lib/fog/openstack/requests/compute/remove_flavor_access.rb +31 -0
- data/lib/fog/openstack/requests/compute/remove_security_group.rb +20 -0
- data/lib/fog/openstack/requests/compute/rescue_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/reset_server_state.rb +20 -0
- data/lib/fog/openstack/requests/compute/resize_server.rb +20 -0
- data/lib/fog/openstack/requests/compute/resume_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/revert_resize_server.rb +26 -0
- data/lib/fog/openstack/requests/compute/server_action.rb +16 -0
- data/lib/fog/openstack/requests/compute/server_actions.rb +38 -0
- data/lib/fog/openstack/requests/compute/server_diagnostics.rb +25 -0
- data/lib/fog/openstack/requests/compute/set_metadata.rb +37 -0
- data/lib/fog/openstack/requests/compute/set_tenant.rb +19 -0
- data/lib/fog/openstack/requests/compute/shelve_offload_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/shelve_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/start_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/stop_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/suspend_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/unpause_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/unshelve_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/update_aggregate.rb +37 -0
- data/lib/fog/openstack/requests/compute/update_aggregate_metadata.rb +30 -0
- data/lib/fog/openstack/requests/compute/update_meta.rb +38 -0
- data/lib/fog/openstack/requests/compute/update_metadata.rb +38 -0
- data/lib/fog/openstack/requests/compute/update_quota.rb +28 -0
- data/lib/fog/openstack/requests/compute/update_server.rb +31 -0
- data/lib/fog/openstack/requests/identity_v2/add_user_to_tenant.rb +36 -0
- data/lib/fog/openstack/requests/identity_v2/check_token.rb +22 -0
- data/lib/fog/openstack/requests/identity_v2/create_ec2_credential.rb +59 -0
- data/lib/fog/openstack/requests/identity_v2/create_role.rb +38 -0
- data/lib/fog/openstack/requests/identity_v2/create_tenant.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/create_user.rb +45 -0
- data/lib/fog/openstack/requests/identity_v2/create_user_role.rb +26 -0
- data/lib/fog/openstack/requests/identity_v2/delete_ec2_credential.rb +43 -0
- data/lib/fog/openstack/requests/identity_v2/delete_role.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/delete_tenant.rb +33 -0
- data/lib/fog/openstack/requests/identity_v2/delete_user.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/delete_user_role.rb +25 -0
- data/lib/fog/openstack/requests/identity_v2/get_ec2_credential.rb +50 -0
- data/lib/fog/openstack/requests/identity_v2/get_role.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/get_tenant.rb +33 -0
- data/lib/fog/openstack/requests/identity_v2/get_tenants_by_id.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/get_tenants_by_name.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/get_user_by_id.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/get_user_by_name.rb +29 -0
- data/lib/fog/openstack/requests/identity_v2/list_ec2_credentials.rb +61 -0
- data/lib/fog/openstack/requests/identity_v2/list_endpoints_for_token.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/list_roles.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/list_roles_for_user_on_tenant.rb +32 -0
- data/lib/fog/openstack/requests/identity_v2/list_tenants.rb +53 -0
- data/lib/fog/openstack/requests/identity_v2/list_user_global_roles.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/list_users.rb +47 -0
- data/lib/fog/openstack/requests/identity_v2/remove_user_from_tenant.rb +22 -0
- data/lib/fog/openstack/requests/identity_v2/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/identity_v2/update_tenant.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/update_user.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/validate_token.rb +22 -0
- data/lib/fog/openstack/requests/identity_v3/add_user_to_group.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/auth_domains.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/auth_projects.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/check_domain_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/check_domain_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/check_project_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/check_project_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/create_domain.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_endpoint.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_group.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_os_credential.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_policy.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_project.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_role.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_service.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_user.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/delete_domain.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_endpoint.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_group.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_os_credential.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_policy.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_project.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_service.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_user.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/get_domain.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_endpoint.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_group.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_os_credential.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_policy.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_project.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_role.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_service.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_user.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/grant_domain_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/grant_domain_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/grant_project_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/grant_project_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/group_user_check.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/list_domain_group_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_domain_user_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_domains.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_endpoints.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_group_users.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_groups.rb +32 -0
- data/lib/fog/openstack/requests/identity_v3/list_os_credentials.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_policies.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_project_group_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_project_user_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_projects.rb +31 -0
- data/lib/fog/openstack/requests/identity_v3/list_role_assignments.rb +39 -0
- data/lib/fog/openstack/requests/identity_v3/list_roles.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_services.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/list_user_groups.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_user_projects.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_users.rb +24 -0
- data/lib/fog/openstack/requests/identity_v3/remove_user_from_group.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_domain_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_domain_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_project_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_project_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/token_authenticate.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/token_check.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/token_revoke.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/token_validate.rb +22 -0
- data/lib/fog/openstack/requests/identity_v3/update_domain.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_endpoint.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_group.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_os_credential.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_policy.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_project.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_role.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_service.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_user.rb +21 -0
- data/lib/fog/openstack/requests/image_v1/add_member_to_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v1/create_image.rb +78 -0
- data/lib/fog/openstack/requests/image_v1/delete_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v1/get_image.rb +47 -0
- data/lib/fog/openstack/requests/image_v1/get_image_by_id.rb +34 -0
- data/lib/fog/openstack/requests/image_v1/get_image_members.rb +31 -0
- data/lib/fog/openstack/requests/image_v1/get_shared_images.rb +31 -0
- data/lib/fog/openstack/requests/image_v1/list_public_images.rb +35 -0
- data/lib/fog/openstack/requests/image_v1/list_public_images_detailed.rb +37 -0
- data/lib/fog/openstack/requests/image_v1/remove_member_from_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v1/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/image_v1/update_image.rb +66 -0
- data/lib/fog/openstack/requests/image_v1/update_image_members.rb +39 -0
- data/lib/fog/openstack/requests/image_v2/add_member_to_image.rb +26 -0
- data/lib/fog/openstack/requests/image_v2/add_tag_to_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/create_image.rb +54 -0
- data/lib/fog/openstack/requests/image_v2/deactivate_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/delete_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/download_image.rb +29 -0
- data/lib/fog/openstack/requests/image_v2/get_image.rb +47 -0
- data/lib/fog/openstack/requests/image_v2/get_image_by_id.rb +34 -0
- data/lib/fog/openstack/requests/image_v2/get_image_members.rb +31 -0
- data/lib/fog/openstack/requests/image_v2/get_member_details.rb +33 -0
- data/lib/fog/openstack/requests/image_v2/get_shared_images.rb +31 -0
- data/lib/fog/openstack/requests/image_v2/list_images.rb +35 -0
- data/lib/fog/openstack/requests/image_v2/reactivate_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/remove_member_from_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/remove_tag_from_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/image_v2/update_image.rb +49 -0
- data/lib/fog/openstack/requests/image_v2/update_image_member.rb +34 -0
- data/lib/fog/openstack/requests/image_v2/upload_image.rb +30 -0
- data/lib/fog/openstack/requests/metering/get_resource.rb +28 -0
- data/lib/fog/openstack/requests/metering/get_samples.rb +50 -0
- data/lib/fog/openstack/requests/metering/get_statistics.rb +51 -0
- data/lib/fog/openstack/requests/metering/list_meters.rb +45 -0
- data/lib/fog/openstack/requests/metering/list_resources.rb +28 -0
- data/lib/fog/openstack/requests/network/add_router_interface.rb +54 -0
- data/lib/fog/openstack/requests/network/associate_floating_ip.rb +47 -0
- data/lib/fog/openstack/requests/network/associate_lb_health_monitor.rb +37 -0
- data/lib/fog/openstack/requests/network/create_floating_ip.rb +45 -0
- data/lib/fog/openstack/requests/network/create_lb_health_monitor.rb +54 -0
- data/lib/fog/openstack/requests/network/create_lb_member.rb +51 -0
- data/lib/fog/openstack/requests/network/create_lb_pool.rb +58 -0
- data/lib/fog/openstack/requests/network/create_lb_vip.rb +58 -0
- data/lib/fog/openstack/requests/network/create_network.rb +97 -0
- data/lib/fog/openstack/requests/network/create_port.rb +53 -0
- data/lib/fog/openstack/requests/network/create_router.rb +76 -0
- data/lib/fog/openstack/requests/network/create_security_group.rb +94 -0
- data/lib/fog/openstack/requests/network/create_security_group_rule.rb +79 -0
- data/lib/fog/openstack/requests/network/create_subnet.rb +54 -0
- data/lib/fog/openstack/requests/network/delete_floating_ip.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_lb_health_monitor.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_lb_member.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_lb_pool.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_lb_vip.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_network.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_port.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_quota.rb +23 -0
- data/lib/fog/openstack/requests/network/delete_router.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_security_group.rb +32 -0
- data/lib/fog/openstack/requests/network/delete_security_group_rule.rb +32 -0
- data/lib/fog/openstack/requests/network/delete_subnet.rb +28 -0
- data/lib/fog/openstack/requests/network/disassociate_floating_ip.rb +47 -0
- data/lib/fog/openstack/requests/network/disassociate_lb_health_monitor.rb +29 -0
- data/lib/fog/openstack/requests/network/get_floating_ip.rb +39 -0
- data/lib/fog/openstack/requests/network/get_lb_health_monitor.rb +28 -0
- data/lib/fog/openstack/requests/network/get_lb_member.rb +28 -0
- data/lib/fog/openstack/requests/network/get_lb_pool.rb +28 -0
- data/lib/fog/openstack/requests/network/get_lb_pool_stats.rb +33 -0
- data/lib/fog/openstack/requests/network/get_lb_vip.rb +28 -0
- data/lib/fog/openstack/requests/network/get_network.rb +40 -0
- data/lib/fog/openstack/requests/network/get_port.rb +51 -0
- data/lib/fog/openstack/requests/network/get_quota.rb +26 -0
- data/lib/fog/openstack/requests/network/get_quotas.rb +26 -0
- data/lib/fog/openstack/requests/network/get_router.rb +30 -0
- data/lib/fog/openstack/requests/network/get_security_group.rb +52 -0
- data/lib/fog/openstack/requests/network/get_security_group_rule.rb +47 -0
- data/lib/fog/openstack/requests/network/get_subnet.rb +47 -0
- data/lib/fog/openstack/requests/network/list_floating_ips.rb +25 -0
- data/lib/fog/openstack/requests/network/list_lb_health_monitors.rb +25 -0
- data/lib/fog/openstack/requests/network/list_lb_members.rb +25 -0
- data/lib/fog/openstack/requests/network/list_lb_pools.rb +25 -0
- data/lib/fog/openstack/requests/network/list_lb_vips.rb +25 -0
- data/lib/fog/openstack/requests/network/list_networks.rb +25 -0
- data/lib/fog/openstack/requests/network/list_ports.rb +25 -0
- data/lib/fog/openstack/requests/network/list_routers.rb +25 -0
- data/lib/fog/openstack/requests/network/list_security_group_rules.rb +48 -0
- data/lib/fog/openstack/requests/network/list_security_groups.rb +53 -0
- data/lib/fog/openstack/requests/network/list_subnets.rb +25 -0
- data/lib/fog/openstack/requests/network/remove_router_interface.rb +34 -0
- data/lib/fog/openstack/requests/network/set_tenant.rb +20 -0
- data/lib/fog/openstack/requests/network/update_lb_health_monitor.rb +43 -0
- data/lib/fog/openstack/requests/network/update_lb_member.rb +39 -0
- data/lib/fog/openstack/requests/network/update_lb_pool.rb +40 -0
- data/lib/fog/openstack/requests/network/update_lb_vip.rb +42 -0
- data/lib/fog/openstack/requests/network/update_network.rb +39 -0
- data/lib/fog/openstack/requests/network/update_port.rb +43 -0
- data/lib/fog/openstack/requests/network/update_quota.rb +27 -0
- data/lib/fog/openstack/requests/network/update_router.rb +69 -0
- data/lib/fog/openstack/requests/network/update_subnet.rb +43 -0
- data/lib/fog/openstack/requests/orchestration/abandon_stack.rb +15 -0
- data/lib/fog/openstack/requests/orchestration/build_info.rb +15 -0
- data/lib/fog/openstack/requests/orchestration/create_stack.rb +75 -0
- data/lib/fog/openstack/requests/orchestration/delete_stack.rb +58 -0
- data/lib/fog/openstack/requests/orchestration/get_stack_template.rb +20 -0
- data/lib/fog/openstack/requests/orchestration/list_events.rb +46 -0
- data/lib/fog/openstack/requests/orchestration/list_resource_events.rb +28 -0
- data/lib/fog/openstack/requests/orchestration/list_resource_types.rb +27 -0
- data/lib/fog/openstack/requests/orchestration/list_resources.rb +46 -0
- data/lib/fog/openstack/requests/orchestration/list_stack_data.rb +27 -0
- data/lib/fog/openstack/requests/orchestration/list_stack_data_detailed.rb +49 -0
- data/lib/fog/openstack/requests/orchestration/list_stack_events.rb +27 -0
- data/lib/fog/openstack/requests/orchestration/patch_stack.rb +37 -0
- data/lib/fog/openstack/requests/orchestration/preview_stack.rb +16 -0
- data/lib/fog/openstack/requests/orchestration/show_event_details.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_data.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_metadata.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_schema.rb +15 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_template.rb +20 -0
- data/lib/fog/openstack/requests/orchestration/show_stack_details.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/update_stack.rb +66 -0
- data/lib/fog/openstack/requests/orchestration/validate_template.rb +16 -0
- data/lib/fog/openstack/requests/planning/add_role_to_plan.rb +40 -0
- data/lib/fog/openstack/requests/planning/create_plan.rb +33 -0
- data/lib/fog/openstack/requests/planning/delete_plan.rb +23 -0
- data/lib/fog/openstack/requests/planning/get_plan.rb +58 -0
- data/lib/fog/openstack/requests/planning/get_plan_templates.rb +28 -0
- data/lib/fog/openstack/requests/planning/list_plans.rb +61 -0
- data/lib/fog/openstack/requests/planning/list_roles.rb +32 -0
- data/lib/fog/openstack/requests/planning/patch_plan.rb +51 -0
- data/lib/fog/openstack/requests/planning/remove_role_from_plan.rb +32 -0
- data/lib/fog/openstack/requests/storage/copy_object.rb +25 -0
- data/lib/fog/openstack/requests/storage/delete_container.rb +20 -0
- data/lib/fog/openstack/requests/storage/delete_multiple_objects.rb +65 -0
- data/lib/fog/openstack/requests/storage/delete_object.rb +21 -0
- data/lib/fog/openstack/requests/storage/delete_static_large_object.rb +41 -0
- data/lib/fog/openstack/requests/storage/get_container.rb +42 -0
- data/lib/fog/openstack/requests/storage/get_containers.rb +31 -0
- data/lib/fog/openstack/requests/storage/get_object.rb +27 -0
- data/lib/fog/openstack/requests/storage/get_object_http_url.rb +21 -0
- data/lib/fog/openstack/requests/storage/get_object_https_url.rb +81 -0
- data/lib/fog/openstack/requests/storage/head_container.rb +26 -0
- data/lib/fog/openstack/requests/storage/head_containers.rb +23 -0
- data/lib/fog/openstack/requests/storage/head_object.rb +21 -0
- data/lib/fog/openstack/requests/storage/post_set_meta_temp_url_key.rb +33 -0
- data/lib/fog/openstack/requests/storage/public_url.rb +28 -0
- data/lib/fog/openstack/requests/storage/put_container.rb +24 -0
- data/lib/fog/openstack/requests/storage/put_dynamic_obj_manifest.rb +41 -0
- data/lib/fog/openstack/requests/storage/put_object.rb +41 -0
- data/lib/fog/openstack/requests/storage/put_object_manifest.rb +14 -0
- data/lib/fog/openstack/requests/storage/put_static_obj_manifest.rb +55 -0
- data/lib/fog/openstack/requests/volume/accept_transfer.rb +22 -0
- data/lib/fog/openstack/requests/volume/create_transfer.rb +25 -0
- data/lib/fog/openstack/requests/volume/create_volume.rb +22 -0
- data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +26 -0
- data/lib/fog/openstack/requests/volume/create_volume_type.rb +41 -0
- data/lib/fog/openstack/requests/volume/delete_snapshot.rb +23 -0
- data/lib/fog/openstack/requests/volume/delete_transfer.rb +15 -0
- data/lib/fog/openstack/requests/volume/delete_volume.rb +23 -0
- data/lib/fog/openstack/requests/volume/delete_volume_type.rb +23 -0
- data/lib/fog/openstack/requests/volume/extend_volume.rb +25 -0
- data/lib/fog/openstack/requests/volume/get_quota.rb +26 -0
- data/lib/fog/openstack/requests/volume/get_quota_defaults.rb +26 -0
- data/lib/fog/openstack/requests/volume/get_quota_usage.rb +44 -0
- data/lib/fog/openstack/requests/volume/get_snapshot_details.rb +15 -0
- data/lib/fog/openstack/requests/volume/get_transfer_details.rb +17 -0
- data/lib/fog/openstack/requests/volume/get_volume_details.rb +16 -0
- data/lib/fog/openstack/requests/volume/get_volume_type_details.rb +32 -0
- data/lib/fog/openstack/requests/volume/list_snapshots.rb +41 -0
- data/lib/fog/openstack/requests/volume/list_snapshots_detailed.rb +27 -0
- data/lib/fog/openstack/requests/volume/list_transfers.rb +18 -0
- data/lib/fog/openstack/requests/volume/list_transfers_detailed.rb +18 -0
- data/lib/fog/openstack/requests/volume/list_volume_types.rb +41 -0
- data/lib/fog/openstack/requests/volume/list_volumes.rb +30 -0
- data/lib/fog/openstack/requests/volume/list_volumes_detailed.rb +16 -0
- data/lib/fog/openstack/requests/volume/list_zones.rb +32 -0
- data/lib/fog/openstack/requests/volume/set_tenant.rb +19 -0
- data/lib/fog/openstack/requests/volume/update_quota.rb +28 -0
- data/lib/fog/openstack/requests/volume/update_volume_type.rb +41 -0
- data/lib/fog/openstack/requests/volume_v1/accept_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/create_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/create_volume.rb +49 -0
- data/lib/fog/openstack/requests/volume_v1/create_volume_snapshot.rb +44 -0
- data/lib/fog/openstack/requests/volume_v1/create_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_snapshot.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/extend_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_quota_defaults.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_quota_usage.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_snapshot_details.rb +32 -0
- data/lib/fog/openstack/requests/volume_v1/get_transfer_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_volume_details.rb +35 -0
- data/lib/fog/openstack/requests/volume_v1/get_volume_type_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_snapshots.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_snapshots_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_transfers.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_transfers_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_volume_types.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_volumes.rb +46 -0
- data/lib/fog/openstack/requests/volume_v1/list_volumes_detailed.rb +46 -0
- data/lib/fog/openstack/requests/volume_v1/list_zones.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/real.rb +11 -0
- data/lib/fog/openstack/requests/volume_v1/real_mock.rb +14 -0
- data/lib/fog/openstack/requests/volume_v1/set_tenant.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/update_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/accept_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/create_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/create_volume.rb +49 -0
- data/lib/fog/openstack/requests/volume_v2/create_volume_snapshot.rb +43 -0
- data/lib/fog/openstack/requests/volume_v2/create_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_snapshot.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/extend_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_quota_defaults.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_quota_usage.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_snapshot_details.rb +32 -0
- data/lib/fog/openstack/requests/volume_v2/get_transfer_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_volume_details.rb +35 -0
- data/lib/fog/openstack/requests/volume_v2/get_volume_type_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_snapshots.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_snapshots_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_transfers.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_transfers_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_volume_types.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_volumes.rb +46 -0
- data/lib/fog/openstack/requests/volume_v2/list_volumes_detailed.rb +46 -0
- data/lib/fog/openstack/requests/volume_v2/list_zones.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/real.rb +11 -0
- data/lib/fog/openstack/requests/volume_v2/real_mock.rb +14 -0
- data/lib/fog/openstack/requests/volume_v2/set_tenant.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_volume_type.rb +2 -0
- data/lib/fog/openstack/storage.rb +181 -0
- data/lib/fog/openstack/version.rb +5 -0
- data/lib/fog/openstack/volume.rb +31 -0
- data/lib/fog/openstack/volume_v1.rb +163 -0
- data/lib/fog/openstack/volume_v2.rb +164 -0
- data/tests/helper.rb +21 -0
- data/tests/helpers/collection_helper.rb +97 -0
- data/tests/helpers/compute/flavors_helper.rb +32 -0
- data/tests/helpers/compute/server_helper.rb +25 -0
- data/tests/helpers/compute/servers_helper.rb +10 -0
- data/tests/helpers/formats_helper.rb +98 -0
- data/tests/helpers/formats_helper_tests.rb +110 -0
- data/tests/helpers/mock_helper.rb +17 -0
- data/tests/helpers/model_helper.rb +31 -0
- data/tests/helpers/responds_to_helper.rb +11 -0
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/helpers/succeeds_helper.rb +9 -0
- data/tests/openstack/authenticate_tests.rb +200 -0
- data/tests/openstack/models/compute/images_tests.rb +13 -0
- data/tests/openstack/models/compute/security_group_tests.rb +54 -0
- data/tests/openstack/models/compute/server_tests.rb +220 -0
- data/tests/openstack/models/identity/ec2_credential_tests.rb +41 -0
- data/tests/openstack/models/identity/ec2_credentials_tests.rb +58 -0
- data/tests/openstack/models/identity/role_tests.rb +26 -0
- data/tests/openstack/models/identity/roles_tests.rb +20 -0
- data/tests/openstack/models/identity/tenant_tests.rb +30 -0
- data/tests/openstack/models/identity/tenants_tests.rb +26 -0
- data/tests/openstack/models/identity/user_tests.rb +46 -0
- data/tests/openstack/models/identity/users_tests.rb +42 -0
- data/tests/openstack/models/image/image_tests.rb +36 -0
- data/tests/openstack/models/image/images_tests.rb +19 -0
- data/tests/openstack/models/network/floating_ip_tests.rb +22 -0
- data/tests/openstack/models/network/floating_ips_tests.rb +19 -0
- data/tests/openstack/models/network/lb_health_monitor_tests.rb +52 -0
- data/tests/openstack/models/network/lb_health_monitors_tests.rb +21 -0
- data/tests/openstack/models/network/lb_member_tests.rb +28 -0
- data/tests/openstack/models/network/lb_members_tests.rb +21 -0
- data/tests/openstack/models/network/lb_pool_tests.rb +53 -0
- data/tests/openstack/models/network/lb_pools_tests.rb +20 -0
- data/tests/openstack/models/network/lb_vip_tests.rb +39 -0
- data/tests/openstack/models/network/lb_vips_tests.rb +21 -0
- data/tests/openstack/models/network/network_tests.rb +61 -0
- data/tests/openstack/models/network/networks_tests.rb +21 -0
- data/tests/openstack/models/network/port_tests.rb +28 -0
- data/tests/openstack/models/network/ports_tests.rb +25 -0
- data/tests/openstack/models/network/router_tests.rb +39 -0
- data/tests/openstack/models/network/routers_tests.rb +21 -0
- data/tests/openstack/models/network/security_group_rule_tests.rb +27 -0
- data/tests/openstack/models/network/security_group_rules_tests.rb +25 -0
- data/tests/openstack/models/network/security_group_tests.rb +17 -0
- data/tests/openstack/models/network/security_groups_tests.rb +16 -0
- data/tests/openstack/models/network/subnet_tests.rb +30 -0
- data/tests/openstack/models/network/subnets_tests.rb +27 -0
- data/tests/openstack/models/planning/.gitkeep +0 -0
- data/tests/openstack/models/planning/plan_tests.rb +51 -0
- data/tests/openstack/models/planning/plans_tests.rb +18 -0
- data/tests/openstack/models/planning/role_tests.rb +14 -0
- data/tests/openstack/models/storage/file_tests.rb +251 -0
- data/tests/openstack/requests/baremetal/chassis_tests.rb +48 -0
- data/tests/openstack/requests/baremetal/driver_tests.rb +40 -0
- data/tests/openstack/requests/baremetal/node_tests.rb +83 -0
- data/tests/openstack/requests/baremetal/port_tests.rb +56 -0
- data/tests/openstack/requests/compute/address_tests.rb +58 -0
- data/tests/openstack/requests/compute/aggregate_tests.rb +59 -0
- data/tests/openstack/requests/compute/availability_zone_tests.rb +18 -0
- data/tests/openstack/requests/compute/flavor_tests.rb +95 -0
- data/tests/openstack/requests/compute/helper.rb +41 -0
- data/tests/openstack/requests/compute/image_tests.rb +58 -0
- data/tests/openstack/requests/compute/keypair_tests.rb +30 -0
- data/tests/openstack/requests/compute/limit_tests.rb +59 -0
- data/tests/openstack/requests/compute/quota_tests.rb +60 -0
- data/tests/openstack/requests/compute/security_group_tests.rb +61 -0
- data/tests/openstack/requests/compute/server_tests.rb +289 -0
- data/tests/openstack/requests/compute/service_tests.rb +33 -0
- data/tests/openstack/requests/compute/tenant_tests.rb +19 -0
- data/tests/openstack/requests/compute/volume_tests.rb +38 -0
- data/tests/openstack/requests/identity/ec2_credentials_tests.rb +44 -0
- data/tests/openstack/requests/identity/helper.rb +13 -0
- data/tests/openstack/requests/identity/role_tests.rb +45 -0
- data/tests/openstack/requests/identity/tenant_tests.rb +56 -0
- data/tests/openstack/requests/identity/user_tests.rb +41 -0
- data/tests/openstack/requests/image/image_tests.rb +134 -0
- data/tests/openstack/requests/metering/meter_tests.rb +52 -0
- data/tests/openstack/requests/metering/resource_tests.rb +19 -0
- data/tests/openstack/requests/network/lb_health_monitor_tests.rb +93 -0
- data/tests/openstack/requests/network/lb_member_tests.rb +60 -0
- data/tests/openstack/requests/network/lb_pool_tests.rb +80 -0
- data/tests/openstack/requests/network/lb_vip_tests.rb +71 -0
- data/tests/openstack/requests/network/network_tests.rb +107 -0
- data/tests/openstack/requests/network/port_tests.rb +66 -0
- data/tests/openstack/requests/network/quota_tests.rb +65 -0
- data/tests/openstack/requests/network/router_tests.rb +73 -0
- data/tests/openstack/requests/network/security_group_rule_tests.rb +58 -0
- data/tests/openstack/requests/network/security_group_tests.rb +43 -0
- data/tests/openstack/requests/network/subnet_tests.rb +66 -0
- data/tests/openstack/requests/orchestration/stack_tests.rb +64 -0
- data/tests/openstack/requests/planning/.gitkeep +0 -0
- data/tests/openstack/requests/planning/plan_tests.rb +65 -0
- data/tests/openstack/requests/planning/role_tests.rb +16 -0
- data/tests/openstack/requests/storage/container_tests.rb +64 -0
- data/tests/openstack/requests/storage/large_object_tests.rb +372 -0
- data/tests/openstack/requests/storage/object_tests.rb +208 -0
- data/tests/openstack/requests/volume/availability_zone_tests.rb +13 -0
- data/tests/openstack/requests/volume/quota_tests.rb +50 -0
- data/tests/openstack/requests/volume/volume_type_tests.rb +32 -0
- data/tests/openstack/storage_tests.rb +18 -0
- data/tests/openstack/version_tests.rb +55 -0
- data/tests/openstack/volume_tests.rb +18 -0
- metadata +967 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
def server_tests(connection, params = {}, mocks_implemented = true)
|
2
|
+
model_tests(connection.servers, params, mocks_implemented) do
|
3
|
+
|
4
|
+
tests('#reload').returns(true) do
|
5
|
+
pending if Fog.mocking? && !mocks_implemented
|
6
|
+
@instance.wait_for { ready? }
|
7
|
+
identity = @instance.identity
|
8
|
+
!identity.nil? && identity == @instance.reload.identity
|
9
|
+
end
|
10
|
+
|
11
|
+
responds_to([:ready?, :state])
|
12
|
+
yield if block_given?
|
13
|
+
|
14
|
+
tests('#reboot').succeeds do
|
15
|
+
pending if Fog.mocking? && !mocks_implemented
|
16
|
+
@instance.wait_for { ready? }
|
17
|
+
@instance.reboot
|
18
|
+
end
|
19
|
+
|
20
|
+
if !Fog.mocking? || mocks_implemented
|
21
|
+
@instance.wait_for { ready? }
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require "fog/schema/data_validator"
|
2
|
+
|
3
|
+
# format related hackery
|
4
|
+
# allows both true.is_a?(Fog::Boolean) and false.is_a?(Fog::Boolean)
|
5
|
+
# allows both nil.is_a?(Fog::Nullable::String) and ''.is_a?(Fog::Nullable::String)
|
6
|
+
module Fog
|
7
|
+
module Boolean; end
|
8
|
+
module Nullable
|
9
|
+
module Boolean; end
|
10
|
+
module Integer; end
|
11
|
+
module String; end
|
12
|
+
module Time; end
|
13
|
+
module Float; end
|
14
|
+
module Hash; end
|
15
|
+
module Array; end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
[FalseClass, TrueClass].each {|klass| klass.send(:include, Fog::Boolean)}
|
19
|
+
[FalseClass, TrueClass, NilClass, Fog::Boolean].each {|klass| klass.send(:include, Fog::Nullable::Boolean)}
|
20
|
+
[NilClass, String].each {|klass| klass.send(:include, Fog::Nullable::String)}
|
21
|
+
[NilClass, Time].each {|klass| klass.send(:include, Fog::Nullable::Time)}
|
22
|
+
[Integer, NilClass].each {|klass| klass.send(:include, Fog::Nullable::Integer)}
|
23
|
+
[Float, NilClass].each {|klass| klass.send(:include, Fog::Nullable::Float)}
|
24
|
+
[Hash, NilClass].each {|klass| klass.send(:include, Fog::Nullable::Hash)}
|
25
|
+
[Array, NilClass].each {|klass| klass.send(:include, Fog::Nullable::Array)}
|
26
|
+
|
27
|
+
module Shindo
|
28
|
+
class Tests
|
29
|
+
# Generates a Shindo test that compares a hash schema to the result
|
30
|
+
# of the passed in block returning true if they match.
|
31
|
+
#
|
32
|
+
# The schema that is passed in is a Hash or Array of hashes that
|
33
|
+
# have Classes in place of values. When checking the schema the
|
34
|
+
# value should match the Class.
|
35
|
+
#
|
36
|
+
# Strict mode will fail if the data has additional keys. Setting
|
37
|
+
# +strict+ to +false+ will allow additional keys to appear.
|
38
|
+
#
|
39
|
+
# @param [Hash] schema A Hash schema
|
40
|
+
# @param [Hash] options Options to change validation rules
|
41
|
+
# @option options [Boolean] :allow_extra_keys
|
42
|
+
# If +true+ does not fail when keys are in the data that are
|
43
|
+
# not specified in the schema. This allows new values to
|
44
|
+
# appear in API output without breaking the check.
|
45
|
+
# @option options [Boolean] :allow_optional_rules
|
46
|
+
# If +true+ does not fail if extra keys are in the schema
|
47
|
+
# that do not match the data. Not recommended!
|
48
|
+
# @yield Data to check with schema
|
49
|
+
#
|
50
|
+
# @example Using in a test
|
51
|
+
# Shindo.tests("comparing welcome data against schema") do
|
52
|
+
# data = {:welcome => "Hello" }
|
53
|
+
# data_matches_schema(:welcome => String) { data }
|
54
|
+
# end
|
55
|
+
#
|
56
|
+
# comparing welcome data against schema
|
57
|
+
# + data matches schema
|
58
|
+
#
|
59
|
+
# @example Example schema
|
60
|
+
# {
|
61
|
+
# "id" => String,
|
62
|
+
# "ram" => Integer,
|
63
|
+
# "disks" => [
|
64
|
+
# {
|
65
|
+
# "size" => Float
|
66
|
+
# }
|
67
|
+
# ],
|
68
|
+
# "dns_name" => Fog::Nullable::String,
|
69
|
+
# "active" => Fog::Boolean,
|
70
|
+
# "created" => DateTime
|
71
|
+
# }
|
72
|
+
#
|
73
|
+
# @return [Boolean]
|
74
|
+
def data_matches_schema(schema, options = {})
|
75
|
+
test('data matches schema') do
|
76
|
+
validator = Fog::Schema::DataValidator.new
|
77
|
+
valid = validator.validate(yield, schema, options)
|
78
|
+
@message = validator.message unless valid
|
79
|
+
valid
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# @deprecated #formats is deprecated. Use #data_matches_schema instead
|
84
|
+
def formats(format, strict = true)
|
85
|
+
test('has proper format') do
|
86
|
+
if strict
|
87
|
+
options = {:allow_extra_keys => false, :allow_optional_rules => true}
|
88
|
+
else
|
89
|
+
options = {:allow_extra_keys => true, :allow_optional_rules => true}
|
90
|
+
end
|
91
|
+
validator = Fog::Schema::DataValidator.new
|
92
|
+
valid = validator.validate(yield, format, options)
|
93
|
+
@message = validator.message unless valid
|
94
|
+
valid
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
Shindo.tests('test_helper', 'meta') do
|
2
|
+
|
3
|
+
tests('comparing welcome data against schema') do
|
4
|
+
data = {:welcome => "Hello" }
|
5
|
+
data_matches_schema(:welcome => String) { data }
|
6
|
+
end
|
7
|
+
|
8
|
+
tests('#data_matches_schema') do
|
9
|
+
tests('when value matches schema expectation') do
|
10
|
+
data_matches_schema({"key" => String}) { {"key" => "Value"} }
|
11
|
+
end
|
12
|
+
|
13
|
+
tests('when values within an array all match schema expectation') do
|
14
|
+
data_matches_schema({"key" => [Integer]}) { {"key" => [1, 2]} }
|
15
|
+
end
|
16
|
+
|
17
|
+
tests('when nested values match schema expectation') do
|
18
|
+
data_matches_schema({"key" => {:nested_key => String}}) { {"key" => {:nested_key => "Value"}} }
|
19
|
+
end
|
20
|
+
|
21
|
+
tests('when collection of values all match schema expectation') do
|
22
|
+
data_matches_schema([{"key" => String}]) { [{"key" => "Value"}, {"key" => "Value"}] }
|
23
|
+
end
|
24
|
+
|
25
|
+
tests('when collection is empty although schema covers optional members') do
|
26
|
+
data_matches_schema([{"key" => String}], {:allow_optional_rules => true}) { [] }
|
27
|
+
end
|
28
|
+
|
29
|
+
tests('when additional keys are passed and not strict') do
|
30
|
+
data_matches_schema({"key" => String}, {:allow_extra_keys => true}) { {"key" => "Value", :extra => "Bonus"} }
|
31
|
+
end
|
32
|
+
|
33
|
+
tests('when value is nil and schema expects NilClass') do
|
34
|
+
data_matches_schema({"key" => NilClass}) { {"key" => nil} }
|
35
|
+
end
|
36
|
+
|
37
|
+
tests('when value and schema match as hashes') do
|
38
|
+
data_matches_schema({}) { {} }
|
39
|
+
end
|
40
|
+
|
41
|
+
tests('when value and schema match as arrays') do
|
42
|
+
data_matches_schema([]) { [] }
|
43
|
+
end
|
44
|
+
|
45
|
+
tests('when value is a Time') do
|
46
|
+
data_matches_schema({"time" => Time}) { {"time" => Time.now} }
|
47
|
+
end
|
48
|
+
|
49
|
+
tests('when key is missing but value should be NilClass (#1477)') do
|
50
|
+
data_matches_schema({"key" => NilClass}, {:allow_optional_rules => true}) { {} }
|
51
|
+
end
|
52
|
+
|
53
|
+
tests('when key is missing but value is nullable (#1477)') do
|
54
|
+
data_matches_schema({"key" => Fog::Nullable::String}, {:allow_optional_rules => true}) { {} }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
tests('#formats backwards compatible changes') do
|
59
|
+
|
60
|
+
tests('when value matches schema expectation') do
|
61
|
+
formats({"key" => String}) { {"key" => "Value"} }
|
62
|
+
end
|
63
|
+
|
64
|
+
tests('when values within an array all match schema expectation') do
|
65
|
+
formats({"key" => [Integer]}) { {"key" => [1, 2]} }
|
66
|
+
end
|
67
|
+
|
68
|
+
tests('when nested values match schema expectation') do
|
69
|
+
formats({"key" => {:nested_key => String}}) { {"key" => {:nested_key => "Value"}} }
|
70
|
+
end
|
71
|
+
|
72
|
+
tests('when collection of values all match schema expectation') do
|
73
|
+
formats([{"key" => String}]) { [{"key" => "Value"}, {"key" => "Value"}] }
|
74
|
+
end
|
75
|
+
|
76
|
+
tests('when collection is empty although schema covers optional members') do
|
77
|
+
formats([{"key" => String}]) { [] }
|
78
|
+
end
|
79
|
+
|
80
|
+
tests('when additional keys are passed and not strict') do
|
81
|
+
formats({"key" => String}, false) { {"key" => "Value", :extra => "Bonus"} }
|
82
|
+
end
|
83
|
+
|
84
|
+
tests('when value is nil and schema expects NilClass') do
|
85
|
+
formats({"key" => NilClass}) { {"key" => nil} }
|
86
|
+
end
|
87
|
+
|
88
|
+
tests('when value and schema match as hashes') do
|
89
|
+
formats({}) { {} }
|
90
|
+
end
|
91
|
+
|
92
|
+
tests('when value and schema match as arrays') do
|
93
|
+
formats([]) { [] }
|
94
|
+
end
|
95
|
+
|
96
|
+
tests('when value is a Time') do
|
97
|
+
formats({"time" => Time}) { {"time" => Time.now} }
|
98
|
+
end
|
99
|
+
|
100
|
+
tests('when key is missing but value should be NilClass (#1477)') do
|
101
|
+
formats({"key" => NilClass}) { {} }
|
102
|
+
end
|
103
|
+
|
104
|
+
tests('when key is missing but value is nullable (#1477)') do
|
105
|
+
formats({"key" => Fog::Nullable::String}) { {} }
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Use so you can run in mock mode from the command line
|
2
|
+
#
|
3
|
+
# FOG_MOCK=true fog
|
4
|
+
|
5
|
+
if ENV["FOG_MOCK"] == "true"
|
6
|
+
Fog.mock!
|
7
|
+
end
|
8
|
+
|
9
|
+
# if in mocked mode, fill in some fake credentials for us
|
10
|
+
if Fog.mock?
|
11
|
+
Fog.credentials = {
|
12
|
+
:openstack_api_key => 'openstack_api_key',
|
13
|
+
:openstack_username => 'openstack_username',
|
14
|
+
:openstack_tenant => 'openstack_tenant',
|
15
|
+
:openstack_auth_url => 'http://openstack:35357/v2.0/tokens',
|
16
|
+
}.merge(Fog.credentials)
|
17
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
def model_tests(collection, params = {}, mocks_implemented = true)
|
2
|
+
tests('success') do
|
3
|
+
|
4
|
+
@instance = collection.new(params)
|
5
|
+
|
6
|
+
tests("#save").succeeds do
|
7
|
+
pending if Fog.mocking? && !mocks_implemented
|
8
|
+
@instance.save
|
9
|
+
end
|
10
|
+
|
11
|
+
if block_given?
|
12
|
+
yield(@instance)
|
13
|
+
end
|
14
|
+
|
15
|
+
tests("#destroy").succeeds do
|
16
|
+
pending if Fog.mocking? && !mocks_implemented
|
17
|
+
@instance.destroy
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Generates a unique identifier with a random differentiator.
|
24
|
+
# Useful when rapidly re-running tests, so we don't have to wait
|
25
|
+
# serveral minutes for deleted objects to disappear from the API
|
26
|
+
# E.g. 'fog-test-1234'
|
27
|
+
def uniq_id(base_name = 'fog-test')
|
28
|
+
# random_differentiator
|
29
|
+
suffix = rand(65536).to_s(16).rjust(4, '0')
|
30
|
+
[base_name, suffix] * '-'
|
31
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
Shindo.tests('Fog::Schema::DataValidator', 'meta') do
|
2
|
+
|
3
|
+
validator = Fog::Schema::DataValidator.new
|
4
|
+
|
5
|
+
tests('#validate') do
|
6
|
+
|
7
|
+
tests('returns true') do
|
8
|
+
|
9
|
+
returns(true, 'when value matches schema expectation') do
|
10
|
+
validator.validate({"key" => "Value"}, {"key" => String})
|
11
|
+
end
|
12
|
+
|
13
|
+
returns(true, 'when values within an array all match schema expectation') do
|
14
|
+
validator.validate({"key" => [1, 2]}, {"key" => [Integer]})
|
15
|
+
end
|
16
|
+
|
17
|
+
returns(true, 'when nested values match schema expectation') do
|
18
|
+
validator.validate({"key" => {:nested_key => "Value"}}, {"key" => {:nested_key => String}})
|
19
|
+
end
|
20
|
+
|
21
|
+
returns(true, 'when collection of values all match schema expectation') do
|
22
|
+
validator.validate([{"key" => "Value"}, {"key" => "Value"}], [{"key" => String}])
|
23
|
+
end
|
24
|
+
|
25
|
+
returns(true, 'when collection is empty although schema covers optional members') do
|
26
|
+
validator.validate([], [{"key" => String}])
|
27
|
+
end
|
28
|
+
|
29
|
+
returns(true, 'when additional keys are passed and not strict') do
|
30
|
+
validator.validate({"key" => "Value", :extra => "Bonus"}, {"key" => String}, {:allow_extra_keys => true})
|
31
|
+
end
|
32
|
+
|
33
|
+
returns(true, 'when value is nil and schema expects NilClass') do
|
34
|
+
validator.validate({"key" => nil}, {"key" => NilClass})
|
35
|
+
end
|
36
|
+
|
37
|
+
returns(true, 'when value and schema match as hashes') do
|
38
|
+
validator.validate({}, {})
|
39
|
+
end
|
40
|
+
|
41
|
+
returns(true, 'when value and schema match as arrays') do
|
42
|
+
validator.validate([], [])
|
43
|
+
end
|
44
|
+
|
45
|
+
returns(true, 'when value is a Time') do
|
46
|
+
validator.validate({"time" => Time.now}, {"time" => Time})
|
47
|
+
end
|
48
|
+
|
49
|
+
returns(true, 'when key is missing but value should be NilClass (#1477)') do
|
50
|
+
validator.validate({}, {"key" => NilClass}, {:allow_optional_rules => true})
|
51
|
+
end
|
52
|
+
|
53
|
+
returns(true, 'when key is missing but value is nullable (#1477)') do
|
54
|
+
validator.validate({}, {"key" => Fog::Nullable::String}, {:allow_optional_rules => true})
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
tests('returns false') do
|
60
|
+
|
61
|
+
returns(false, 'when value does not match schema expectation') do
|
62
|
+
validator.validate({"key" => nil}, {"key" => String})
|
63
|
+
end
|
64
|
+
|
65
|
+
returns(false, 'when key formats do not match') do
|
66
|
+
validator.validate({"key" => "Value"}, {:key => String})
|
67
|
+
end
|
68
|
+
|
69
|
+
returns(false, 'when additional keys are passed and strict') do
|
70
|
+
validator.validate({"key" => "Missing"}, {})
|
71
|
+
end
|
72
|
+
|
73
|
+
returns(false, 'when some keys do not appear') do
|
74
|
+
validator.validate({}, {"key" => String})
|
75
|
+
end
|
76
|
+
|
77
|
+
returns(false, 'when collection contains a member that does not match schema') do
|
78
|
+
validator.validate([{"key" => "Value"}, {"key" => 5}], [{"key" => String}])
|
79
|
+
end
|
80
|
+
|
81
|
+
returns(false, 'when collection has multiple schema patterns') do
|
82
|
+
validator.validate([{"key" => "Value"}], [{"key" => Integer}, {"key" => String}])
|
83
|
+
end
|
84
|
+
|
85
|
+
returns(false, 'when hash and array are compared') do
|
86
|
+
validator.validate({}, [])
|
87
|
+
end
|
88
|
+
|
89
|
+
returns(false, 'when array and hash are compared') do
|
90
|
+
validator.validate([], {})
|
91
|
+
end
|
92
|
+
|
93
|
+
returns(false, 'when a hash is expected but another data type is found') do
|
94
|
+
validator.validate({"key" => {:nested_key => []}}, {"key" => {:nested_key => {}}})
|
95
|
+
end
|
96
|
+
|
97
|
+
returns(false, 'when key is missing but value should be NilClass (#1477)') do
|
98
|
+
validator.validate({}, {"key" => NilClass}, {:allow_optional_rules => false})
|
99
|
+
end
|
100
|
+
|
101
|
+
returns(false, 'when key is missing but value is nullable (#1477)') do
|
102
|
+
validator.validate({}, {"key" => Fog::Nullable::String}, {:allow_optional_rules => false})
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,200 @@
|
|
1
|
+
require 'fog/core'
|
2
|
+
require 'fog/json'
|
3
|
+
require 'fog/openstack'
|
4
|
+
require 'fog/openstack/identity'
|
5
|
+
require 'fog/openstack/identity_v2'
|
6
|
+
require 'fog/openstack/identity_v3'
|
7
|
+
|
8
|
+
Shindo.tests('OpenStack | authenticate', ['openstack']) do
|
9
|
+
begin
|
10
|
+
@old_mock_value = Excon.defaults[:mock]
|
11
|
+
Excon.defaults[:mock] = true
|
12
|
+
Excon.stubs.clear
|
13
|
+
|
14
|
+
expires = Time.now.utc + 600
|
15
|
+
token = Fog::Mock.random_numbers(8).to_s
|
16
|
+
tenant_token = Fog::Mock.random_numbers(8).to_s
|
17
|
+
|
18
|
+
body = {
|
19
|
+
"access" => {
|
20
|
+
"token" => {
|
21
|
+
"expires" => expires.iso8601,
|
22
|
+
"id" => token,
|
23
|
+
"tenant" => {
|
24
|
+
"enabled" => true,
|
25
|
+
"description" => nil,
|
26
|
+
"name" => "admin",
|
27
|
+
"id" => tenant_token,
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"serviceCatalog" => [{
|
31
|
+
"endpoints" => [{
|
32
|
+
"adminURL" =>
|
33
|
+
"http://example:8774/v2/#{tenant_token}",
|
34
|
+
"region" => "RegionOne",
|
35
|
+
"internalURL" =>
|
36
|
+
"http://example:8774/v2/#{tenant_token}",
|
37
|
+
"id" => Fog::Mock.random_numbers(8).to_s,
|
38
|
+
"publicURL" =>
|
39
|
+
"http://example:8774/v2/#{tenant_token}"
|
40
|
+
}],
|
41
|
+
"endpoints_links" => [],
|
42
|
+
"type" => "compute",
|
43
|
+
"name" => "nova"
|
44
|
+
},
|
45
|
+
{ "endpoints" => [{
|
46
|
+
"adminURL" => "http://example:9292",
|
47
|
+
"region" => "RegionOne",
|
48
|
+
"internalURL" => "http://example:9292",
|
49
|
+
"id" => Fog::Mock.random_numbers(8).to_s,
|
50
|
+
"publicURL" => "http://example:9292"
|
51
|
+
}],
|
52
|
+
"endpoints_links" => [],
|
53
|
+
"type" => "image",
|
54
|
+
"name" => "glance"
|
55
|
+
}],
|
56
|
+
"user" => {
|
57
|
+
"username" => "admin",
|
58
|
+
"roles_links" => [],
|
59
|
+
"id" => Fog::Mock.random_numbers(8).to_s,
|
60
|
+
"roles" => [
|
61
|
+
{ "name" => "admin" },
|
62
|
+
{ "name" => "KeystoneAdmin" },
|
63
|
+
{ "name" => "KeystoneServiceAdmin" }
|
64
|
+
],
|
65
|
+
"name" => "admin"
|
66
|
+
},
|
67
|
+
"metadata" => {
|
68
|
+
"is_admin" => 0,
|
69
|
+
"roles" => [
|
70
|
+
Fog::Mock.random_numbers(8).to_s,
|
71
|
+
Fog::Mock.random_numbers(8).to_s,
|
72
|
+
Fog::Mock.random_numbers(8).to_s,]}}}
|
73
|
+
|
74
|
+
tests("v2") do
|
75
|
+
Excon.stub({ :method => 'POST', :path => "/v2.0/tokens" },
|
76
|
+
{ :status => 200, :body => Fog::JSON.encode(body) })
|
77
|
+
|
78
|
+
expected = {
|
79
|
+
:user => body['access']['user'],
|
80
|
+
:tenant => body['access']['token']['tenant'],
|
81
|
+
:identity_public_endpoint => nil,
|
82
|
+
:server_management_url =>
|
83
|
+
body['access']['serviceCatalog'].
|
84
|
+
first['endpoints'].first['publicURL'],
|
85
|
+
:token => token,
|
86
|
+
:expires => expires.iso8601,
|
87
|
+
:current_user_id => body['access']['user']['id'],
|
88
|
+
:unscoped_token => token,
|
89
|
+
}
|
90
|
+
|
91
|
+
returns(expected) do
|
92
|
+
Fog::OpenStack.authenticate_v2(
|
93
|
+
:openstack_auth_uri => URI('http://example/v2.0/tokens'),
|
94
|
+
:openstack_tenant => 'admin',
|
95
|
+
:openstack_service_type => %w[compute])
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
tests("validate token") do
|
100
|
+
Fog::Identity[:openstack].validate_token(token, tenant_token)
|
101
|
+
Fog::Identity[:openstack].validate_token(token)
|
102
|
+
end
|
103
|
+
|
104
|
+
tests("check token") do
|
105
|
+
Fog::Identity[:openstack].check_token(token, tenant_token)
|
106
|
+
Fog::Identity[:openstack].check_token(token)
|
107
|
+
end
|
108
|
+
|
109
|
+
tests("v2 missing service") do
|
110
|
+
Excon.stub({ :method => 'POST', :path => "/v2.0/tokens" },
|
111
|
+
{ :status => 200, :body => Fog::JSON.encode(body) })
|
112
|
+
|
113
|
+
raises(Fog::Errors::NotFound,
|
114
|
+
'Could not find service network. Have compute, image') do
|
115
|
+
Fog::OpenStack.authenticate_v2(
|
116
|
+
:openstack_auth_uri => URI('http://example/v2.0/tokens'),
|
117
|
+
:openstack_tenant => 'admin',
|
118
|
+
:openstack_service_type => %w[network])
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
tests("v2 missing storage service") do
|
123
|
+
Excon.stub({ :method => 'POST', :path => "/v2.0/tokens" },
|
124
|
+
{ :status => 200, :body => Fog::JSON.encode(body) })
|
125
|
+
|
126
|
+
raises(NoMethodError,
|
127
|
+
"undefined method `join' for \"object-store\":String") do
|
128
|
+
Fog::OpenStack.authenticate_v2(
|
129
|
+
:openstack_auth_uri => URI('http://example/v2.0/tokens'),
|
130
|
+
:openstack_tenant => 'admin',
|
131
|
+
:openstack_service_type => 'object-store')
|
132
|
+
end
|
133
|
+
raises(Fog::Errors::NotFound,
|
134
|
+
"Could not find service object-store. Have compute, image") do
|
135
|
+
Fog::OpenStack.authenticate_v2(
|
136
|
+
:openstack_auth_uri => URI('http://example/v2.0/tokens'),
|
137
|
+
:openstack_tenant => 'admin',
|
138
|
+
:openstack_service_type => %w[object-store])
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
tests("v2 auth with two compute services") do
|
143
|
+
body_clone = body.clone
|
144
|
+
body_clone["access"]["serviceCatalog"] <<
|
145
|
+
{
|
146
|
+
"endpoints" => [{
|
147
|
+
"adminURL" =>
|
148
|
+
"http://example2:8774/v2/#{tenant_token}",
|
149
|
+
"region" => "RegionOne",
|
150
|
+
"internalURL" =>
|
151
|
+
"http://example2:8774/v2/#{tenant_token}",
|
152
|
+
"id" => Fog::Mock.random_numbers(8).to_s,
|
153
|
+
"publicURL" =>
|
154
|
+
"http://example2:8774/v2/#{tenant_token}"
|
155
|
+
}],
|
156
|
+
"endpoints_links" => [],
|
157
|
+
"type" => "compute",
|
158
|
+
"name" => "nova2"
|
159
|
+
}
|
160
|
+
|
161
|
+
Excon.stub({ :method => 'POST', :path => "/v2.0/tokens" },
|
162
|
+
{ :status => 200, :body => Fog::JSON.encode(body_clone) })
|
163
|
+
|
164
|
+
returns("http://example2:8774/v2/#{tenant_token}") do
|
165
|
+
Fog::OpenStack.authenticate_v2(
|
166
|
+
:openstack_auth_uri => URI('http://example/v2.0/tokens'),
|
167
|
+
:openstack_tenant => 'admin',
|
168
|
+
:openstack_service_type => %w[compute],
|
169
|
+
:openstack_service_name => 'nova2')[:server_management_url]
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
|
174
|
+
tests("legacy v1 auth") do
|
175
|
+
headers = {
|
176
|
+
"X-Storage-Url" => "https://swift.myhost.com/v1/AUTH_tenant",
|
177
|
+
"X-Auth-Token" => "AUTH_yui193bdc00c1c46c5858788yuio0e1e2p",
|
178
|
+
"X-Trans-Id" => "iu99nm9999f9b999c9b999dad9cd999e99",
|
179
|
+
"Content-Length" => "0",
|
180
|
+
"Date" => "Wed, 07 Aug 2013 11:11:11 GMT"
|
181
|
+
}
|
182
|
+
|
183
|
+
Excon.stub({:method => 'GET', :path => "/auth/v1.0"},
|
184
|
+
{:status => 200, :body => "", :headers => headers})
|
185
|
+
|
186
|
+
returns("https://swift.myhost.com/v1/AUTH_tenant") do
|
187
|
+
Fog::OpenStack.authenticate_v1(
|
188
|
+
:openstack_auth_uri => URI('https://swift.myhost.com/auth/v1.0'),
|
189
|
+
:openstack_username => 'tenant:dev',
|
190
|
+
:openstack_api_key => 'secret_key',
|
191
|
+
:openstack_service_type => %w[storage])[:server_management_url]
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
195
|
+
|
196
|
+
ensure
|
197
|
+
Excon.stubs.clear
|
198
|
+
Excon.defaults[:mock] = @old_mock_value
|
199
|
+
end
|
200
|
+
end
|