blob: 9a021a331c5df2d947128fd34218f13b7b815f96 [file] [log] [blame]
# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
#
# Copyright (C) 2014 Regents of the University of California.
# Author: Weiwei Liu <summerwing10@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# A copy of the GNU General Public License is in the file COPYING.
import os.path
from pyndn import Name
from device_storage import DeviceStorage
from device_profile import DeviceProfile
from hmac_key import HMACKey
class FillDatabaseForTest(object):
def __init__(self, count = None):
if count == None:
self.count = 1
else:
self.count = count
if not "HOME" in os.environ:
home = '.'
else:
home = os.environ["HOME"]
dbDirectory = os.path.join(home, '.ndn')
self.databaseFilePath = os.path.join(dbDirectory, 'ndnhome-controller.db')
if os.path.isfile(self.databaseFilePath):
os.remove(self.databaseFilePath)
self.storage = DeviceStorage()
def fillDatabase(self):
count = self.count
prefixStrBase = 'home/sensor/LED/'
serviceProfileNameBase = '/standard/sensor/simple-LED-control/v'
commandNameBase = 'turn_on'
commandNameBase2 = 'turn_off'
for i in range(1, count+1):
prefixStr = prefixStrBase + str(i)
self.add_a_default_device(prefixStr)
name = Name(prefixStr)
deviceId = self.storage.getDeviceId(name)
serviceProfileName = serviceProfileNameBase + str(i)
self.storage.addServiceProfile(deviceId, serviceProfileName)
commandName = commandNameBase + str(i)
commandName2 = commandNameBase2 + str(i)
commandToken = self.create_a_default_key(commandName)
commandToken2 = self.create_a_default_key(commandName2)
self.storage.addCommand(deviceId, commandName, commandToken)
self.storage.addCommand(deviceId,commandName2,commandToken2)
def add_a_default_device(self, prefixStr):
name = Name(prefixStr)
profile = DeviceProfile(prefix = name)
seed = self.create_a_default_key('')
configurationToken = self.create_a_default_key()
self.storage.addDevice(profile, seed, configurationToken)
def create_a_default_key(self, keyName = None):
keyContent = 'this is key content'
seed = HMACKey(0,0, keyContent, keyName)
return seed
test = FillDatabaseForTest(8)
test.fillDatabase()