hpcloud 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (238) hide show
  1. data/CHANGELOG +127 -0
  2. data/LICENSE +1 -0
  3. data/README.rdoc +59 -0
  4. data/bin/hpcloud +11 -0
  5. data/completion/hpcloud +372 -0
  6. data/lib/hpcloud/accounts.rb +288 -0
  7. data/lib/hpcloud/acl.rb +112 -0
  8. data/lib/hpcloud/acl_cmd.rb +81 -0
  9. data/lib/hpcloud/address_helper.rb +63 -0
  10. data/lib/hpcloud/addresses.rb +42 -0
  11. data/lib/hpcloud/auth_cache.rb +128 -0
  12. data/lib/hpcloud/base_helper.rb +56 -0
  13. data/lib/hpcloud/checker.rb +104 -0
  14. data/lib/hpcloud/cli.rb +170 -0
  15. data/lib/hpcloud/cli_status.rb +80 -0
  16. data/lib/hpcloud/columns.rb +46 -0
  17. data/lib/hpcloud/commands/account/catalog.rb +57 -0
  18. data/lib/hpcloud/commands/account/copy.rb +44 -0
  19. data/lib/hpcloud/commands/account/edit.rb +204 -0
  20. data/lib/hpcloud/commands/account/remove.rb +53 -0
  21. data/lib/hpcloud/commands/account/setup.rb +40 -0
  22. data/lib/hpcloud/commands/account/tenants.rb +43 -0
  23. data/lib/hpcloud/commands/account/use.rb +46 -0
  24. data/lib/hpcloud/commands/account/verify.rb +55 -0
  25. data/lib/hpcloud/commands/account.rb +67 -0
  26. data/lib/hpcloud/commands/acl/grant.rb +59 -0
  27. data/lib/hpcloud/commands/acl/revoke.rb +52 -0
  28. data/lib/hpcloud/commands/acl.rb +63 -0
  29. data/lib/hpcloud/commands/addresses/add.rb +67 -0
  30. data/lib/hpcloud/commands/addresses/associate.rb +63 -0
  31. data/lib/hpcloud/commands/addresses/disassociate.rb +58 -0
  32. data/lib/hpcloud/commands/addresses/remove.rb +57 -0
  33. data/lib/hpcloud/commands/addresses.rb +63 -0
  34. data/lib/hpcloud/commands/cdn_containers/add.rb +56 -0
  35. data/lib/hpcloud/commands/cdn_containers/get.rb +70 -0
  36. data/lib/hpcloud/commands/cdn_containers/location.rb +61 -0
  37. data/lib/hpcloud/commands/cdn_containers/remove.rb +55 -0
  38. data/lib/hpcloud/commands/cdn_containers/set.rb +63 -0
  39. data/lib/hpcloud/commands/cdn_containers.rb +72 -0
  40. data/lib/hpcloud/commands/complete.rb +60 -0
  41. data/lib/hpcloud/commands/config/set.rb +63 -0
  42. data/lib/hpcloud/commands/config.rb +46 -0
  43. data/lib/hpcloud/commands/containers/add.rb +67 -0
  44. data/lib/hpcloud/commands/containers/remove.rb +63 -0
  45. data/lib/hpcloud/commands/containers/sync.rb +59 -0
  46. data/lib/hpcloud/commands/containers.rb +24 -0
  47. data/lib/hpcloud/commands/copy.rb +78 -0
  48. data/lib/hpcloud/commands/dns/add.rb +56 -0
  49. data/lib/hpcloud/commands/dns/records/add.rb +50 -0
  50. data/lib/hpcloud/commands/dns/records/remove.rb +53 -0
  51. data/lib/hpcloud/commands/dns/records/update.rb +50 -0
  52. data/lib/hpcloud/commands/dns/records.rb +57 -0
  53. data/lib/hpcloud/commands/dns/remove.rb +57 -0
  54. data/lib/hpcloud/commands/dns/servers.rb +57 -0
  55. data/lib/hpcloud/commands/dns/update.rb +58 -0
  56. data/lib/hpcloud/commands/dns.rb +65 -0
  57. data/lib/hpcloud/commands/flavors.rb +59 -0
  58. data/lib/hpcloud/commands/get.rb +58 -0
  59. data/lib/hpcloud/commands/images/add.rb +54 -0
  60. data/lib/hpcloud/commands/images/metadata/add.rb +54 -0
  61. data/lib/hpcloud/commands/images/metadata/remove.rb +56 -0
  62. data/lib/hpcloud/commands/images/metadata.rb +54 -0
  63. data/lib/hpcloud/commands/images/remove.rb +58 -0
  64. data/lib/hpcloud/commands/images.rb +67 -0
  65. data/lib/hpcloud/commands/info.rb +41 -0
  66. data/lib/hpcloud/commands/keypairs/add.rb +73 -0
  67. data/lib/hpcloud/commands/keypairs/import.rb +62 -0
  68. data/lib/hpcloud/commands/keypairs/private/add.rb +44 -0
  69. data/lib/hpcloud/commands/keypairs/private/location.rb +50 -0
  70. data/lib/hpcloud/commands/keypairs/private/remove.rb +52 -0
  71. data/lib/hpcloud/commands/keypairs/private.rb +47 -0
  72. data/lib/hpcloud/commands/keypairs/public_key.rb +51 -0
  73. data/lib/hpcloud/commands/keypairs/remove.rb +58 -0
  74. data/lib/hpcloud/commands/keypairs.rb +64 -0
  75. data/lib/hpcloud/commands/lb/add.rb +92 -0
  76. data/lib/hpcloud/commands/lb/algorithms.rb +55 -0
  77. data/lib/hpcloud/commands/lb/limits.rb +55 -0
  78. data/lib/hpcloud/commands/lb/nodes/add.rb +47 -0
  79. data/lib/hpcloud/commands/lb/nodes/remove.rb +54 -0
  80. data/lib/hpcloud/commands/lb/nodes/update.rb +47 -0
  81. data/lib/hpcloud/commands/lb/nodes.rb +55 -0
  82. data/lib/hpcloud/commands/lb/protocols.rb +55 -0
  83. data/lib/hpcloud/commands/lb/remove.rb +54 -0
  84. data/lib/hpcloud/commands/lb/update.rb +46 -0
  85. data/lib/hpcloud/commands/lb/versions.rb +55 -0
  86. data/lib/hpcloud/commands/lb/virtualips.rb +51 -0
  87. data/lib/hpcloud/commands/lb.rb +73 -0
  88. data/lib/hpcloud/commands/list.rb +114 -0
  89. data/lib/hpcloud/commands/location.rb +56 -0
  90. data/lib/hpcloud/commands/metadata/set.rb +61 -0
  91. data/lib/hpcloud/commands/metadata.rb +60 -0
  92. data/lib/hpcloud/commands/migrate.rb +61 -0
  93. data/lib/hpcloud/commands/move.rb +73 -0
  94. data/lib/hpcloud/commands/networks/add.rb +55 -0
  95. data/lib/hpcloud/commands/networks/remove.rb +57 -0
  96. data/lib/hpcloud/commands/networks/update.rb +54 -0
  97. data/lib/hpcloud/commands/networks.rb +63 -0
  98. data/lib/hpcloud/commands/ports/add.rb +81 -0
  99. data/lib/hpcloud/commands/ports/remove.rb +57 -0
  100. data/lib/hpcloud/commands/ports/update.rb +67 -0
  101. data/lib/hpcloud/commands/ports.rb +63 -0
  102. data/lib/hpcloud/commands/remove.rb +75 -0
  103. data/lib/hpcloud/commands/routers/add.rb +67 -0
  104. data/lib/hpcloud/commands/routers/interface/add.rb +59 -0
  105. data/lib/hpcloud/commands/routers/interface/remove.rb +66 -0
  106. data/lib/hpcloud/commands/routers/remove.rb +54 -0
  107. data/lib/hpcloud/commands/routers/update.rb +66 -0
  108. data/lib/hpcloud/commands/routers.rb +66 -0
  109. data/lib/hpcloud/commands/securitygroups/add.rb +52 -0
  110. data/lib/hpcloud/commands/securitygroups/remove.rb +57 -0
  111. data/lib/hpcloud/commands/securitygroups/rules/add.rb +126 -0
  112. data/lib/hpcloud/commands/securitygroups/rules/remove.rb +51 -0
  113. data/lib/hpcloud/commands/securitygroups/rules.rb +56 -0
  114. data/lib/hpcloud/commands/securitygroups.rb +62 -0
  115. data/lib/hpcloud/commands/servers/add.rb +100 -0
  116. data/lib/hpcloud/commands/servers/console.rb +81 -0
  117. data/lib/hpcloud/commands/servers/limits.rb +46 -0
  118. data/lib/hpcloud/commands/servers/metadata/add.rb +56 -0
  119. data/lib/hpcloud/commands/servers/metadata/remove.rb +57 -0
  120. data/lib/hpcloud/commands/servers/metadata.rb +56 -0
  121. data/lib/hpcloud/commands/servers/password.rb +47 -0
  122. data/lib/hpcloud/commands/servers/ratelimits.rb +46 -0
  123. data/lib/hpcloud/commands/servers/reboot.rb +61 -0
  124. data/lib/hpcloud/commands/servers/rebuild.rb +59 -0
  125. data/lib/hpcloud/commands/servers/remove.rb +58 -0
  126. data/lib/hpcloud/commands/servers/securitygroups/add.rb +47 -0
  127. data/lib/hpcloud/commands/servers/securitygroups/remove.rb +47 -0
  128. data/lib/hpcloud/commands/servers/ssh.rb +92 -0
  129. data/lib/hpcloud/commands/servers.rb +92 -0
  130. data/lib/hpcloud/commands/snapshots/add.rb +62 -0
  131. data/lib/hpcloud/commands/snapshots/remove.rb +58 -0
  132. data/lib/hpcloud/commands/snapshots.rb +62 -0
  133. data/lib/hpcloud/commands/subnets/add.rb +78 -0
  134. data/lib/hpcloud/commands/subnets/remove.rb +57 -0
  135. data/lib/hpcloud/commands/subnets/update.rb +70 -0
  136. data/lib/hpcloud/commands/subnets.rb +63 -0
  137. data/lib/hpcloud/commands/tempurl.rb +62 -0
  138. data/lib/hpcloud/commands/volumes/add.rb +88 -0
  139. data/lib/hpcloud/commands/volumes/attach.rb +59 -0
  140. data/lib/hpcloud/commands/volumes/detach.rb +57 -0
  141. data/lib/hpcloud/commands/volumes/metadata/add.rb +54 -0
  142. data/lib/hpcloud/commands/volumes/metadata.rb +55 -0
  143. data/lib/hpcloud/commands/volumes/remove.rb +57 -0
  144. data/lib/hpcloud/commands/volumes/server.rb +64 -0
  145. data/lib/hpcloud/commands/volumes.rb +65 -0
  146. data/lib/hpcloud/config.rb +205 -0
  147. data/lib/hpcloud/connection.rb +290 -0
  148. data/lib/hpcloud/container_resource.rb +175 -0
  149. data/lib/hpcloud/database_helper.rb +70 -0
  150. data/lib/hpcloud/databases.rb +38 -0
  151. data/lib/hpcloud/dns_helper.rb +125 -0
  152. data/lib/hpcloud/dnss.rb +38 -0
  153. data/lib/hpcloud/error_response.rb +89 -0
  154. data/lib/hpcloud/exceptions/base.rb +35 -0
  155. data/lib/hpcloud/exceptions/general.rb +34 -0
  156. data/lib/hpcloud/exceptions/not_found.rb +34 -0
  157. data/lib/hpcloud/flavors.rb +40 -0
  158. data/lib/hpcloud/floating_ip_helper.rb +114 -0
  159. data/lib/hpcloud/floating_ips.rb +42 -0
  160. data/lib/hpcloud/fog_collection.rb +124 -0
  161. data/lib/hpcloud/image_helper.rb +111 -0
  162. data/lib/hpcloud/images.rb +43 -0
  163. data/lib/hpcloud/keypair_helper.rb +109 -0
  164. data/lib/hpcloud/keypairs.rb +41 -0
  165. data/lib/hpcloud/lb_algorithms.rb +37 -0
  166. data/lib/hpcloud/lb_limits.rb +37 -0
  167. data/lib/hpcloud/lb_nodes.rb +42 -0
  168. data/lib/hpcloud/lb_protocols.rb +37 -0
  169. data/lib/hpcloud/lb_versions.rb +37 -0
  170. data/lib/hpcloud/lb_virtualips.rb +42 -0
  171. data/lib/hpcloud/lbs.rb +38 -0
  172. data/lib/hpcloud/local_resource.rb +183 -0
  173. data/lib/hpcloud/log.rb +55 -0
  174. data/lib/hpcloud/metadata.rb +118 -0
  175. data/lib/hpcloud/monkey.rb +22 -0
  176. data/lib/hpcloud/network_helper.rb +88 -0
  177. data/lib/hpcloud/networks.rb +47 -0
  178. data/lib/hpcloud/object_store.rb +66 -0
  179. data/lib/hpcloud/port_helper.rb +150 -0
  180. data/lib/hpcloud/ports.rb +38 -0
  181. data/lib/hpcloud/progress.rb +53 -0
  182. data/lib/hpcloud/remote_resource.rb +512 -0
  183. data/lib/hpcloud/resource.rb +264 -0
  184. data/lib/hpcloud/resource_factory.rb +110 -0
  185. data/lib/hpcloud/routers.rb +56 -0
  186. data/lib/hpcloud/rule_helper.rb +70 -0
  187. data/lib/hpcloud/rules.rb +41 -0
  188. data/lib/hpcloud/security_group_helper.rb +59 -0
  189. data/lib/hpcloud/security_groups.rb +37 -0
  190. data/lib/hpcloud/server_helper.rb +318 -0
  191. data/lib/hpcloud/servers.rb +47 -0
  192. data/lib/hpcloud/shared_resource.rb +172 -0
  193. data/lib/hpcloud/snapshot_helper.rb +78 -0
  194. data/lib/hpcloud/snapshots.rb +38 -0
  195. data/lib/hpcloud/subnet_helper.rb +170 -0
  196. data/lib/hpcloud/subnets.rb +38 -0
  197. data/lib/hpcloud/tableizer.rb +77 -0
  198. data/lib/hpcloud/thor_ext/thor.rb +54 -0
  199. data/lib/hpcloud/time_parser.rb +47 -0
  200. data/lib/hpcloud/version.rb +27 -0
  201. data/lib/hpcloud/volume_attachment.rb +58 -0
  202. data/lib/hpcloud/volume_attachments.rb +58 -0
  203. data/lib/hpcloud/volume_helper.rb +119 -0
  204. data/lib/hpcloud/volumes.rb +38 -0
  205. data/lib/hpcloud.rb +112 -0
  206. data/lib/monkey/hp/lb.rb +188 -0
  207. data/lib/monkey/hp/models/lb/algorithm.rb +32 -0
  208. data/lib/monkey/hp/models/lb/algorithms.rb +46 -0
  209. data/lib/monkey/hp/models/lb/limit.rb +38 -0
  210. data/lib/monkey/hp/models/lb/limits.rb +50 -0
  211. data/lib/monkey/hp/models/lb/load_balancer.rb +70 -0
  212. data/lib/monkey/hp/models/lb/load_balancers.rb +46 -0
  213. data/lib/monkey/hp/models/lb/node.rb +69 -0
  214. data/lib/monkey/hp/models/lb/nodes.rb +47 -0
  215. data/lib/monkey/hp/models/lb/protocol.rb +33 -0
  216. data/lib/monkey/hp/models/lb/protocols.rb +46 -0
  217. data/lib/monkey/hp/models/lb/version.rb +34 -0
  218. data/lib/monkey/hp/models/lb/versions.rb +47 -0
  219. data/lib/monkey/hp/models/lb/virtual_ip.rb +37 -0
  220. data/lib/monkey/hp/models/lb/virtual_ips.rb +47 -0
  221. data/lib/monkey/hp/requests/lb/create_load_balancer.rb +64 -0
  222. data/lib/monkey/hp/requests/lb/create_load_balancer_node.rb +58 -0
  223. data/lib/monkey/hp/requests/lb/delete_load_balancer.rb +54 -0
  224. data/lib/monkey/hp/requests/lb/delete_load_balancer_node.rb +60 -0
  225. data/lib/monkey/hp/requests/lb/get_load_balancer.rb +88 -0
  226. data/lib/monkey/hp/requests/lb/get_load_balancer_node.rb +60 -0
  227. data/lib/monkey/hp/requests/lb/get_version.rb +68 -0
  228. data/lib/monkey/hp/requests/lb/get_virtual_ips.rb +48 -0
  229. data/lib/monkey/hp/requests/lb/list_algorithms.rb +51 -0
  230. data/lib/monkey/hp/requests/lb/list_limits.rb +60 -0
  231. data/lib/monkey/hp/requests/lb/list_load_balancer_nodes.rb +79 -0
  232. data/lib/monkey/hp/requests/lb/list_load_balancer_virtual_ips.rb +76 -0
  233. data/lib/monkey/hp/requests/lb/list_load_balancers.rb +69 -0
  234. data/lib/monkey/hp/requests/lb/list_protocols.rb +51 -0
  235. data/lib/monkey/hp/requests/lb/list_versions.rb +51 -0
  236. data/lib/monkey/hp/requests/lb/update_load_balancer.rb +46 -0
  237. data/lib/monkey/hp/requests/lb/update_load_balancer_node.rb +50 -0
  238. metadata +368 -0
