knife-azure 2.0.11 → 3.0.4

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/azure/azure_interface.rb +1 -1
  3. data/lib/azure/custom_errors.rb +1 -1
  4. data/lib/azure/helpers.rb +1 -1
  5. data/lib/azure/resource_management/ARM_deployment_template.rb +1 -1
  6. data/lib/azure/resource_management/ARM_interface.rb +12 -14
  7. data/lib/azure/resource_management/vnet_config.rb +2 -2
  8. data/lib/azure/resource_management/windows_credentials.rb +5 -6
  9. data/lib/azure/service_management/ASM_interface.rb +1 -1
  10. data/lib/azure/service_management/ag.rb +1 -1
  11. data/lib/azure/service_management/certificate.rb +4 -4
  12. data/lib/azure/service_management/connection.rb +1 -1
  13. data/lib/azure/service_management/deploy.rb +1 -1
  14. data/lib/azure/service_management/disk.rb +1 -1
  15. data/lib/azure/service_management/host.rb +1 -1
  16. data/lib/azure/service_management/image.rb +1 -1
  17. data/lib/azure/service_management/loadbalancer.rb +1 -1
  18. data/lib/azure/service_management/rest.rb +1 -1
  19. data/lib/azure/service_management/role.rb +1 -1
  20. data/lib/azure/service_management/storageaccount.rb +1 -1
  21. data/lib/azure/service_management/utility.rb +1 -1
  22. data/lib/azure/service_management/vnet.rb +1 -1
  23. data/lib/chef/knife/azure_ag_create.rb +5 -5
  24. data/lib/chef/knife/azure_ag_list.rb +2 -2
  25. data/lib/chef/knife/azure_image_list.rb +4 -4
  26. data/lib/chef/knife/azure_internal-lb_create.rb +6 -6
  27. data/lib/chef/knife/azure_internal-lb_list.rb +2 -2
  28. data/lib/chef/knife/azure_server_create.rb +71 -71
  29. data/lib/chef/knife/azure_server_delete.rb +8 -8
  30. data/lib/chef/knife/azure_server_list.rb +2 -2
  31. data/lib/chef/knife/azure_server_show.rb +2 -2
  32. data/lib/chef/knife/azure_vnet_create.rb +6 -6
  33. data/lib/chef/knife/azure_vnet_list.rb +2 -2
  34. data/lib/chef/knife/azurerm_server_create.rb +45 -45
  35. data/lib/chef/knife/azurerm_server_delete.rb +9 -9
  36. data/lib/chef/knife/azurerm_server_list.rb +4 -4
  37. data/lib/chef/knife/azurerm_server_show.rb +4 -4
  38. data/lib/chef/knife/bootstrap/bootstrapper.rb +29 -35
  39. data/lib/chef/knife/bootstrap/common_bootstrap_options.rb +3 -5
  40. data/lib/chef/knife/bootstrap_azure.rb +16 -16
  41. data/lib/chef/knife/bootstrap_azurerm.rb +7 -7
  42. data/lib/chef/knife/{azure_base.rb → helpers/azure_base.rb} +48 -59
  43. data/lib/chef/knife/{azurerm_base.rb → helpers/azurerm_base.rb} +40 -51
  44. data/lib/knife-azure/version.rb +2 -2
  45. metadata +15 -29
@@ -2,7 +2,7 @@
2
2
  # Author:: Barry Davis (barryd@jetstreamsoftware.com)
3
3
  # Author:: Adam Jacob (<adam@chef.io>)
4
4
  # Author:: Seth Chisamore (<schisamo@chef.io>)
5
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
5
+ # Copyright:: Copyright (c) Chef Software Inc.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,7 +18,7 @@
18
18
  # limitations under the License.
19
19
  #
20
20
 
21
- require_relative "azure_base"
21
+ require_relative "helpers/azure_base"
22
22
  require "chef/knife/bootstrap"
23
23
  require "chef/knife/bootstrap/client_builder"
24
24
  require_relative "bootstrap/common_bootstrap_options"
@@ -196,7 +196,7 @@ class Chef
196
196
 
197
197
  config[:connection_port] = server_def[:port]
198
198
  config[:connection_protocol] = server_def[:connection_protocol]
199
- config[:chef_node_name] = locate_config_value(:chef_node_name) || server_name
199
+ config[:chef_node_name] = config[:chef_node_name] || server_name
200
200
  rescue => error
