cloudwalk 1.14.3 → 1.15.0

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
- SHA1:
3
- metadata.gz: 33fe7832c63301d92899b00ab0470140875c73fd
4
- data.tar.gz: 27a31394e1242bd30219e7c1bd211bb4611b7dcd
2
+ SHA256:
3
+ metadata.gz: 838295a5a7120b68dd5aa8be76e4753fd7d975b53eb596d57a68efa94da993e3
4
+ data.tar.gz: fede34b4874dde009ba31713a9241483e85557b65accc7e7d5c52a8ebdd64a15
5
5
  SHA512:
6
- metadata.gz: a372349fb01c4ff26ffe019a1a14405b386e7fcf3e9b8e9974e20ae15474e0b5bac4fc354ce984a3ba02dd27325b5a331168f958568cfb60ecc94e9ebd8eeada
7
- data.tar.gz: 85bd15540d1cd124159a75ca287004cc41836687f612735e556d3a61f6515fbefc1cbe358dc74af635e12fb4c352fde5d2cbf37cfbba24df04a8837c6ba54b04
6
+ metadata.gz: 0403d3c190c1a2cd2e3f16b3ccaf92795311aac6d47c083889fab786df041a2be32bf9df2f3309af755454d043aeafa01a0c70ee80df339a007ba1dadb292bd4
7
+ data.tar.gz: ce8212697573e8a0c0dc9a1845738f61533b277baa484da58c252ccd46d94894c92b749bb81b101f8c927aa89fa8de2d77395406edb0376cc1f63190695643a0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -9,8 +9,7 @@ require_relative "cloudwalk/config"
9
9
  require_relative "cloudwalk/cw_file_json"
10
10
  require_relative "cloudwalk/deploy"
11
11
  require_relative "cloudwalk/deploy_exception"
12
- require_relative "cloudwalk/posxml/posxml_application"
13
- require_relative "cloudwalk/posxml/posxml_version"
12
+ require_relative "cloudwalk/application"
13
+ require_relative "cloudwalk/application_version"
14
14
  require_relative "cloudwalk/posxml/rake_task"
15
- require_relative "cloudwalk/ruby/ruby_application"
16
15
  require_relative "cloudwalk/ruby/rake_task"