data/CHANGELOG ADDED
@@ -0,0 +1,127 @@
1
+ #HP Cloud Services UNIX CLI Release Notes
2
+
3
+ ##Release 2.0.0 Features##
4
+
5
+ The 2.0.0 release is available for download from [https://docs.hpcloud.com/file/hpcloud-2.0.0.gem](/file/hpcloud-2.0.0.gem). This release was made available on 6/15/2013 and contains the following new features:
6
+
7
+ * Support for next generation networking cloud added, including the following features:
8
+ - `networks` commands
9
+ - `routers` commands
10
+ - `ports` commands
11
+ - `subnets` commands
12
+ * Support for load balancer as a service (LBaaS) with the `lb` commands
13
+ * Personality support for `servers:add`
14
+ * The `containers:sync` command now takes a container or location for destination
15
+ * The `servers:limits` command was added to print comput limits
16
+ * The `servers:ratelimits` command was added to print comput limits
17
+ * Object metadata can now be shown and set with `metadata` and `metadata:set`
18
+ * Added --userpass option to account:setup and account:edit to allow authentication via user name and password rather than authentication keys.
19
+
20
+ ###Known Issues###
21
+
22
+ * The `--bootable option` has been removed from the `volumes` (list) command
23
+ * The v3 identity servers are not supported by this release
24
+
25
+ ##Release 1.9.0 Features##
26
+
27
+ The 1.9.0 release is available for download from [https://docs.hpcloud.com/file/hpcloud-1.9.0.gem](/file/hpcloud-1.9.0.gem). This release was made available on 5/15/2013 and contains the following new features:
28
+
29
+ * Support for domain name service (DNS)
30
+ * New `account:catalog` command dumps the service catalog for the given account
31
+ * Default availability zone is now the alphabetically-first zone in the service catalog.
32
+
33
+ ###Known Issues###
34
+
35
+ * Support for availability zones in the `config.yml` file is deprecated. Support for that future will be removed in the future. There are no longer any hard-coded default zones in the configuration.
36
+
37
+ ##Release 1.8.0 Features##
38
+
39
+ The 1.8.0 release is available for download from [https://docs.hpcloud.com/file/hpcloud-1.8.0.gem](/file/hpcloud-1.8.0.gem). This release was made available on 4/15/2013 and contains the following new features:
40
+
41
+ * Support for the `after` and `at` options for the `remove` command added
42
+
43
+ ###Known Issues###
44
+
45
+ * None for this release.
46
+
47
+
48
+ ##Release 1.7.0 Features##
49
+
50
+ The 1.7.0 release is available for download from https://docs.hpcloud.com/file/hpcloud-1.7.0.gem. This release was made available on 3/1/2013 and contains the following new features:
51
+
52
+ * Support for large file uploads greater than 5 gigabytes added
53
+ * Option `-r` (retry) to `copy` command for large file uploads added
54
+ * Option `-c` option added to most reports so you can specify the columns they want to see
55
+ * Option `-d` option added to most reports so you can specify the column delimiter for reports
56
+ * Option `-l` added to provide a long listing for containers and their contents
57
+ * Option `-u` added to `servers:add` to pass user data to a new server for custom configuration
58
+ * New containers:sync command for container replication
59
+
60
+ ###Known Issues###
61
+
62
+ * None for this release.
63
+
64
+ ##Release 1.6.0 Features##
65
+
66
+ The 1.6.0 release is available for download from https://docs.hpcloud.com/file/hpcloud-1.6.0.gem. This release was made available on 1/30/2013 and contains the following new features:
67
+
68
+ * Compatibility with the 0.0.19 Ruby Fog release included
69
+ * Command `servers:ssh` supports using an IP address in addition to the server name or ID added
70
+ * Several minor bug fixes included
71
+
72
+ ###Known Issues###
73
+
74
+ * None for this release.
75
+
76
+ ##Release 1.5.0 Features##
77
+
78
+ The 1.5.0 release is available for download from https://docs.hpcloud.com/file/hpcloud-1.5.0.gem. This release was made available on 1/18/2013 and contains the following new features:
79
+
80
+ * Command `complete` added to install a bash completion file to allow you to tab complete hpcloud commands
81
+ * Option `--debug` added to most commands to produce verbose trace
82
+ * Option `--source-account` added to the `copy` command to allow files to be copied from one account to another.
83
+ * Command `migrate` added to allow object store migration from different providers.
84
+ * Option `--provider` added to the `account:setup` command to allow you to supply providers other than HP for migration.
85
+
86
+ ###Known Issues###
87
+
88
+ * None for this release.
89
+
90
+ ##Release 1.4.0 Features##
91
+
92
+ The 1.4.0 release is available for download from https://docs.hpcloud.com/file/hpcloud-1.4.0.gem. This release was made available on 12/11/2012 and contains the following new features:
93
+
94
+ * Command `servers:console` added to display the console of a server
95
+ * Command `servers:ssh` added to allow you to log in via secure shell to a server
96
+ * Command `keypairs:private` added to display the private keys known to the CLI
97
+ * Command `keypairs:private` added to display the private keys known to the CLI
98
+ * Command `keypairs:private:add` added to allow you to add a private key pair to the CLI
99
+ * Command `keypairs:private:location` added to display the physical location of a private key file
100
+ * Command `keypairs:private:remove` added to allow you to remove a private key
101
+ * Command `account:verify` added to allow you to verify an account file
102
+ * Command `account:edit` and `account:update` commands combined
103
+
104
+ ###Known Issues###
105
+
106
+ * When the `-o` option is used to `keypairs:add` the private key is now stored in `~/.hpcloud/keypairs` directory instead of the current directory.
107
+
108
+ ##Release 1.3.0 Features##
109
+
110
+ This release was made available on 12/6/2012 and contains the following new features:
111
+
112
+ * Command `servers:rebuild` added
113
+ * Option `-m` added to the `copy` command to allow you to override the mime type
114
+ * Option `-s` added to the `cdn:containers:location` command to print the SSL and non-SSL URLs for CDN objects
115
+ * Commands `cdn:containers:add` and `cdn:containers:remove` now accept multiple arguments
116
+ * CLI help text significantly updated
117
+ * Default account can be set to any configured account
118
+ * Commands `acl:grant` and `acl:revoke` added to provide support for cross-project access control lists (ACLs)
119
+ * Command `volumes:add` added to provide support for bootable volume creation
120
+ * Command `servers:add` added to provide support for creating a server from a bootable volume
121
+
122
+ **Note**: This release of the UNIX CLI requires the [Ruby Fog v0.0.18](https://docs.hpcloud.com/bindings/fog/install) binding.
123
+
124
+ ###Known Issues###
125
+
126
+ * The syntax of the `servers:add` command has changed; you must pass in an image or volume with the `-i` or `-v` option, respectively
127
+ * Command `acl` displays data as a table
data/LICENSE ADDED
@@ -0,0 +1 @@
1
+ Copyright (c) 2011 Hewlett-Packard Development Company, L.P.
data/README.rdoc ADDED
@@ -0,0 +1,59 @@
1
+ = Unix Command Line Interface
2
+
3
+ The Unix Command Line Interface is a tool which allows Unix or Mac users to manage their HP Cloud Services from the command line.
4
+
5
+ == System Requirements
6
+
7
+ The current version of the CLI requires Ruby 1.9.2 or 1.8.7 and a recent version of rubygems (generally included with the ruby package).
8
+
9
+ == Installation
10
+
11
+ 1) Start by installing the software, HP Cloud Unix CLI depends on:
12
+
13
+ - HP Cloud Ruby Fog Binding[http://docs.hpcloud.com/bindings/fog]
14
+
15
+ 2) Download the HP Cloud Services Unix CLI gem[http://docs.hpcloud.com/cli/unix] and unpack it into a local directory.
16
+
17
+ 3) 'cd' into the directory, you downloaded the gem into during Step 2) and type:
18
+
19
+ gem install hpcloud-<version>.gem
20
+
21
+ where <version> is the version number of the downloaded and unpacked gem file, for example 0.0.8
22
+
23
+ You should see the gem and its dependencies being installed on your system. To verify installation, simply type:
24
+
25
+ hpcloud
26
+
27
+ If you see a listing of available commands, your installation was successful.
28
+
29
+ 4) Once installation is complete you can set up your account:
30
+
31
+ hpcloud account:setup
32
+
33
+ That’s it! Try out the usage examples below.
34
+
35
+ If you should ever need to remove the CLI:
36
+
37
+ gem uninstall hpcloud
38
+
39
+ = In-Command Help
40
+
41
+ You can get a list of commands at any time by calling the hpcloud command without any arguments:
42
+
43
+ hpcloud
44
+
45
+ Each command has help built in which includes specific examples of use, aliases you can use and more. To see help for a specific command use:
46
+
47
+ hpcloud help <command>
48
+
49
+ If you want to check which version of the tool you have installed:
50
+
51
+ hpcloud info
52
+
53
+ = Documentation and Usage
54
+
55
+ Detailed documentation and usage examples can be found at HP Cloud Unix CLI[http://docs.hpcloud.com/cli/unix] page.
56
+
57
+ = Copyright
58
+
59
+ See LICENSE for copyright details.
data/bin/hpcloud ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(lib_dir) if File.directory?(lib_dir) && !$LOAD_PATH.include?(lib_dir)
5
+
6
+ ENV['HPCLOUD_CLI_NAME'] = File.basename($0)
7
+
8
+ require 'rubygems'
9
+ require 'hpcloud'
10
+
11
+ HP::Cloud::CLI.start
@@ -0,0 +1,372 @@
1
+ _hpcloud()
2
+ {
3
+ local cur prev opts cmds cmd files
4
+ COMPREPLY=()
5
+ _get_comp_words_by_ref -n : cur prev words
6
+
7
+ if [[ ${cur} == -* ]] ; then
8
+ if [ "${prev}" == "hpcloud" ]
9
+ then
10
+ cmd="hpcloud"
11
+ else
12
+ cmd="${words[1]}"
13
+ fi
14
+ case "${cmd}" in
15
+ hpcloud)
16
+ opts="--help --version"
17
+ ;;
18
+ account:catalog)
19
+ opts="--debug"
20
+ ;;
21
+ account:edit)
22
+ opts="--no-validate --provider"
23
+ ;;
24
+ account:setup)
25
+ opts="--no-validate --provider"
26
+ ;;
27
+ account:verify)
28
+ opts="--debug"
29
+ ;;
30
+ acl)
31
+ opts="--separator --account-name --debug --availability-zone --columns"
32
+ ;;
33
+ acl:grant)
34
+ opts="--account-name --debug --availability-zone"
35
+ ;;
36
+ acl:revoke)
37
+ opts="--account-name --debug --availability-zone"
38
+ ;;
39
+ addresses)
40
+ opts="--separator --account-name --debug --availability-zone --columns"
41
+ ;;
42
+ addresses:add)
43
+ opts="--floating-ip --fixed-ip --account-name --debug --port --availability-zone --network"
44
+ ;;
45
+ addresses:associate)
46
+ opts="--account-name --debug --availability-zone"
47
+ ;;
48
+ addresses:disassociate)
49
+ opts="--account-name --debug --availability-zone"
50
+ ;;
51
+ addresses:remove)
52
+ opts="--account-name --debug --availability-zone"
53
+ ;;
54
+ cdn:containers)
55
+ opts="--account-name --all --debug --availability-zone"
56
+ ;;
57
+ cdn:containers:add)
58
+ opts="--account-name --debug --availability-zone"
59
+ ;;
60
+ cdn:containers:get)
61
+ opts="--account-name --debug --availability-zone"
62
+ ;;
63
+ cdn:containers:location)
64
+ opts="--account-name --debug --availability-zone --ssl"
65
+ ;;
66
+ cdn:containers:remove)
67
+ opts="--account-name --debug --availability-zone"
68
+ ;;
69
+ cdn:containers:set)
70
+ opts="--account-name --debug --availability-zone"
71
+ ;;
72
+ containers:add)
73
+ opts="--account-name --debug --availability-zone --force"
74
+ ;;
75
+ containers:remove)
76
+ opts="--account-name --debug --availability-zone --force"
77
+ ;;
78
+ containers:sync)
79
+ opts="--account-name --debug --availability-zone"
80
+ ;;
81
+ copy)
82
+ opts="--mime --account-name --debug --restart --availability-zone --source-account"
83
+ ;;
84
+ dns)
85
+ opts="--separator --account-name --debug --availability-zone --columns"
86
+ ;;
87
+ dns:add)
88
+ opts="--account-name --ttl --debug --availability-zone"
89
+ ;;
90
+ dns:records)
91
+ opts="--separator --account-name --debug --availability-zone --columns"
92
+ ;;
93
+ dns:records:add)
94
+ opts="--account-name --debug --availability-zone"
95
+ ;;
96
+ dns:records:remove)
97
+ opts="--account-name --debug --availability-zone"
98
+ ;;
99
+ dns:records:update)
100
+ opts="--account-name --debug --availability-zone"
101
+ ;;
102
+ dns:remove)
103
+ opts="--account-name --debug --availability-zone"
104
+ ;;
105
+ dns:servers)
106
+ opts="--separator --account-name --debug --availability-zone --columns"
107
+ ;;
108
+ dns:update)
109
+ opts="--account-name --ttl --debug --email --availability-zone"
110
+ ;;
111
+ flavors)
112
+ opts="--separator --account-name --debug --availability-zone --columns"
113
+ ;;
114
+ get)
115
+ opts="--account-name --debug --availability-zone"
116
+ ;;
117
+ images)
118
+ opts="--separator --account-name --debug --availability-zone --columns"
119
+ ;;
120
+ images:add)
121
+ opts="--account-name --debug --availability-zone --metadata"
122
+ ;;
123
+ images:metadata)
124
+ opts="--separator --account-name --debug --availability-zone --columns"
125
+ ;;
126
+ images:metadata:add)
127
+ opts="--account-name --debug --availability-zone"
128
+ ;;
129
+ images:metadata:remove)
130
+ opts="--account-name --debug --availability-zone"
131
+ ;;
132
+ images:remove)
133
+ opts="--account-name --debug --availability-zone"
134
+ ;;
135
+ keypairs)
136
+ opts="--separator --account-name --debug --availability-zone --columns"
137
+ ;;
138
+ keypairs:add)
139
+ opts="--private-key --account-name --debug --fingerprint --availability-zone --output"
140
+ ;;
141
+ keypairs:import)
142
+ opts="--account-name --debug --availability-zone"
143
+ ;;
144
+ keypairs:public_key)
145
+ opts="--account-name --debug --availability-zone"
146
+ ;;
147
+ keypairs:remove)
148
+ opts="--account-name --debug --availability-zone"
149
+ ;;
150
+ lb)
151
+ opts="--separator --account-name --debug --availability-zone --columns"
152
+ ;;
153
+ lb:add)
154
+ opts="--account-name --debug --availability-zone --nodes --ips"
155
+ ;;
156
+ lb:algorithms)
157
+ opts="--separator --account-name --debug --availability-zone --columns"
158
+ ;;
159
+ lb:limits)
160
+ opts="--separator --account-name --debug --availability-zone --columns"
161
+ ;;
162
+ lb:nodes)
163
+ opts="--separator --account-name --debug --availability-zone --columns"
164
+ ;;
165
+ lb:nodes:add)
166
+ opts="--account-name --debug --availability-zone"
167
+ ;;
168
+ lb:nodes:remove)
169
+ opts="--account-name --debug --availability-zone"
170
+ ;;
171
+ lb:nodes:update)
172
+ opts="--account-name --debug --availability-zone"
173
+ ;;
174
+ lb:protocols)
175
+ opts="--separator --account-name --debug --availability-zone --columns"
176
+ ;;
177
+ lb:remove)
178
+ opts="--account-name --debug --availability-zone"
179
+ ;;
180
+ lb:update)
181
+ opts="--account-name --debug --availability-zone"
182
+ ;;
183
+ lb:versions)
184
+ opts="--separator --account-name --debug --availability-zone --columns"
185
+ ;;
186
+ lb:virtualips)
187
+ opts="--separator --account-name --debug --availability-zone --columns"
188
+ ;;
189
+ list)
190
+ opts="--separator --sync --long --account-name --debug --availability-zone --columns"
191
+ ;;
192
+ location)
193
+ opts="--account-name --debug --availability-zone"
194
+ ;;
195
+ metadata)
196
+ opts="--account-name --debug --availability-zone"
197
+ ;;
198
+ metadata:set)
199
+ opts="--account-name --debug --availability-zone"
200
+ ;;
201
+ migrate)
202
+ opts="--mime --account-name --debug --availability-zone"
203
+ ;;
204
+ move)
205
+ opts="--account-name --debug --availability-zone"
206
+ ;;
207
+ networks)
208
+ opts="--separator --account-name --debug --availability-zone --columns"
209
+ ;;
210
+ networks:add)
211
+ opts="--account-name --debug --availability-zone --adminstateup"
212
+ ;;
213
+ networks:remove)
214
+ opts="--account-name --debug --availability-zone"
215
+ ;;
216
+ networks:update)
217
+ opts="--account-name --debug --availability-zone --adminstateup"
218
+ ;;
219
+ ports)
220
+ opts="--separator --account-name --debug --availability-zone --columns"
221
+ ;;
222
+ ports:add)
223
+ opts="--fixedips --macaddress --account-name --debug --adminstate --availability-zone --deviceid --deviceowner --securitygroups"
224
+ ;;
225
+ ports:remove)
226
+ opts="--account-name --debug --availability-zone"
227
+ ;;
228
+ ports:update)
229
+ opts="--fixedips --account-name --debug --adminstate --availability-zone --deviceid --deviceowner"
230
+ ;;
231
+ remove)
232
+ opts="--account-name --at --debug --after --availability-zone --force"
233
+ ;;
234
+ routers)
235
+ opts="--separator --account-name --debug --availability-zone --columns"
236
+ ;;
237
+ routers:add)
238
+ opts="--account-name --debug --availability-zone --gateway --adminstateup"
239
+ ;;
240
+ routers:interface:add)
241
+ opts="--account-name --debug --availability-zone"
242
+ ;;
243
+ routers:interface:remove)
244
+ opts="--account-name --debug --availability-zone"
245
+ ;;
246
+ routers:remove)
247
+ opts="--account-name --debug --availability-zone"
248
+ ;;
249
+ routers:update)
250
+ opts="--account-name --debug --availability-zone --gateway --adminstateup"
251
+ ;;
252
+ securitygroups)
253
+ opts="--separator --account-name --debug --availability-zone --columns"
254
+ ;;
255
+ securitygroups:add)
256
+ opts="--account-name --debug --availability-zone"
257
+ ;;
258
+ securitygroups:remove)
259
+ opts="--account-name --debug --availability-zone"
260
+ ;;
261
+ securitygroups:rules)
262
+ opts="--separator --account-name --debug --availability-zone --columns"
263
+ ;;
264
+ securitygroups:rules:add)
265
+ opts="--direction --cidr --account-name --port-range --debug --source-group --availability-zone --ethertype"
266
+ ;;
267
+ securitygroups:rules:remove)
268
+ opts="--account-name --debug --availability-zone"
269
+ ;;
270
+ servers)
271
+ opts="--separator --account-name --debug --availability-zone --columns"
272
+ ;;
273
+ servers:add)
274
+ opts="--personality --security-group --account-name --volume --debug --private-key-file --image --availability-zone --userdata --metadata --network --key-name"
275
+ ;;
276
+ servers:console)
277
+ opts="--dump-password --account-name --debug --private-key-file --availability-zone"
278
+ ;;
279
+ servers:limits)
280
+ opts="--account-name --debug --availability-zone"
281
+ ;;
282
+ servers:metadata)
283
+ opts="--separator --account-name --debug --availability-zone --columns"
284
+ ;;
285
+ servers:metadata:add)
286
+ opts="--account-name --debug --availability-zone"
287
+ ;;
288
+ servers:metadata:remove)
289
+ opts="--account-name --debug --availability-zone"
290
+ ;;
291
+ servers:password)
292
+ opts="--account-name --debug --availability-zone"
293
+ ;;
294
+ servers:ratelimits)
295
+ opts="--account-name --debug --availability-zone"
296
+ ;;
297
+ servers:reboot)
298
+ opts="--account-name --hard --debug --availability-zone"
299
+ ;;
300
+ servers:rebuild)
301
+ opts="--account-name --debug --availability-zone"
302
+ ;;
303
+ servers:remove)
304
+ opts="--account-name --debug --availability-zone"
305
+ ;;
306
+ servers:ssh)
307
+ opts="--command --account-name --debug --keypair --private-key-file --availability-zone --login"
308
+ ;;
309
+ snapshots)
310
+ opts="--separator --account-name --debug --availability-zone --columns"
311
+ ;;
312
+ snapshots:add)
313
+ opts="--account-name --description --debug --availability-zone --metadata"
314
+ ;;
315
+ snapshots:remove)
316
+ opts="--account-name --debug --availability-zone"
317
+ ;;
318
+ subnets)
319
+ opts="--separator --account-name --debug --availability-zone --columns"
320
+ ;;
321
+ subnets:add)
322
+ opts="--hostroutes --account-name --dhcp --debug --availability-zone --gateway --ipversion --dnsnameservers"
323
+ ;;
324
+ subnets:remove)
325
+ opts="--account-name --debug --availability-zone"
326
+ ;;
327
+ subnets:update)
328
+ opts="--hostroutes --account-name --dhcp --debug --availability-zone --gateway --ipversion --dnsnameservers"
329
+ ;;
330
+ tempurl)
331
+ opts="--account-name --debug --availability-zone --time-period --update"
332
+ ;;
333
+ volumes)
334
+ opts="--separator --account-name --debug --availability-zone --columns"
335
+ ;;
336
+ volumes:add)
337
+ opts="--zone --account-name --description --debug --image --availability-zone --metadata --snapshot"
338
+ ;;
339
+ volumes:attach)
340
+ opts="--account-name --debug --availability-zone"
341
+ ;;
342
+ volumes:detach)
343
+ opts="--account-name --debug --availability-zone"
344
+ ;;
345
+ volumes:remove)
346
+ opts="--account-name --debug --availability-zone"
347
+ ;;
348
+ volumes:server)
349
+ opts="--separator --account-name --debug --availability-zone --columns"
350
+ ;;
351
+ esac
352
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
353
+ return 0
354
+ fi
355
+ if [ "${prev}" == "hpcloud" ]
356
+ then
357
+ cmds="account account:catalog account:copy account:edit account:remove account:setup account:use account:verify acl acl:grant acl:revoke addresses addresses:add addresses:associate addresses:disassociate addresses:remove cdn:containers cdn:containers:add cdn:containers:get cdn:containers:location cdn:containers:remove cdn:containers:set complete config config:set containers:add containers:remove containers:sync copy dns dns:add dns:records dns:records:add dns:records:remove dns:records:update dns:remove dns:servers dns:update flavors get help images images:add images:metadata images:metadata:add images:metadata:remove images:remove info keypairs keypairs:add keypairs:import keypairs:private keypairs:private:add keypairs:private:location keypairs:private:remove keypairs:public_key keypairs:remove lb lb:add lb:algorithms lb:limits lb:nodes lb:nodes:add lb:nodes:remove lb:nodes:update lb:protocols lb:remove lb:update lb:versions lb:virtualips list location metadata metadata:set migrate move networks networks:add networks:remove networks:update ports ports:add ports:remove ports:update remove routers routers:add routers:interface:add routers:interface:remove routers:remove routers:update securitygroups securitygroups:add securitygroups:remove securitygroups:rules securitygroups:rules:add securitygroups:rules:remove servers servers:add servers:console servers:limits servers:metadata servers:metadata:add servers:metadata:remove servers:password servers:ratelimits servers:reboot servers:rebuild servers:remove servers:ssh snapshots snapshots:add snapshots:remove subnets subnets:add subnets:remove subnets:update tempurl volumes volumes:add volumes:attach volumes:detach volumes:remove volumes:server"
358
+ COMPREPLY=( $(compgen -W "${cmds}" -- ${cur}) )
359
+ __ltrim_colon_completions "$cur"
360
+ return 0
361
+ fi
362
+
363
+ cmd="${words[1]}"
364
+ if [ "${cmd}" == "copy" ]
365
+ then
366
+ _compopt_o_filenames
367
+ COMPREPLY=( $( compgen -f -- "$cur" ) $( compgen -d -- "$cur" ) )
368
+ return 0
369
+ fi
370
+ return 0
371
+ }
372
+ complete -F _hpcloud hpcloud