201
201
  ui.error("Something went wrong. Please use -VV option for more details.")
202
202
  Chef::Log.debug(error.backtrace.join("\n").to_s)
@@ -216,7 +216,7 @@ class Chef
216
216
  alias host_descriptor server_name
217
217
 
218
218
  def plugin_finalize
219
- if locate_config_value(:connection_protocol) == "cloud-api" && locate_config_value(:extended_logs)
219
+ if config[:connection_protocol] == "cloud-api" && config[:extended_logs]
220
220
  print "\nWaiting for the first chef-client run"
221
221
  fetch_chef_client_logs(Time.now, 30)
222
222
  end
@@ -228,8 +228,8 @@ class Chef
228
228
  def wait_until_virtual_machine_ready(retry_interval_in_seconds = 30)
229
229
  vm_status = nil
230
230
  begin
231
- azure_vm_startup_timeout = locate_config_value(:azure_vm_startup_timeout).to_i
232
- azure_vm_ready_timeout = locate_config_value(:azure_vm_ready_timeout).to_i
231
+ azure_vm_startup_timeout = config[:azure_vm_startup_timeout].to_i
232
+ azure_vm_ready_timeout = config[:azure_vm_ready_timeout].to_i
233
233
  vm_status = wait_for_virtual_machine_state(:vm_status_provisioning, azure_vm_startup_timeout, retry_interval_in_seconds)
234
234
  if vm_status != :vm_status_ready
235
235
  begin
@@ -242,7 +242,7 @@ class Chef
242
242
 
243
243
  msg_server_summary(@server)
244
244
 
245
- if locate_config_value(:connection_protocol) == "cloud-api"
245
+ if config[:connection_protocol] == "cloud-api"
246
246
  extension_status = wait_for_resource_extension_state(:wagent_provisioning, 5, retry_interval_in_seconds)
247
247
 
248
248
  if extension_status != :extension_installing
@@ -323,7 +323,7 @@ class Chef
323
323
  end
324
324
 
325
325
  def get_virtual_machine_status
326
- @server = service.get_role_server(locate_config_value(:azure_dns_name), locate_config_value(:azure_vm_name))
326
+ @server = service.get_role_server(config[:azure_dns_name], config[:azure_vm_name])
327
327
  if @server.nil?
328
328
  :vm_status_not_detected
329
329
  else
@@ -340,14 +340,14 @@ class Chef
340
340
  end
341
341
 
342
342
  def get_extension_status
343
- deployment_name = service.deployment_name(locate_config_value(:azure_dns_name))
344
- deployment = service.deployment("hostedservices/#{locate_config_value(:azure_dns_name)}/deployments/#{deployment_name}")
343
+ deployment_name = service.deployment_name(config[:azure_dns_name])
344
+ deployment = service.deployment("hostedservices/#{config[:azure_dns_name]}/deployments/#{deployment_name}")
345
345
  extension_status = {}
346
346
 
347
347
  if deployment.at_css("Deployment Name") != nil
348
348
  role_list_xml = deployment.css("RoleInstanceList RoleInstance")
349
349
  role_list_xml.each do |role|
350
- if role.at_css("RoleName").text == locate_config_value(:azure_vm_name)
350
+ if role.at_css("RoleName").text == config[:azure_vm_name]
351
351
  lnx_waagent_fail_msg = "Failed to deserialize the status reported by the Guest Agent"
352
352
  waagent_status_msg = role.at_css("GuestAgentStatus FormattedMessage Message").text
353
353
  if role.at_css("GuestAgentStatus Status").text == "Ready"
@@ -384,32 +384,32 @@ class Chef
384
384
 
385
385
  def create_server_def
