Subversion Repositories DevTools

Rev

Rev 6770 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6770 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   _json_Replication.asp
5
'   Ajax support Package Replication Operations
6
'
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
12
Response.ContentType = "text/html"
13
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
14
Response.CodePage = 65001
15
Response.CharSet = "UTF-8"
16
%>
17
<!--#include file="common/conf.asp"-->
18
<!--#include file="common/globals.asp"-->
19
<!--#include file="common/qstr.asp"-->
20
<!--#include file="common/common_subs.asp"-->
21
<% '------------ ACCESS CONTROL ------------------ %>
22
<!--#include file="_access_control_login_optional.asp"-->
23
<!--#include file="_access_control_general.asp"-->
24
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
25
<%
26
'------------ Variable Definition -------------
27
Dim parOpr
28
Dim result
29
Dim SqlQry
30
Dim rsQry
31
 
32
parOpr = QStrPar("Opr")
33
 
34
' Init the output JSON class
35
'   Operations can add data
36
'   Default data will be added at the end
37
Dim oJSON
38
Set oJSON = New aspJSON
39
Dim newitem
40
 
41
Function canModify
42
    canModify = canActionInProject()
43
    If NOT canModify Then
44
        result = -4
45
        oJSON.data("error") = 1
46
        oJSON.data("emsgSummary") = "Permission denied"
47
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
48
    End If
49
End Function
50
 
51
'
52
'   Prefill error indications
53
'   
54
result = -1
55
oJSON.data("emsgSummary") = "JSON Operation:" & parOpr
56
oJSON.data("emsgDetails") = "Internal Problem. Error not reported" 
57
 
58
'   
59
'   Perform the body of the operations within a Sub and use
60
'   On Error Resule Next to catch errors that accur in the code
61
'
62
On Error Resume Next
63
 
64
If (parOpr = "EnableProject") Then
65
    If canModify() Then EnableProject
66
ElseIf (parOpr = "RemoveProject") Then
67
    If canModify() Then RemoveProject
68
ElseIf (parOpr = "AddProject") Then
69
    If canModify() Then AddProject
70
ElseIf (parOpr = "EnableRelease") Then
71
    If canModify() Then EnableRelease
72
ElseIf (parOpr = "RemoveRelease") Then
73
    If canModify() Then RemoveRelease
74
ElseIf (parOpr = "AddRelease") Then
75
    If canModify() Then AddRelease
76
 
77
Else
78
    oJSON.data("error") = 1
79
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
80
    oJSON.data("emsgDetails") = "JSON operation is not supported: " & parOpr
81
End If
82
 
83
 
84
' SQL error detection and reporting
85
If objEH.LastOraFailed Then
86
    oJSON.data("error") = 1
87
    result = -1
88
 
89
    oJSON.data("emsgSummary") = objEH.MessageSummary
90
    oJSON.data("emsgDetails") = objEH.MessageDetails
91
    oJSON.data("SqlQry") = SqlQry
92
'
93
'   Detect program errors
94
ElseIf Err.number <> 0 Then
95
    result = -3
96
    oJSON.data("error") = 2
97
    oJSON.data("errnum") = Err.number
98
    oJSON.data("errtxt") = Err.description
99
    oJSON.data("errsrc") = Err.source
100
    oJSON.data("emsgSummary") = "Internal VBScript Error:"
101
    oJSON.data("emsgDetails") = Err.number &  ":" & Err.description
102
End If
103
On error goto 0
104
'Write single value
105
oJSON.data("result") = result
106
If result = 0 Then
107
    oJSON.data.Remove("emsgSummary")
108
    oJSON.data.Remove("emsgDetails")
109
End If
110
 
111
'function Sleep(seconds)
112
'    dim oshell, cmd
113
'    set oShell = CreateObject("Wscript.Shell")
114
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
115
'    oShell.Run cmd,0,1
116
'End function
117
'
118
'Sleep(2)
119
 
120
 
121
' DEBUG: A Hash of the user provided requests
122
<!--oJSON.data("QueryString") = Request.QueryString       -->
123
<!--                                                      -->
124
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
125
<!--Set oJSON.data("Request") = requestSet                -->
126
<!--Dim variableName                                      -->
127
<!--for each variableName in Request.QueryString          -->
128
<!--    requestSet.add variableName, Request(variableName)-->
129
<!--next                                                  -->
130
<!--for each variableName in Request.Form                 -->
131
<!--    requestSet.add variableName, Request(variableName)-->
132
<!--next                                                  -->
133
 
