From b3caa83bfe537e4077d580fb5a91036bbedf1dfe Mon Sep 17 00:00:00 2001 From: Nicolas Bock Date: Wed, 23 Nov 2016 12:14:49 -0700 Subject: [PATCH] [provisioner] Add autoyast self update option --- chef/cookbooks/provisioner/recipes/update_nodes.rb | 2 ++ .../provisioner/templates/default/autoyast.xml.erb | 3 +++ .../crowbar/migrate/provisioner/102_self_update.rb | 11 +++++++++++ chef/data_bags/crowbar/template-provisioner.json | 4 +++- chef/data_bags/crowbar/template-provisioner.schema | 2 ++ .../barclamp/provisioner/_edit_attributes.html.haml | 3 +++ crowbar_framework/config/locales/provisioner/en.yml | 2 ++ 7 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 chef/data_bags/crowbar/migrate/provisioner/102_self_update.rb diff --git a/chef/cookbooks/provisioner/recipes/update_nodes.rb b/chef/cookbooks/provisioner/recipes/update_nodes.rb index 96bd8915dd..ce352848a3 100644 --- a/chef/cookbooks/provisioner/recipes/update_nodes.rb +++ b/chef/cookbooks/provisioner/recipes/update_nodes.rb @@ -333,6 +333,8 @@ def find_node_boot_mac_addresses(node, admin_data_net) web_port: web_port, packages: packages, repos: repos, + self_update: node[:provisioner][:self_update], + self_update_url: node[:provisioner][:self_update_url], rootpw_hash: node[:provisioner][:root_password_hash] || "", timezone: timezone, boot_device: (mnode[:crowbar_wall][:boot_device] rescue nil), diff --git a/chef/cookbooks/provisioner/templates/default/autoyast.xml.erb b/chef/cookbooks/provisioner/templates/default/autoyast.xml.erb index 3d57491eab..3234393429 100644 --- a/chef/cookbooks/provisioner/templates/default/autoyast.xml.erb +++ b/chef/cookbooks/provisioner/templates/default/autoyast.xml.erb @@ -26,6 +26,9 @@ true +<% if @self_update %> + <%= @self_update_url %> +<% end %> diff --git a/chef/data_bags/crowbar/migrate/provisioner/102_self_update.rb b/chef/data_bags/crowbar/migrate/provisioner/102_self_update.rb new file mode 100644 index 0000000000..574943cc83 --- /dev/null +++ b/chef/data_bags/crowbar/migrate/provisioner/102_self_update.rb @@ -0,0 +1,11 @@ +def upgrade(ta, td, a, d) + a["self_update"] = ta["self_update"] + a["self_update_url"] = ta["self_update_url"] + return a, d +end + +def downgrade(ta, td, a, d) + delete a["self_update"] + delete a["self_update_url"] + return a, d +end diff --git a/chef/data_bags/crowbar/template-provisioner.json b/chef/data_bags/crowbar/template-provisioner.json index f7a4a45d7e..009f6fb67a 100644 --- a/chef/data_bags/crowbar/template-provisioner.json +++ b/chef/data_bags/crowbar/template-provisioner.json @@ -9,6 +9,8 @@ "access_keys": "", "shell_prompt": "USER@HOST:CWD SUFFIX", "enable_pxe": true, + "self_update": false, + "self_update_url": "", "discovery": { "append": "" }, @@ -199,7 +201,7 @@ "provisioner": { "crowbar-revision": 0, "crowbar-applied": false, - "schema-revision": 101, + "schema-revision": 102, "element_states": { "provisioner-server": [ "readying", "ready", "applying" ], "provisioner-base": [ "hardware-installing", "readying", "ready", "applying" ] diff --git a/chef/data_bags/crowbar/template-provisioner.schema b/chef/data_bags/crowbar/template-provisioner.schema index 6f6deb9d5c..401bb02598 100644 --- a/chef/data_bags/crowbar/template-provisioner.schema +++ b/chef/data_bags/crowbar/template-provisioner.schema @@ -19,6 +19,8 @@ "access_keys": { "type": "str", "required": true }, "shell_prompt": { "type": "str", "required": true }, "enable_pxe": { "type": "bool", "required": true }, + "self_update": { "type": "bool", "required": true }, + "self_update_url": { "type": "str", "required": true }, "web_port": { "type": "int", "required": true }, "keep_existing_hostname": { "type": "bool", "required": true }, "timezone": { "type": "str", "required": true }, diff --git a/crowbar_framework/app/views/barclamp/provisioner/_edit_attributes.html.haml b/crowbar_framework/app/views/barclamp/provisioner/_edit_attributes.html.haml index 01e43e4218..7b6e3bc25c 100644 --- a/crowbar_framework/app/views/barclamp/provisioner/_edit_attributes.html.haml +++ b/crowbar_framework/app/views/barclamp/provisioner/_edit_attributes.html.haml @@ -7,6 +7,9 @@ %span.help-block = t(".access_keys_hint") + = boolean_field :self_update + = string_field :self_update_url + = string_field :shell_prompt %span.help-block = t(".shell_prompt_hint") diff --git a/crowbar_framework/config/locales/provisioner/en.yml b/crowbar_framework/config/locales/provisioner/en.yml index 7708da5404..5fa12e9e27 100644 --- a/crowbar_framework/config/locales/provisioner/en.yml +++ b/crowbar_framework/config/locales/provisioner/en.yml @@ -21,6 +21,8 @@ en: edit_attributes: access_keys: 'Additional SSH keys' access_keys_hint: 'Each SSH key must be on its own line' + self_update: 'AutoYaST Self-update' + self_update_url: 'AutoYaST Self-update URL' shell_prompt: 'Custom Shell Prompt' shell_prompt_hint: 'You can use the placeholders USER, ALIAS, HOST, FQDN, CWD and SUFFIX to customize the shell prompt on all nodes. Add a \n for a new line within the prompt.' serial_console: 'Serial Console'