@@ -0,0 +1,68 @@
1
+ module Cloudwalk
2
+ class Application
3
+ include Cloudwalk::ManagerHelper
4
+
5
+ # NEW
6
+ def self.find(name)
7
+ self.all.find do |app|
8
+ app["name"] == name
9
+ end
10
+ end
11
+
12
+ def self.all
13
+ if @apps
14
+ @apps
15
+ else
16
+ response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps?access_token=#{self.token}&per_page=100")))
17
+ raise ManagerException.new(response["message"]) if response["message"]
18
+
19
+ total_pages = response["pagination"]["total_pages"].to_i
20
+ @apps = response["apps"].collect {|r| r["app"] }
21
+ (total_pages - 1).times do |page|
22
+ url = "#{self.host}/v1/apps?access_token=#{self.token}&per_page=100&page=#{page+2}"
23
+ response = JSON.parse(Net::HTTP.get(URI(url)))
24
+ raise ManagerException.new(response["message"]) if response["message"]
25
+
26
+ @apps.concat(response["apps"].collect {|r| r["app"] })
27
+ end
28
+ @apps
29
+ end
30
+ end
31
+
32
+ # BASE
33
+
34
+ def self.get(id)
35
+ url = "#{self.host}/v1/apps/#{id}?access_token=#{self.token}"
36
+ response = JSON.parse(Net::HTTP.get(URI(url)))
37
+ raise ManagerException.new(response["message"]) if response["message"]
38
+
39
+ response["app"]
40
+ end
41
+
42
+ def self.get_name(id)
43
+ get(id)["name"]
44
+ end
45
+
46
+ def self.update(app_id, bytecode, app_parameters = nil)
47
+ url = "#{self.host}/v1/apps/#{app_id}?access_token=#{self.token}"
48
+ uri = URI(url)
49
+ form = {"bytecode" => Base64.strict_encode64(bytecode)}
50
+ response = nil
51
+
52
+ if app_parameters
53
+ form["authorizer_url"] = app_parameters["authorizer_url"]
54
+ form["description"] = app_parameters["description"]
55
+ form["pos_display_label"] = app_parameters["pos_display_label"]
56
+ form["displayable"] = app_parameters["pos_display_label"] != "X"
57
+ end
58
+
59
+ Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
60
+ request = Net::HTTP::Put.new(uri)
61
+ request.set_form_data(form)
62
+ response = http.request(request)
63
+ end
64
+ [response.code.to_i == 200, response]
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,74 @@
1
+ module Cloudwalk
2
+ class ApplicationVersion
3
+ include Cloudwalk::ManagerHelper
4
+
5
+ def self.get_or_create(app, version)
6
+ response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
7
+ raise ManagerException.new(response["message"]) if response["message"]
8
+
9
+ #TODO
10
+ #`curl -X GET "https://api-staging.cloudwalk.io/v1/apps/posxml/3082/versions?access_token=#{self.token}`
11
+ end
12
+
13
+ def self.all(app_id)
14
+ response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
15
+ raise ManagerException.new(response["message"]) if response["message"]
16
+
17
+ total_pages = response["pagination"]["total_pages"].to_i
18
+ versions = response["appversions"]
19
+
20
+ (total_pages - 1).times do |page|
21
+ url = "#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}&per_page=100&page=#{page+2}"
22
+ response = JSON.parse(Net::HTTP.get(URI(url)))
23
+ raise ManagerException.new(response["message"]) if response["message"]
24
+
25
+ versions.concat(response["appversions"])
26
+ end
27
+ versions
28
+ end
29
+
30
+ def self.get(app_id, id)
31
+ url = "#{self.host}/v1/apps/#{app_id}/versions/#{id}?access_token=#{token}"
32
+ response = JSON.parse(Net::HTTP.get(URI(url)))
33
+ if response["message"]
34
+ raise ManagerException.new(response["message"])
35
+ else
36
+ response["app_version"]
37
+ end
38
+ end
39
+
40
+
41
+ # NEW
42
+ def self.find(app_name, version_name)
43
+ applications = Cloudwalk::Application.all
44
+ application = applications.find { |app_json| app_json["name"] == xml2posxml(app_name) }
45
+ versions = Cloudwalk::ApplicationVersion.all(application["id"])
46
+ version = versions.find { |json| json["app_version"]["number"] == version_name }
47
+
48
+ [application, (version && version["app_version"])]
49
+ end
50
+
51
+ # NEW B4
52
+ def self.update(app_id, version_id, bytecode, app_parameters = nil)
53
+ url = "#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}"
54
+ uri = URI(url)
55
+ form = {"bytecode" => Base64.strict_encode64(bytecode)}
56
+ response = nil
57
+
58
+ if app_parameters
59
+ form["authorizer_url"] = app_parameters["authorizer_url"]
60
+ form["number"] = app_parameters["version"]
61
+ form["displayable"] = app_parameters["displayable"]
62
+ form["pos_display_label"] = app_parameters["pos_display_label"]
63
+ end
64
+
65
+ Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
66
+ request = Net::HTTP::Post.new(uri)
67
+ request.set_form_data(form)
68
+ response = http.request(request)
69
+ end
70
+ [response.code.to_i == 201, response]
71
+ end
72
+ end
73
+ end
74
+
@@ -49,6 +49,13 @@ module Cloudwalk
49
49
  false
50
50
  end
51
51
 
52
+ def self.convert_old_cwfile(cwfile)
53
+ if cwfile["apps"].nil?
54
+ cwfile = Hash.[]("apps",[cwfile])
55
+ end
56
+ cwfile
57
+ end
58
+
52
59
  # Load Scenarios
53
60
  # 1. Pure true
54
61
  # - Cwfile.json exists.
@@ -83,7 +90,7 @@ module Cloudwalk
83
90
  # - Cwfile.json.lock not exists.
84
91
  # R: ASK: Cwfile.json not exists, should I create a skeleton or get the last versions available for the files we have here?
85
92
  def self.setup(without_lock_check = false)
86
- if self.cwfile = load_cwfile
93
+ if self.cwfile = self.convert_old_cwfile(load_cwfile)
87
94
  if without_lock_check
88
95
  true
89
96
  elsif CwFileJson.exists_lock?
@@ -108,21 +115,17 @@ module Cloudwalk
108
115
 
109
116
  def self.lock_build
110
117
  config = []
111
- if self.ruby?
112
- if app = Cloudwalk::Ruby::RubyApplication.find(self.cwfile["name"])
113
- config << build_application(:ruby, app)
118
+ self.cwfile["apps"].each do |app_local|
119
+ app, version = Cloudwalk::ApplicationVersion.find(app_local["name"], app_local["version"])
120
+ if app && version
121
+ detail = Cloudwalk::ApplicationVersion.get(app["id"], version["id"])
122
+ config << build_application(app, version, detail["module_ids"])
123
+ elsif app
124
+ app = Cloudwalk::Application.find(xml2posxml(app_local["name"]))
125
+
126
+ config << build_application(app, app_local["version"], app_local["modules"])
114
127
  else