134
 
135
'Return the object
136
Response.Write oJSON.JSONoutput()
137
Set oJSON = Nothing
138
Call Destroy_All_Objects
139
%>
140
<%
141
'-------------------------------------------------
142
' Function:    EnableProject
143
' Description: Set the enabled state of a Project Replica for a specified target
144
'              server_id - Id of the BLAT replica server
145
'              user_id - user_id requesting the operation
146
'              proj_id - proj_id of the project entry to modify
147
'              new_state - New state
148
Sub EnableProject
149
 
150
    Dim  parServerId : parServerId = QStrPar("server_id")
151
    Dim  parUserId : parUserId = QStrPar("user_id")
152
    Dim  parProjId : parProjId = QStrPar("proj_id")
153
    Dim  parState  : parState = QStrPar("new_state")
154
 
155
    If parServerId <> "" AND parUserId<> "" AND parProjId <> "" AND parState <> "" Then
156
 
157
        If parState <> "Y" and parState <> "N" Then
158
            oJSON.data("emsgSummary") = "EnableProject"
159
            oJSON.data("emsgDetails") = "Invalid State"
160
            Exit Sub
161
        End If
162
 
163
        objEH.ErrorRedirect = FALSE
164
        objEH.TryORA ( OraSession )
165
        On Error Resume Next
166
 
167
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
168
        OraDatabase.Parameters.Add "PROJ_ID",           parProjId,      ORAPARM_INPUT, ORATYPE_NUMBER
169
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
170
        OraDatabase.Parameters.Add "STATE",             parState,       ORAPARM_INPUT, ORATYPE_NUMBER
171
 
172
        SqlQry = "UPDATE BLAT_PROJECTS SET BP_ENABLED = :STATE where BLAT_ID = :SERVER_ID and PROJ_ID = :PROJ_ID"
173
        OraDatabase.ExecuteSQL SqlQry
174
 
6773 dpurdie 175
        OraDatabase.ExecuteSQL ("BEGIN PK_BLATAPI.set_pkg_replica_changed(:SERVER_ID); END; ")
176
 
6770 dpurdie 177
        OraDatabase.Parameters.Remove "USER_ID_LIST"
178
        OraDatabase.Parameters.Remove "PROJ_ID"
179
        OraDatabase.Parameters.Remove "SERVER_ID"
180
        OraDatabase.Parameters.Remove "STATE"
181
 
182
        objEH.CatchORA ( OraSession )
183
        result = 0
184
 
185
    Else
186
        oJSON.data("emsgSummary") = "EnableProject"
187
        oJSON.data("emsgDetails") = "Insufficient arguments"
188
    End If
189
 
190
End Sub
191
 
192
'-------------------------------------------------
193
' Function:    RemoveProject
194
' Description: Remove a Project Replica for a specified target
195
'              server_id - Id of the BLAT replica server
196
'              user_id - user_id requesting the operation
197
'              proj_id - proj_id of the project entry to modify
198
Sub RemoveProject
199
 
200
    Dim  parServerId : parServerId = QStrPar("server_id")
201
    Dim  parUserId : parUserId = QStrPar("user_id")
202
    Dim  parProjId : parProjId = QStrPar("proj_id")
203
 
204
    If parServerId <> "" AND parUserId<> "" AND parProjId <> "" Then
205
 
206
        objEH.ErrorRedirect = FALSE
207
        objEH.TryORA ( OraSession )
208
        On Error Resume Next
209
 
210
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
211
        OraDatabase.Parameters.Add "PROJ_ID",           parProjId,      ORAPARM_INPUT, ORATYPE_NUMBER
212
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
213
 
214
        SqlQry = "DELETE FROM BLAT_PROJECTS where BLAT_ID = :SERVER_ID and PROJ_ID = :PROJ_ID"
215
        OraDatabase.ExecuteSQL SqlQry
6773 dpurdie 216
        OraDatabase.ExecuteSQL ("BEGIN PK_BLATAPI.set_pkg_replica_changed(:SERVER_ID); END; ")
