diff --git a/README.md b/README.md index 0b6f356..2f8d0ac 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ COMMANDS: update - update Subutai management, container or Resource host vxlan - VXLAN tunnels operation register - register Subutai PeerOS to Bazaar - deregister - deregister Subutai PeerOS from Bazaar + unregister - unregister Subutai PeerOS from Bazaar fingerprint - shows fingerprint Subutai Console open - open the Subutai PeerOS in browser blueprint - run blueprint provisioning diff --git a/lib/vagrant-subutai/command.rb b/lib/vagrant-subutai/command.rb index 23e8e69..f8617d9 100644 --- a/lib/vagrant-subutai/command.rb +++ b/lib/vagrant-subutai/command.rb @@ -28,6 +28,8 @@ def execute subutai_cli.register(nil, nil, check_subutai_console_url(subutai_cli)) when 'deregister' subutai_cli.deregister(nil, nil, check_subutai_console_url(subutai_cli)) + when 'unregister' + subutai_cli.deregister(nil, nil, check_subutai_console_url(subutai_cli)) when 'fingerprint' subutai_cli.fingerprint(check_subutai_console_url(subutai_cli)) when 'open' @@ -102,7 +104,7 @@ def cli_info update - update Subutai management, container or Resource host vxlan - VXLAN tunnels operation register - register Subutai PeerOS to Bazaar - deregister - deregister Subutai PeerOS from Bazaar + unregister - unregister Subutai PeerOS from Bazaar fingerprint - shows fingerprint Subutai Console open - open the Subutai PeerOS in browser blueprint - run blueprint provisioning diff --git a/lib/vagrant-subutai/create_disk.rb b/lib/vagrant-subutai/create_disk.rb index e82e116..cc1cbd1 100644 --- a/lib/vagrant-subutai/create_disk.rb +++ b/lib/vagrant-subutai/create_disk.rb @@ -43,7 +43,8 @@ def provision file_disk = SubutaiDisk.file_path(grow_by, "hyper_v") unless File.exist?(file_disk) - Put.warn "Disk size is growing by #{grow_by} gb." + Put.warn "==> default: Disk size configured to #{SubutaiConfig.disk_size}GB, increasing #{grow_by}GB default by 100GB." + if has_grow if SubutaiDisk.hyperv_create_disk(grow_by, file_disk) SubutaiDisk.save_path(SubutaiDisk.port, file_disk) diff --git a/lib/vagrant-subutai/packer/subutai_config.rb b/lib/vagrant-subutai/packer/subutai_config.rb index 7ce4db7..cbbf6c8 100644 --- a/lib/vagrant-subutai/packer/subutai_config.rb +++ b/lib/vagrant-subutai/packer/subutai_config.rb @@ -54,6 +54,7 @@ module SubutaiConfig LIBVIRT_MACVTAP LIBVIRT_NO_BRIDGE BAZAAR_NO_AUTO + SUBUTAI_DISK ].freeze GENERATED_PARAMETERS = %i[ @@ -98,12 +99,12 @@ module SubutaiConfig LIBVIRT_PORT: 22, # Libvirt kvm remote operation ssh port LIBVIRT_MACVTAP: false, # Libvirt macvtap interface BAZAAR_NO_AUTO: false, # PeerOs automatic registration to Bazaar (turn on(false), turn off(true)) + PROVISION: true, # to provision or not to # Configuration parameters below have not been implemented SUBUTAI_DESKTOP: false, # install desktop with tray and p2p client SUBUTAI_MAN_TMPL: nil, # provision alternative management template - APT_PROXY_URL: nil, # configure apt proxy URL - PROVISION: true # to provision or not to + APT_PROXY_URL: nil # configure apt proxy URL } # User provided configuration settings @@ -180,8 +181,16 @@ def self.config @config end + # Now we support both configuration parameter DISK_SIZE and SUBUTAI_DISK + def self.disk_size + return get(:SUBUTAI_DISK) unless get(:SUBUTAI_DISK).nil? + + get(:DISK_SIZE) + end + def self.get_grow_by - disk = get(:DISK_SIZE) + disk = disk_size + if disk.nil? nil else diff --git a/lib/vagrant-subutai/packer/subutai_disk.rb b/lib/vagrant-subutai/packer/subutai_disk.rb index 9c7743c..acc6064 100644 --- a/lib/vagrant-subutai/packer/subutai_disk.rb +++ b/lib/vagrant-subutai/packer/subutai_disk.rb @@ -86,7 +86,7 @@ def self.hyperv_create_disk(grow_by, file_disk) id = SubutaiConfig.machine_id(:hyper_v) if id.nil? - Put.error(" => [FAILED] Disk Creation. Not found machine id") + Put.error("[FAILED] Disk Creation. Not found machine id") false else VagrantSubutai::Util::Powershell.execute(script, "-VmId", id, "-DiskPath", file_disk, "-DiskSize", "#{vmware_size(grow_by)}") @@ -98,7 +98,7 @@ def self.hyperv_remove_disk id = SubutaiConfig.machine_id(:hyper_v) if id.nil? - Put.error(" => [FAILED] Remove virtual disk. Not found machine id") + Put.error("[FAILED] Remove virtual disk. Not found machine id") false else VagrantSubutai::Util::Powershell.execute(script, "-VmId", id) diff --git a/lib/vagrant-subutai/packer/subutai_validation.rb b/lib/vagrant-subutai/packer/subutai_validation.rb index 125e2e0..e7a2bb9 100644 --- a/lib/vagrant-subutai/packer/subutai_validation.rb +++ b/lib/vagrant-subutai/packer/subutai_validation.rb @@ -20,6 +20,7 @@ module SubutaiValidation "AUTHORIZED_KEYS": :path, "PASSWORD_OVERRIDE": :string, "DISK_SIZE": :int, + "SUBUTAI_DISK": :int, "SUBUTAI_ENV_TYPE": :enum, "SUBUTAI_NAME": :string, "SUBUTAI_SCOPE": :enum, diff --git a/lib/vagrant-subutai/subutai_commands.rb b/lib/vagrant-subutai/subutai_commands.rb index b941288..04ada78 100644 --- a/lib/vagrant-subutai/subutai_commands.rb +++ b/lib/vagrant-subutai/subutai_commands.rb @@ -57,6 +57,7 @@ def registered?(url) end end + # Unregister Subutai Peer OS from Bazaar def deregister(username, password, url) if registered?(url) username, password = get_input_token if username.nil? || password.nil? @@ -71,7 +72,7 @@ def deregister(username, password, url) case response when Net::HTTPOK Put.success response.body - Put.success "Successfully PeerOS deregistered from Bazaar." + Put.success "Successfully PeerOS unregistered from Bazaar." else Put.error "Error: #{response.body}\n" end diff --git a/lib/vagrant-subutai/util/terminal.rb b/lib/vagrant-subutai/util/terminal.rb new file mode 100644 index 0000000..7e21ef5 --- /dev/null +++ b/lib/vagrant-subutai/util/terminal.rb @@ -0,0 +1,9 @@ +module VagrantSubutai + module Util + class Terminal + def self.execute_cmd(*command) + system(*command) + end + end + end +end \ No newline at end of file diff --git a/test/both_disk.yml b/test/both_disk.yml new file mode 100644 index 0000000..ea940a7 --- /dev/null +++ b/test/both_disk.yml @@ -0,0 +1,2 @@ +DISK_SIZE: 985 +SUBUTAI_DISK: 654 \ No newline at end of file diff --git a/test/disk_size.yml b/test/disk_size.yml index 88be48a..853c72e 100644 --- a/test/disk_size.yml +++ b/test/disk_size.yml @@ -1 +1 @@ -DISK_SIZE: 250 \ No newline at end of file +DISK_SIZE: 250 diff --git a/test/subutai_config_test.rb b/test/subutai_config_test.rb index e286ef6..3ff1878 100644 --- a/test/subutai_config_test.rb +++ b/test/subutai_config_test.rb @@ -477,4 +477,40 @@ def test_provider SubutaiConfig.reset assert_equal(nil, SubutaiConfig.provider) end + + def test_disk_size + SubutaiConfig.cleanup! + #SubutaiConfig.load_config_file('') + + assert_equal(nil, SubutaiConfig.disk_size) + assert_equal(nil, SubutaiConfig.get(:DISK_SIZE)) + assert_equal(nil, SubutaiConfig.get(:SUBUTAI_DISK)) + + SubutaiConfig.override_conf_file('./test/subutai_disk.yml') + SubutaiConfig.load_config('up', :hyper_v) + + assert_equal(123, SubutaiConfig.get(:SUBUTAI_DISK)) + assert_equal(123, SubutaiConfig.disk_size) + assert_equal(nil, SubutaiConfig.get(:DISK_SIZE)) + + SubutaiConfig.cleanup! + SubutaiConfig.override_conf_file('./test/disk_size.yml') + SubutaiConfig.load_config('up', :hyper_v) + + assert_equal(250, SubutaiConfig.get(:DISK_SIZE)) + assert_equal(250, SubutaiConfig.disk_size) + assert_nil(SubutaiConfig.get(:SUBUTAI_DISK)) + + SubutaiConfig.cleanup! + SubutaiConfig.override_conf_file('./test/both_disk.yml') + SubutaiConfig.load_config('up', :hyper_v) + assert_equal(654, SubutaiConfig.disk_size) + assert_equal(985, SubutaiConfig.get(:DISK_SIZE)) + assert_equal(654, SubutaiConfig.get(:SUBUTAI_DISK)) + + SubutaiConfig.cleanup! + assert_nil(SubutaiConfig.disk_size) + assert_nil(SubutaiConfig.get(:DISK_SIZE)) + assert_nil(SubutaiConfig.get(:SUBUTAI_DISK)) + end end diff --git a/test/subutai_disk.yml b/test/subutai_disk.yml new file mode 100644 index 0000000..9428c2d --- /dev/null +++ b/test/subutai_disk.yml @@ -0,0 +1 @@ +SUBUTAI_DISK: 123 \ No newline at end of file