386
386
  server_def = {
387
- azure_storage_account: locate_config_value(:azure_storage_account),
388
- azure_api_host_name: locate_config_value(:azure_api_host_name),
389
- azure_dns_name: locate_config_value(:azure_dns_name),
390
- azure_vm_name: locate_config_value(:azure_vm_name),
391
- azure_service_location: locate_config_value(:azure_service_location),
392
- azure_os_disk_name: locate_config_value(:azure_os_disk_name),
393
- azure_source_image: locate_config_value(:azure_source_image),
394
- azure_vm_size: locate_config_value(:azure_vm_size),
395
- tcp_endpoints: locate_config_value(:tcp_endpoints),
396
- udp_endpoints: locate_config_value(:udp_endpoints),
397
- connection_protocol: locate_config_value(:connection_protocol),
398
- azure_connect_to_existing_dns: locate_config_value(:azure_connect_to_existing_dns),
399
- connection_user: locate_config_value(:connection_user),
400
- azure_availability_set: locate_config_value(:azure_availability_set),
401
- azure_affinity_group: locate_config_value(:azure_affinity_group),
402
- azure_network_name: locate_config_value(:azure_network_name),
403
- azure_subnet_name: locate_config_value(:azure_subnet_name),
404
- ssl_cert_fingerprint: locate_config_value(:thumbprint),
405
- cert_path: locate_config_value(:cert_path),
406
- cert_password: locate_config_value(:cert_passphrase),
407
- winrm_ssl: locate_config_value(:winrm_ssl),
408
- winrm_max_timeout: locate_config_value(:winrm_max_timeout).to_i * 60 * 1000, # converting minutes to milliseconds
409
- winrm_max_memory_per_shell: locate_config_value(:winrm_max_memory_per_shell),
387
+ azure_storage_account: config[:azure_storage_account],
388
+ azure_api_host_name: config[:azure_api_host_name],
389
+ azure_dns_name: config[:azure_dns_name],
390
+ azure_vm_name: config[:azure_vm_name],
391
+ azure_service_location: config[:azure_service_location],
392
+ azure_os_disk_name: config[:azure_os_disk_name],
393
+ azure_source_image: config[:azure_source_image],
394
+ azure_vm_size: config[:azure_vm_size],
395
+ tcp_endpoints: config[:tcp_endpoints],
396
+ udp_endpoints: config[:udp_endpoints],
397
+ connection_protocol: config[:connection_protocol],
398
+ azure_connect_to_existing_dns: config[:azure_connect_to_existing_dns],
399
+ connection_user: config[:connection_user],
400
+ azure_availability_set: config[:azure_availability_set],
401
+ azure_affinity_group: config[:azure_affinity_group],
402
+ azure_network_name: config[:azure_network_name],
403
+ azure_subnet_name: config[:azure_subnet_name],
404
+ ssl_cert_fingerprint: config[:thumbprint],
405
+ cert_path: config[:cert_path],
406
+ cert_password: config[:cert_passphrase],
407
+ winrm_ssl: config[:winrm_ssl],
408
+ winrm_max_timeout: config[:winrm_max_timeout].to_i * 60 * 1000, # converting minutes to milliseconds
409
+ winrm_max_memory_per_shell: config[:winrm_max_memory_per_shell],
410
410
  }
411
411
 
412
- if locate_config_value(:connection_protocol) == "cloud-api"
412
+ if config[:connection_protocol] == "cloud-api"
413
413
  server_def[:chef_extension] = get_chef_extension_name
414
414
  server_def[:chef_extension_publisher] = get_chef_extension_publisher
415
415
  server_def[:chef_extension_version] = get_chef_extension_version
@@ -420,20 +420,20 @@ class Chef
420
420
  # We can specify the AdminUsername after API version 2013-03-01. However, in this API version,
421
421
  # the AdminUsername is a required parameter.
422
422
  # Also, the user name cannot be Administrator, Admin, Admin1 etc, for enhanced security (provided by Azure)
423
- if locate_config_value(:connection_user).nil? || locate_config_value(:connection_user).downcase =~ /admin*/
423
+ if config[:connection_user].nil? || config[:connection_user].downcase =~ /admin*/
424
424
  ui.error("Connection User is compulsory parameter and it cannot be named 'admin*'")
425
425
  exit 1
426
426
  # take cares of when user name contains domain
427
427
  # azure add role api doesn't support '\\' in user name
428
- elsif locate_config_value(:connection_user).split('\\').length.eql?(2)
429
- server_def[:connection_user] = locate_config_value(:connection_user).split('\\')[1]
428
+ elsif config[:connection_user].split('\\').length.eql?(2)
429
+ server_def[:connection_user] = config[:connection_user].split('\\')[1]
430
430
  end
431
431
  else
432
- unless locate_config_value(:connection_user)
432
+ unless config[:connection_user]
433
433
  ui.error("Connection User is compulsory parameter")
434
434
  exit 1
435
435
  end
436
- unless locate_config_value(:connection_password) || locate_config_value(:ssh_identity_file)
436
+ unless config[:connection_password] || config[:ssh_identity_file]
437
437
  ui.error("Specify either SSH Key or SSH Password")
438
438
  exit 1
439
439
  end
