knife-openstack 1.3.2 → 2.0.0

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +21 -0
  3. data/.gitignore +5 -0
  4. data/.travis.yml +9 -7
  5. data/CHANGELOG.md +174 -92
  6. data/Gemfile +15 -3
  7. data/README.md +96 -68
  8. data/Rakefile +19 -6
  9. data/knife-openstack.gemspec +17 -15
  10. data/lib/chef/knife/cloud/openstack_server_create_options.rb +36 -35
  11. data/lib/chef/knife/cloud/openstack_service.rb +7 -6
  12. data/lib/chef/knife/cloud/openstack_service_options.rb +18 -17
  13. data/lib/chef/knife/openstack_flavor_list.rb +11 -10
  14. data/lib/chef/knife/openstack_floating_ip_allocate.rb +13 -12
  15. data/lib/chef/knife/openstack_floating_ip_associate.rb +9 -8
  16. data/lib/chef/knife/openstack_floating_ip_disassociate.rb +9 -8
  17. data/lib/chef/knife/openstack_floating_ip_list.rb +10 -9
  18. data/lib/chef/knife/openstack_floating_ip_release.rb +7 -6
  19. data/lib/chef/knife/openstack_group_list.rb +13 -12
  20. data/lib/chef/knife/openstack_helpers.rb +8 -7
  21. data/lib/chef/knife/openstack_image_list.rb +14 -13
  22. data/lib/chef/knife/openstack_network_list.rb +10 -9
  23. data/lib/chef/knife/openstack_server_create.rb +57 -56
  24. data/lib/chef/knife/openstack_server_delete.rb +7 -6
  25. data/lib/chef/knife/openstack_server_list.rb +16 -15
  26. data/lib/chef/knife/openstack_server_show.rb +17 -16
  27. data/lib/chef/knife/openstack_volume_list.rb +10 -9
  28. data/lib/knife-openstack/version.rb +3 -2
  29. data/spec/functional/flavor_list_func_spec.rb +13 -12
  30. data/spec/functional/floating_ip_list_func_spec.rb +14 -13
  31. data/spec/functional/group_list_func_spec.rb +29 -28
  32. data/spec/functional/image_list_func_spec.rb +15 -14
  33. data/spec/functional/network_list_func_spec.rb +13 -12
  34. data/spec/functional/server_create_func_spec.rb +29 -28
  35. data/spec/functional/server_delete_func_spec.rb +18 -17
  36. data/spec/functional/server_list_func_spec.rb +43 -42
  37. data/spec/functional/server_show_func_spec.rb +7 -6
  38. data/spec/functional/volume_list_func_spec.rb +12 -11
  39. data/spec/integration/cleanup.rb +6 -5
  40. data/spec/integration/openstack_spec.rb +287 -286
  41. data/spec/spec_context.rb +10 -9
  42. data/spec/spec_helper.rb +38 -37
  43. data/spec/unit/openstack_flavor_list_spec.rb +6 -5
  44. data/spec/unit/openstack_floating_ip_allocate_spec.rb +14 -13
  45. data/spec/unit/openstack_floating_ip_associate_spec.rb +11 -10
  46. data/spec/unit/openstack_floating_ip_disassociate_spec.rb +12 -11
  47. data/spec/unit/openstack_floating_ip_list_spec.rb +6 -5
  48. data/spec/unit/openstack_floating_ip_release_spec.rb +13 -12
  49. data/spec/unit/openstack_group_list_spec.rb +11 -10
  50. data/spec/unit/openstack_image_list_spec.rb +6 -5
  51. data/spec/unit/openstack_network_list_spec.rb +8 -7
  52. data/spec/unit/openstack_server_create_spec.rb +131 -130
  53. data/spec/unit/openstack_server_delete_spec.rb +8 -7
  54. data/spec/unit/openstack_server_list_spec.rb +6 -5
  55. data/spec/unit/openstack_server_show_spec.rb +10 -9
  56. data/spec/unit/openstack_service_spec.rb +26 -25
  57. data/spec/unit/openstack_volume_list_spec.rb +6 -5
  58. metadata +9 -105
data/Rakefile CHANGED
@@ -1,14 +1,27 @@
1
+ # frozen_string_literal: true
1
2
  # Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
2
- # Copyright:: Copyright (c) 2013 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) 2013-2016 Chef Software, Inc.
3
4
 
