Skip to content

Commit

Permalink
Fixed bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
nrchandan committed Jan 31, 2014
1 parent c31d78c commit bcdcbae
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 19 deletions.
16 changes: 12 additions & 4 deletions Controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,27 @@
import VMPoolManager

OVPL_LOGGER = logging.getLogger('ovpl')
LOG_FILENAME = 'log/ovpl.log' # make log name a setting
LOG_FILENAME = '/root/ovpl/log/ovpl.log' # make log name a setting
LOG_FD = open(LOG_FILENAME, 'a')

class Controller:
def __init__(self):
pass

def test_lab(self, lab_id, lab_src_url, version=None):
print "Controller.test_lab()"
try:
lab_spec = LabManager.get_lab_reqs(lab_id, lab_src_url, version)
vmpoolmgr = VMPoolManager.VMPoolManager()
(ip, port) = vmpoolmgr.create_vm(lab_spec)
#print 'created vm ', ip, port
if LabManager.test_lab(ip, port, lab_src_url, version):
#(ip, port) = ("10.4.14.22", "8089")
vmmgrurl = "http://" + ip

print 'created vm ', ip, port
print "vm manager url is :", vmmgrurl
print "vm mgr port is :", port
print "lab src url is: ", lab_src_url
if LabManager.test_lab(vmmgrurl, port, lab_src_url, version):
return ip
else:
return "Test failed"
Expand All @@ -35,4 +42,5 @@ def test_lab(self, lab_id, lab_src_url, version=None):
if __name__ == '__main__':
c = Controller()
#c.test_lab("asdf", "asdf")
print c.test_lab("ovpl01", "https://github.com/nrchandan/vlab-computer-programming")
#print c.test_lab("ovpl01", "https://github.com/nrchandan/vlab-computer-programming")
print c.test_lab("ovpl01", "https://github.com/avinassh/cse09")
2 changes: 2 additions & 0 deletions LabManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def get_lab_spec(repo_name):
except Exception, e:
raise LabSpecInvalid("Lab spec JSON invalid: " + str(e))

print "LabManager.get_lab_reqs()"
repo_name = construct_repo_name()
if repo_exists(repo_name):
pull_repo(repo_name)
Expand All @@ -87,6 +88,7 @@ def test_lab(ip, port, lab_src_url, version=None):
# clone the repo in the VM
# get the lab_spec
# run Lab Action Runner
print "LabManager.test_lab()"
payload = {"lab_src_url": lab_src_url, "version": version}
url = '%s:%s%s' % (ip, port, TEST_LAB_API_URI)
response = requests.post(url=url, data=payload)
Expand Down
4 changes: 2 additions & 2 deletions VMManager/VMManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

from LabActionRunner import LabActionRunner

GIT_CLONE_LOC = "./"
GIT_CLONE_LOC = "/root/VMManager/lab-repo-cache/"
VMM_LOGGER = logging.getLogger('VMM')
LOG_FILENAME = '/root/VMManager/log/vmmanager.log' # make log name a setting
LAB_SPEC_LOC = "/scripts/labspec.json"
Expand Down Expand Up @@ -90,7 +90,7 @@ def repo_exists(repo_name):
return os.path.isdir(GIT_CLONE_LOC+repo_name)

def clone_repo(repo_name):
clone_cmd = shlex.split("git clone %s" % lab_src_url)
clone_cmd = shlex.split("git clone %s %s%s" % (lab_src_url, GIT_CLONE_LOC,repo_name))
VMM_LOGGER.debug(clone_cmd)
try:
subprocess.check_call(clone_cmd, stdout=LOG_FD, stderr=LOG_FD)
Expand Down
5 changes: 3 additions & 2 deletions VMManager/VMManagerServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import VMManager


define("port", default=8000, help="run on the given port", type=int)
define("port", default=8089, help="run on the given port", type=int)


class DiskUsageHandler(tornado.web.RequestHandler):
Expand Down Expand Up @@ -58,7 +58,8 @@ def get(self, command):
class TestLabHandler(tornado.web.RequestHandler):
def post(self):
post_data = dict(urlparse.parse_qsl(self.request.body))
self.write(VMManager.test_lab(post_data['lab_src_url'], post_data['version']))
print post_data['lab_src_url']
self.write(VMManager.test_lab(post_data['lab_src_url'], post_data.get('version', None)))


if __name__ == "__main__":
Expand Down
15 changes: 5 additions & 10 deletions VMPool.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,24 +78,19 @@ def create_vm(self, lab_spec):
# Allocate a vm_id: not required as platform adapter will allocate it.
# Invoke platform adapter server (POST)
#vm_spec = json.loads(open("vmspec.json", "r").read())
url = "%s:%s%s" % (self.adapter_ip, self.adapter_port, CREATE_PATH)
print "VMPool.create_vm()"
adapter_url = "%s:%s%s" % (self.adapter_ip, self.adapter_port, CREATE_PATH)
#print "VMPool::create_vm()", lab_spec
payload = {'lab_spec': json.dumps(lab_spec)}
print
print "VMPool::create_vm()", payload
result = requests.post(url=url, data=payload)
result = requests.post(url=adapter_url, data=payload)
print result.text
if result.status_code == requests.codes.ok:
print result.headers
print result.json()
print result.url
self.vms.append(VMProxy(result.json()["vm_id"],
result.json()["vm_ip"],
result.json()["vm_port"]))
# print self.vms
return True
return (result.json()["vm_ip"], result.json()["vm_port"])
else:
return False
return (None, None)

def destroy_vm(self, vm_id):
# Invoke platform adapter
Expand Down
3 changes: 2 additions & 1 deletion VMPoolManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ def get_available_pool(self, lab_spec):
return self.VMPools[0]

def create_vm(self, lab_spec):
print "VMPoolManager.create_vm()"
#dirty hack
self.add_vm_pool("http://localhost", "8000")
self.add_vm_pool("http://localhost", "8000") # Adapter IP and Port
vmpool = self.get_available_pool(lab_spec)
return vmpool.create_vm(lab_spec)

0 comments on commit bcdcbae

Please sign in to comment.