sfrest 0.0.34 → 0.0.38
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.
- checksums.yaml +4 -4
- data/lib/sfrest/centralized_role_management.rb +42 -0
- data/lib/sfrest/connection.rb +3 -0
- data/lib/sfrest/cron.rb +28 -0
- data/lib/sfrest/site.rb +9 -9
- data/lib/sfrest/site_ownership.rb +41 -0
- data/lib/sfrest/stage.rb +8 -2
- data/lib/sfrest/version.rb +1 -1
- data/lib/sfrest.rb +3 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7039e02a8fd620b58a601bdbca8cb00353ac78819593e4d45612e9ec93e3bd5d
|
4
|
+
data.tar.gz: 0b62f183dabf16e48091bc6aeaffbc938c0de3d2b0171f65d4230eac8139f71d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 352329ee8101653fc4d58943724590fbe91b7b8243d0d72e9e82a62683c3276824b91c64b1fe1f4a91551cfb3659bdd516aaf090de588e35651b19a549c87abd
|
7
|
+
data.tar.gz: 46e63d0eb317bac5bd088dcf5cd0ae3bb4ffd84c8f4d3aaed07b589a3ceb76d0b40502fa9e5e49d0c4553614d69838c5f56b10fe279ffab0ba7fd8582a492536
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SFRest
|
4
|
+
# We need to keep this naming due to the way connection.rb autoloads things.
|
5
|
+
# rubocop: disable Naming/ClassAndModuleCamelCase
|
6
|
+
# Manage the centralized role management feature.
|
7
|
+
class Centralized_role_management
|
8
|
+
# rubocop: enable Naming/ClassAndModuleCamelCase
|
9
|
+
|
10
|
+
# @param [SFRest::Connection] conn
|
11
|
+
def initialize(conn)
|
12
|
+
@conn = conn
|
13
|
+
end
|
14
|
+
|
15
|
+
# Get current centralized role management settings
|
16
|
+
#
|
17
|
+
# @return [Array] an array of roles with their associated settings.
|
18
|
+
def centralized_role_mapping
|
19
|
+
@conn.get('/api/v1/centralized-role-management')
|
20
|
+
end
|
21
|
+
|
22
|
+
# Enable the centralized role management settings for a given role.
|
23
|
+
# @param [String] factory_role the site factory role.
|
24
|
+
# @param [String] site_role the corresponding role on the site.
|
25
|
+
#
|
26
|
+
# @return [Array] an array of roles with their associated settings.
|
27
|
+
def enable_role_mapping(factory_role, site_role = '')
|
28
|
+
payload = {
|
29
|
+
'site_role' => site_role
|
30
|
+
}.to_json
|
31
|
+
@conn.put("/api/v1/centralized-role-management/#{factory_role}", payload)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Disable the centralized role management settings for a given role.
|
35
|
+
# @param [String] factory_role the site factory role.
|
36
|
+
#
|
37
|
+
# @return [Array] an array of roles with their associated settings.
|
38
|
+
def disable_role_mapping(factory_role)
|
39
|
+
@conn.delete("/api/v1/centralized-role-management/#{factory_role}")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/sfrest/connection.rb
CHANGED
@@ -164,14 +164,17 @@ module SFRest
|
|
164
164
|
# NOTE: accessor == Class_name.to_lower
|
165
165
|
REST_METHODS = %w[audit
|
166
166
|
backup
|
167
|
+
centralized_role_management
|
167
168
|
codebase
|
168
169
|
collection
|
170
|
+
cron
|
169
171
|
domains
|
170
172
|
group
|
171
173
|
info
|
172
174
|
profile
|
173
175
|
role
|
174
176
|
site
|
177
|
+
site_ownership
|
175
178
|
stage
|
176
179
|
task
|
177
180
|
theme
|
data/lib/sfrest/cron.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SFRest
|
4
|
+
# Manipulates SF cron jobs.
|
5
|
+
class Cron
|
6
|
+
# @param [SFRest::Connection] conn
|
7
|
+
def initialize(conn)
|
8
|
+
@conn = conn
|
9
|
+
end
|
10
|
+
|
11
|
+
# Gets a list of cron jobs
|
12
|
+
# @param [Integer] page
|
13
|
+
# @param [Integer] items per page
|
14
|
+
def get_cron_jobs(page = nil, limit = nil)
|
15
|
+
args = {}
|
16
|
+
args['page'] = page unless page.nil?
|
17
|
+
args['limit'] = limit unless limit.nil?
|
18
|
+
url = "/api/v1/cronjobs?#{args.map { |k, v| "#{k}=#{v}" }.join('&')}"
|
19
|
+
@conn.get(url)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Gets a cron job by its node id
|
23
|
+
# @param [Integer] cron job nid
|
24
|
+
def get_cron_job(nid)
|
25
|
+
@conn.get("/api/v1/cronjobs/#{nid}")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/sfrest/site.rb
CHANGED
@@ -55,20 +55,21 @@ module SFRest
|
|
55
55
|
res['sites'].first['id']
|
56
56
|
end
|
57
57
|
|
58
|
-
# Gets the complete list of sites
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
58
|
+
# Gets the complete list of sites.
|
59
|
+
#
|
60
|
+
# Makes multiple requests to the factory to get all the sites on the
|
61
|
+
# factory.
|
62
|
+
#
|
63
|
+
# @param [Hash] opts query parameters to be used in this request.
|
62
64
|
# @return [Hash{'count' => Integer, 'sites' => Hash}]
|
63
|
-
|
64
|
-
def site_list(show_incomplete = true)
|
65
|
+
def site_list(**opts)
|
65
66
|
page = 1
|
66
67
|
not_done = true
|
67
68
|
count = 0
|
68
69
|
sites = []
|
69
70
|
while not_done
|
70
|
-
|
71
|
-
current_path
|
71
|
+
opts['page'] = page
|
72
|
+
current_path = "/api/v1/sites?#{URI.encode_www_form(opts)}"
|
72
73
|
res = @conn.get(current_path)
|
73
74
|
if res['sites'] == []
|
74
75
|
not_done = false
|
@@ -86,7 +87,6 @@ module SFRest
|
|
86
87
|
end
|
87
88
|
{ 'count' => count, 'sites' => sites }
|
88
89
|
end
|
89
|
-
# rubocop: enable Style/OptionalBooleanParameter
|
90
90
|
|
91
91
|
# Creates a site.
|
92
92
|
# @param [String] sitename The name of the site to create.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SFRest
|
4
|
+
# We need to keep this naming due to the way connection.rb autoloads things.
|
5
|
+
# rubocop: disable Naming/ClassAndModuleCamelCase
|
6
|
+
# Manage the site default ownership feature.
|
7
|
+
class Site_ownership
|
8
|
+
# rubocop: enable Naming/ClassAndModuleCamelCase
|
9
|
+
|
10
|
+
# @param [SFRest::Connection] conn
|
11
|
+
def initialize(conn)
|
12
|
+
@conn = conn
|
13
|
+
end
|
14
|
+
|
15
|
+
# Get current site ownership settings.
|
16
|
+
#
|
17
|
+
# @return [Array] an array containing current settings.
|
18
|
+
def default_ownership
|
19
|
+
@conn.get('/api/v1/site-ownership')
|
20
|
+
end
|
21
|
+
|
22
|
+
# Set the site ownership settings.
|
23
|
+
# @param [String] The default owner username. The user has to have the "Platform admin" role.
|
24
|
+
#
|
25
|
+
# @return [Array] an array containing the message given by the server.
|
26
|
+
def make_default_owner(username)
|
27
|
+
payload = {
|
28
|
+
'username' => username
|
29
|
+
}
|
30
|
+
|
31
|
+
@conn.put('/api/v1/site-ownership', payload.to_json)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Removes the default site owner.
|
35
|
+
#
|
36
|
+
# @return [Array] an array containing the message given by the server.
|
37
|
+
def remove_default_owner
|
38
|
+
@conn.delete('/api/v1/site-ownership')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/sfrest/stage.rb
CHANGED
@@ -33,6 +33,8 @@ module SFRest
|
|
33
33
|
# @param [Boolean] wipe_target_environment recreate the target stage wiping all data
|
34
34
|
# @param [synchronize_all_users] only stage the user accounts required for the related collections and groups
|
35
35
|
# @param [Array] Stacks Array of stack ids to wipe
|
36
|
+
# @param [Boolean] skip_site_files site skip file transfer during staging
|
37
|
+
# @param [Array] skip_site_files_overwrite list of files to skip during staging
|
36
38
|
#
|
37
39
|
# @return [Integer] Id of the staging task created.
|
38
40
|
# rubocop:disable Metrics/ParameterLists
|
@@ -41,14 +43,18 @@ module SFRest
|
|
41
43
|
email_site_status: false,
|
42
44
|
wipe_target_environment: false,
|
43
45
|
synchronize_all_users: true,
|
44
|
-
wipe_stacks: []
|
46
|
+
wipe_stacks: [],
|
47
|
+
skip_site_files: false,
|
48
|
+
skip_site_files_overwrite: [])
|
45
49
|
raise InvalidApiVersion, staging_versions unless staging_versions.include? 2
|
46
50
|
|
47
51
|
payload = { 'to_env' => env, 'sites' => sites,
|
48
52
|
'detailed_status' => email_site_status,
|
49
53
|
'wipe_target_environment' => wipe_target_environment,
|
50
54
|
'synchronize_all_users' => synchronize_all_users,
|
51
|
-
'wipe_stacks' => wipe_stacks
|
55
|
+
'wipe_stacks' => wipe_stacks,
|
56
|
+
'skip_site_files' => skip_site_files,
|
57
|
+
'skip_site_files_overwrite' => skip_site_files_overwrite }.to_json
|
52
58
|
@conn.post('/api/v2/stage', payload)
|
53
59
|
end
|
54
60
|
# rubocop:enable Metrics/ParameterLists
|
data/lib/sfrest/version.rb
CHANGED
data/lib/sfrest.rb
CHANGED
@@ -10,9 +10,11 @@ require 'json'
|
|
10
10
|
|
11
11
|
require 'sfrest/audit'
|
12
12
|
require 'sfrest/backup'
|
13
|
+
require 'sfrest/centralized_role_management'
|
13
14
|
require 'sfrest/codebase'
|
14
15
|
require 'sfrest/collection'
|
15
16
|
require 'sfrest/connection'
|
17
|
+
require 'sfrest/cron'
|
16
18
|
require 'sfrest/domains'
|
17
19
|
require 'sfrest/error'
|
18
20
|
require 'sfrest/group'
|
@@ -21,6 +23,7 @@ require 'sfrest/profile'
|
|
21
23
|
require 'sfrest/pathbuilder'
|
22
24
|
require 'sfrest/role'
|
23
25
|
require 'sfrest/site'
|
26
|
+
require 'sfrest/site_ownership'
|
24
27
|
require 'sfrest/stage'
|
25
28
|
require 'sfrest/task'
|
26
29
|
require 'sfrest/theme'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sfrest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.38
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ACSF Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -103,9 +103,11 @@ files:
|
|
103
103
|
- lib/sfrest.rb
|
104
104
|
- lib/sfrest/audit.rb
|
105
105
|
- lib/sfrest/backup.rb
|
106
|
+
- lib/sfrest/centralized_role_management.rb
|
106
107
|
- lib/sfrest/codebase.rb
|
107
108
|
- lib/sfrest/collection.rb
|
108
109
|
- lib/sfrest/connection.rb
|
110
|
+
- lib/sfrest/cron.rb
|
109
111
|
- lib/sfrest/domains.rb
|
110
112
|
- lib/sfrest/error.rb
|
111
113
|
- lib/sfrest/group.rb
|
@@ -114,6 +116,7 @@ files:
|
|
114
116
|
- lib/sfrest/profile.rb
|
115
117
|
- lib/sfrest/role.rb
|
116
118
|
- lib/sfrest/site.rb
|
119
|
+
- lib/sfrest/site_ownership.rb
|
117
120
|
- lib/sfrest/stage.rb
|
118
121
|
- lib/sfrest/task.rb
|
119
122
|
- lib/sfrest/theme.rb
|
@@ -141,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
144
|
- !ruby/object:Gem::Version
|
142
145
|
version: '0'
|
143
146
|
requirements: []
|
144
|
-
rubygems_version: 3.
|
147
|
+
rubygems_version: 3.2.17
|
145
148
|
signing_key:
|
146
149
|
specification_version: 4
|
147
150
|
summary: Acquia Site Factory Rest API.
|