4
- require 'bundler'
5
- require 'bundler/setup'
6
- require 'bundler/gem_tasks'
7
- require 'rubocop/rake_task'
8
- require 'rspec/core/rake_task'
5
+ require "bundler"
6
+ require "bundler/setup"
7
+ require "bundler/gem_tasks"
8
+ require "chefstyle"
9
+ require "rubocop/rake_task"
10
+ require "rspec/core/rake_task"
11
+ require "github_changelog_generator/task"
12
+ require "knife-openstack/version"
9
13
 
10
14
  RuboCop::RakeTask.new
11
15
 
12
16
  RSpec::Core::RakeTask.new(:spec)
13
17
 
14
18
  task default: [:rubocop, :spec]
19
+
20
+ GitHubChangelogGenerator::RakeTask.new :changelog do |config|
21
+ config.future_release = Knife::OpenStack::VERSION
22
+ config.max_issues = 0
23
+ config.add_issues_wo_labels = false
24
+ config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature".split(",")
25
+ config.bug_labels = "bug,Bug,Improvement,Upstream Bug".split(",")
26
+ config.exclude_labels = "duplicate,question,invalid,wontfix,no_changelog,Exclude From Changelog,Question,Discussion,Tech Cleanup".split(",")
27
+ end
@@ -1,28 +1,30 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
- require 'knife-openstack/version'
2
+ # frozen_string_literal: true
3
+ $LOAD_PATH.push File.expand_path("../lib", __FILE__)
4
+ require "knife-openstack/version"
4
5
 
5
6
  Gem::Specification.new do |s|
6
- s.name = 'knife-openstack'
7
+ s.name = "knife-openstack"
7
8
  s.version = Knife::OpenStack::VERSION
8
- s.version = "#{s.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS']
9
+ s.version = "#{s.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV["TRAVIS"]
9
10
  s.platform = Gem::Platform::RUBY
10
11
  s.has_rdoc = true
11
- s.extra_rdoc_files = ['README.md', 'LICENSE']
12
- s.authors = ['JJ Asghar']
13
- s.email = ['jj@chef.io']
14
- s.homepage = 'https://github.com/chef/knife-openstack'
15
- s.summary = 'A Chef knife plugin for OpenStack clouds.'
16
- s.description = 'A Chef knife plugin for OpenStack clouds.'
12
+ s.extra_rdoc_files = ["README.md", "LICENSE"]
13
+ s.authors = ["JJ Asghar"]
14
+ s.email = ["jj@chef.io"]
15
+ s.homepage = "https://github.com/chef/knife-openstack"
16
+ s.summary = "A Chef knife plugin for OpenStack clouds."
17
+ s.description = "A Chef knife plugin for OpenStack clouds."
18
+ s.license = "Apache-2.0"
17
19
 
18
20
  s.files = `git ls-files`.split("\n")
19
21
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
22
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
21
- s.require_paths = ['lib']
23
+ s.require_paths = ["lib"]
22
24
 
23
- s.add_dependency 'fog', '~> 1.23'
24
- s.add_dependency 'chef', '>= 11'
25
- s.add_dependency 'knife-cloud', '~> 1.2.0'
25
+ s.required_ruby_version = ">= 2.2.2"
26
26
 
27
- %w(bundler rubocop rake rspec-core rspec-expectations rspec-mocks rspec_junit_formatter).each { |gem| s.add_development_dependency gem }
27
+ s.add_dependency "fog", "~> 1.23"
28
+ s.add_dependency "chef", ">= 12"
29
+ s.add_dependency "knife-cloud", "~> 1.2.0"
28
30
  end
@@ -1,5 +1,6 @@
1
1
 
2
- require 'chef/knife/cloud/server/create_options'
2
+ # frozen_string_literal: true
3
+ require "chef/knife/cloud/server/create_options"
3
4
 
4
5
  class Chef
5
6
  class Knife
@@ -11,72 +12,72 @@ class Chef
11
12
 
12
13
  # Openstack Server create params.
13
14
  option :private_network,
14
- long: '--openstack-private-network',
15
- description: 'Use the private IP for bootstrapping rather than the public IP',
15
+ long: "--openstack-private-network",
16
+ description: "Use the private IP for bootstrapping rather than the public IP",
16
17
  boolean: true,
17
18
  default: false
18
19
 
19
20
  option :openstack_floating_ip,