6770 dpurdie 217
 
218
        OraDatabase.Parameters.Remove "USER_ID_LIST"
219
        OraDatabase.Parameters.Remove "PROJ_ID"
220
        OraDatabase.Parameters.Remove "SERVER_ID"
221
 
222
        objEH.CatchORA ( OraSession )
223
        result = 0
224
 
225
    Else
226
        oJSON.data("emsgSummary") = "EnableProject"
227
        oJSON.data("emsgDetails") = "Insufficient arguments"
228
    End If
229
 
230
End Sub
231
 
232
'-------------------------------------------------
233
' Function:    AddProject
234
' Description: Add a Project Replica for a specified target
235
'              server_id - Id of the BLAT replica server
236
'              user_id - user_id requesting the operation
237
'              proj_id - proj_id of the project entry to modify
238
Sub AddProject
239
 
240
    Dim  parServerId : parServerId = QStrPar("server_id")
241
    Dim  parUserId : parUserId = QStrPar("user_id")
242
    Dim  parProjId : parProjId = QStrPar("proj_id")
243
 
244
    If parServerId <> "" AND parUserId<> "" AND parProjId <> "" Then
245
 
246
        objEH.ErrorRedirect = FALSE
247
        objEH.TryORA ( OraSession )
248
        On Error Resume Next
249
 
250
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
251
        OraDatabase.Parameters.Add "PROJ_ID",           parProjId,      ORAPARM_INPUT, ORATYPE_NUMBER
252
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
253
 
254
        SqlQry = "INSERT INTO BLAT_PROJECTS (BLAT_ID,proj_id) VALUES( :SERVER_ID, :PROJ_ID)"
255
        OraDatabase.ExecuteSQL SqlQry
6773 dpurdie 256
        OraDatabase.ExecuteSQL ("BEGIN PK_BLATAPI.set_pkg_replica_changed(:SERVER_ID); END; ")
6770 dpurdie 257
 
258
        OraDatabase.Parameters.Remove "USER_ID_LIST"
259
        OraDatabase.Parameters.Remove "PROJ_ID"
260
        OraDatabase.Parameters.Remove "SERVER_ID"
261
 
262
        objEH.CatchORA ( OraSession )
263
        result = 0
264
 
265
    Else
266
        oJSON.data("emsgSummary") = "EnableProject"
267
        oJSON.data("emsgDetails") = "Insufficient arguments"
268
    End If
269
 
270
End Sub
271
 
272
'-------------------------------------------------
273
' Function:    EnableRelease
274
' Description: Set the enabled state of a Release Replica for a specified target
275
'              server_id - Id of the BLAT replica server
276
'              user_id - user_id requesting the operation
277
'              rtag_id - rtag_id of the release entry to modify
278
'              new_state - New state
279
Sub EnableRelease
280
 
281
    Dim  parServerId : parServerId = QStrPar("server_id")
282
    Dim  parUserId : parUserId = QStrPar("user_id")
283
    Dim  parRtagId : parRtagId = QStrPar("rtag_id")
284
    Dim  parState  : parState = QStrPar("new_state")
285
 
286
    If parServerId <> "" AND parUserId<> "" AND parRtagId <> "" AND parState <> "" Then
287
 
288
        If parState <> "Y" and parState <> "N" Then
289
            oJSON.data("emsgSummary") = "EnableProject"
290
            oJSON.data("emsgDetails") = "Invalid State"
291
            Exit Sub
292
        End If
293
 
294
        objEH.ErrorRedirect = FALSE
295
        objEH.TryORA ( OraSession )
296
        On Error Resume Next
297
 
298
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
299
        OraDatabase.Parameters.Add "RTAG_ID",           parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
300
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
301
        OraDatabase.Parameters.Add "STATE",             parState,       ORAPARM_INPUT, ORATYPE_NUMBER
302
 
303
        SqlQry = "UPDATE BLAT_RELEASES SET BR_ENABLED = :STATE where BLAT_ID = :SERVER_ID and RTAG_ID = :RTAG_ID"
304
        OraDatabase.ExecuteSQL SqlQry
6773 dpurdie 305
        OraDatabase.ExecuteSQL ("BEGIN PK_BLATAPI.set_pkg_replica_changed(:SERVER_ID); END; ")
