sfrest 0.0.48 → 0.0.49

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d38168ced43804e889671f1c50c6c70cf55d21963f86a756651afd1c8436108c
4
- data.tar.gz: 5bc2f1e86adf416232eeeea83e33b21eb451c782790a7cb3691a113ab47d322a
3
+ metadata.gz: 8136c3ffefde11423c1aa1d7c6774808d76e29a950ef1b45776b72f29abb2312
4
+ data.tar.gz: df0f30cad6d972b67efade7e6cd0bbf55bb15641eb8b767fb67cb216fb7a1f50
5
5
  SHA512:
6
- metadata.gz: 2382ca986e5667d3c33f28aa57826807d6e41f94bb5bcccc627e47e2039ae182312ffe7af8a6c16d242d3e532d3729c744484c12574c9b2c4c5ffed8454bb45c
7
- data.tar.gz: 671f3259df03c914f183fef09b22de7546668dff2df521586ba1b7ee8d5c5f062bf98d679755f2ef3c7c1f2eabf47546b35e066880420f723d5c4e7bce863ae0
6
+ metadata.gz: 18a375cbf437a1365275308a86e42c4e8cf91364a13718b01eb3d230dc7a6636c28ef96f03b849da412a92d655ca433cc2fe08055523d2959b392e21ecc33a4b
7
+ data.tar.gz: fdc7e6461e155616b8ff15497d52d6f885b1a6f7ad6c1a8410d5f1c6d6f7c86788a4d573e3a9468a8d35bb6a4ea25c0a2b5596b47b476ecd0acf9fd31b5ef672
data/lib/sfrest/backup.rb CHANGED
@@ -37,6 +37,53 @@ module SFRest
37
37
  @conn.post(current_path, datum.to_json)
38
38
  end
39
39
 
40
+ def execute_backup(options = {})
41
+ api = options[:api]
42
+ rconn = options[:rconn]
43
+ acsf = options[:acsf]
44
+ site_nid = options[:site_nid]
45
+ name = options[:name]
46
+ components = options[:components]
47
+ user = options[:user]
48
+
49
+ case api
50
+ when 'rest'
51
+ execute_rest_backup(rconn, site_nid, name, components)
52
+ when 'drush'
53
+ execute_drush_backup(acsf, site_nid, name, components, user)
54
+ else
55
+ raise "Unsupported API: #{api}"
56
+ end
57
+ end
58
+
59
+ def execute_rest_backup(rconn, site_nid, name, components)
60
+ payload = {
61
+ 'label' => name,
62
+ 'components' => components
63
+ }.to_json
64
+ rconn.post "/api/v1/sites/#{site_nid}/backup", payload
65
+ end
66
+
67
+ def execute_drush_backup(acsf, site_nid, name, components, user)
68
+ drush_components = components.is_a?(Array) ? components.join(',') : components
69
+ drush_cmd = "sf-backup #{site_nid} \"#{name}\" --components=\"#{drush_components}\" --user=#{user} --format=json"
70
+ drush_cmd_update = acsf.drush drush_cmd
71
+ result = acsf.factory_ssh.exec!(drush_cmd_update).strip
72
+ JSON.parse(result)
73
+ end
74
+
75
+ def parse_response(response)
76
+ raise "Unexpected response type: #{response.class}" unless response.is_a?(Hash)
77
+
78
+ [response['task_id'], response['message']]
79
+ end
80
+
81
+ def parse_components(components_json)
82
+ JSON.parse(components_json)
83
+ rescue JSON::ParserError
84
+ components_json # Keep the original string if it's not valid JSON
85
+ end
86
+
40
87
  # Gets a url to download a backup
41
88
  # @param [Integer] site_id Node id of site
42
89
  # @param [Integer] backup_id Id of backup to delete
@@ -2,5 +2,5 @@
2
2
 
3
3
  module SFRest
4
4
  # Just tracks the version of sfrest.
5
- VERSION = '0.0.48'
5
+ VERSION = '0.0.49'
6
6
  end
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.48
4
+ version: 0.0.49
5
5
  platform: ruby
6
6
  authors:
7
7
  - ACSF Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-12 00:00:00.000000000 Z
11
+ date: 2024-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.0.3.1
152
+ rubygems_version: 3.3.26
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Acquia Site Factory Rest API.