From 359b83b8be302d20df450fab6916aeecbb127967 Mon Sep 17 00:00:00 2001 From: amartynov Date: Fri, 11 Jul 2014 11:19:01 +0400 Subject: [PATCH] devops client prefix --- devops-client/lib/devops-client.rb | 7 ++++--- devops-client/lib/devops-client/handler/handler.rb | 6 +++++- devops-client/lib/devops-client/handler/server.rb | 1 + devops-client/lib/devops-client/options/common_options.rb | 5 +++++ devops-client/locales/en.yml | 2 ++ devops-client/locales/ru.yml | 2 ++ 6 files changed, 19 insertions(+), 4 deletions(-) diff --git a/devops-client/lib/devops-client.rb b/devops-client/lib/devops-client.rb index db1d738..5004cf1 100644 --- a/devops-client/lib/devops-client.rb +++ b/devops-client/lib/devops-client.rb @@ -34,14 +34,14 @@ module DevopsClient abort(I18n.t("config.invalid.host"), :file => @@config_file) end [:api, :username, :password].each do |key| - if config[key].nil? + if config[key].nil? or config[key].empty? abort(I18n.t("config.invalid.empty", :file => @@config_file, :key => key)) end end configure_proxy config host = config[:host] - default = {:username => config[:username], :api => config[:api], :host => config[:host]} + default = {:username => config[:username], :api => config[:api], :host => config[:host], :prefix => ((config[:prefix].nil? or config[:prefix].empty?) ? nil : config[:prefix])} auth = {:username => config[:username], :password => config[:password], :type => "basic"} handler = HandlerFactory.create(ARGV[0], host, auth, default) @@ -102,7 +102,6 @@ module DevopsClient end end else - puts I18n.t("log.warn", :msg => I18n.t("config.not_exist", :file => file)) config = set_default_config(file) end config @@ -112,6 +111,7 @@ module DevopsClient locales = I18n.locales config = {:api => "v2.0", :locale => "en"} I18n.language = config[:locale] + puts I18n.t("log.warn", :msg => I18n.t("config.not_exist", :file => file)) config[:locale] = begin l = get_config_parameter(I18n.t("config.property.lang", :langs => locales.join(", ")), config[:locale]) raise ArgumentError unless locales.include?(l) @@ -121,6 +121,7 @@ module DevopsClient retry end config[:host] = get_config_parameter(I18n.t("config.property.host")) + config[:prefix] = get_config_parameter(I18n.t("config.property.prefix")) config[:api] = get_config_parameter(I18n.t("config.property.api"), config[:api]) config[:username] = get_config_parameter(I18n.t("config.property.username")) config[:password] = get_config_parameter(I18n.t("config.property.password")) diff --git a/devops-client/lib/devops-client/handler/handler.rb b/devops-client/lib/devops-client/handler/handler.rb index e35f3a9..c28af08 100644 --- a/devops-client/lib/devops-client/handler/handler.rb +++ b/devops-client/lib/devops-client/handler/handler.rb @@ -143,7 +143,11 @@ protected end def create_url path - URI.join(self.host, self.options[:api] + path).to_s + a = [self.options[:api], path] + a.unshift(self.options[:prefix]) unless self.options[:prefix].nil? + p = "" + a.each{|e| p << (e.start_with?("/") ? e : "/" + e)} + URI.join(self.host, p).to_s end def submit diff --git a/devops-client/lib/devops-client/handler/server.rb b/devops-client/lib/devops-client/handler/server.rb index 58574d6..4f63d9b 100644 --- a/devops-client/lib/devops-client/handler/server.rb +++ b/devops-client/lib/devops-client/handler/server.rb @@ -9,6 +9,7 @@ class Server < Handler def initialize(host, def_options={}) self.host = host + self.options = def_options @options_parser = ServerOptions.new(ARGV, def_options) end diff --git a/devops-client/lib/devops-client/options/common_options.rb b/devops-client/lib/devops-client/options/common_options.rb index a44b8d7..35f6cbf 100644 --- a/devops-client/lib/devops-client/options/common_options.rb +++ b/devops-client/lib/devops-client/options/common_options.rb @@ -125,6 +125,11 @@ class CommonOptions o[:api] = a end + o[:prefix] = default_options[:prefix] + opts.on("--prefix PREFIX", I18n.t("options.common.prefix", :prefix => o[:prefix])) do |p| + o[:prefix] = p + end + o[:username] = default_options[:username] opts.on("--user USERNAME", I18n.t("options.common.username", :username => o[:username])) do |u| o[:username] = u.strip diff --git a/devops-client/locales/en.yml b/devops-client/locales/en.yml index a9ef8e6..4850142 100644 --- a/devops-client/locales/en.yml +++ b/devops-client/locales/en.yml @@ -8,6 +8,7 @@ en: property: lang: "Language (%{langs})" host: "Devops server host and port (host:port)" + prefix: "Path prefix" api: "API version" username: "Username" password: "Password" @@ -240,6 +241,7 @@ en: version: "devops client version" host: "devops service host address (%{host})" api: "devops service API version (%{api})" + prefix: "devops service path prefix (%{prefix})" username: "devops username (%{username})" format: "Output format: '%{formats}' (%{format})" completion: "Initialize bash completion script" diff --git a/devops-client/locales/ru.yml b/devops-client/locales/ru.yml index b45e3df..ab6ef60 100644 --- a/devops-client/locales/ru.yml +++ b/devops-client/locales/ru.yml @@ -9,6 +9,7 @@ ru: property: lang: "Язык (%{langs})" host: "Адрес и порт сервера Devops (host:port)" + prefix: "Префикс пути" api: "Версия API" username: "Имя пользователя" password: "Пароль" @@ -241,6 +242,7 @@ ru: version: "Версия devops клиента" host: "Адрес хоста devops сервера (%{host})" api: "Версия API devops сервера (%{api})" + prefix: "Префикс пути devops сервера (%{prefix})" username: "Имя пользователя devops (%{username})" format: "Формат вывода: '%{formats}' (%{format})" completion: "Инициализировать bash скрипт автодополнений"