zaws 0.0.5 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +9 -18
  4. data/Gemfile +0 -0
  5. data/Gemfile.lock +26 -35
  6. data/Gemfile.lock.linux +69 -0
  7. data/Gemfile.lock.mac +81 -0
  8. data/Gemfile.lock.windows +77 -0
  9. data/LICENSE +0 -0
  10. data/README.md +11 -0
  11. data/Rakefile +1 -7
  12. data/archive/cloud_trail/cloud_trail.feature +124 -0
  13. data/bin/win_zaws.bat +2 -0
  14. data/lib/zaws.rb +54 -41
  15. data/lib/zaws/command/ai.rb +34 -0
  16. data/lib/zaws/command/bucket.rb +35 -0
  17. data/lib/zaws/command/cloud_trail.rb +43 -0
  18. data/lib/zaws/command/compute.rb +152 -87
  19. data/lib/zaws/command/config.rb +42 -0
  20. data/lib/zaws/command/elasticip.rb +19 -9
  21. data/lib/zaws/command/hosted_zone.rb +31 -18
  22. data/lib/zaws/command/iam.rb +37 -0
  23. data/lib/zaws/command/load_balancer.rb +54 -51
  24. data/lib/zaws/command/nessus.rb +41 -0
  25. data/lib/zaws/command/newrelic.rb +30 -0
  26. data/lib/zaws/command/route_table.rb +135 -122
  27. data/lib/zaws/command/security_group.rb +95 -82
  28. data/lib/zaws/command/subnet.rb +58 -46
  29. data/lib/zaws/command/sumo.rb +34 -0
  30. data/lib/zaws/command/vpc.rb +53 -0
  31. data/lib/zaws/external/awscli/awscli.rb +65 -0
  32. data/lib/zaws/external/awscli/commands.rb +10 -0
  33. data/lib/zaws/external/awscli/commands/aws.rb +40 -0
  34. data/lib/zaws/external/awscli/commands/ec2.rb +74 -0
  35. data/lib/zaws/external/awscli/commands/ec2/allocate_address.rb +42 -0
  36. data/lib/zaws/external/awscli/commands/ec2/assign_private_ip_addresses.rb +49 -0
  37. data/lib/zaws/external/awscli/commands/ec2/associate_address.rb +48 -0
  38. data/lib/zaws/external/awscli/commands/ec2/associate_route_table.rb +48 -0
  39. data/lib/zaws/external/awscli/commands/ec2/authorize_security_group_ingress.rb +70 -0
  40. data/lib/zaws/external/awscli/commands/ec2/create_route.rb +60 -0
  41. data/lib/zaws/external/awscli/commands/ec2/create_route_table.rb +40 -0
  42. data/lib/zaws/external/awscli/commands/ec2/create_security_group.rb +58 -0
  43. data/lib/zaws/external/awscli/commands/ec2/create_subnet.rb +62 -0
  44. data/lib/zaws/external/awscli/commands/ec2/create_tags.rb +53 -0
  45. data/lib/zaws/external/awscli/commands/ec2/create_vpc.rb +21 -0
  46. data/lib/zaws/external/awscli/commands/ec2/delete_route.rb +54 -0
  47. data/lib/zaws/external/awscli/commands/ec2/delete_route_table.rb +46 -0
  48. data/lib/zaws/external/awscli/commands/ec2/delete_security_group.rb +46 -0
  49. data/lib/zaws/external/awscli/commands/ec2/delete_subnet.rb +46 -0
  50. data/lib/zaws/external/awscli/commands/ec2/describe_addresses.rb +41 -0
  51. data/lib/zaws/external/awscli/commands/ec2/describe_images.rb +58 -0
  52. data/lib/zaws/external/awscli/commands/ec2/describe_instances.rb +56 -0
  53. data/lib/zaws/external/awscli/commands/ec2/describe_route_tables.rb +44 -0
  54. data/lib/zaws/external/awscli/commands/ec2/describe_security_groups.rb +50 -0
  55. data/lib/zaws/external/awscli/commands/ec2/describe_subnets.rb +48 -0
  56. data/lib/zaws/external/awscli/commands/ec2/describe_vpc_peering_connections.rb +23 -0
  57. data/lib/zaws/external/awscli/commands/ec2/describe_vpcs.rb +26 -0
  58. data/lib/zaws/external/awscli/commands/ec2/disable_vgw_route_propagation.rb +48 -0
  59. data/lib/zaws/external/awscli/commands/ec2/disassociate-address.rb +42 -0
  60. data/lib/zaws/external/awscli/commands/ec2/disassociate_route_table.rb +41 -0
  61. data/lib/zaws/external/awscli/commands/ec2/enable_vgw_route_propagation.rb +48 -0
  62. data/lib/zaws/external/awscli/commands/ec2/filter.rb +115 -0
  63. data/lib/zaws/external/awscli/commands/ec2/modify_instance_attribute.rb +62 -0
  64. data/lib/zaws/external/awscli/commands/ec2/network_interfaces.rb +63 -0
  65. data/lib/zaws/external/awscli/commands/ec2/release_address.rb +42 -0
  66. data/lib/zaws/external/awscli/commands/ec2/revoke_security_group_ingress.rb +70 -0
  67. data/lib/zaws/external/awscli/commands/ec2/run_instances.rb +21 -0
  68. data/lib/zaws/external/awscli/commands/ec2/stop_instances.rb +21 -0
  69. data/lib/zaws/external/awscli/commands/ec2/terminate_instances.rb +40 -0
  70. data/lib/zaws/external/awscli/commands/ec2/unassign_private_ip_addresses.rb +49 -0
  71. data/lib/zaws/external/awscli/commands/elb.rb +19 -0
  72. data/lib/zaws/external/awscli/commands/elb/create_load_balancer.rb +64 -0
  73. data/lib/zaws/external/awscli/commands/elb/create_load_balancer_listeners.rb +47 -0
  74. data/lib/zaws/external/awscli/commands/elb/delete_load_balancer.rb +40 -0
  75. data/lib/zaws/external/awscli/commands/elb/delete_load_balancer_listeners.rb +49 -0
  76. data/lib/zaws/external/awscli/commands/elb/deregister_instances_with_load_balancer.rb +49 -0
  77. data/lib/zaws/external/awscli/commands/elb/describe_load_balancers.rb +30 -0
  78. data/lib/zaws/external/awscli/commands/elb/register_instances_with_load_balancer.rb +49 -0
  79. data/lib/zaws/external/awscli/commands/iam.rb +31 -0
  80. data/lib/zaws/external/awscli/commands/iam/GetPolicy.rb +21 -0
  81. data/lib/zaws/external/awscli/commands/iam/GetPolicyVersion.rb +21 -0
  82. data/lib/zaws/external/awscli/commands/iam/GetRolePolicy.rb +21 -0
  83. data/lib/zaws/external/awscli/commands/route53.rb +19 -0
  84. data/lib/zaws/external/awscli/commands/route53/list_hosted_zones.rb +30 -0
  85. data/lib/zaws/external/awscli/commands/route53/list_resource_record_sets.rb +41 -0
  86. data/lib/zaws/external/awscli/commands/s3/ls.rb +34 -0
  87. data/lib/zaws/external/awscli/commands/s3/mb.rb +41 -0
  88. data/lib/zaws/external/awscli/commands/s3/sync.rb +48 -0
  89. data/lib/zaws/external/awscli/credentials.rb +22 -0
  90. data/lib/zaws/external/awscli/data.rb +10 -0
  91. data/lib/zaws/external/awscli/data/ec2.rb +33 -0
  92. data/lib/zaws/external/awscli/data/ec2/instance.rb +162 -0
  93. data/lib/zaws/external/awscli/data/ec2/security_group.rb +51 -0
  94. data/lib/zaws/external/awscli/data/ec2/subnet.rb +59 -0
  95. data/lib/zaws/external/awscli/data/ec2/vpc.rb +85 -0
  96. data/lib/zaws/external/awscli/data/iam.rb +34 -0
  97. data/lib/zaws/external/awscli/data/iam/policy.rb +42 -0
  98. data/lib/zaws/external/awscli/data/iam/policy_document.rb +52 -0
  99. data/lib/zaws/external/awscli/data/iam/policy_version.rb +42 -0
  100. data/lib/zaws/external/awscli/data/iam/role_policy.rb +52 -0
  101. data/lib/zaws/external/awscli/generators/result/ec2/addresses.rb +70 -0
  102. data/lib/zaws/external/awscli/generators/result/ec2/allocation_id.rb +39 -0
  103. data/lib/zaws/external/awscli/generators/result/ec2/association_id.rb +29 -0
  104. data/lib/zaws/external/awscli/generators/result/ec2/images.rb +46 -0
  105. data/lib/zaws/external/awscli/generators/result/ec2/instances.rb +57 -0
  106. data/lib/zaws/external/awscli/generators/result/ec2/ip_permissions.rb +70 -0
  107. data/lib/zaws/external/awscli/generators/result/ec2/network_interfaces.rb +53 -0
  108. data/lib/zaws/external/awscli/generators/result/ec2/private_ip_addresses.rb +41 -0
  109. data/lib/zaws/external/awscli/generators/result/ec2/route_tables.rb +80 -0
  110. data/lib/zaws/external/awscli/generators/result/ec2/routes.rb +58 -0
  111. data/lib/zaws/external/awscli/generators/result/ec2/security_groups.rb +73 -0
  112. data/lib/zaws/external/awscli/generators/result/ec2/subnets.rb +88 -0
  113. data/lib/zaws/external/awscli/generators/result/ec2/tags.rb +34 -0
  114. data/lib/zaws/external/awscli/generators/result/ec2/virtual_gateway.rb +32 -0
  115. data/lib/zaws/external/awscli/generators/result/elb/listeners.rb +65 -0
  116. data/lib/zaws/external/awscli/generators/result/elb/load_balancers.rb +61 -0
  117. data/lib/zaws/external/awscli/generators/result/route53/hosted_zones.rb +52 -0
  118. data/lib/zaws/external/awscli/regions.rb +13 -0
  119. data/lib/zaws/external/nessusapi/data/agents.rb +36 -0
  120. data/lib/zaws/external/nessusapi/data/scanners.rb +35 -0
  121. data/lib/zaws/external/nessusapi/nessusapi.rb +57 -0
  122. data/lib/zaws/external/nessusapi/reources.rb +10 -0
  123. data/lib/zaws/external/nessusapi/resources/agents.rb +18 -0
  124. data/lib/zaws/external/nessusapi/resources/agents/list.rb +20 -0
  125. data/lib/zaws/external/nessusapi/resources/scanners.rb +18 -0
  126. data/lib/zaws/external/nessusapi/resources/scanners/list.rb +20 -0
  127. data/lib/zaws/external/newrelicapi/data/servers.rb +36 -0
  128. data/lib/zaws/external/newrelicapi/newrelic_client.rb +64 -0
  129. data/lib/zaws/external/newrelicapi/newrelic_creds.rb +60 -0
  130. data/lib/zaws/external/newrelicapi/newrelicapi.rb +46 -0
  131. data/lib/zaws/external/newrelicapi/resources/servers.rb +18 -0
  132. data/lib/zaws/external/newrelicapi/resources/servers/list.rb +20 -0
  133. data/lib/zaws/external/sumoapi/data/collectors.rb +35 -0
  134. data/lib/zaws/external/sumoapi/data/sources.rb +35 -0
  135. data/lib/zaws/external/sumoapi/resources/collectors.rb +18 -0
  136. data/lib/zaws/external/sumoapi/resources/collectors/list.rb +20 -0
  137. data/lib/zaws/external/sumoapi/resources/sources.rb +18 -0
  138. data/lib/zaws/external/sumoapi/resources/sources/list.rb +20 -0
  139. data/lib/zaws/external/sumoapi/sumo_client.rb +63 -0
  140. data/lib/zaws/external/sumoapi/sumo_creds.rb +67 -0
  141. data/lib/zaws/external/sumoapi/sumoapi.rb +56 -0
  142. data/lib/zaws/helper/data_lattice.rb +22 -0
  143. data/lib/zaws/helper/filestore.rb +48 -0
  144. data/lib/zaws/helper/filter.rb +15 -0
  145. data/lib/zaws/helper/inifile.rb +632 -0
  146. data/lib/zaws/helper/nessus_client.rb +143 -0
  147. data/lib/zaws/helper/nessus_creds.rb +67 -0
  148. data/lib/zaws/helper/option.rb +14 -15
  149. data/lib/zaws/helper/output.rb +81 -29
  150. data/lib/zaws/helper/process_hash.rb +47 -0
  151. data/lib/zaws/helper/shell.rb +0 -0
  152. data/lib/zaws/helper/verbose.rb +15 -0
  153. data/lib/zaws/helper/zfile.rb +8 -8
  154. data/lib/zaws/services/ai.rb +35 -0
  155. data/lib/zaws/services/ai/query.rb +135 -0
  156. data/lib/zaws/services/aws.rb +41 -0
  157. data/lib/zaws/services/chef.rb +0 -0
  158. data/lib/zaws/services/cloud_trail.rb +76 -0
  159. data/lib/zaws/services/config.rb +31 -0
  160. data/lib/zaws/services/ec2.rb +47 -0
  161. data/lib/zaws/services/ec2/compute.rb +352 -0
  162. data/lib/zaws/services/ec2/elasticip.rb +82 -0
  163. data/lib/zaws/services/ec2/route_table.rb +210 -0
  164. data/lib/zaws/services/ec2/security_group.rb +186 -0
  165. data/lib/zaws/services/ec2/subnet.rb +111 -0
  166. data/lib/zaws/services/ec2/vpc.rb +69 -0
  167. data/lib/zaws/{elb.rb → services/elb.rb} +3 -2
  168. data/lib/zaws/services/elb/load_balancer.rb +160 -0
  169. data/lib/zaws/services/iam.rb +25 -0
  170. data/lib/zaws/services/iam/policy.rb +25 -0
  171. data/lib/zaws/services/iam/role.rb +23 -0
  172. data/lib/zaws/services/nessus.rb +24 -0
  173. data/lib/zaws/services/nessus/agents.rb +19 -0
  174. data/lib/zaws/services/nessus/scanners.rb +19 -0
  175. data/lib/zaws/services/newrelic.rb +21 -0
  176. data/lib/zaws/services/newrelic/servers.rb +19 -0
  177. data/lib/zaws/{route53.rb → services/route53.rb} +1 -1
  178. data/lib/zaws/services/route53/hosted_zone.rb +36 -0
  179. data/lib/zaws/services/s3.rb +15 -0
  180. data/lib/zaws/services/s3/bucket.rb +42 -0
  181. data/lib/zaws/services/sumo.rb +21 -0
  182. data/lib/zaws/services/sumo/collectors.rb +19 -0
  183. data/lib/zaws/services/vmware.rb +0 -0
  184. data/lib/zaws/version.rb +1 -1
  185. data/shove_all.sh +6 -0
  186. data/shove_all_mac.sh +6 -0
  187. data/shove_all_windows.sh +6 -0
  188. data/spec/spec_helper.rb +0 -0
  189. data/spec/zaws/command/ec2/compute/assoc_security_group_spec.rb +135 -0
  190. data/spec/zaws/command/ec2/compute/compute_spec.rb +321 -0
  191. data/spec/zaws/command/ec2/compute/images_spec.rb +69 -0
  192. data/spec/zaws/command/ec2/compute/management_spec.rb +364 -0
  193. data/spec/zaws/command/ec2/compute/network_spec.rb +93 -0
  194. data/spec/zaws/command/ec2/compute/node_spec.rb +70 -0
  195. data/spec/zaws/command/ec2/compute/secondary_ip_spec.rb +212 -0
  196. data/spec/zaws/command/ec2/compute/storage_spec.rb +63 -0
  197. data/spec/zaws/command/ec2/elasticip_spec.rb +271 -0
  198. data/spec/zaws/command/ec2/route_table_spec.rb +844 -0
  199. data/spec/zaws/command/ec2/security_group_spec.rb +710 -0
  200. data/spec/zaws/command/ec2/subnet_spec.rb +273 -0
  201. data/spec/zaws/command/ec2/vpc_spec.rb +180 -0
  202. data/spec/zaws/command/elb/load_balancer_spec.rb +633 -0
  203. data/spec/zaws/command/iam/policy_spec.rb +101 -0
  204. data/spec/zaws/command/iam/role_policy_spec.rb +35 -0
  205. data/spec/zaws/command/route53/hosted_zone_spec.rb +100 -0
  206. data/spec/zaws/command/s3/bucket_spec.rb +70 -0
  207. data/spec/zaws/external/awscli/data/ec2/instance_spec.rb +90 -0
  208. data/spec/zaws/external/awscli/data/iam/policy_document_spec.rb +56 -0
  209. data/spec/zaws/external/awscli/data/iam/role_policy_spec.rb +54 -0
  210. data/spec/zaws/external/awscli/get_aws_version_spec.rb +18 -0
  211. data/spec/zaws/helper/option_spec.rb +54 -0
  212. data/spec/zaws/helper/output_spec.rb +144 -0
  213. data/spec/zaws/helper/process_hash_spec.rb +48 -0
  214. data/spec/zaws/helper/shell_spec.rb +56 -0
  215. data/spec/zaws/nessus/scanners.json +0 -0
  216. data/spec/zaws/version_spec.rb +18 -0
  217. data/zaws.gemspec +1 -3
  218. metadata +260 -189
  219. data/feature/compute/assoc_security_group.feature +0 -55
  220. data/feature/compute/compute.feature +0 -138
  221. data/feature/compute/secondary_ip.feature +0 -107
  222. data/feature/compute/view.feature +0 -23
  223. data/feature/compute/view_images.feature +0 -24
  224. data/feature/elasticip/elasticip.feature +0 -138
  225. data/feature/elasticip/view.feature +0 -18
  226. data/feature/hosted_zone/view.feature +0 -17
  227. data/feature/hosted_zone/view_record.feature +0 -29
  228. data/feature/load_balancer/instance_registration.feature +0 -120
  229. data/feature/load_balancer/listener.feature +0 -86
  230. data/feature/load_balancer/load_balancer.feature +0 -101
  231. data/feature/load_balancer/view.feature +0 -18
  232. data/feature/route_table/assoc_subnet.feature +0 -128
  233. data/feature/route_table/route_propagation.feature +0 -93
  234. data/feature/route_table/route_table.feature +0 -91
  235. data/feature/route_table/route_to_gateway.feature +0 -69
  236. data/feature/route_table/route_to_instance.feature +0 -115
  237. data/feature/route_table/view.feature +0 -25
  238. data/feature/security_group/ingress_cidr.feature +0 -144
  239. data/feature/security_group/ingress_group.feature +0 -184
  240. data/feature/security_group/security_group.feature +0 -107
  241. data/feature/security_group/view.feature +0 -23
  242. data/feature/subnet/subnet.feature +0 -94
  243. data/feature/subnet/view.feature +0 -24
  244. data/feature/support/env.rb +0 -14
  245. data/feature/version.feature +0 -6
  246. data/lib/zaws/aws.rb +0 -26
  247. data/lib/zaws/ec2.rb +0 -40
  248. data/lib/zaws/ec2/compute.rb +0 -247
  249. data/lib/zaws/ec2/elasticip.rb +0 -79
  250. data/lib/zaws/ec2/route_table.rb +0 -207
  251. data/lib/zaws/ec2/security_group.rb +0 -154
  252. data/lib/zaws/ec2/subnet.rb +0 -109
  253. data/lib/zaws/elb/load_balancer.rb +0 -157
  254. data/lib/zaws/route53/hosted_zone.rb +0 -36
  255. data/spec/zaws/ec2/compute/add_volume_spec.rb +0 -39
  256. data/spec/zaws/ec2/compute/block_device_mapping_spec.rb +0 -31
  257. data/spec/zaws/ec2/compute/instance_id_by_external_id_spec.rb +0 -23
  258. data/spec/zaws/ec2/compute/instance_ping_spec.rb +0 -34
  259. data/spec/zaws/ec2/compute/instance_running_spec.rb +0 -47
  260. data/spec/zaws/ec2/compute/network_interface_json_spec.rb +0 -57
  261. data/spec/zaws/ec2/compute/nosdcheck_spec.rb +0 -17
  262. data/spec/zaws/ec2/compute/tag_instance_spec.rb +0 -21
  263. data/spec/zaws/ec2/security_group/id_by_name_spec.rb +0 -32
  264. data/spec/zaws/ec2/subnet/available_spec.rb +0 -22
  265. data/spec/zaws/ec2/subnet/declare_spec.rb +0 -31
  266. data/spec/zaws/ec2/subnet/exists_spec.rb +0 -33
  267. data/spec/zaws/ec2/subnet/id_array_by_cidrblock_array_spec.rb +0 -48
  268. data/spec/zaws/ec2/subnet/id_by_cidrblock_spec.rb +0 -35
  269. data/spec/zaws/ec2/subnet/id_by_ip_spec.rb +0 -42
  270. data/spec/zaws/ec2/subnet/view_spec.rb +0 -34
  271. data/spec/zaws/elb/load_balancer/calculated_listener_spec.rb +0 -18
  272. data/spec/zaws/helper/option/absent_spec.rb +0 -14
  273. data/spec/zaws/helper/option/exclusive_spec.rb +0 -14
  274. data/spec/zaws/helper/option/exists_spec.rb +0 -18
  275. data/spec/zaws/helper/option/minimum_spec.rb +0 -14
  276. data/spec/zaws/helper/output/binary_nagios_check_spec.rb +0 -19
  277. data/spec/zaws/helper/output/colorize_spec.rb +0 -30
  278. data/spec/zaws/helper/output/opt_exclusive_spec.rb +0 -14
  279. data/spec/zaws/helper/output/opt_minimum_spec.rb +0 -15
  280. data/spec/zaws/helper/output/opt_required_spec.rb +0 -12
  281. data/spec/zaws/helper/shell/cli_spec.rb +0 -33
  282. data/spec/zaws/helper/shell/if_then_spec.rb +0 -24
