Skip to content

Commit 6db0ea7

Browse files
committed
v2 modifications
1 parent 17d38b0 commit 6db0ea7

File tree

6 files changed

+69
-26
lines changed

6 files changed

+69
-26
lines changed

addMethods.rb

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#
1+
22
# Copyright (c) 2012 NITLab, University of Thessaly, CERTH, Greece
33
#
44
# Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -83,7 +83,7 @@ def reserveNodes(nodesInfo)
8383
end
8484
start_time = time1.strftime("%Y-%m-%d %H:%M:%S")
8585
finish_time = time2.strftime("%Y-%m-%d %H:%M:%S")
86-
86+
8787
puts "Connecting to database..."
8888
begin
8989
# connect to the MySQL server
@@ -112,10 +112,28 @@ def reserveNodes(nodesInfo)
112112
slice_name = name
113113
end
114114
puts slice_name
115+
116+
# Reservation while being in the active time slot
117+
node_y = 0
118+
now = Time.now
119+
puts now
120+
# execute enable_node for reservations in the active time slot
121+
final_reserved.each do | id |
122+
if (start_time < now) && (now < finish_time)
123+
my_query = dbh.prepare("SELECT y FROM node_list WHERE id = '#{id}'")
124+
result = my_query.execute()
125+
my_query.fetch do | y |
126+
node_y = y
127+
end
128+
puts node_y
129+
130+
cmd = `enable_node #{slice_name} #{node_y}`
131+
end
132+
end
133+
115134
# insert values into the database
116135
i = 0
117136
final_reserved.each do | id |
118-
#dbh.do("INSERT INTO reservation (username, begin_time,#{nodesInfo.keys[2]},#{nodesInfo.keys[3]}) VALUES ('#{slice_name[0]}','#{nodesInfo.values[1]}','#{nodesInfo.values[2]}','#{id}')")i
119137
puts id
120138
id = id.to_i
121139
puts id
@@ -216,7 +234,6 @@ def reserveChannels(channelInfo)
216234
puts slice_name
217235
i = 0
218236
final_reserved.each do | id |
219-
#dbh.do("INSERT INTO spec_reserve (#{channelInfo.keys[0]}, #{channelInfo.keys[1]},#{channelInfo.keys[2]},#{channelInfo.keys[3]}) VALUES ('#{channelInfo.values[0]}','#{channelInfo.values[1]}','#{channelInfo.values[2]}','#{id}')")
220237
dbh.do("INSERT INTO spec_reserve (username,begin_time,end_time,spectrum_id) VALUES ('#{slice_name[0]}','#{start_time}','#{finish_time}','#{id}')")
221238
final_reserved[i] = id
222239
i += 1
@@ -427,7 +444,7 @@ def addSlice(sliceInfo)
427444
new_id = n[0]
428445
end
429446
# create OMF pubsub node into the xmpp server
430-
value = `create_slice_sfa #{slice_name} #{new_id}`
447+
value = `create_slice #{slice_name} nitlab.inf.uth.gr`
431448

432449
rescue DBI::DatabaseError => e
433450
puts "An error occurred"

api_conf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-database
2-
-user
3-
-password
4-
-server_ip
1+
database
2+
user
3+
password
4+
server_ip

deleteMethods.rb

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def deleteKey(keyInfo)
5959

6060
num = dbh.do("DELETE FROM rsa_keys WHERE rsa_keys.key = '#{key}'")
6161
if (num == 1)
62-
return 0
62+
return 0
6363
end
6464

6565
rescue DBI::DatabaseError => e
@@ -185,7 +185,7 @@ def deleteUserFromSlice(userSliceInfo)
185185

186186
num = dbh.do("DELETE FROM users_slices WHERE user_id = '#{user_id}' AND slice_id = '#{slice_id}'")
187187
if (num == 1)
188-
return 0
188+
return 0
189189
end
190190

191191
rescue DBI::DatabaseError => e
@@ -305,8 +305,23 @@ def releaseNodes(reservation)
305305
# get server version string and display it
306306
row = dbh.select_one("SELECT VERSION()")
307307
puts "Server version: " + row[0]
308-
308+
309+
# Delete reservation while being in the active time slot
310+
now = Time.now
309311
ids.each do | id |
312+
my_query = dbh.prepare("SELECT begin_time,end_time FROM reservation WHERE id = '#{id}'")
313+
result = my_query.execute()
314+
my_query.fetch do | y |
315+
if (y["begin_time"] < now) && (now < y["end_time"])
316+
puts "MPIKEE"
317+
my_query = dbh.prepare("SELECT reservation.username, node_list.y FROM reservation JOIN node_list on reservation.node_id=node_list.id WHERE id = '#{id}'")
318+
result = my_query.execute()
319+
my_query.fetch do | h |
320+
cmd = `disable_node #{h["username"]} #{h["y"]} nitlab.inf.uth.gr`
321+
end
322+
end
323+
end
324+
310325
num = dbh.do("DELETE FROM reservation WHERE id = '#{id}'")
311326
if num == 1
312327
deleted.push(id)