20
- short: '-a [IP]',
21
- long: '--openstack-floating-ip [IP]',
22
- default: '-1',
23
- description: 'Request to associate a floating IP address to the new OpenStack node. Assumes IPs have been allocated to the project. Specific IP is optional.'
21
+ short: "-a [IP]",
22
+ long: "--openstack-floating-ip [IP]",
23
+ default: "-1",
24
+ description: "Request to associate a floating IP address to the new OpenStack node. Assumes IPs have been allocated to the project. Specific IP is optional."
24
25
 
25
26
  option :openstack_volumes,
26
- long: '--openstack-volumes VOLUME1,VOLUME2,VOLUME3',
27
- description: 'Comma separated list of the UUID(s) of the volume(s) to attach to the server',
28
- proc: proc { |volumes| volumes.split(',') }
27
+ long: "--openstack-volumes VOLUME1,VOLUME2,VOLUME3",
28
+ description: "Comma separated list of the UUID(s) of the volume(s) to attach to the server",
29
+ proc: proc { |volumes| volumes.split(",") }
29
30
 
30
31
  option :openstack_scheduler_hints,
31
- long: '--scheduler-hints HINTS',
32
- description: 'A scheduler group hint to OpenStack',
32
+ long: "--scheduler-hints HINTS",
33
+ description: "A scheduler group hint to OpenStack",
33
34
  proc: proc { |i| Chef::Config[:knife][:openstack_scheduler_hints] = i }
34
35
 
35
36
  option :openstack_security_groups,
36
- short: '-G X,Y,Z',
37
- long: '--openstack-groups X,Y,Z',
38
- description: 'The security groups for this server',
39
- default: ['default'],
40
- proc: proc { |groups| groups.split(',') }
37
+ short: "-G X,Y,Z",
38
+ long: "--openstack-groups X,Y,Z",
39
+ description: "The security groups for this server",
40
+ default: ["default"],
41
+ proc: proc { |groups| groups.split(",") }
41
42
 
42
43
  option :openstack_ssh_key_id,
43
- short: '-S KEY',
44
- long: '--openstack-ssh-key-id KEY',
45
- description: 'The OpenStack SSH keypair id',
44
+ short: "-S KEY",
45
+ long: "--openstack-ssh-key-id KEY",
46
+ description: "The OpenStack SSH keypair id",
46
47
  proc: proc { |key| Chef::Config[:knife][:openstack_ssh_key_id] = key }
47
48
 
48
49
  option :user_data,
49
- long: '--user-data USER_DATA',
50
- description: 'The file path containing user data information for this server',
50
+ long: "--user-data USER_DATA",
51
+ description: "The file path containing user data information for this server",
51
52
  proc: proc { |user_data| open(user_data, &:read) }
52
53
 
53
54
  option :bootstrap_network,
54
- long: '--bootstrap-network NAME',
55
- default: 'public',
55
+ long: "--bootstrap-network NAME",
56
+ default: "public",
56
57
  description: "Specify network for bootstrapping. Default is 'public'."
57
58
 
58
59
  option :network,
59
- long: '--no-network',
60
+ long: "--no-network",
60
61
  boolean: true,
61
62
  default: true,
62
63
  description: "Use first available network for bootstrapping if 'public' and 'private' are unavailable."
63
64
 
64
65
  option :network_ids,
65
- long: '--network-ids NETWORK_ID_1,NETWORK_ID_2,NETWORK_ID_3',
66
- description: 'Comma separated list of the UUID(s) of the network(s) for the server to attach',
67
- proc: proc { |networks| networks.split(',') }
66
+ long: "--network-ids NETWORK_ID_1,NETWORK_ID_2,NETWORK_ID_3",
67
+ description: "Comma separated list of the UUID(s) of the network(s) for the server to attach",
68
+ proc: proc { |networks| networks.split(",") }
68
69
 
69
70
  option :availability_zone,
70
- short: '-Z ZONE_NAME',
71
- long: '--availability-zone ZONE_NAME',
72
- description: 'The availability zone for this server',
71
+ short: "-Z ZONE_NAME",
72
+ long: "--availability-zone ZONE_NAME",
73
+ description: "The availability zone for this server",
73
74
  proc: proc { |z| Chef::Config[:knife][:availability_zone] = z }
74
75
 
75
76
  option :metadata,
