@@ -5,6 +5,7 @@ def index
5
5
manifest = self . class . parse_manifest
6
6
res = {
7
7
:manifest_version => manifest [ :version ] ,
8
+ :default_manifest_version => manifest [ :default_version ] ,
8
9
:using_default_manifest => manifest [ :using_default ]
9
10
}
10
11
render_resource :red_hat_migration_analytics , res
@@ -32,6 +33,23 @@ def bundle_collection(type, data)
32
33
action_result ( false , e . to_s )
33
34
end
34
35
36
+ def import_manifest_collection ( type , data )
37
+ check_feature_enabled
38
+ self . class . store_manifest ( data [ 'manifest' ] )
39
+ action_result ( true , 'imported manifest' )
40
+ end
41
+
42
+ def reset_manifest_collection ( type , data )
43
+ check_feature_enabled
44
+ path = self . class . user_manifest_path
45
+ if File . exist? ( path )
46
+ File . unlink ( path )
47
+ action_result ( true , 'deleted manifest' )
48
+ else
49
+ action_result ( true , 'manifest does not exist' )
50
+ end
51
+ end
52
+
35
53
private
36
54
37
55
def check_feature_enabled
@@ -46,18 +64,33 @@ def find_provider_ids(type)
46
64
end
47
65
48
66
class << self
49
- def parse_manifest
50
- default_manifest_path = Cfme ::MigrationAnalytics ::Engine . root . join ( "config" , "default-manifest.json" )
51
- user_manifest_path = Pathname . new ( "/opt/rh/cfme-migration_analytics/manifest.json" )
52
- manifest_path = user_manifest_path . exist? ? user_manifest_path : default_manifest_path
53
67
54
- manifest = Vmdb ::Settings . filter_passwords! ( load_manifest ( manifest_path ) )
68
+ def default_manifest_path
69
+ @default_manifest_path ||= Cfme ::MigrationAnalytics ::Engine . root . join ( "config" , "default-manifest.json" )
70
+ end
71
+
72
+ def user_manifest_path
73
+ @user_manifest_path ||= Pathname . new ( "/opt/rh/cfme-migration_analytics/manifest.json" )
74
+ end
55
75
76
+ def store_manifest ( manifest )
77
+ user_manifest_path . write ( JSON . generate ( manifest ) )
78
+ end
79
+
80
+ def parse_manifest
81
+ default_manifest = Vmdb ::Settings . filter_passwords! ( load_manifest ( default_manifest_path ) )
82
+ using_default = !user_manifest_path . exist?
83
+ manifest = if using_default
84
+ default_manifest
85
+ else
86
+ Vmdb ::Settings . filter_passwords! ( load_manifest ( user_manifest_path ) )
87
+ end
56
88
{
57
- :path => manifest_path ,
58
- :body => manifest ,
59
- :version => manifest . dig ( "manifest" , "version" ) ,
60
- :using_default => manifest_path == default_manifest_path
89
+ :path => using_default ? default_manifest : user_manifest_path ,
90
+ :body => manifest ,
91
+ :version => manifest . dig ( "manifest" , "version" ) ,
92
+ :default_version => default_manifest . dig ( "manifest" , "version" ) ,
93
+ :using_default => using_default
61
94
}
62
95
end
63
96
0 commit comments