115
- # TODO App not found, what to do?
116
- end
117
- else
118
- self.cwfile["apps"].each do |app_local|
119
- app, version = Cloudwalk::Posxml::PosxmlVersion.find(app_local["name"], app_local["version"])
120
- if app && version
121
- detail = Cloudwalk::Posxml::PosxmlVersion.get(app["id"], version["id"])
122
- config << build_application(:posxml, app, version, detail["module_ids"])
123
- else
124
- raise Cloudwalk::CwFileJsonException.new("App (#{app_local["name"]}) Version (#{app_local["version"]}) not found")
125
- end
128
+ raise Cloudwalk::CwFileJsonException.new("App (#{app_local["name"]}) Version (#{app_local["version"]}) not found")
126
129
  end
127
130
  end
128
131
 
@@ -130,35 +133,26 @@ module Cloudwalk
130
133
  end
131
134
 
132
135
  def self.build_module(mod)
133
- if module_version = Cloudwalk::Posxml::PosxmlVersion.get(mod["app_id"], mod["version_id"])
136
+ app, ver = Cloudwalk::ApplicationVersion.find(mod.first, mod.last)
137
+ if module_version = Cloudwalk::ApplicationVersion.get(app["id"], ver["id"])
134
138
  {
135
- "name" => Cloudwalk::Posxml::PosxmlApplication.get_name(module_version["app_id"]),
139
+ "name" => Cloudwalk::Application.get_name(app["id"]),
136
140
  "version" => module_version["number"],
137
141
  "id" => module_version["app_id"],
138
142
  "version_id" => module_version["id"]
139
143
  }
140
144
  else
141
- raise Cloudwalk::CwFileJsonException.new("App (#{mod['app_id']}) Module Version (#{mod['version_id']}) not found")
145
+ raise Cloudwalk::CwFileJsonException.new("App (#{mod.first}) Module Version (#{mod.last}) not found")
142
146
  end
143
147
  end
144
148
 
145
- def self.build_application(type, app, version = nil, modules_remote = nil)
146
- if type == :ruby
147
- {
148
- "name" => app["name"],
149
- "id" => app["id"],
150
- "modules" => [],
151
- "version" => "1.0.0"
152
- }
153
- else
154
- {
155
- "name" => app["name"],
156
- "id" => app["id"],
157
- "modules" => modules_remote.collect {|mod| build_module(mod)},
158
- "version" => version["number"],
159
- "version_id" => version["id"]
160
- }
161
- end
149
+ def self.build_application(app, version = nil, modules_remote = nil)
150
+ {
151
+ "name" => app["name"],
152
+ "id" => app["id"],
153
+ "modules" => modules_remote.collect {|mod| build_module(mod)},
154
+ "version" => version["number"] || version,
155
+ }
162
156
  end
163
157
 
164
158
  def self.exists?
@@ -256,11 +250,11 @@ module Cloudwalk
256
250
 
257
251
  if remote_app
258
252
  remote_posxml_app = remote_app["posxml_app"]
259
- remote_versions = Cloudwalk::Posxml::PosxmlVersion.all(remote_posxml_app["id"])
253
+ remote_versions = Cloudwalk::ApplicationVersion.all(remote_posxml_app["id"])
260
254
  remote_version_json = remote_versions.find { |json| json["app_version"]["number"] == version }
261
255
 
262
256
  if remote_version_json && (remote_version = remote_version_json["app_version"])
263
- remote_version_detail = Cloudwalk::Posxml::PosxmlVersion.get(remote_posxml_app["id"], remote_version["id"])
257
+ remote_version_detail = Cloudwalk::ApplicationVersion.get(remote_posxml_app["id"], remote_version["id"])
264
258
  # TODO: Check if application exists locally
265
259
  build_application(local_app, config, remote_posxml_app, remote_version, remote_version_detail["app_version"]["module_ids"])
266
260
  else
@@ -30,7 +30,7 @@ module Cloudwalk
30
30
 
31
31
  app_cwfile = self.cwfile["apps"].find {|config| config["name"] == posxml2xml(posxml) }
32
32
 