76
- short: '-M X=1',
77
- long: '--metadata X=1',
78
- description: 'Metadata information for this server (may pass multiple times)',
79
- proc: proc { |data| Chef::Config[:knife][:metadata] ||= {}; Chef::Config[:knife][:metadata].merge!(data.split('=')[0] => data.split('=')[1]) }
77
+ short: "-M X=1",
78
+ long: "--metadata X=1",
79
+ description: "Metadata information for this server (may pass multiple times)",
80
+ proc: proc { |data| Chef::Config[:knife][:metadata] ||= {}; Chef::Config[:knife][:metadata].merge!(data.split("=")[0] => data.split("=")[1]) }
80
81
  end
81
82
  end
82
83
  end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  #
2
3
  # Author:: Siddheshwar More (<siddheshwar.more@clogeny.com>)
3
4
  # Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
4
5
  # Copyright:: Copyright (c) 2013 Chef Software, Inc.
5
6
  #
6
7
 
7
- require 'chef/knife/cloud/fog/service'
8
+ require "chef/knife/cloud/fog/service"
8
9
 
9
10
  class Chef
10
11
  class Knife
@@ -35,7 +36,7 @@ class Chef
35
36
  if servers.length > 1
36
37
  error_message = "Multiple server matches found for '#{search_term}', use an instance_id to be more specific."
37
38
  ui.fatal(error_message)
38
- fail CloudExceptions::ValidationError, error_message
39
+ raise CloudExceptions::ValidationError, error_message
39
40
  else
40
41
  servers.first
41
42
  end
@@ -47,10 +48,10 @@ class Chef
47
48
  def get_auth_params
48
49
  load_fog_gem
49
50
  params = {
50
- provider: 'OpenStack',
51
+ provider: "OpenStack",
51
52
  connection_options: {
52
- ssl_verify_peer: !Chef::Config[:knife][:openstack_insecure]
53
- }
53
+ ssl_verify_peer: !Chef::Config[:knife][:openstack_insecure],
54
+ },
54
55
  }
55
56
 
56
57
  (
@@ -58,7 +59,7 @@ class Chef
58
59
  Fog::Compute::OpenStack.recognized -
59
60
  [:openstack_api_key]
60
61
  ).each do |k|
61
- next unless k.to_s.start_with?('openstack')
62
+ next unless k.to_s.start_with?("openstack")
62
63
  params[k] = Chef::Config[:knife][k]
63
64
  end
64
65
  params[:openstack_api_key] = Chef::Config[:knife][:openstack_password] || Chef::Config[:knife][:openstack_api_key]
@@ -1,4 +1,5 @@
1
- require 'chef/knife/cloud/fog/options'
1
+ # frozen_string_literal: true
2
+ require "chef/knife/cloud/fog/options"
2
3
  class Chef
3
4
  class Knife
4
5
  class Cloud
@@ -8,41 +9,41 @@ class Chef
8
9
  include FogOptions
9
10
  # Openstack Connection params.
10
11
  option :openstack_username,
11
- short: '-A USERNAME',
12
- long: '--openstack-username KEY',
13
- description: 'Your OpenStack Username',
12
+ short: "-A USERNAME",
13
+ long: "--openstack-username KEY",
14
+ description: "Your OpenStack Username",
14
15
  proc: proc { |key| Chef::Config[:knife][:openstack_username] = key }
15
16
 
16
17
  option :openstack_password,
17
- short: '-K SECRET',
18
- long: '--openstack-password SECRET',
19
- description: 'Your OpenStack Password',
18
+ short: "-K SECRET",
19
+ long: "--openstack-password SECRET",
20
+ description: "Your OpenStack Password",
20
21
  proc: proc { |key| Chef::Config[:knife][:openstack_password] = key }
21
22
 
22
23
  option :openstack_tenant,
23
- short: '-T NAME',
24
- long: '--openstack-tenant NAME',
25
- description: 'Your OpenStack Tenant NAME',
24
+ short: "-T NAME",
25
+ long: "--openstack-tenant NAME",
26
+ description: "Your OpenStack Tenant NAME",
26
27
  proc: proc { |key| Chef::Config[:knife][:openstack_tenant] = key }
27
28
 
28
29
  option :openstack_auth_url,
29
- long: '--openstack-api-endpoint ENDPOINT',
30
- description: 'Your OpenStack API endpoint',
30
+ long: "--openstack-api-endpoint ENDPOINT",
31
+ description: "Your OpenStack API endpoint",
31
32
  proc: proc { |endpoint| Chef::Config[:knife][:openstack_auth_url] = endpoint }