@@ -0,0 +1,48 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Commands
5
+ class EC2
6
+ class EnableVgwRoutePropagation
7
+
8
+ def initialize(shellout=nil, awscli=nil)
9
+ @shellout=shellout
10
+ @awscli=awscli
11
+ clear_settings
12
+ end
13
+
14
+ def aws
15
+ @aws ||= ZAWS::External::AWSCLI::Commands::AWS.new(self)
16
+ @aws
17
+ end
18
+
19
+ def clear_settings
20
+ @aws=nil
21
+ @route_table_id=nil
22
+ @dest_cidr_block=nil
23
+ @instance_id=nil
24
+ end
25
+
26
+ def route_table_id(id)
27
+ @route_table_id=id
28
+ self
29
+ end
30
+
31
+ def gateway_id(id)
32
+ @gateway_id=id
33
+ self
34
+ end
35
+
36
+ def get_command
37
+ command = "ec2 enable-vgw-route-propagation"
38
+ command = "#{command} --route-table-id #{@route_table_id}" if @route_table_id
39
+ command = "#{command} --gateway-id #{@gateway_id}" if @gateway_id
40
+ return command
41
+ end
42
+
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,115 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Commands
5
+ class EC2
6
+ class Filter
7
+ def initialize
8
+ clear_settings
9
+ self
10
+ end
11
+
12
+ def clear_settings()
13
+ @domain=nil
14
+ @instance_id=nil
15
+ @group_name=nil
16
+ @vpc_id=nil
17
+ @cidr=nil
18
+ @tags=nil
19
+ @group_id=nil
20
+ @ip_permission_group_id=nil
21
+ @ip_permission_cidr=nil
22
+ @ip_permission_protocol=nil
23
+ @ip_permission_to_port=nil
24
+ end
25
+
26
+ def domain(domain)
27
+ @domain=domain
28
+ self
29
+ end
30
+
31
+ def instance_id(id)
32
+ @instance_id=id
33
+ self
34
+ end
35
+
36
+ def group_name(group_name)
37
+ @group_name=group_name
38
+ self
39
+ end
40
+
41
+ def vpc_id(vpc_id)
42
+ @vpc_id=vpc_id
43
+ self
44
+ end
45
+
46
+ def cidr(cidr)
47
+ @cidr=cidr
48
+ self
49
+ end
50
+
51
+ def tags(tags)
52
+ @tags=tags.get_tags_array
53
+ self
54
+ end
55
+
56
+ def group_id(id)
57
+ @group_id=id
58
+ self
59
+ end
60
+
61
+ def ip_permission_group_id(id)
62
+ @ip_permission_group_id=id
63
+ self
64
+ end
65
+
66
+ def ip_permission_cidr(cidr)
67
+ @ip_permission_cidr=cidr
68
+ self
69
+ end
70
+
71
+ def ip_permission_protocol(protocol)
72
+ @ip_permission_protocol=protocol
73
+ self
74
+ end
75
+
76
+ def ip_permission_to_port(port)
77
+ @ip_permission_to_port=port
78
+ self
79
+ end
80
+
81
+ def get_command
82
+ command =""
83
+ if !@vpc_id.nil? or !@group_name.nil? or
84
+ !@cidr.nil? or !@tags.nil? or
85
+ !@group_id.nil? or !@ip_permission_group_id.nil? or
86
+ !@ip_permission_cidr.nil? or !@ip_permission_protocol.nil? or
87
+ !@ip_permission_to_port.nil? or !@domain.nil? or
88
+ !@instance_id.nil?
89
+ command = "--filter "
90
+ command = "#{command}\"Name=domain,Values=#{@domain}\" " if @domain
91
+ command = "#{command}\"Name=instance-id,Values=#{@instance_id}\" " if @instance_id
92
+ command = "#{command}\"Name=vpc-id,Values=#{@vpc_id}\" " if @vpc_id
93
+ command = "#{command}\"Name=group-name,Values=#{@group_name}\" " if @group_name
94
+ command = "#{command}\"Name=cidr,Values=#{@cidr}\" " if @cidr
95
+ command = "#{command}\"Name=group-id,Values=#{@group_id}\" " if @group_id
96
+ command = "#{command}\"Name=ip-permission.group-id,Values=#{@ip_permission_group_id}\" " if @ip_permission_group_id
97
+ command = "#{command}\"Name=ip-permission.cidr,Values=#{@ip_permission_cidr}\" " if @ip_permission_cidr
98
+ command = "#{command}\"Name=ip-permission.protocol,Values=#{@ip_permission_protocol}\" " if @ip_permission_protocol
99
+ command = "#{command}\"Name=ip-permission.to-port,Values=#{@ip_permission_to_port}\" " if @ip_permission_to_port
100
+ if @tags
101
+ @tags.each do |x|
102
+ command = "#{command}\"Name=tag:#{x['Key']},Values=#{x['Value']}\" " if @tags
103
+ end
104
+ end
105
+ end
106
+
107
+ return command
108
+ end
109
+
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,62 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Commands
5
+ class EC2
6
+ class ModifyInstanceAttribute
7
+ def initialize
8
+ clear_settings
9
+ self
10
+ end
11
+
12
+ def clear_settings()
13
+ @source_dest_check=nil
14
+ @no_source_dest_check=nil
15
+ @instance_id=nil
16
+ @security_groups=nil
17
+ @aws=nil
18
+ self
19
+ end
20
+
21
+ def source_dest_check()
22
+ @source_dest_check=true
23
+ self
24
+ end
25
+
26
+ def no_source_dest_check()
27
+ @no_source_dest_check=true
28
+ self
29
+ end
30
+
31
+ def instance_id(id)
32
+ @instance_id=id
33
+ self
34
+ end
35
+
36
+ def security_groups(sgroups)
37
+ @security_groups=sgroups
38
+ self
39
+ end
40
+
41
+ def get_command
42
+ command = "ec2 modify-instance-attribute "
43
+ command = "#{command}--instance-id #{@instance_id} " if @instance_id
44
+ command = "#{command}--no-source-dest-check " if @no_source_dest_check
45
+ command = "#{command}--source-dest-check " if @source_dest_check
46
+ command = "#{command}--groups #{@security_groups} " if @security_groups
47
+ return command
48
+ end
49
+
50
+ def aws
51
+ @aws ||= ZAWS::External::AWSCLI::Commands::AWS.new(self)
52
+ @aws
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+
@@ -0,0 +1,63 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Commands
5
+ class EC2
6
+ class NetworkInterfaces
7
+ def initialize
8
+ @net= {}
9
+ @net["NetworkInterfaces"]= []
10
+ self
11
+ end
12
+
13
+ def add_group(network_interface_number, group)
14
+ resize_network_interface_array(network_interface_number)
15
+ if not @net["NetworkInterfaces"][network_interface_number]["Groups"]
16
+ @net["NetworkInterfaces"][network_interface_number]["Groups"] = []
17
+ end
18
+ @net["NetworkInterfaces"][network_interface_number]["Groups"] << group
19
+ self
20
+ end
21
+
22
+ def private_ip_address(network_interface_number, ip)
23
+ resize_network_interface_array(network_interface_number)
24
+ @net["NetworkInterfaces"][network_interface_number]["PrivateIpAddress"] = ip
25
+ self
26
+ end
27
+
28
+ def device_index(network_interface_number, index)
29
+ resize_network_interface_array(network_interface_number)
30
+ @net["NetworkInterfaces"][network_interface_number]["DeviceIndex"] = index
31
+ self
32
+ end
33
+
34
+ def subnet_id(network_interface_number, id)
35
+ resize_network_interface_array(network_interface_number)
36
+ @net["NetworkInterfaces"][network_interface_number]["SubnetId"] = id
37
+ self
38
+ end
39
+
40
+ def resize_network_interface_array(index)
41
+ while index > @net["NetworkInterfaces"].length-1
42
+ @net["NetworkInterfaces"].push({})
43
+ end
44
+ end
45
+
46
+ def get_json
47
+ @net.to_json
48
+ end
49
+
50
+ def get_network_interfaces_array
51
+ @net["NetworkInterfaces"]
52
+ end
53
+
54
+ def get_network_interfaces_array_to_json
55
+ @net["NetworkInterfaces"].to_json
56
+ end
57
+
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,42 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Commands
5
+ class EC2
6
+ class ReleaseAddress
7
+ def initialize(shellout=nil, awscli=nil)
8
+ @shellout=shellout
9
+ @awscli=awscli
10
+ clear_settings
11
+ self
12
+ end
13
+
14
+ def aws
15
+ @aws ||= ZAWS::External::AWSCLI::Commands::AWS.new(self)
16
+ @aws
17
+ end
18
+
19
+ def clear_settings
20
+ @allocation_id=nil
21
+ @aws=nil
22
+ self
23
+ end
24
+
25
+ def allocation_id(id)
26
+ @allocation_id=id
27
+ self
28
+ end
29
+
30
+ def get_command
31
+ command = "ec2 release-address"
32
+ command = "#{command} --allocation-id #{@allocation_id}" if @allocation_id
33
+ return command
34
+ end
35
+
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
@@ -0,0 +1,70 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Commands
5
+ class EC2
6
+ class RevokeSecurityGroupIngress
7
+ def initialize(shellout=nil, awscli=nil)
8
+ @shellout=shellout
9
+ @awscli=awscli
10
+ clear_settings
11
+ self
12
+ end
13
+
14
+ def aws
15
+ @aws ||= ZAWS::External::AWSCLI::Commands::AWS.new(self)
16
+ @aws
17
+ end
18
+
19
+ def clear_settings
20
+ @group_id=nil
21
+ @cidr=nil
22
+ @protocol=nil
23
+ @port=nil
24
+ @aws=nil
25
+ @source_group=nil
26
+ self
27
+ end
28
+
29
+ def source_group(group)
30
+ @source_group=group
31
+ self
32
+ end
33
+
34
+ def group_id(id)
35
+ @group_id=id
36
+ self
37
+ end
38
+
39
+ def cidr(cidr)
40
+ @cidr=cidr
41
+ self
42
+ end
43
+
44
+ def protocol(protocol)
45
+ @protocol=protocol
46
+ self
47
+ end
48
+
49
+ def port(port)
50
+ @port=port
51
+ self
52
+ end
53
+
54
+ def get_command
55
+ command = "ec2 revoke-security-group-ingress"
56
+ command = "#{command} --group-id #{@group_id}" if @group_id
57
+ command = "#{command} --source-group #{@source_group}" if @source_group
58
+ command = "#{command} --cidr #{@cidr}" if @cidr
59
+ command = "#{command} --protocol #{@protocol}" if @protocol
60
+ command = "#{command} --port #{@port}" if @port
61
+ return command
62
+ end
63
+
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+
@@ -0,0 +1,21 @@
1
+ module ZAWS
2
+ class AWSCLI
3
+ class Commands
4
+ class EC2
5
+ class RunInstances
6
+
7
+ def initialize(shellout, awscli)
8
+ @shellout=shellout
9
+ @awscli=awscli
10
+ end
11
+
12
+ def execute(instanceid, region, textout=nil, verbose=nil)
13
+ comline="aws --output json --region #{region} ec2 start-instances --instance-ids #{instanceid}"
14
+ @shellout.cli(comline, verbose)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module ZAWS
2
+ class AWSCLI
3
+ class Commands
4
+ class EC2
5
+ class StopInstances
6
+
7
+ def initialize(shellout, awscli)
8
+ @shellout=shellout
9
+ @awscli=awscli
10
+ end
11
+
12
+ def execute(instanceid, region, textout=nil, verbose=nil)
13
+ comline="aws --output json --region #{region} ec2 stop-instances --instance-ids #{instanceid}"
14
+ @shellout.cli(comline, verbose)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end