cyoi 0.10.0 → 0.10.1

Sign up to get free protection for your applications and to get access to all the features.
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