getMethods.rb

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def getNodes(filter, retValue)
6767
i=0
6868
my_query.fetch do | n |
6969
# FILTERING because of non functional nodes ***
70-
if n[0] != "node001" && n[0] != "node006" && n[0] != "node010" && n[0] != "node024" && n[0] != "node028" && n[0] != "node031"
70+
if n[0] != "node031"
7171
pos_result[i] = pos.new("#{n[6]}","#{n[7]}","#{n[8]}")
7272
final_result[i] = final.new("#{n[0]}","#{n[1]}","#{n[2]}","#{n[3]}","#{n[4]}","#{n[5]}",pos_result[i])
7373
puts final_result[i]
@@ -164,13 +164,13 @@ def getNodes(filter, retValue)
164164
pos_result = Array.new
165165
i=j=0
166166
my_query[j].fetch do | n |
167-
if n[0] != "node006" && n[0] != "node010" && n[0] != "node022" && n[0] != "node024" && n[0] != "node028" && n[0] != "node031"
167+
# if n[0] != "node006" && n[0] != "node010" && n[0] != "node022" && n[0] != "node024" && n[0] != "node028" && n[0] != "node031"
168168
pos_result[i] = pos.new("#{n[6]}","#{n[7]}","#{n[8]}")
169169
final_result[i] = final.new("#{n[0]}","#{n[1]}","#{n[2]}","#{n[3]}","#{n[4]}","#{n[5]}",pos_result[i])
170170
puts final_result[i]
171171
i=i+1
172172
j=j+1
173-
end # end filtering
173+
# end # end filtering
174174
end
175175
elsif !retValue.empty? && !filter.empty?
176176
query = "SELECT "
@@ -447,8 +447,8 @@ def getReservedNodes(filter, retValue)
447447
# if retValue.empty? && filter.empty?
448448
final = Struct.new(:reservation_id,:slice_id,:start_time,:end_time,:node_id)
449449
# select only the active reservations. Those that have not expired
450-
my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), node_id FROM reservation WHERE end_time>'#{now}'")
451-
#my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), node_id FROM reservation WHERE begin_time>='20120801'")
450+
my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), node_id FROM reservation WHERE end_time>'#{now}'")
451+
#my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), node_id FROM reservation WHERE begin_time>='20130401'")
452452
my_query.execute()
453453
i=0
454454
my_query.fetch do | n |
@@ -498,8 +498,8 @@ def getReservedChannels()
498498
now = time.strftime("%Y-%m-%d %H:%M:%S")
499499
final = Struct.new(:reservation_id,:slice_id,:start_time,:end_time,:channel_id)
500500
# select only the active reservations. Those that have not expired...
501-
my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), spectrum_id FROM spec_reserve WHERE end_time>'#{now}'")
502-
#my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), node_id FROM reservation WHERE end_time>='#{now}'")
501+
my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), spectrum_id FROM spec_reserve WHERE end_time>'#{now}'")
502+
#my_query = dbh.prepare("SELECT id, username, unix_timestamp(begin_time), unix_timestamp(end_time), node_id FROM reservation WHERE end_time>='20130401'")
503503
my_query.execute()
504504
i=0
505505
my_query.fetch do | n |
@@ -527,7 +527,7 @@ def getReservedChannels()
527527
end
528528

529529
###################################################################
530-
# Returns the table users and the rsa_keys.
530+
# Returns the table jos_users and the rsa_keys.
531531
#
532532
# Returns a struct for each user and all the information we have about him.
533533
# [{user_id="",username="",email="",keys=[[""],[""]]},
@@ -582,9 +582,18 @@ def getUsers()
582582
###################################################################
583583
def getTestbedInfo()
584584
final = Struct.new(:name,:grain,:OMF_version,:scheduler_version,:gw_address,:longitude,:latitude)
585-
final_result = final.new("nitos","1800","5.3","1.0","nitlab.inf.uth.gr","39.360839","22.949989")
585+
final_result = final.new("nitos","1800","5.4","1.0","nitlab.inf.uth.gr","39.360839","22.949989")
586586
puts "result: #{final_result}"
587587
final_result
588588
end
589-
589+
590+
###################################################################
591+
# Returns time in the server
592+
###################################################################
593+
def getServerTime()
594+
# get the time now
595+
time = Time.now.to_i
596+
time
597+
end
598+
590599
end

nitosAPI.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
require_relative 'scheduler'
3737

3838
counter = 1
39-
file = File.new("../api_conf","r")
39+
file = File.new("api_conf","r")
4040
while(line = file.gets)
4141
if(counter == 1)
4242
$db = line

updateMethods.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def updateChannel(channelInfo)
116116
end
117117

118118
###################################################################
119-
# Updates a user from users table
119+
# Updates a user from jos_users table
120120
# Returns 0 for success or -1 for failure
121121
###################################################################
122122
def updateUser(userInfo)
@@ -130,11 +130,11 @@ def updateUser(userInfo)
130130
row = dbh.select_one("SELECT VERSION()")
131131
puts "Server version: " + row[0]
132132

133-
user_id = dbh.prepare("SELECT id FROM b9tj1_users WHERE id = '#{userInfo.values[0]}'")
133+
user_id = dbh.prepare("SELECT id FROM jos_users WHERE id = '#{userInfo.values[0]}'")
134134
user_id.execute()
135135
user_id.fetch do | id |
136136
userInfo.values[1].each do | key, value |
137-
num.push(dbh.do("UPDATE b9tj1_users SET #{key} = '#{value}' WHERE id = '#{id[0]}'"))
137+
num.push(dbh.do("UPDATE jos_users SET #{key} = '#{value}' WHERE id = '#{id[0]}'"))
138138
end
139139
end
140140
# if one field of the table was updated, its enough
@@ -233,6 +233,8 @@ def updateReservedNodes(reservationInfo)
233233
row = dbh.select_one("SELECT VERSION()")
234234
puts "Server version: " + row[0]
235235

236+
# ******ADD CODE FOR UPDATING AN ACTIVE RESERVATION******
237+
# *******************************************************
236238
reservationInfo.values[0].each do | id |
237239
num = dbh.do("UPDATE reservation SET begin_time='#{start_time}', end_time ='#{finish_time}' WHERE id = '#{id}'")
238240
if num == 1

0 commit comments

Comments
 (0)