@@ -442,52 +442,52 @@ class Chef
442
442
 
443
443
  if is_image_windows?
444
444
  server_def[:os_type] = "Windows"
445
- server_def[:admin_password] = locate_config_value(:connection_password)
446
- server_def[:connection_protocol] = locate_config_value(:connection_protocol) || "winrm"
445
+ server_def[:admin_password] = config[:connection_password]
446
+ server_def[:connection_protocol] = config[:connection_protocol] || "winrm"
447
447
  else
448
448
  server_def[:os_type] = "Linux"
449
- server_def[:connection_protocol] = locate_config_value(:connection_protocol).nil? || locate_config_value(:connection_protocol) == "winrm" ? "ssh" : locate_config_value(:connection_protocol)
450
- server_def[:connection_user] = locate_config_value(:connection_user)
451
- server_def[:connection_password] = locate_config_value(:connection_password)
452
- server_def[:ssh_identity_file] = locate_config_value(:ssh_identity_file)
453
- server_def[:identity_file_passphrase] = locate_config_value(:identity_file_passphrase)
449
+ server_def[:connection_protocol] = config[:connection_protocol].nil? || config[:connection_protocol] == "winrm" ? "ssh" : config[:connection_protocol]
450
+ server_def[:connection_user] = config[:connection_user]
451
+ server_def[:connection_password] = config[:connection_password]
452
+ server_def[:ssh_identity_file] = config[:ssh_identity_file]
453
+ server_def[:identity_file_passphrase] = config[:identity_file_passphrase]
454
454
  end
455
455
 
456
- azure_connect_to_existing_dns = locate_config_value(:azure_connect_to_existing_dns)
456
+ azure_connect_to_existing_dns = config[:azure_connect_to_existing_dns]
457
457
  if is_image_windows? && server_def[:connection_protocol] == "winrm"
458
- port = locate_config_value(:connection_port) || "5985"
459
- port = locate_config_value(:connection_port) || Random.rand(64000) + 1000 if azure_connect_to_existing_dns
458
+ port = config[:connection_port] || "5985"
459
+ port = config[:connection_port] || Random.rand(64000) + 1000 if azure_connect_to_existing_dns
460
460
  elsif server_def[:connection_protocol] == "ssh"
461
- port = locate_config_value(:connection_port) || "22"
462
- port = locate_config_value(:connection_port) || Random.rand(64000) + 1000 if azure_connect_to_existing_dns
461
+ port = config[:connection_port] || "22"
462
+ port = config[:connection_port] || Random.rand(64000) + 1000 if azure_connect_to_existing_dns
463
463
  end
464
464
 
465
465
  server_def[:port] = port
466
466
 
467
- server_def[:is_vm_image] = service.vm_image?(locate_config_value(:azure_source_image))
468
- server_def[:azure_domain_name] = locate_config_value(:azure_domain_name) if locate_config_value(:azure_domain_name)
467
+ server_def[:is_vm_image] = service.vm_image?(config[:azure_source_image])
468
+ server_def[:azure_domain_name] = config[:azure_domain_name] if config[:azure_domain_name]
469
469
 
470
- if locate_config_value(:azure_domain_user)
470
+ if config[:azure_domain_user]
471
471
  # extract domain name since it should be part of username
472
- case locate_config_value(:azure_domain_user)
472
+ case config[:azure_domain_user]
473
473
  when /(\S+)\\(.+)/ # format - fully-qualified-DNS-domain\username
474
- server_def[:azure_domain_name] = $1 if locate_config_value(:azure_domain_name).nil?
474
+ server_def[:azure_domain_name] = $1 if config[:azure_domain_name].nil?
475
475
  server_def[:azure_user_domain_name] = $1
476
476
  server_def[:azure_domain_user] = $2
477
477
  when /(.+)@(\S+)/ # format - user@fully-qualified-DNS-domain
478
- server_def[:azure_domain_name] = $2 if locate_config_value(:azure_domain_name).nil?
478
+ server_def[:azure_domain_name] = $2 if config[:azure_domain_name].nil?
479
479
  server_def[:azure_user_domain_name] = $2
480
480
  server_def[:azure_domain_user] = $1
481
481
  else
482
- if locate_config_value(:azure_domain_name).nil?
482
+ if config[:azure_domain_name].nil?
483
483
  ui.error('--azure-domain-name should be specified if --azure-domain-user is not in one of the following formats: fully-qualified-DNS-domain\username, user@fully-qualified-DNS-domain')