6770 dpurdie 306
 
307
        OraDatabase.Parameters.Remove "USER_ID_LIST"
308
        OraDatabase.Parameters.Remove "RTAG_ID"
309
        OraDatabase.Parameters.Remove "SERVER_ID"
310
        OraDatabase.Parameters.Remove "STATE"
311
 
312
        objEH.CatchORA ( OraSession )
313
        result = 0
314
 
315
    Else
316
        oJSON.data("emsgSummary") = "EnableProject"
317
        oJSON.data("emsgDetails") = "Insufficient arguments"
318
    End If
319
 
320
End Sub
321
'-------------------------------------------------
322
' Function:    RemoveRelease
323
' Description: Remove a Release Replica for a specified target
324
'              server_id - Id of the BLAT replica server
325
'              user_id - user_id requesting the operation
326
'              rtag_id - rtag_id of the release entry to modify
327
Sub RemoveRelease
328
 
329
    Dim  parServerId : parServerId = QStrPar("server_id")
330
    Dim  parUserId : parUserId = QStrPar("user_id")
331
    Dim  parRtagId : parRtagId = QStrPar("rtag_id")
332
 
333
    If parServerId <> "" AND parUserId<> "" AND parRtagId <> "" Then
334
 
335
        objEH.ErrorRedirect = FALSE
336
        objEH.TryORA ( OraSession )
337
        On Error Resume Next
338
 
339
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
340
        OraDatabase.Parameters.Add "RTAG_ID",           parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
341
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
342
 
343
        SqlQry = "DELETE FROM BLAT_RELEASES where BLAT_ID = :SERVER_ID and RTAG_ID = :RTAG_ID"
344
        OraDatabase.ExecuteSQL SqlQry
6773 dpurdie 345
        OraDatabase.ExecuteSQL ("BEGIN PK_BLATAPI.set_pkg_replica_changed(:SERVER_ID); END; ")
6770 dpurdie 346
 
347
        OraDatabase.Parameters.Remove "USER_ID_LIST"
348
        OraDatabase.Parameters.Remove "RTAG_ID"
349
        OraDatabase.Parameters.Remove "SERVER_ID"
350
 
351
        objEH.CatchORA ( OraSession )
352
        result = 0
353
 
354
    Else
355
        oJSON.data("emsgSummary") = "EnableProject"
356
        oJSON.data("emsgDetails") = "Insufficient arguments"
357
    End If
358
 
359
End Sub
360
'-------------------------------------------------
361
' Function:    AddRelease
362
' Description: Add a Release Replica for a specified target
363
'              server_id - Id of the BLAT replica server
364
'              user_id - user_id requesting the operation
365
'              rtag_id - rtag_id of the release entry to modify
366
Sub AddRelease
367
 
368
    Dim  parServerId : parServerId = QStrPar("server_id")
369
    Dim  parUserId : parUserId = QStrPar("user_id")
370
    Dim  parRtagId : parRtagId = QStrPar("rtag_id")
371
 
372
    If parServerId <> "" AND parUserId<> "" AND parRtagId <> "" Then
373
 
374
        objEH.ErrorRedirect = FALSE
375
        objEH.TryORA ( OraSession )
376
        On Error Resume Next
377
 
378
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
379
        OraDatabase.Parameters.Add "RTAG_ID",           parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
380
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
381
 
382
        SqlQry = "INSERT INTO BLAT_RELEASES (BLAT_ID,rtag_id) VALUES( :SERVER_ID, :RTAG_ID)"
383
        OraDatabase.ExecuteSQL SqlQry
6773 dpurdie 384
        OraDatabase.ExecuteSQL ("BEGIN PK_BLATAPI.set_pkg_replica_changed(:SERVER_ID); END; ")
6770 dpurdie 385
 
386
        OraDatabase.Parameters.Remove "USER_ID_LIST"
387
        OraDatabase.Parameters.Remove "RTAG_ID"
388
        OraDatabase.Parameters.Remove "SERVER_ID"
389
 
390
        objEH.CatchORA ( OraSession )
391
        result = 0
392
 
393
    Else
394
        oJSON.data("emsgSummary") = "EnableProject"
395
        oJSON.data("emsgDetails") = "Insufficient arguments"
396
    End If
397
 
398
End Sub
399
 
400
%>