32
33
 
33
34
  option :openstack_endpoint_type,
34
- long: '--openstack-endpoint-type ENDPOINT_TYPE',
35
- description: 'OpenStack endpoint type to use (publicURL, internalURL, adminURL)',
35
+ long: "--openstack-endpoint-type ENDPOINT_TYPE",
36
+ description: "OpenStack endpoint type to use (publicURL, internalURL, adminURL)",
36
37
  proc: proc { |type| Chef::Config[:knife][:openstack_endpoint_type] = type }
37
38
 
38
39
  option :openstack_insecure,
39
- long: '--insecure',
40
- description: 'Ignore SSL certificate on the Auth URL',
40
+ long: "--insecure",
41
+ description: "Ignore SSL certificate on the Auth URL",
41
42
  boolean: true,
42
43
  default: false,
43
44
  proc: proc { |key| Chef::Config[:knife][:openstack_insecure] = key }
44
45
  end
45
- end
46
+ end
46
47
  end
47
48
  end
48
49
  end
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  # Author:: Prabhu Das (<prabhu.das@clogeny.com>)
2
3
  # Copyright:: Copyright (c) 2014 Chef Software, Inc.
3
4
 
4
- require 'chef/knife/cloud/list_resource_command'
5
- require 'chef/knife/openstack_helpers'
6
- require 'chef/knife/cloud/openstack_service_options'
5
+ require "chef/knife/cloud/list_resource_command"
6
+ require "chef/knife/openstack_helpers"
7
+ require "chef/knife/cloud/openstack_service_options"
7
8
 
8
9
  class Chef
9
10
  class Knife
@@ -12,18 +13,18 @@ class Chef
12
13
  include OpenstackHelpers
13
14
  include OpenstackServiceOptions
14
15
 
15
- banner 'knife openstack flavor list (options)'
16
+ banner "knife openstack flavor list (options)"
16
17
 
17
18
  def before_exec_command
18
19
  # set columns_with_info map
19
20
  @columns_with_info = [
20
- { label: 'Name', key: 'name' },
21
- { label: 'ID', key: 'id' },
22
- { label: 'Virtual CPUs', key: 'vcpus' },
23
- { label: 'RAM', key: 'ram', value_callback: method(:ram_in_mb) },
24
- { label: 'Disk', key: 'disk', value_callback: method(:disk_in_gb) }
21
+ { label: "Name", key: "name" },
22
+ { label: "ID", key: "id" },
23
+ { label: "Virtual CPUs", key: "vcpus" },
24
+ { label: "RAM", key: "ram", value_callback: method(:ram_in_mb) },
25
+ { label: "Disk", key: "disk", value_callback: method(:disk_in_gb) },
25
26
  ]
26
- @sort_by_field = 'name'
27
+ @sort_by_field = "name"
27
28
  end
28
29
 
29
30
  def query_resource
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  # Author:: Vasundhara Jagdale (<vasundhara.jagdale@clogeny.com>)
2
3
  # Copyright:: Copyright (c) 2015 Chef Software, Inc.
3
4
 
4
- require 'chef/knife/openstack_helpers'
5
- require 'chef/knife/cloud/openstack_service_options'
6
- require 'chef/knife/cloud/command'
5
+ require "chef/knife/openstack_helpers"
6
+ require "chef/knife/cloud/openstack_service_options"
7
+ require "chef/knife/cloud/command"
7
8
 
8
9
  class Chef
9
10
  class Knife
@@ -12,12 +13,12 @@ class Chef
12
13
  include OpenstackHelpers
13
14
  include OpenstackServiceOptions
14
15
 
15
- banner 'knife openstack floating_ip allocate (options)'
16
+ banner "knife openstack floating_ip allocate (options)"
16
17
 
17
18
  option :pool,
18
- short: '-p POOL',
19
- long: '--pool POOL',
20
- description: 'Floating IP pool to allocate from.',
19
+ short: "-p POOL",
20
+ long: "--pool POOL",
21
+ description: "Floating IP pool to allocate from.",
21
22
  proc: proc { |key| Chef::Config[:knife][:pool] = key }
22
23
 
23
24
  def execute_command
@@ -25,11 +26,11 @@ class Chef
25
26
  end
26
27
 
27
28
  def after_exec_command