484
484
  exit 1
485
485
  end
486
- server_def[:azure_domain_user] = locate_config_value(:azure_domain_user)
486
+ server_def[:azure_domain_user] = config[:azure_domain_user]
487
487
  end
488
488
  end
489
- server_def[:azure_domain_passwd] = locate_config_value(:azure_domain_passwd)
490
- server_def[:azure_domain_ou_dn] = locate_config_value(:azure_domain_ou_dn)
489
+ server_def[:azure_domain_passwd] = config[:azure_domain_passwd]
490
+ server_def[:azure_domain_ou_dn] = config[:azure_domain_ou_dn]
491
491
 
492
492
  server_def
493
493
  end
@@ -499,17 +499,17 @@ class Chef
499
499
  end
500
500
 
501
501
  def set_configs
502
- unless locate_config_value(:connection_user).nil?
503
- config[:connection_user] = locate_config_value(:connection_user)
502
+ unless config[:connection_user].nil?
503
+ config[:connection_user] = config[:connection_user]
504
504
  end
505
505
 
506
- unless locate_config_value(:connection_password).nil?
507
- config[:connection_password] = locate_config_value(:connection_password)
506
+ unless config[:connection_password].nil?
507
+ config[:connection_password] = config[:connection_password]
508
508
  end
509
509
 
510
- config[:azure_dns_name] = get_dns_name(locate_config_value(:azure_dns_name))
511
- config[:azure_vm_name] = locate_config_value(:azure_dns_name) unless locate_config_value(:azure_vm_name)
512
- config[:chef_node_name] = locate_config_value(:azure_vm_name) unless locate_config_value(:chef_node_name)
510
+ config[:azure_dns_name] = get_dns_name(config[:azure_dns_name])
511
+ config[:azure_vm_name] = config[:azure_dns_name] unless config[:azure_vm_name]
512
+ config[:chef_node_name] = config[:azure_vm_name] unless config[:chef_node_name]
513
513
  end
514
514
 
515
515
  # This is related to Windows VM's specifically and computer name
@@ -520,10 +520,10 @@ class Chef
520
520
  def get_dns_name(azure_dns_name, prefix = "az-")
521
521
  return azure_dns_name unless azure_dns_name.nil?
522
522
 
523
- if locate_config_value(:azure_vm_name).nil?
523
+ if config[:azure_vm_name].nil?
524
524
  (prefix + SecureRandom.hex((MAX_VM_NAME_CHARACTERS - prefix.length) / 2))
525
525
  else
526
- locate_config_value(:azure_vm_name)
526
+ config[:azure_vm_name]
527
527
  end
528
528
  end
529
529
  end
@@ -2,7 +2,7 @@
2
2
  # Author:: Barry Davis (barryd@jetstreamsoftware.com)
3
3
  # Author:: Adam Jacob (<adam@chef.io>)
4
4
  # Author:: Seth Chisamore (<schisamo@chef.io>)
5
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
5
+ # Copyright:: Copyright (c) Chef Software Inc.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,7 +18,7 @@
18
18
  # limitations under the License.
19
19
  #
20
20
 
21
- require_relative "azure_base"
21
+ require_relative "helpers/azure_base"
22
22
 
23
23
  class Chef
24
24
  class Knife
@@ -94,7 +94,7 @@ class Chef
94
94
  end
95
95
 
96
96
  def validate_disk_and_storage
97
- if locate_config_value(:preserve_azure_os_disk) && locate_config_value(:delete_azure_storage_account)
97
+ if config[:preserve_azure_os_disk] && config[:delete_azure_storage_account]
98
98
  ui.warn("Cannot delete storage account while keeping OS Disk. Please set any one option.")
99
99
  exit
100
100
  else
@@ -107,11 +107,11 @@ class Chef
107
107
  validate_disk_and_storage
108
108
  @name_args.each do |name|
109
109
  begin
110
- service.delete_server( { name: name, preserve_azure_os_disk: locate_config_value(:preserve_azure_os_disk),
111
- preserve_azure_vhd: locate_config_value(:preserve_azure_vhd),
112
- preserve_azure_dns_name: locate_config_value(:preserve_azure_dns_name),
113
- delete_azure_storage_account: locate_config_value(:delete_azure_storage_account),
114
- wait: locate_config_value(:wait) } )
110
+ service.delete_server( { name: name, preserve_azure_os_disk: config[:preserve_azure_os_disk],
111
+ preserve_azure_vhd: config[:preserve_azure_vhd],
112
+ preserve_azure_dns_name: config[:preserve_azure_dns_name],
113
+ delete_azure_storage_account: config[:delete_azure_storage_account],
114
+ wait: config[:wait] } )
115
115
 