33
- ret, response = Cloudwalk::Posxml::PosxmlVersion.update(
33
+ ret, response = Cloudwalk::ApplicationVersion.update(
34
34
  app_lock["id"], app_lock["version_id"], File.read(path), app_cwfile
35
35
  )
36
36
  if ret
@@ -42,7 +42,7 @@ module Cloudwalk
42
42
  end
43
43
 
44
44
  def name
45
- self.cwfile["name"]
45
+ self.cwfile["apps"].first["name"]
46
46
  end
47
47
 
48
48
  def ruby
@@ -57,8 +57,8 @@ module Cloudwalk
57
57
  raise Cloudwalk::DeployException.new("application #{self.name} not found at Manager, please create it")
58
58
  end
59
59
 
60
- ret, response = Cloudwalk::Ruby::RubyApplication.update(
61
- app_lock["id"], File.read(zip), self.cwfile
60
+ ret, response = Cloudwalk::ApplicationVersion.update(
61
+ app_lock["id"], app_lock["version_id"], File.read(zip), self.cwfile["apps"].first
62
62
  )
63
63
  if ret
64
64
  STDOUT.write("\r=> Success Deployed \n")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudwalk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.3
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Scalone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-02 00:00:00.000000000 Z
11
+ date: 2020-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -54,6 +54,8 @@ files:
54
54
  - exe/x86_64-pc-linux-gnu
55
55
  - exe/x86_64-w64-mingw32.exe
56
56
  - lib/cloudwalk.rb
57
+ - lib/cloudwalk/application.rb
58
+ - lib/cloudwalk/application_version.rb
57
59
  - lib/cloudwalk/config.rb
58
60
  - lib/cloudwalk/cw_file_json.rb
59
61
  - lib/cloudwalk/cw_file_json_exception.rb
@@ -61,11 +63,8 @@ files:
61
63
  - lib/cloudwalk/deploy_exception.rb
62
64
  - lib/cloudwalk/manager_exception.rb
63
65
  - lib/cloudwalk/manager_helper.rb
64
- - lib/cloudwalk/posxml/posxml_application.rb
65
- - lib/cloudwalk/posxml/posxml_version.rb
66
66
  - lib/cloudwalk/posxml/rake_task.rb
67
67
  - lib/cloudwalk/ruby/rake_task.rb
68
- - lib/cloudwalk/ruby/ruby_application.rb
69
68
  homepage: https://cloudwalk.io/cli
70
69
  licenses:
71
70
  - MIT
@@ -85,8 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
84
  - !ruby/object:Gem::Version
86
85
  version: '0'
87
86
  requirements: []
88
- rubyforge_project:
89
- rubygems_version: 2.6.14
87
+ rubygems_version: 3.0.6
90
88
  signing_key:
91
89
  specification_version: 4
92
90
  summary: CLI for Cloudwalk projects
@@ -1,40 +0,0 @@
1
- module Cloudwalk
2
- module Posxml
3
- class PosxmlApplication
4
- include Cloudwalk::ManagerHelper
5
-
6
- def self.all
7
- if @apps
8
- @apps
9
- else
10
- response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml?access_token=#{self.token}&per_page=100")))
11
- raise ManagerException.new(response["message"]) if response["message"]
12
-
13
- total_pages = response["pagination"]["total_pages"].to_i
14
- apps = response["posxmlapps"]
15
- (total_pages - 1).times do |page|
16
- url = "#{self.host}/v1/apps/posxml?access_token=#{self.token}&per_page=100&page=#{page+2}"
17
- response = JSON.parse(Net::HTTP.get(URI(url)))
18
- raise ManagerException.new(response["message"]) if response["message"]
19
-
20
- apps.concat(response["posxmlapps"])
21
- end
22
- @apps = apps
23
- end
24
- end
25
-
26
- def self.get(id)
27
- url = "#{self.host}/v1/apps/posxml/#{id}?access_token=#{self.token}"
28
- response = JSON.parse(Net::HTTP.get(URI(url)))
29
- raise ManagerException.new(response["message"]) if response["message"]
30
-
31
- response["posxml_app"]
32
- end
33
-
34
- def self.get_name(id)
35
- get(id)["name"]
36
- end
37
- end
38
- end
39
- end
40
-
@@ -1,77 +0,0 @@
1
- module Cloudwalk
2
- module Posxml
3
- class PosxmlVersion
4
- include Cloudwalk::ManagerHelper
5
-
6
- def self.get_or_create(app, version)
7
- response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
8
- raise ManagerException.new(response["message"]) if response["message"]
9
-
10
- #TODO
11
- #`curl -X GET "https://api-staging.cloudwalk.io/v1/apps/posxml/3082/versions?access_token=#{self.token}`
12
- end
13
-
14
- def self.all(app_id)
15
- response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
16
- raise ManagerException.new(response["message"]) if response["message"]
17
-
18
- total_pages = response["pagination"]["total_pages"].to_i
19
- versions = response["appversions"]
20
-
21
- (total_pages - 1).times do |page|
22
- url = "#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100&page=#{page+2}"
23
- response = JSON.parse(Net::HTTP.get(URI(url)))
24
- raise ManagerException.new(response["message"]) if response["message"]
25
-
26
- versions.concat(response["posxmlapps"])
27
- end
28
- versions
29
- end
30
-
31
- def self.get(app_id, id)
32
- url = "#{self.host}/v1/apps/posxml/#{app_id}/versions/#{id}?access_token=#{token}"
33
- response = JSON.parse(Net::HTTP.get(URI(url)))
34
- if response["message"]
35
- raise ManagerException.new(response["message"])
36
- else
37
- response["app_version"]
38
- end
39
- end
40
-
41
-
42
- # NEW
43
- def self.find(app_name, version_name)
44
- applications = Cloudwalk::Posxml::PosxmlApplication.all
45
- app_remote = applications.find { |app_json| app_json["posxml_app"]["name"] == xml2posxml(app_name) }
46
- app_posxml = app_remote["posxml_app"]
47
- versions = Cloudwalk::Posxml::PosxmlVersion.all(app_posxml["id"])
48
- version = versions.find { |json| json["app_version"]["number"] == version_name }
49
-
50
- [app_posxml, (version && version["app_version"])]
51
- end
52
-
53
- # NEW B4
54
- def self.update(app_id, version_id, bytecode, app_parameters = nil)
55
- url = "#{self.host}/v1/apps/posxml/#{app_id}/versions/#{version_id}?access_token=#{self.token}"
56
- uri = URI(url)
57
- form = {"bytecode" => Base64.strict_encode64(bytecode)}
58
- response = nil
59
-
60
- if app_parameters
61
- form["authorizer_url"] = app_parameters["authorizer_url"]
62
- form["description"] = app_parameters["description"]
63
- form["pos_display_label"] = app_parameters["pos_display_label"]
64
- form["displayable"] = app_parameters["pos_display_label"] != "X"
65
- end
66
-
67
- Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
68
- request = Net::HTTP::Put.new(uri)
69
- request.set_form_data(form)
70
- response = http.request(request)
71
- end
72
- [response.code.to_i == 200, response]
73
- end
74
- end
75
- end
76
- end
77
-
@@ -1,70 +0,0 @@
1
- module Cloudwalk
2
- module Ruby
3
- class RubyApplication
4
- include Cloudwalk::ManagerHelper
5
-
6
- # NEW
7
- def self.find(name)
8
- self.all.find do |app|
9
- app["name"] == name
10
- end
11
- end
12
-
13
- def self.all
14
- if @apps
15
- @apps
16
- else
17
- response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/ruby?access_token=#{self.token}&per_page=100")))
18
- raise ManagerException.new(response["message"]) if response["message"]
19
-
20
- total_pages = response["pagination"]["total_pages"].to_i
21
- @apps = response["rubyapps"].collect {|r| r["ruby_app"] }
22
- (total_pages - 1).times do |page|
23
- url = "#{self.host}/v1/apps/ruby?access_token=#{self.token}&per_page=100&page=#{page+2}"
24
- response = JSON.parse(Net::HTTP.get(URI(url)))
25
- raise ManagerException.new(response["message"]) if response["message"]
26
-
27
- @apps.concat(response["ruby_app"])
28
- end
29
- @apps
30
- end
31
- end
32
-
33
- # BASE
34
-
35
- def self.get(id)
36
- url = "#{self.host}/v1/apps/ruby/#{id}?access_token=#{self.token}"
37
- response = JSON.parse(Net::HTTP.get(URI(url)))
38
- raise ManagerException.new(response["message"]) if response["message"]
39
-
40
- response["ruby_app"]
41
- end
42
-
43
- def self.get_name(id)
44
- get(id)["name"]
45
- end
46
-
47
- def self.update(app_id, bytecode, app_parameters = nil)
48
- url = "#{self.host}/v1/apps/ruby/#{app_id}?access_token=#{self.token}"
49
- uri = URI(url)
50
- form = {"bytecode" => Base64.strict_encode64(bytecode)}
51
- response = nil
52
-
53
- if app_parameters
54
- form["authorizer_url"] = app_parameters["authorizer_url"]
55
- form["description"] = app_parameters["description"]
56
- form["pos_display_label"] = app_parameters["pos_display_label"]
57
- form["displayable"] = app_parameters["pos_display_label"] != "X"
58
- end
59
-
60
- Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
61
- request = Net::HTTP::Put.new(uri)
62
- request.set_form_data(form)
63
- response = http.request(request)
64
- end
65
- [response.code.to_i == 200, response]
66
- end
67
- end
68
- end
69
- end
70
-