28
- @columns_with_info = [{ label: 'ID', value: @resource['floating_ip']['id'].to_s },
29
- { label: 'Instance ID', value: @resource['floating_ip']['instance_id'].to_s },
30
- { label: 'Floating IP', value: @resource['floating_ip']['ip'].to_s },
31
- { label: 'Fixed IP', value: @resource['floating_ip']['fixed_ip'].to_s },
32
- { label: 'Pool', value: @resource['floating_ip']['pool'].to_s }
29
+ @columns_with_info = [{ label: "ID", value: @resource["floating_ip"]["id"].to_s },
30
+ { label: "Instance ID", value: @resource["floating_ip"]["instance_id"].to_s },
31
+ { label: "Floating IP", value: @resource["floating_ip"]["ip"].to_s },
32
+ { label: "Fixed IP", value: @resource["floating_ip"]["fixed_ip"].to_s },
33
+ { label: "Pool", value: @resource["floating_ip"]["pool"].to_s },
33
34
  ]
34
35
  @service.server_summary(nil, @columns_with_info)
35
36
  end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  # Author:: Vasundhara Jagdale (<vasundhara.jagdale@clogeny.com>)
2
3
  # Copyright:: Copyright (c) 2015 Chef Software, Inc.
3
4
 
4
- require 'chef/knife/openstack_helpers'
5
- require 'chef/knife/cloud/openstack_service_options'
6
- require 'chef/knife/cloud/openstack_service'
7
- require 'chef/knife/cloud/command'
5
+ require "chef/knife/openstack_helpers"
6
+ require "chef/knife/cloud/openstack_service_options"
7
+ require "chef/knife/cloud/openstack_service"
8
+ require "chef/knife/cloud/command"
8
9
 
9
10
  class Chef
10
11
  class Knife
@@ -13,11 +14,11 @@ class Chef
13
14
  include OpenstackHelpers
14
15
  include OpenstackServiceOptions
15
16
 
16
- banner 'knife openstack floating_ip associate IP (options)'
17
+ banner "knife openstack floating_ip associate IP (options)"
17
18
 
18
19
  option :instance_id,
19
- long: '--instance-id ID',
20
- description: 'Instance id to associate it with.',
20
+ long: "--instance-id ID",
21
+ description: "Instance id to associate it with.",
21
22
  proc: proc { |key| Chef::Config[:knife][:instance_id] = key },
22
23
  required: true
23
24
 
@@ -25,7 +26,7 @@ class Chef
25
26
  if @name_args[0]
26
27
  floating_ip = @name_args[0]
27
28
  else
28
- ui.error 'Please provide Floating IP to associate with.'
29
+ ui.error "Please provide Floating IP to associate with."
29
30
  exit 1
30
31
  end
31
32
 
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  # Author:: Vasundhara Jagdale (<vasundhara.jagdale@clogeny.com>)
2
3
  # Copyright:: Copyright (c) 2015 Chef Software, Inc.
3
4
 
4
- require 'chef/knife/openstack_helpers'
5
- require 'chef/knife/cloud/openstack_service_options'
6
- require 'chef/knife/cloud/openstack_service'
7
- require 'chef/knife/cloud/command'
5
+ require "chef/knife/openstack_helpers"
6
+ require "chef/knife/cloud/openstack_service_options"
7
+ require "chef/knife/cloud/openstack_service"
8
+ require "chef/knife/cloud/command"
8
9
 
9
10
  class Chef
10
11
  class Knife
@@ -13,11 +14,11 @@ class Chef
13
14
  include OpenstackHelpers
14
15
  include OpenstackServiceOptions
15
16
 
16
- banner 'knife openstack floating_ip disassociate IP (options)'
17
+ banner "knife openstack floating_ip disassociate IP (options)"
17
18
 
18
19
  option :instance_id,
19
- long: '--instance-id ID',
20
- description: 'Instance id to disassociate with.',
20
+ long: "--instance-id ID",
21
+ description: "Instance id to disassociate with.",
21
22
  proc: proc { |key| Chef::Config[:knife][:instance_id] = key },
22
23
  required: true
23
24
 
@@ -25,7 +26,7 @@ class Chef
25
26
  if @name_args[0]
26
27
  floating_ip = @name_args[0]
27
28
  else
28
- ui.error 'Please provide Floating IP to disassociate.'
29
+ ui.error "Please provide Floating IP to disassociate."
29
30
  exit 1
30
31
  end
31
32
  instance_id = locate_config_value(:instance_id)