power-bi 2.4.0 → 2.5.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 +4 -4
- data/lib/power-bi/admin.rb +80 -0
- data/lib/power-bi/dataset.rb +6 -1
- data/lib/power-bi/refresh.rb +10 -1
- data/lib/power-bi/tenant.rb +2 -1
- data/lib/power-bi.rb +2 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98d26348ce002789d1f065e91735ae2d441a64bb32c8c935993961036f2d2379
|
4
|
+
data.tar.gz: e3527606c13a8f62a4918b98e0dfc5ed441f691b836b4f670251e80442fcf104
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e1674d67c5cf55473e0325601b65b532dc374cd9e5a08a2345a282c4b5dd0a984392d1c0196857a649a00ceaf45362d21980e85c9050868b5538b4377f20dd6
|
7
|
+
data.tar.gz: 1c7517a30c1d32ddcc7e6d6883ef6a5b91fcac12500c76b89bdbebb473c405dde6b58f45a2b60dc3c60b7dfac440973ea81daa6a49f308c9d22b23670484293a
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module PowerBI
|
2
|
+
class Admin
|
3
|
+
|
4
|
+
def initialize(tenant)
|
5
|
+
@tenant = tenant
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_user_artifact_access(user_id, artifact_types: nil)
|
9
|
+
if artifact_types
|
10
|
+
params = {artifactTypes: artifact_types.join(',')}
|
11
|
+
else
|
12
|
+
params = {}
|
13
|
+
end
|
14
|
+
|
15
|
+
url = "/admin/users/#{user_id}/artifactAccess"
|
16
|
+
|
17
|
+
resp = @tenant.get(url, params)
|
18
|
+
data = resp[:ArtifactAccessEntities]
|
19
|
+
|
20
|
+
continuation_token = resp[:continuationToken]
|
21
|
+
|
22
|
+
while continuation_token
|
23
|
+
params = {continuationToken: "'#{continuation_token}'"}
|
24
|
+
resp = @tenant.get(url, params)
|
25
|
+
data += resp[:ArtifactAccessEntities]
|
26
|
+
continuation_token = resp[:continuationToken] ? URI::decode_uri_component(resp[:continuationToken]) : nil
|
27
|
+
end
|
28
|
+
|
29
|
+
data
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_workspaces(filter: nil, expand: nil)
|
33
|
+
params = {}
|
34
|
+
params[:$filter] = filter if filter
|
35
|
+
params[:$expand] = expand if expand
|
36
|
+
|
37
|
+
url = '/admin/groups'
|
38
|
+
|
39
|
+
nr_records = 5000
|
40
|
+
count = 0
|
41
|
+
|
42
|
+
data = []
|
43
|
+
|
44
|
+
loop do
|
45
|
+
params[:$top] = nr_records
|
46
|
+
params[:$skip] = count
|
47
|
+
resp = @tenant.get(url, params)
|
48
|
+
data += resp[:value]
|
49
|
+
batch_count = resp[:value].size
|
50
|
+
count += batch_count
|
51
|
+
break if batch_count < nr_records
|
52
|
+
end
|
53
|
+
|
54
|
+
data
|
55
|
+
end
|
56
|
+
|
57
|
+
def force_delete_workspace_by_workspace_name(user_email, workspace_name)
|
58
|
+
workspace = get_workspaces(filter: "name eq '#{workspace_name}' and state eq 'Active'").first
|
59
|
+
add_user(user_email, workspace[:id], access_right: "Admin")
|
60
|
+
@tenant.workspace(workspace[:id]).delete
|
61
|
+
end
|
62
|
+
|
63
|
+
def force_delete_workspace_by_workspace_id(user_email, workspace_id)
|
64
|
+
add_user(user_email, workspace_id, access_right: "Admin")
|
65
|
+
@tenant.workspace(workspace_id).delete
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def add_user(user_email, workspace_id, access_right: "Admin")
|
71
|
+
@tenant.post("/admin/groups/#{workspace_id}/users") do |req|
|
72
|
+
req.body = {
|
73
|
+
emailAddress: user_email,
|
74
|
+
groupUserAccessRight: access_right,
|
75
|
+
}.to_json
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
data/lib/power-bi/dataset.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module PowerBI
|
2
2
|
class Dataset < Object
|
3
|
-
attr_reader :workspace, :datasources, :parameters
|
3
|
+
attr_reader :workspace, :datasources, :parameters
|
4
4
|
|
5
5
|
def initialize(tenant, parent, id = nil)
|
6
6
|
super(tenant, id)
|
@@ -38,6 +38,11 @@ module PowerBI
|
|
38
38
|
true
|
39
39
|
end
|
40
40
|
|
41
|
+
def refresh_history(entries_to_load = 1)
|
42
|
+
@refresh_history.entries_to_load = entries_to_load
|
43
|
+
@refresh_history
|
44
|
+
end
|
45
|
+
|
41
46
|
def last_refresh
|
42
47
|
@refresh_history.first
|
43
48
|
end
|
data/lib/power-bi/refresh.rb
CHANGED
@@ -22,18 +22,27 @@ module PowerBI
|
|
22
22
|
end
|
23
23
|
|
24
24
|
class RefreshArray < Array
|
25
|
+
attr_reader :entries_to_load
|
25
26
|
|
26
27
|
def initialize(tenant, dataset)
|
27
28
|
super(tenant, dataset)
|
28
29
|
@dataset = dataset
|
30
|
+
@entries_to_load = 1
|
29
31
|
end
|
30
32
|
|
31
33
|
def self.get_class
|
32
34
|
Refresh
|
33
35
|
end
|
34
36
|
|
37
|
+
def entries_to_load=(entries_to_load)
|
38
|
+
if entries_to_load > @entries_to_load
|
39
|
+
@entries_to_load = entries_to_load
|
40
|
+
reload
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
35
44
|
def get_data
|
36
|
-
@tenant.get("/groups/#{@dataset.workspace.id}/datasets/#{@dataset.id}/refreshes", {'$top':
|
45
|
+
@tenant.get("/groups/#{@dataset.workspace.id}/datasets/#{@dataset.id}/refreshes", {'$top': @entries_to_load.to_s})[:value]
|
37
46
|
end
|
38
47
|
end
|
39
48
|
end
|
data/lib/power-bi/tenant.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module PowerBI
|
2
2
|
class Tenant
|
3
|
-
attr_reader :workspaces, :gateways, :capacities, :profiles, :profile_id
|
3
|
+
attr_reader :workspaces, :gateways, :capacities, :profiles, :profile_id, :admin
|
4
4
|
|
5
5
|
def initialize(token_generator, retries: 5, logger: nil)
|
6
6
|
@token_generator = token_generator
|
@@ -10,6 +10,7 @@ module PowerBI
|
|
10
10
|
@profiles = ProfileArray.new(self)
|
11
11
|
@logger = logger
|
12
12
|
@profile_id = nil
|
13
|
+
@admin = Admin.new(self)
|
13
14
|
|
14
15
|
## WHY RETRIES? ##
|
15
16
|
# It is noticed that once in a while (~0.1% API calls), the Power BI server returns a 500 (internal server error) without apparent reason, just retrying works :-)
|
data/lib/power-bi.rb
CHANGED
@@ -26,4 +26,5 @@ require_relative "power-bi/gateway_datasource_user"
|
|
26
26
|
require_relative "power-bi/page"
|
27
27
|
require_relative "power-bi/user"
|
28
28
|
require_relative "power-bi/capacity"
|
29
|
-
require_relative "power-bi/profile"
|
29
|
+
require_relative "power-bi/profile"
|
30
|
+
require_relative "power-bi/admin"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: power-bi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lode Cools
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- LICENSE
|
90
90
|
- README.md
|
91
91
|
- lib/power-bi.rb
|
92
|
+
- lib/power-bi/admin.rb
|
92
93
|
- lib/power-bi/array.rb
|
93
94
|
- lib/power-bi/capacity.rb
|
94
95
|
- lib/power-bi/dataset.rb
|