116
116
  if config[:purge]
117
117
  node_to_delete = config[:chef_node_name] || name
@@ -2,7 +2,7 @@
2
2
  # Author:: Barry Davis (barryd@jetstreamsoftware.com)
3
3
  # Author:: Seth Chisamore (<schisamo@chef.io>)
4
4
  # Author:: Adam Jacob (<adam@chef.io>)
5
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
5
+ # Copyright:: Copyright (c) Chef Software Inc.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,7 +18,7 @@
18
18
  # limitations under the License.
19
19
  #
20
20
 
21
- require_relative "azure_base"
21
+ require_relative "helpers/azure_base"
22
22
 
23
23
  class Chef
24
24
  class Knife
@@ -2,7 +2,7 @@
2
2
  # Author:: Barry Davis (barryd@jetstreamsoftware.com)
3
3
  # Author:: Seth Chisamore (<schisamo@chef.io>)
4
4
  # Author:: Adam Jacob (<adam@chef.io>)
5
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
5
+ # Copyright:: Copyright (c) Chef Software Inc.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,7 +18,7 @@
18
18
  # limitations under the License.
19
19
  #
20
20
 
21
- require_relative "azure_base"
21
+ require_relative "helpers/azure_base"
22
22
 
23
23
  class Chef
24
24
  class Knife
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Jeff Mendoza (jeffmendoza@live.com)
3
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require_relative "azure_base"
19
+ require_relative "helpers/azure_base"
20
20
 
21
21
  class Chef
22
22
  class Knife
@@ -50,10 +50,10 @@ class Chef
50
50
  validate_asm_keys!(:azure_network_name, :azure_affinity_group, :azure_address_space)
51
51
 
52
52
  params = {
53
- azure_vnet_name: locate_config_value(:azure_network_name),
54
- azure_ag_name: locate_config_value(:azure_affinity_group),
55
- azure_address_space: locate_config_value(:azure_address_space),
56
- azure_subnet_name: locate_config_value(:azure_subnet_name) || "Subnet-#{Random.rand(10)}",
53
+ azure_vnet_name: config[:azure_network_name],
54
+ azure_ag_name: config[:azure_affinity_group],
55
+ azure_address_space: config[:azure_address_space],
56
+ azure_subnet_name: config[:azure_subnet_name] || "Subnet-#{Random.rand(10)}",
57
57
  }
58
58
 
59
59
  rsp = service.create_vnet(params)
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Jeff Mendoza (jeffmendoza@live.com)
3
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require_relative "azure_base"
19
+ require_relative "helpers/azure_base"
20
20
 
21
21
  class Chef
22
22
  class Knife
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Aliasgar Batterywala (aliasgar.batterywala@clogeny.com)
3
- # Copyright:: Copyright 2010-2019, Chef Software Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require_relative "azurerm_base"
19
+ require_relative "helpers/azurerm_base"
20
20
  require "chef/knife/bootstrap"
21
21
  require "chef/knife/bootstrap/client_builder"
22
22
  require_relative "bootstrap/common_bootstrap_options"
@@ -32,7 +32,7 @@ class Chef
32
32
 
33
33
  deps do
34
34
  require "securerandom"
35
- include Knife::AzurermBase.load_deps
35
+ include Knife::AzurermBase
36
36
  end
37
37
 
38
38
  banner "knife azurerm server create (options)"
@@ -156,55 +156,55 @@ class Chef
156
156
 
157
157
  def create_server_def
