summaryrefslogtreecommitdiff
path: root/lib/chef
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef')
-rw-r--r--lib/chef/abstract_user.rb106
-rw-r--r--lib/chef/knife.rb2
-rw-r--r--lib/chef/knife/user_create.rb4
-rw-r--r--lib/chef/user.rb48
-rw-r--r--lib/chef/user_v1.rb74
5 files changed, 117 insertions, 117 deletions
diff --git a/lib/chef/abstract_user.rb b/lib/chef/abstract_user.rb
deleted file mode 100644
index dc53488349..0000000000
--- a/lib/chef/abstract_user.rb
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# Author:: Snehal Dwivedi (sdwivedi@chef.io)
-# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# common methods of User and UserV1
-class Chef
- class AbstractUser
-
- def initialize
- @name = ""
- @password = nil
- @admin = false
- @username = nil
- @display_name = nil
- @first_name = nil
- @middle_name = nil
- @last_name = nil
- @email = nil
- @public_key = nil
- @private_key = nil
- @create_key = nil
- end
-
- def chef_root_rest_v0
- @chef_root_rest_v0 ||= Chef::ServerAPI.new(Chef::Config[:chef_server_root], { api_version: "0" })
- end
-
- def chef_root_rest_v1
- @chef_root_rest_v1 ||= Chef::ServerAPI.new(Chef::Config[:chef_server_root], { api_version: "1" })
- end
-
- def name(arg = nil)
- set_or_return(:name, arg,
- regex: /^[a-z0-9\-_]+$/)
- end
-
- def admin(arg = nil)
- set_or_return(:admin,
- arg, kind_of: [TrueClass, FalseClass])
- end
-
- def username(arg = nil)
- set_or_return(:username, arg,
- regex: /^[a-z0-9\-_]+$/)
- end
-
- def display_name(arg = nil)
- set_or_return(:display_name,
- arg, kind_of: String)
- end
-
- def first_name(arg = nil)
- set_or_return(:first_name,
- arg, kind_of: String)
- end
-
- def middle_name(arg = nil)
- set_or_return(:middle_name,
- arg, kind_of: String)
- end
-
- def last_name(arg = nil)
- set_or_return(:last_name,
- arg, kind_of: String)
- end
-
- def email(arg = nil)
- set_or_return(:email,
- arg, kind_of: String)
- end
-
- def create_key(arg = nil)
- set_or_return(:create_key, arg,
- kind_of: [TrueClass, FalseClass])
- end
-
- def public_key(arg = nil)
- set_or_return(:public_key,
- arg, kind_of: String)
- end
-
- def private_key(arg = nil)
- set_or_return(:private_key,
- arg, kind_of: String)
- end
-
- def password(arg = nil)
- set_or_return(:password,
- arg, kind_of: String)
- end
- end
-end
diff --git a/lib/chef/knife.rb b/lib/chef/knife.rb
index 9e2578ef3a..a5ed415fee 100644
--- a/lib/chef/knife.rb
+++ b/lib/chef/knife.rb
@@ -665,7 +665,7 @@ class Chef
def root_rest
@root_rest ||= begin
require_relative "server_api"
- Chef::ServerAPI.new(Chef::Config[:chef_server_root], { api_version: "2" })
+ Chef::ServerAPI.new(Chef::Config[:chef_server_root], { api_version: "1" })
end
end
end
diff --git a/lib/chef/knife/user_create.rb b/lib/chef/knife/user_create.rb
index bd9103d958..aa1d4d54f2 100644
--- a/lib/chef/knife/user_create.rb
+++ b/lib/chef/knife/user_create.rb
@@ -26,7 +26,7 @@ class Chef
attr_accessor :user_field
deps do
- require_relative "../user"
+ require_relative "../user_v1"
end
option :file,
@@ -57,7 +57,7 @@ class Chef
banner "knife user create USERNAME DISPLAY_NAME FIRST_NAME LAST_NAME EMAIL PASSWORD (options)"
def user
- @user_field ||= Chef::User.new
+ @user_field ||= Chef::UserV1.new
end
def run
diff --git a/lib/chef/user.rb b/lib/chef/user.rb
index 8691bb4a50..4ebcb3a463 100644
--- a/lib/chef/user.rb
+++ b/lib/chef/user.rb
@@ -22,7 +22,6 @@ require_relative "mash"
require_relative "json_compat"
require_relative "search/query"
require_relative "server_api"
-require_relative "abstract_user"
# TODO
# DEPRECATION NOTE
@@ -36,10 +35,47 @@ require_relative "abstract_user"
# This file and corresponding osc_user knife files
# should be removed once client support for Open Source Chef Server 11 expires.
class Chef
- class User < Chef::AbstractUser
+ class User
include Chef::Mixin::FromFile
include Chef::Mixin::ParamsValidate
+ def initialize
+ @name = ""
+ @public_key = nil
+ @private_key = nil
+ @password = nil
+ @admin = false
+ end
+
+ def chef_rest_v0
+ @chef_rest_v0 ||= Chef::ServerAPI.new(Chef::Config[:chef_server_url], { api_version: "0" })
+ end
+
+ def name(arg = nil)
+ set_or_return(:name, arg,
+ regex: /^[a-z0-9\-_]+$/)
+ end
+
+ def admin(arg = nil)
+ set_or_return(:admin,
+ arg, kind_of: [TrueClass, FalseClass])
+ end
+
+ def public_key(arg = nil)
+ set_or_return(:public_key,
+ arg, kind_of: String)
+ end
+
+ def private_key(arg = nil)
+ set_or_return(:private_key,
+ arg, kind_of: String)
+ end
+
+ def password(arg = nil)
+ set_or_return(:password,
+ arg, kind_of: String)
+ end
+
def to_h
result = {
"name" => @name,
@@ -58,13 +94,13 @@ class Chef
end
def destroy
- chef_root_rest_v0.delete("users/#{@name}")
+ chef_rest_v0.delete("users/#{@name}")
end
def create
payload = { name: name, admin: admin, password: password }
payload[:public_key] = public_key if public_key
- new_user = chef_root_rest_v0.post("users", payload)
+ new_user = chef_rest_v0.post("users", payload)
Chef::User.from_hash(to_h.merge(new_user))
end
@@ -72,7 +108,7 @@ class Chef
payload = { name: name, admin: admin }
payload[:private_key] = new_key if new_key
payload[:password] = password if password
- updated_user = chef_root_rest_v0.put("users/#{name}", payload)
+ updated_user = chef_rest_v0.put("users/#{name}", payload)
Chef::User.from_hash(to_h.merge(updated_user))
end
@@ -87,7 +123,7 @@ class Chef
end
def reregister
- reregistered_self = chef_root_rest_v0.put("users/#{name}", { name: name, admin: admin, private_key: true })
+ reregistered_self = chef_rest_v0.put("users/#{name}", { name: name, admin: admin, private_key: true })
private_key(reregistered_self["private_key"])
self
end
diff --git a/lib/chef/user_v1.rb b/lib/chef/user_v1.rb
index e5c3f07eff..945f0197df 100644
--- a/lib/chef/user_v1.rb
+++ b/lib/chef/user_v1.rb
@@ -24,7 +24,6 @@ require_relative "search/query"
require_relative "mixin/api_version_request_handling"
require_relative "exceptions"
require_relative "server_api"
-require_relative "abstract_user"
# OSC 11 BACKWARDS COMPATIBILITY NOTE (remove after OSC 11 support ends)
#
@@ -34,7 +33,7 @@ require_relative "abstract_user"
#
# Exception: self.list is backwards compatible with OSC 11
class Chef
- class UserV1 < Chef::AbstractUser
+ class UserV1
include Chef::Mixin::FromFile
include Chef::Mixin::ParamsValidate
@@ -42,6 +41,77 @@ class Chef
SUPPORTED_API_VERSIONS = [0, 1].freeze
+ def initialize
+ @username = nil
+ @display_name = nil
+ @first_name = nil
+ @middle_name = nil
+ @last_name = nil
+ @email = nil
+ @password = nil
+ @public_key = nil
+ @private_key = nil
+ @create_key = nil
+ end
+
+ def chef_root_rest_v0
+ @chef_root_rest_v0 ||= Chef::ServerAPI.new(Chef::Config[:chef_server_root], { api_version: "0" })
+ end
+
+ def chef_root_rest_v1
+ @chef_root_rest_v1 ||= Chef::ServerAPI.new(Chef::Config[:chef_server_root], { api_version: "1" })
+ end
+
+ def username(arg = nil)
+ set_or_return(:username, arg,
+ regex: /^[a-z0-9\-_]+$/)
+ end
+
+ def display_name(arg = nil)
+ set_or_return(:display_name,
+ arg, kind_of: String)
+ end
+
+ def first_name(arg = nil)
+ set_or_return(:first_name,
+ arg, kind_of: String)
+ end
+
+ def middle_name(arg = nil)
+ set_or_return(:middle_name,
+ arg, kind_of: String)
+ end
+
+ def last_name(arg = nil)
+ set_or_return(:last_name,
+ arg, kind_of: String)
+ end
+
+ def email(arg = nil)
+ set_or_return(:email,
+ arg, kind_of: String)
+ end
+
+ def create_key(arg = nil)
+ set_or_return(:create_key, arg,
+ kind_of: [TrueClass, FalseClass])
+ end
+
+ def public_key(arg = nil)
+ set_or_return(:public_key,
+ arg, kind_of: String)
+ end
+
+ def private_key(arg = nil)
+ set_or_return(:private_key,
+ arg, kind_of: String)
+ end
+
+ def password(arg = nil)
+ set_or_return(:password,
+ arg, kind_of: String)
+ end
+
def to_h
result = {
"username" => @username,