terraspace_plugin_azurerm 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3ff4bc13ad8e73d40b985420c107ef791d652bde858092271a239715ec6b824
4
- data.tar.gz: cdbc5ddac31c0c4fad5676ea802810fd9982f02a59f3347bf72d4e407f7abec7
3
+ metadata.gz: 3164712306e20fe0da2192f6e8168e7d19dc773f840f351f351bd3cd0c56fd76
4
+ data.tar.gz: 4e3a39f1aacad41a0806f5e9c81013119b58f11dc42b2d0ac791f9e0c4e44814
5
5
  SHA512:
6
- metadata.gz: 878dc0469567622cd0bf3ef0c378ae5ba9962035511110fdb057892873d0d4e67cf0e00c2173cc52904ea9d2a58d7c2062b1bac8673a8dd45c03bb946e220149
7
- data.tar.gz: f9f776fc7ad11500b9f29c57a141012b883295f59e25c67d7393d07a6dde2aadaf71f7e2322848bdf67ba5feaebce3553c49a4004632e83f9fc5026b965278bf
6
+ metadata.gz: 005df536cf5d7b6ed59435e2560bce4924ecc8a0cf4be3a6c2ae294b711c160e435797a62758d476978d3be3914f10336d23c74a681f1b381bc6d820c68dbcae
7
+ data.tar.gz: 6c3169184cb1b3de048689ab79c9e860c6f9892c5c6ff74eca63db07010d2c6883e8a24d802d6d0d29d4b69d427243631fb66bc990c1e922fdbe9132cd4095cd
@@ -3,6 +3,9 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [0.2.3]
7
+ - #4 validate env vars and use older storage client
8
+
6
9
  ## [0.2.2]
7
10
  - #3 fix test template
8
11
 
data/README.md CHANGED
@@ -27,7 +27,7 @@ end
27
27
 
28
28
  By default, this plugin will automatically create the:
29
29
 
30
- * [resource group](Pluginazurerm)
30
+ * [resource group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal)
31
31
  * [storage account](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal)
32
32
  * [storage container](https://docs.microsoft.com/en-us/cli/azure/storage/container?view=azure-cli-latest#az-storage-container-create)
33
33
 
@@ -35,15 +35,17 @@ The settings generally only apply if the resource does not yet exist yet and is
35
35
 
36
36
  ## Environment Variables
37
37
 
38
- To create the Azure resources like [resource group](Pluginazurerm), [storage account](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal), and [storage container](https://docs.microsoft.com/en-us/cli/azure/storage/container?view=azure-cli-latest#az-storage-container-create) these environment variables are required:
38
+ To create the Azure resources like [resource group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal), [storage account](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal), and [storage container](https://docs.microsoft.com/en-us/cli/azure/storage/container?view=azure-cli-latest#az-storage-container-create) these environment variables are required:
39
39
 
40
- AZURE_CLIENT_ID
41
- AZURE_CLIENT_SECRET
40
+ ARM_CLIENT_ID
41
+ ARM_CLIENT_SECRET
42
42
 
43
- There's other env variables can also be set, but are generally inferred.
43
+ Other env variables can be optionally set:
44
44
 
45
- AZURE_TENANT_ID
46
- AZURE_SUBSCRIPTION_ID
45
+ ARM_TENANT_ID
46
+ ARM_SUBSCRIPTION_ID
47
+
48
+ When not set, their values are inferred from the [az cli](https://docs.microsoft.com/en-us/cli/azure/) settings. For those interested, this is done with the [boltops-tools/azure_info](https://github.com/boltops-tools/azure_info) library.
47
49
 
48
50
  ## Contributing
49
51
 
@@ -3,21 +3,49 @@ module TerraspacePluginAzurerm::Clients
3
3
  extend Memoist
4
4
 
5
5
  def client_options
6
- client_id = ENV['AZURE_CLIENT_ID']
7
- client_secret = ENV['AZURE_CLIENT_SECRET']
8
- subscription_id = ENV['AZURE_SUBSCRIPTION_ID'] || AzureInfo.subscription_id
9
- tenant_id = ENV['AZURE_TENANT_ID'] || AzureInfo.tenant_id
6
+ o = base_client_options
7
+ o[:credentials] = credentials
8
+ o
9
+ end
10
+
11
+ def credentials
12
+ o = base_client_options
13
+ provider = MsRestAzure::ApplicationTokenProvider.new(o[:tenant_id], o[:client_id], o[:client_secret])
14
+ MsRest::TokenCredentials.new(provider)
15
+ end
10
16
 
11
- provider = MsRestAzure::ApplicationTokenProvider.new(tenant_id, client_id, client_secret)
12
- credentials = MsRest::TokenCredentials.new(provider)
17
+ def base_client_options
18
+ # AZURE_* is used by ruby generally.
19
+ # ARM_* is used by Terraform azurerm provider: https://www.terraform.io/docs/providers/azurerm/index.html
20
+ # Favor ARM_ because this plugin is designed for Terraspace.
21
+ client_id = ENV['ARM_CLIENT_ID'] || ENV['AZURE_CLIENT_ID']
22
+ client_secret = ENV['ARM_CLIENT_SECRET'] || ENV['AZURE_CLIENT_SECRET']
23
+ subscription_id = ENV['ARM_SUBSCRIPTION_ID'] || ENV['AZURE_SUBSCRIPTION_ID'] || AzureInfo.subscription_id
24
+ tenant_id = ENV['ARM_TENANT_ID'] || ENV['AZURE_TENANT_ID'] || AzureInfo.tenant_id
13
25
 
14
- {
26
+ o = {
15
27
  tenant_id: tenant_id,
16
28
  client_id: client_id,
17
29
  client_secret: client_secret,
18
30
  subscription_id: subscription_id,
19
- credentials: credentials
20
31
  }
32
+ validate_base_options!(o)
33
+ o
34
+ end
35
+ memoize :base_client_options
36
+
37
+ def validate_base_options!(options)
38
+ vars = []
39
+ options.each do |k,v|
40
+ vars << "ARM_#{k}".upcase if v.nil?
41
+ end
42
+ return if vars.empty?
43
+
44
+ logger.error "ERROR: Required Azure env variables missing. Please set these env variables:".color(:red)
45
+ vars.each do |var|
46
+ logger.error " #{var}"
47
+ end
48
+ exit 1
21
49
  end
22
50
  end
23
51
  end
@@ -6,8 +6,8 @@ module TerraspacePluginAzurerm::Clients
6
6
  extend Memoist
7
7
 
8
8
  # Include SDK modules to ease access to Storage classes.
9
- include Azure::Storage::Profiles::Latest::Mgmt
10
- include Azure::Storage::Profiles::Latest::Mgmt::Models
9
+ include Azure::Storage::Mgmt::V2019_06_01
10
+ include Azure::Storage::Mgmt::V2019_06_01::Models
11
11
 
12
12
  def storage_accounts
13
13
  mgmt.storage_accounts
@@ -19,7 +19,9 @@ module TerraspacePluginAzurerm::Clients
19
19
  memoize :blob_containers
20
20
 
21
21
  def mgmt
22
- Client.new(client_options)
22
+ client = StorageManagementClient.new(credentials)
23
+ client.subscription_id = client_options[:subscription_id]
24
+ client
23
25
  end
24
26
  memoize :mgmt
25
27
  end
@@ -1,3 +1,3 @@
1
1
  module TerraspacePluginAzurerm
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terraspace_plugin_azurerm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-20 00:00:00.000000000 Z
11
+ date: 2020-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: azure-storage-blob