cyoi 0.10.0 → 0.10.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDdkOWUzMjRmM2Q4OThkNmFkNjc5NDJlMjQxN2NhZTYwZGRhMDdiNQ==
4
+ Y2ExOTQzNDFhNWU2NjgyMzdlM2FlMWM3YWJmMTVkOGQ0NTNmMTQ4NQ==
5
5
  data.tar.gz: !binary |-
6
- NTA2ZDgyZTFiZWI5OTA5MzA2NzgyMjU0ZjcxMzk2Y2E5M2ZiODUyNw==
6
+ OTYwZGYwMGVhNjM2MTk4YTkwOTExZjQzNDZlN2MwZWQzMGE1ZTAwZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTNkM2FiZDczOGEzYzAxYjZhNTBlZWU3Yjc2ZTBmYzlhZmEzYmE0MjkxODIx
10
- ZGIzZGVmMjhmZmUzMjI0MzMxOGY0YzQ3ZjQwYzllNjVhNGM5ZjMxMmJjMGNm
11
- NzRlNmRkMmQ5ZTAyODFjY2NjMTZkYzA2Yjk3ZWQ3OGFkZDRmOWI=
9
+ MDBhNDQ5NGM0OWRmODg4YzQwMThiMWM5ZDRlNzRiM2ViZDRiZTdmMTJkZTRj
10
+ Y2VjNmM3MGFmMWE1ZDFjYTNiMzNlNzA4YTJlMWQ1MTkwN2RhOTQ0MjYzMmE2
11
+ ZWUxY2E5NTM4YjdhZjRiMjE4NDFjNDBlNGZhMWM4NDkwZDI5YzY=
12
12
  data.tar.gz: !binary |-
13
- MTg1YTFlZWU4NzNmZGE1MzM1YTI4OTVkZjI5MGUwN2RlNjk0ZmI1MWFiZWI5
14
- NzhkNTc3ODQ4NjkzYTY3YWM4NzMxNzg2ZWJiMzM5MjcwNjdiMjQzMDE3YmEy
15
- NGU4Y2VlNDQ5YWYwZGVlNTM0ODczZjZjNTA0NTA3OTVmY2Q1N2E=
13
+ ZWIzYmE1MDllMTI1NGU4N2QxNDhlN2Q5N2EyYTFmNGRkOWM5NjQ2MzhiNDNh
14
+ MjUxZmIxMjJiZTUwNGEyMzE1YmJkYTRjNjkxYjZlMGIyYmNiZTBmOTQzZmVh
15
+ NzQ3NTZkZDE4MTI4YzMxZDRiOTk2ZTk0ZjQxODcwMmI4NGQzOTk=
data/ChangeLog.md CHANGED
@@ -7,6 +7,7 @@ v0.10
7
7
  -----
8
8
 
9
9
  - `blobstores` - create a bucket/container on AWS/OpenStack
10
+ - `blobstores` - AWS bucket is made publicly readable via bucket policy [v0.10.1]
10
11
 
11
12
  v0.9
12
13
  ----
@@ -2,4 +2,4 @@ require "cyoi/cli/provider_blobstore/blobstore_cli_base"
2
2
  class Cyoi::Cli::Blobstore::BlobstoreCliOpenStack < Cyoi::Cli::Blobstore::BlobstoreCliBase
3
3
  end
4
4
 
5
- Cyoi::Cli::Blobstore.register_cli("aws", Cyoi::Cli::Blobstore::BlobstoreCliOpenStack)
5
+ Cyoi::Cli::Blobstore.register_cli("openstack", Cyoi::Cli::Blobstore::BlobstoreCliOpenStack)
@@ -8,6 +8,26 @@ require "cyoi/providers/constants/aws_constants"
8
8
  class Cyoi::Providers::Clients::AwsProviderClient < Cyoi::Providers::Clients::FogProviderClient
9
9
  include Cyoi::Providers::Constants::AwsConstants
10
10
 
11
+ # Creates a bucket and makes it publicly read-only
12
+ def create_blobstore(blobstore_name)
13
+ super
14
+ policy = {
15
+ "Version" => "2008-10-17",
16
+ "Statement" => [
17
+ {
18
+ "Sid" => "AddPerm",
19
+ "Effect" => "Allow",
20
+ "Principal" => {
21
+ "AWS" => "*"
22
+ },
23
+ "Action" => "s3:GetObject",
24
+ "Resource" => "arn:aws:s3:::#{blobstore_name}/*"
25
+ }
26
+ ]
27
+ }
28
+ fog_storage.put_bucket_policy(blobstore_name, policy)
29
+ end
30
+
11
31
  # @return [Integer] megabytes of RAM for requested flavor of server
12
32
  def ram_for_server_flavor(server_flavor_id)
13
33
  if flavor = fog_compute_flavor(server_flavor_id)
@@ -23,18 +23,25 @@ class Cyoi::Providers::Clients::FogProviderClient
23
23
  false
24
24
  end
25
25
 
26
+ # Creates a bucket/object-store/directory/blobstore
27
+ # To be overridden to make the bucket publicly read-only
28
+ # per IaaS.
26
29
  def create_blobstore(blobstore_name)
27
30
  unless supports_blobstore_service?
28
31
  puts "Provider does not support blobstore service"
29
32
  false
30
33
  else
31
- print "Attempting to create blobstore #{blobstore_name}... "
34
+ print "Creating publicly readable blobstore #{blobstore_name}... "
32
35
  blobstore = fog_storage.directories.create(key: blobstore_name)
33
36
  puts "done"
34
37
  blobstore
35
38
  end
39
+ rescue Excon::Errors::Forbidden => e
40
+ puts "failed: credentials do not allow blobstore to be created"
41
+ false
36
42
  rescue Excon::Errors::Conflict => e
37
43
  puts "failed: blobstore already exists but owned by someone else"
44
+ false
38
45
  end
39
46
 
40
47
  def create_key_pair(key_pair_name)
data/lib/cyoi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cyoi
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.1"
3
3
  end
@@ -20,7 +20,7 @@ describe "cyoi address openstack" do
20
20
  end
21
21
 
22
22
  it "address aleady assigned" do
23
- pending("Fog::Compute::OpenStack.list_address_pools does not provide a mock test")
23
+ skip("Fog::Compute::OpenStack.list_address_pools does not provide a mock test")
24
24
  setting "provider.name", "openstack"
25
25
  setting "provider.credentials.openstack_username", "USERNAME"
26
26
  setting "provider.credentials.openstack_api_key", "PASSWORD"
@@ -33,10 +33,10 @@ describe "cyoi address openstack" do
33
33
  end
34
34
 
35
35
  it "address is provisioned from OpenStack" do
36
- pending("Fog::Compute::OpenStack.list_address_pools does not provide a mock test")
36
+ skip("Fog::Compute::OpenStack.list_address_pools does not provide a mock test")
37
37
  run_interactive(unescape("cyoi address #{settings_dir}"))
38
38
  assert_passing_with("Confirming: Using address")
39
39
  end
40
40
  end
41
41
 
42
- end
42
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyoi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Nic Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-25 00:00:00.000000000 Z
11
+ date: 2014-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog