Skip to content

Commit 239bc42

Browse files
committed
support inv queue
1 parent 88d4a6f commit 239bc42

File tree

9 files changed

+49
-126
lines changed

9 files changed

+49
-126
lines changed

cognito-lambda-nonvpc/Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ GEM
33
specs:
44
ast (2.4.2)
55
aws-eventstream (1.3.0)
6-
aws-partitions (1.924.0)
6+
aws-partitions (1.925.0)
77
aws-sdk-cognitoidentityprovider (1.90.0)
88
aws-sdk-core (~> 3, >= 3.193.0)
99
aws-sigv4 (~> 1.1)
10-
aws-sdk-core (3.194.1)
10+
aws-sdk-core (3.194.2)
1111
aws-eventstream (~> 1, >= 1.3.0)
1212
aws-partitions (~> 1, >= 1.651.0)
1313
aws-sigv4 (~> 1.8)

src-colladmin/Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ gem 'aws-sdk-lambda'
1212
gem 'aws-sdk-s3'
1313
gem 'aws-sdk-ssm'
1414
gem 'csv'
15-
gem 'mrt-zk', git: 'https://github.com/CDLUC3/mrt-zk.git', tag: '1.0.3.d'
15+
gem 'mrt-zk', git: 'https://github.com/CDLUC3/mrt-zk.git', tag: '1.0.3.g'
1616
gem 'rest-client'
1717
gem 'rubocop'
1818
gem 'uc3-ssm', '0.3.10', git: 'https://github.com/CDLUC3/uc3-ssm.git', branch: 'main'

src-colladmin/Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
GIT
22
remote: https://github.com/CDLUC3/mrt-zk.git
3-
revision: 4297c486b446942d4ae748908f7a838b68e44428
4-
tag: 1.0.3.d
3+
revision: 9dd3b3e45de97160d2c6331c4152a5e1ab03f83f
4+
tag: 1.0.3.g
55
specs:
66
mrt-zk (1.0.1)
77
zk (~> 1.10.0)

src-colladmin/actions/zookeeper_action.rb

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,19 @@ class ZookeeperAction < AdminAction
8686
def initialize(config, action, path, myparams)
8787
super(config, action, path, myparams)
8888
@zk = ZK.new(get_zookeeper_conn)
89-
@qid = myparams.fetch('queue-path', '')
89+
@qpath = myparams.fetch('queue-path', '')
9090
end
9191

9292
def get_zookeeper_conn
9393
@config.fetch('zookeeper', '')
9494
end
9595

9696
def perform_action
97-
{ message: "No response for #{@path}: #{@qid}" }.to_json
97+
{ message: "No response for #{@path}: #{@qpath}" }.to_json
9898
rescue StandardError => e
9999
log(e.message)
100100
log(e.backtrace)
101-
{ error: "#{e.message} for #{@path}: #{@qid}" }.to_json
101+
{ error: "#{e.message} for #{@path}: #{@qpath}" }.to_json
102102
end
103103
end
104104

@@ -121,19 +121,19 @@ class ZkReleaseM1Action < ZookeeperAction
121121
## Legacy Queue manipulation action using new mrt-zk
122122
class LegacyZkAction < ZookeeperAction
123123
def status_vals
124-
MerrittZK::LegacyIngestJob.status_vals
124+
MerrittZK::LegacyItem::STATUS_VALS
125125
end
126126

127127
def prefix
128128
'na'
129129
end
130130

131-
def path
132-
"/#{prefix}/#{@qid}"
131+
def qpath
132+
@qpath
133133
end
134134

135135
def bytes
136-
data = @zk.get(path)
136+
data = @zk.get(qpath)
137137
return if data.nil?
138138

139139
data[0].bytes
@@ -154,7 +154,7 @@ def orig_stat_name
154154
def write_status(status)
155155
pbytes = bytes
156156
pbytes[0] = status
157-
@zk.set(path, pbytes.pack('CCCCCCCCCc*'))
157+
@zk.set(qpath, pbytes.pack('CCCCCCCCCc*'))
158158
end
159159

160160
def set_status(status)
@@ -175,15 +175,7 @@ def check_status(_status)
175175

176176
##
177177
# Legacy Ingest queue action
178-
class LegacyIngestZkAction < LegacyZkAction
179-
def prefix
180-
'ingest'
181-
end
182-
end
183-
184-
##
185-
# Legacy Ingest queue action
186-
class ZkRequeueLegacyIngestAction < LegacyIngestZkAction
178+
class ZkRequeueLegacyAction < LegacyZkAction
187179
def perform_action
188180
set_status('Pending')
189181
end
@@ -195,7 +187,7 @@ def check_status(status)
195187

196188
##
197189
# Legacy Ingest queue action
198-
class ZkDeleteLegacyIngestAction < LegacyIngestZkAction
190+
class ZkDeleteLegacyAction < LegacyZkAction
199191
def perform_action
200192
set_status('Deleted')
201193
end
@@ -207,7 +199,7 @@ def check_status(status)
207199

208200
##
209201
# Legacy Ingest queue action
210-
class ZkHoldLegacyIngestAction < LegacyIngestZkAction
202+
class ZkHoldLegacyAction < LegacyZkAction
211203
def perform_action
212204
set_status('Held')
213205
end
@@ -219,7 +211,7 @@ def check_status(status)
219211

220212
##
221213
# Legacy Ingest queue action
222-
class ZkReleaseLegacyIngestAction < LegacyIngestZkAction
214+
class ZkReleaseLegacyAction < LegacyZkAction
223215
def perform_action
224216
set_status('Pending')
225217
end
@@ -236,7 +228,7 @@ def zk_path
236228
end
237229

238230
def status_vals
239-
MerrittZK::LegacyIngestJob.status_vals
231+
MerrittZK::LegacyItem::STATUS_VALS
240232
end
241233

242234
def is_json
@@ -260,7 +252,7 @@ def zk_path
260252
end
261253

262254
def status_vals
263-
MerrittZK::LegacyInventoryJob.status_vals
255+
MerrittZK::LegacyItem::STATUS_VALS
264256
end
265257

266258
def is_json

src-colladmin/config/actions.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,7 @@ queue-delete-mrtzk:
933933
migration: m1
934934
queue-delete-legacy:
935935
link-title: Remove an item from a Zookeeper queue
936-
class: ZkDeleteLegacyIngestAction
936+
class: ZkDeleteLegacyAction
937937
category: Queue Management
938938
sensitivity: irreversible change
939939
testing: manual
@@ -973,7 +973,7 @@ requeue-mrtzk:
973973
migration: m1
974974
requeue-legacy:
975975
link-title: Re-queue an item from a Zookeeper queue
976-
class: ZkRequeueLegacyIngestAction
976+
class: ZkRequeueLegacyAction
977977
category: Queue Management
978978
sensitivity: irreversible change
979979
testing: manual
@@ -1013,7 +1013,7 @@ hold-queue-item-mrtzk:
10131013
migration: m1
10141014
hold-queue-item-legacy:
10151015
link-title: Move a pending item from in Zookeeper queue to a Held status
1016-
class: ZkHoldLegacyIngestAction
1016+
class: ZkHoldLegacyAction
10171017
category: Queue Management
10181018
sensitivity: irreversible change
10191019
testing: manual
@@ -1053,7 +1053,7 @@ release-queue-item-mrtzk:
10531053
migration: m1
10541054
release-queue-item-legacy:
10551055
link-title: Release a held item from in Zookeeper queue to a Pending status
1056-
class: ZkReleaseLegacyIngestAction
1056+
class: ZkReleaseLegacyAction
10571057
category: Queue Management
10581058
sensitivity: irreversible change
10591059
testing: manual

src-colladmin/lib/inv_queue.rb

Lines changed: 14 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,23 @@ def initialize(json)
1414
super()
1515
add_property(
1616
:queueNode,
17-
MerrittJsonProperty.new('Queue Node').lookup_value(json, '', 'queueNode')
17+
MerrittJsonProperty.new('Queue Node').lookup_value(json, '', :queueNode)
1818
)
1919
add_property(
2020
:manifestURL,
21-
MerrittJsonProperty.new('Manifest URL').lookup_value(json, '', 'manifestURL')
21+
MerrittJsonProperty.new('Manifest URL').lookup_value(json, '', :manifestURL)
2222
)
2323
add_property(
2424
:date,
25-
MerrittJsonProperty.new('Date').lookup_time_value(json, '', 'date')
25+
MerrittJsonProperty.new('Date').lookup_time_value(json, '', :date)
2626
)
2727
add_property(
2828
:qstatus,
29-
MerrittJsonProperty.new('QStatus').lookup_value(json, '', 'status')
29+
MerrittJsonProperty.new('QStatus').lookup_value(json, '', :status)
3030
)
3131
add_property(
3232
:queueId,
33-
MerrittJsonProperty.new('Queue ID').lookup_value(json, '', 'iD')
33+
MerrittJsonProperty.new('Queue ID').lookup_value(json, '', :id)
3434
)
3535
qs = get_value(:qstatus, '')
3636
qt = get_value(:date, '')
@@ -60,11 +60,11 @@ def initialize(json)
6060

6161
add_property(
6262
:qdelete,
63-
MerrittJsonProperty.new('Queue Del', get_queue_path(requeue: false))
63+
MerrittJsonProperty.new('Queue Del', get_del_queue_path_m1)
6464
)
6565
add_property(
6666
:requeue,
67-
MerrittJsonProperty.new('Requeue', get_queue_path(requeue: true))
67+
MerrittJsonProperty.new('Requeue', get_requeue_path_m1)
6868
)
6969
end
7070

@@ -80,8 +80,13 @@ def self.table_types
8080
type = ''
8181
type = 'status' if sym == :status
8282
type = 'datetime' if sym == :date
83-
type = 'qdelete' if sym == :qdelete
84-
type = 'requeue' if sym == :requeue
83+
if $migration == :m1
84+
type = 'qdelete-mrtzk' if sym == :qdelete
85+
type = 'requeue-mrtzk' if sym == :requeue
86+
else
87+
type = 'qdelete-legacy' if sym == :qdelete
88+
type = 'requeue-legacy' if sym == :requeue
89+
end
8590
arr.append(type)
8691
end
8792
arr
@@ -104,69 +109,3 @@ def date
104109
get_value(:date)
105110
end
106111
end
107-
108-
# inventory queue
109-
class InventoryQueue < MerrittJson
110-
def initialize(queue_list, body)
111-
data = JSON.parse(body)
112-
data = fetch_hash_val(data, 'que:queueState')
113-
data = fetch_hash_val(data, 'que:queueEntries')
114-
list = fetch_array_val(data, 'que:queueEntryState')
115-
list.each do |obj|
116-
q = InvQueueEntry.new(obj)
117-
queue_list.manifests.append(q)
118-
end
119-
super()
120-
end
121-
end
122-
123-
# list of all inventory queues - only one exists
124-
class InvQueueList < MerrittJson
125-
def initialize(ingest_server, body, _filter = {})
126-
super()
127-
@ingest_server = ingest_server
128-
@body = body
129-
@manifests = []
130-
retrieve_queues
131-
end
132-
133-
def self.get_queue_list(ingest_server, filter = {})
134-
qjson = HttpGetJson.new(ingest_server, 'admin/queues-inv')
135-
InvQueueList.new(ingest_server, qjson.body, filter)
136-
end
137-
138-
def retrieve_queues
139-
data = JSON.parse(@body)
140-
data = fetch_hash_val(data, 'ingq:ingestQueueNameState')
141-
data = fetch_hash_val(data, 'ingq:ingestQueueName')
142-
fetch_array_val(data, 'ingq:ingestQueue').each do |qjson|
143-
node = fetch_hash_val(qjson, 'ingq:node')
144-
begin
145-
qjson = HttpGetJson.new(@ingest_server, "admin/queue-inv#{node}")
146-
next unless qjson.status == 200
147-
148-
InventoryQueue.new(self, qjson.body)
149-
rescue StandardError => e
150-
LambdaBase.log(e.message)
151-
LambdaBase.log(e.backtrace)
152-
end
153-
end
154-
end
155-
156-
attr_reader :manifests, :body
157-
158-
def to_table
159-
table = []
160-
ms = @manifests.sort do |a, b|
161-
if a.status == b.status
162-
b.date <=> a.date
163-
else
164-
AdminTask.status_sort_val(a.status) <=> AdminTask.status_sort_val(b.status)
165-
end
166-
end
167-
ms.each_with_index do |q, _i|
168-
table.append(q.to_table_row)
169-
end
170-
table
171-
end
172-
end

src-colladmin/lib/queue_json.rb

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ def get_queue_node
88
get_value(:queueNode, '')
99
end
1010

11+
def path
12+
"#{get_queue_node}/#{get_value(:queueId, '')}"
13+
end
14+
1115
def get_queue_path(requeue: false)
1216
st = get_value(:qstatus, '')
1317
case st
@@ -33,14 +37,14 @@ def get_del_queue_path_m1
3337
st = get_value(:qstatus, '')
3438
return '' unless %w[Failed Completed Held].include?(st)
3539

36-
get_value(:queueId, '')
40+
path
3741
end
3842

3943
def get_requeue_path_m1
4044
st = get_value(:qstatus, '')
4145
return '' unless %w[Consumed Failed].include?(st)
4246

43-
get_value(:queueId, '')
47+
path
4448
end
4549

4650
def get_hold_path(release: false)
@@ -52,20 +56,20 @@ def get_hold_path(release: false)
5256
else
5357
return ''
5458
end
55-
"#{get_queue_node}/#{get_value(:queueId, '')}"
59+
path
5660
end
5761

5862
def get_hold_path_m1
5963
st = get_value(:qstatus, '')
6064
return '' unless %w[Pending].include?(st)
6165

62-
get_value(:queueId, '')
66+
path
6367
end
6468

6569
def get_release_path_m1
6670
st = get_value(:qstatus, '')
6771
return '' unless %w[Held].include?(st)
6872

69-
get_value(:queueId, '')
73+
path
7074
end
7175
end

src-common/template/api-table.css

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -297,19 +297,7 @@ td.requeue a,
297297
td.hold a,
298298
td.release a,
299299
td.colllock a,
300-
td.collqitems a,
301-
td.qdelete-mrtzk a,
302-
td.requeue-mrtzk a,
303-
td.hold-mrtzk a,
304-
td.release-mrtzk a,
305-
td.colllock-mrtzk a,
306-
td.collqitems-mrtzk a,
307-
td.qdelete-legacy a,
308-
td.requeue-legacy a,
309-
td.hold-legacy a,
310-
td.release-legacy a,
311-
td.colllock-legacy a,
312-
td.collqitems-legacy a {
300+
td.collqitems a {
313301
display: block;
314302
text-align: center;
315303
border-radius: 5px;

src-testdriver/Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ GEM
1313
specs:
1414
ast (2.4.2)
1515
aws-eventstream (1.3.0)
16-
aws-partitions (1.924.0)
17-
aws-sdk-core (3.194.1)
16+
aws-partitions (1.925.0)
17+
aws-sdk-core (3.194.2)
1818
aws-eventstream (~> 1, >= 1.3.0)
1919
aws-partitions (~> 1, >= 1.651.0)
2020
aws-sigv4 (~> 1.8)

0 commit comments

Comments
 (0)