158
158
  server_def = {
159
- azure_resource_group_name: locate_config_value(:azure_resource_group_name),
160
- azure_storage_account: locate_config_value(:azure_storage_account),
161
- azure_storage_account_type: locate_config_value(:azure_storage_account_type),
162
- azure_vm_name: locate_config_value(:azure_vm_name),
163
- azure_service_location: locate_config_value(:azure_service_location),
164
- azure_os_disk_name: locate_config_value(:azure_os_disk_name),
165
- azure_os_disk_caching: locate_config_value(:azure_os_disk_caching),
166
- azure_os_disk_create_option: locate_config_value(:azure_os_disk_create_option),
167
- azure_vm_size: locate_config_value(:azure_vm_size),
168
- azure_image_reference_publisher: locate_config_value(:azure_image_reference_publisher),
169
- azure_image_reference_offer: locate_config_value(:azure_image_reference_offer),
170
- azure_image_reference_sku: locate_config_value(:azure_image_reference_sku),
171
- azure_image_reference_version: locate_config_value(:azure_image_reference_version),
172
- azure_availability_set: locate_config_value(:azure_availability_set),
173
- azure_vnet_name: locate_config_value(:azure_vnet_name),
174
- azure_vnet_subnet_name: locate_config_value(:azure_vnet_subnet_name),
175
- ssl_cert_fingerprint: locate_config_value(:thumbprint),
176
- cert_path: locate_config_value(:cert_path),
177
- cert_password: locate_config_value(:cert_passphrase),
178
- vnet_subnet_address_prefix: locate_config_value(:vnet_subnet_address_prefix),
179
- server_count: locate_config_value(:server_count),
159
+ azure_resource_group_name: config[:azure_resource_group_name],
160
+ azure_storage_account: config[:azure_storage_account],
161
+ azure_storage_account_type: config[:azure_storage_account_type],
162
+ azure_vm_name: config[:azure_vm_name],
163
+ azure_service_location: config[:azure_service_location],
164
+ azure_os_disk_name: config[:azure_os_disk_name],
165
+ azure_os_disk_caching: config[:azure_os_disk_caching],
166
+ azure_os_disk_create_option: config[:azure_os_disk_create_option],
167
+ azure_vm_size: config[:azure_vm_size],
168
+ azure_image_reference_publisher: config[:azure_image_reference_publisher],
169
+ azure_image_reference_offer: config[:azure_image_reference_offer],
170
+ azure_image_reference_sku: config[:azure_image_reference_sku],
171
+ azure_image_reference_version: config[:azure_image_reference_version],
172
+ azure_availability_set: config[:azure_availability_set],
173
+ azure_vnet_name: config[:azure_vnet_name],
174
+ azure_vnet_subnet_name: config[:azure_vnet_subnet_name],
175
+ ssl_cert_fingerprint: config[:thumbprint],
176
+ cert_path: config[:cert_path],
177
+ cert_password: config[:cert_passphrase],
178
+ vnet_subnet_address_prefix: config[:vnet_subnet_address_prefix],
179
+ server_count: config[:server_count],
180
180
  }
181
181
 
182
- server_def[:tcp_endpoints] = locate_config_value(:tcp_endpoints) if locate_config_value(:tcp_endpoints)
182
+ server_def[:tcp_endpoints] = config[:tcp_endpoints] if config[:tcp_endpoints]
183
183
 
184
184
  # We assign azure_vm_name to chef_node_name If node name is nill because storage account name is combination of hash value and node name.
185
- config[:chef_node_name] ||= locate_config_value(:azure_vm_name)
185
+ config[:chef_node_name] ||= config[:azure_vm_name]
186
186
 
