@@ -5,7 +5,9 @@ module CloudController
55 module Blobstore
66 RSpec . describe StorageCliClient do
77 describe 'client init' do
8- it 'init the correct client when JSON has provider AzureRM' do
8+ # DEPRECATED: Legacy fog provider tests - remove after migration window
9+ # START LEGACY FOG SUPPORT TESTS
10+ it 'init the correct client when JSON has provider AzureRM (legacy fog name)' do
911 droplets_cfg = Tempfile . new ( [ 'droplets' , '.json' ] )
1012 droplets_cfg . write ( { provider : 'AzureRM' ,
1113 account_key : 'bommelkey' ,
@@ -23,16 +25,44 @@ module Blobstore
2325 root_dir : 'dummy-root' ,
2426 resource_type : 'droplets'
2527 )
26- expect ( client . instance_variable_get ( :@provider ) ) . to eq ( 'AzureRM' )
2728 expect ( client . instance_variable_get ( :@storage_type ) ) . to eq ( 'azurebs' )
2829 expect ( client . instance_variable_get ( :@resource_type ) ) . to eq ( 'droplets' )
2930 expect ( client . instance_variable_get ( :@root_dir ) ) . to eq ( 'dummy-root' )
3031 expect ( client . instance_variable_get ( :@directory_key ) ) . to eq ( 'dummy-key' )
3132
3233 droplets_cfg . close!
3334 end
35+ # END LEGACY FOG SUPPORT TESTS
3436
35- it 'raises an error for an unimplemented provider' do
37+ it 'init the correct client when JSON has provider azurebs (native storage-cli type)' do
38+ droplets_cfg = Tempfile . new ( [ 'droplets' , '.json' ] )
39+ droplets_cfg . write ( { provider : 'azurebs' ,
40+ account_key : 'bommelkey' ,
41+ account_name : 'bommel' ,
42+ container_name : 'bommelcontainer' ,
43+ environment : 'BommelCloud' } . to_json )
44+ droplets_cfg . flush
45+
46+ config_double = instance_double ( VCAP ::CloudController ::Config )
47+ allow ( VCAP ::CloudController ::Config ) . to receive ( :config ) . and_return ( config_double )
48+ allow ( config_double ) . to receive ( :get ) . with ( :storage_cli_config_file_droplets ) . and_return ( droplets_cfg . path )
49+
50+ client = StorageCliClient . new (
51+ directory_key : 'dummy-key' ,
52+ root_dir : 'dummy-root' ,
53+ resource_type : 'droplets'
54+ )
55+ expect ( client . instance_variable_get ( :@storage_type ) ) . to eq ( 'azurebs' )
56+ expect ( client . instance_variable_get ( :@resource_type ) ) . to eq ( 'droplets' )
57+ expect ( client . instance_variable_get ( :@root_dir ) ) . to eq ( 'dummy-root' )
58+ expect ( client . instance_variable_get ( :@directory_key ) ) . to eq ( 'dummy-key' )
59+
60+ droplets_cfg . close!
61+ end
62+
63+ # DEPRECATED: Legacy fog provider tests - remove after migration window
64+ # START LEGACY FOG SUPPORT TESTS
65+ it 'raises an error for an unknown legacy provider' do
3666 droplets_cfg = Tempfile . new ( [ 'droplets' , '.json' ] )
3767 droplets_cfg . write (
3868 { provider : 'UnknownProvider' ,
@@ -49,10 +79,77 @@ module Blobstore
4979
5080 expect do
5181 StorageCliClient . new ( directory_key : 'dummy-key' , root_dir : 'dummy-root' , resource_type : 'droplets' )
52- end . to raise_error ( RuntimeError , 'Unimplemented provider: UnknownProvider, implemented ones are: AzureRM, aliyun, Google, AWS' )
82+ end . to raise_error ( RuntimeError , /Unknown provider: UnknownProvider/ )
83+
84+ droplets_cfg . close!
85+ end
86+
87+ it 'blocks webdav/dav provider explicitly' do
88+ droplets_cfg = Tempfile . new ( [ 'droplets' , '.json' ] )
89+ droplets_cfg . write (
90+ { provider : 'webdav' ,
91+ account_key : 'bommelkey' } . to_json
92+ )
93+ droplets_cfg . flush
94+
95+ config_double = instance_double ( VCAP ::CloudController ::Config )
96+ allow ( VCAP ::CloudController ::Config ) . to receive ( :config ) . and_return ( config_double )
97+ allow ( config_double ) . to receive ( :get ) . with ( :storage_cli_config_file_droplets ) . and_return ( droplets_cfg . path )
98+
99+ expect do
100+ StorageCliClient . new ( directory_key : 'dummy-key' , root_dir : 'dummy-root' , resource_type : 'droplets' )
101+ end . to raise_error ( RuntimeError , /is not supported yet/ )
102+
103+ droplets_cfg . close!
104+ end
105+ # END LEGACY FOG SUPPORT TESTS
106+
107+ it 'raises an error for an unknown storage-cli type' do
108+ droplets_cfg = Tempfile . new ( [ 'droplets' , '.json' ] )
109+ droplets_cfg . write (
110+ { provider : 'unknown_type' ,
111+ account_key : 'bommelkey' ,
112+ account_name : 'bommel' ,
113+ container_name : 'bommelcontainer' ,
114+ environment : 'BommelCloud' } . to_json
115+ )
116+ droplets_cfg . flush
117+
118+ config_double = instance_double ( VCAP ::CloudController ::Config )
119+ allow ( VCAP ::CloudController ::Config ) . to receive ( :config ) . and_return ( config_double )
120+ allow ( config_double ) . to receive ( :get ) . with ( :storage_cli_config_file_droplets ) . and_return ( droplets_cfg . path )
121+
122+ expect do
123+ StorageCliClient . new ( directory_key : 'dummy-key' , root_dir : 'dummy-root' , resource_type : 'droplets' )
124+ end . to raise_error ( RuntimeError , /Unknown provider: unknown_type/ )
125+
126+ droplets_cfg . close!
127+ end
128+
129+ # DEPRECATED: Legacy fog provider test - remove after migration window
130+ # START LEGACY FOG SUPPORT TESTS
131+ it 'raises an error when provider is missing' do
132+ droplets_cfg = Tempfile . new ( [ 'droplets' , '.json' ] )
133+ droplets_cfg . write (
134+ { account_key : 'bommelkey' ,
135+ account_name : 'bommel' ,
136+ container_name : 'bommelcontainer' ,
137+ environment : 'BommelCloud' } . to_json
138+ )
139+ droplets_cfg . flush
140+
141+ config_double = instance_double ( VCAP ::CloudController ::Config )
142+ allow ( VCAP ::CloudController ::Config ) . to receive ( :config ) . and_return ( config_double )
143+ allow ( config_double ) . to receive ( :get ) . with ( :storage_cli_config_file_droplets ) . and_return ( droplets_cfg . path )
144+
145+ expect do
146+ StorageCliClient . new ( directory_key : 'dummy-key' , root_dir : 'dummy-root' , resource_type : 'droplets' )
147+ end . to raise_error ( BlobstoreError , /No provider specified/ )
53148
54149 droplets_cfg . close!
55150 end
151+ # END LEGACY FOG SUPPORT TESTS
152+ # After removal, change error message expectation to /No storage_type specified/
56153
57154 it 'raise when no resource type' do
58155 expect do
0 commit comments