187
- server_def[:azure_storage_account] = locate_config_value(:azure_vm_name) if server_def[:azure_storage_account].nil?
187
+ server_def[:azure_storage_account] = config[:azure_vm_name] if server_def[:azure_storage_account].nil?
188
188
  server_def[:azure_storage_account] = server_def[:azure_storage_account].gsub(/[!@#$%^&*()_-]/, "")
189
189
 
190
- server_def[:azure_os_disk_name] = locate_config_value(:azure_vm_name) if server_def[:azure_os_disk_name].nil?
190
+ server_def[:azure_os_disk_name] = config[:azure_vm_name] if server_def[:azure_os_disk_name].nil?
191
191
  server_def[:azure_os_disk_name] = server_def[:azure_os_disk_name].gsub(/[!@#$%^&*()_-]/, "")
192
192
 
193
- server_def[:azure_vnet_name] = locate_config_value(:azure_vm_name) if server_def[:azure_vnet_name].nil?
194
- server_def[:azure_vnet_subnet_name] = locate_config_value(:azure_vm_name) if locate_config_value(:azure_vnet_subnet_name).nil?
193
+ server_def[:azure_vnet_name] = config[:azure_vm_name] if server_def[:azure_vnet_name].nil?
194
+ server_def[:azure_vnet_subnet_name] = config[:azure_vm_name] if config[:azure_vnet_subnet_name].nil?
195
195
 
196
196
  server_def[:chef_extension] = get_chef_extension_name
197
197
  server_def[:chef_extension_publisher] = get_chef_extension_publisher
198
- server_def[:chef_extension_version] = locate_config_value(:azure_chef_extension_version)
198
+ server_def[:chef_extension_version] = config[:azure_chef_extension_version]
199
199
  server_def[:chef_extension_public_param] = get_chef_extension_public_params
200
200
  server_def[:chef_extension_private_param] = get_chef_extension_private_params
201
201
  server_def[:auto_upgrade_minor_version] = false
202
- server_def[:connection_user] = locate_config_value(:connection_user)
203
- server_def[:disablePasswordAuthentication] = if locate_config_value(:ssh_public_key)
204
- server_def[:ssh_public_key] = File.read(locate_config_value(:ssh_public_key))
202
+ server_def[:connection_user] = config[:connection_user]
203
+ server_def[:disablePasswordAuthentication] = if config[:ssh_public_key]
204
+ server_def[:ssh_public_key] = File.read(config[:ssh_public_key])
205
205
  "true"
206
206
  else
207
- server_def[:connection_password] = locate_config_value(:connection_password)
207
+ server_def[:connection_password] = config[:connection_password]
208
208
  "false"
209
209
  end
210
210
 
@@ -229,7 +229,7 @@ class Chef
229
229
  end
230
230
 
231
231
  def validate_ohai_hints
232
- hint_values = locate_config_value(:ohai_hints).split(",")
232
+ hint_values = config[:ohai_hints].split(",")
233
233
  hint_values.each do |hint|
234
234
  unless is_supported_ohai_hint?(hint)
235
235
  raise ArgumentError, "Ohai Hint name #{hint} passed is not supported. Please run the command help to see the list of supported values."
@@ -245,22 +245,22 @@ class Chef
245
245
  end
246
246
 
247
247
  def set_configs
248
- unless locate_config_value(:connection_user).nil?
249
- config[:connection_user] = locate_config_value(:connection_user)
248
+ unless config[:connection_user].nil?
249
+ config[:connection_user] = config[:connection_user]
250
250
  end
251
251
 
252
- unless locate_config_value(:connection_password).nil?
253
- config[:connection_password] = locate_config_value(:connection_password)
252
+ unless config[:connection_password].nil?
253
+ config[:connection_password] = config[:connection_password]
254
254
  end
255
255
  end
256
256
 
257
257
  def set_default_image_reference!
258
258
  begin
259
- if locate_config_value(:azure_image_os_type)
259
+ if config[:azure_image_os_type]
260
260
  validate_publisher_and_offer
261
261
  ## if azure_image_os_type is given (with or without azure-image-reference-sku) and other image reference parameters are not given,
262
262
  # set default image reference parameters
263
- case locate_config_value(:azure_image_os_type)
263
+ case config[:azure_image_os_type]
264
264
  when "ubuntu"
265
265
  set_os_image("Canonical", "UbuntuServer", "14.04.2-LTS")
266
266
  when "centos"
@@ -292,15 +292,15 @@ class Chef
292
292
  def set_os_image(publisher, img_offer, default_os_version)
293
293
  config[:azure_image_reference_publisher] = publisher
294
294
  config[:azure_image_reference_offer] = img_offer
295
- config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : default_os_version
295
+ config[:azure_image_reference_sku] = config[:azure_image_reference_sku] ? config[:azure_image_reference_sku] : default_os_version
296
296
  end
297
297
 
298
298
  def is_image_os_type?
299
- locate_config_value(:azure_image_reference_publisher) && locate_config_value(:azure_image_reference_offer) && locate_config_value(:azure_image_reference_sku) && locate_config_value(:azure_image_reference_version)
299
+ config[:azure_image_reference_publisher] && config[:azure_image_reference_offer] && config[:azure_image_reference_sku] && config[:azure_image_reference_version]
300
300
  end
301
301
 
302
302
  def validate_publisher_and_offer
303
- if locate_config_value(:azure_image_reference_publisher) || locate_config_value(:azure_image_reference_offer)
303
+ if config[:azure_image_reference_publisher] || config[:azure_image_reference_offer]
304
304
  # if azure_image_os_type is given and any of the other image reference parameters like publisher or offer are also given,
305
305
  # raise error
306
306
  raise ArgumentError, 'Please specify either --azure-image-os-type OR --azure-image-os-type with --azure-image-reference-sku or 4 image reference parameters i.e.