Skip to content

Commit

Permalink
Improved logging, added specialcharactervalidation
Browse files Browse the repository at this point in the history
  • Loading branch information
Sachin Agarwal committed Mar 19, 2015
1 parent 2f456ef commit 5b6c9d3
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 11 deletions.
2 changes: 1 addition & 1 deletion python-virtualenv-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Django==1.6.2
Django
GitPython==0.1.7
Markdown==2.4
PyYAML==3.10
Expand Down
6 changes: 4 additions & 2 deletions ssddj/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@

from rest_framework import serializers

from ssdfrontend.models import Target
from ssdfrontend.models import Provisioner
from ssdfrontend.models import Target
from ssdfrontend.models import Provisioner
from ssdfrontend.models import VG

class ProvisionerSerializer(serializers.ModelSerializer):
class Meta:
model = Provisioner
fields = ('clientiqn','sizeinGB','serviceName')


class TargetSerializer(serializers.ModelSerializer):
class Meta:
model = Target
Expand Down
17 changes: 10 additions & 7 deletions ssddj/globalstatemanager/gsm.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@ def __init__(self,serverDNS):
try:
self.srv = Connection(self.serverDNS,self.userName,self.keyFile)
except:
logger.error("Failed SSH-exec connection on Saturn server %s" % (self.serverDNS,) )
logger.error(format_exc())
logger.critical("Failed SSH-exec connection on Saturn server %s; possible cause: %s" % (self.serverDNS,format_exc()) )

def InstallScripts(self):
"""
Expand Down Expand Up @@ -183,7 +182,7 @@ def GetVG(self): #Unit test this again
if vgStrList == -1:
return -1
vgs = self.ParseLVM(vgStrList,delimitStr,paraList)
logger.info("VGStating on %s returns %s " % (self.serverDNS, str(vgs)) )
#logger.info("VGStating on %s returns %s " % (self.serverDNS, str(vgs)) )
rtnvguuidList = ""
for vgname in vgs:
try:
Expand Down Expand Up @@ -242,10 +241,10 @@ def GitSave(self,vguuid,commentStr):
repo.do_commit(commentStr)
except:
var = format_exc()
logger.warn("%s: Git save error: %s" % (commentStr, var))
logger.error("During GitSave: %s: Git save error: %s" % (commentStr, var))
except:
var = format_exc()
logger.warn("%s: PYSFTP download error: %s" % (commentStr, var))
logger.error("During GitSave: %s: PYSFTP download error: %s" % (commentStr, var))


def CreateTarget(self,iqnTarget,iqnInit,sizeinGB,storageip1,storageip2,vguuid):
Expand All @@ -268,7 +267,7 @@ def CreateTarget(self,iqnTarget,iqnInit,sizeinGB,storageip1,storageip2,vguuid):
logger.info("Returning successful createtarget run")
return 1
else:
logger.info("Returning failed createtarget run")
logger.error("Returning failed createtarget run")
return 0

def GetTargetsState(self):
Expand Down Expand Up @@ -329,9 +328,11 @@ def DeleteTarget(self,iqntar,vguuid):
if "successfully removed" in eachLine:
success2=True
if success1==True and success2==True:
logger.debug("successfully removed target: "+iqntar)
logger.info("Successful deletion of target %s from VG %s on host %s" %(iqntar,vguuid,self.serverDNS))

return 1
else:
logger.error("Error deleting target %s from VG %s on host %s" %(iqntar,vguuid,self.serverDNS))
return -1
return -1

Expand All @@ -350,6 +351,8 @@ def GetInterfaces(self):
for addr in ipadds:
try:
addr = addr.rstrip()
if "127.0.0.1" in addr: #Ignore loopback addresses
continue
socket.inet_aton(addr)
interfaces = Interface.objects.filter(ip=addr)
if len(interfaces) != 1: #If 0, then new interface
Expand Down
10 changes: 9 additions & 1 deletion ssddj/ssdfrontend/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,20 @@

from django.db import models
from django.contrib.auth.models import User
import string
# Create your models here.
from django.core.exceptions import ValidationError

def validate_nospecialcharacters(value):
invalidcharacters = set(string.punctuation.replace("_", ""))
if len(invalidcharacters.intersection(value)):
raise ValidationError(u'%s contains a special character' % value)


class Provisioner(models.Model):
clientiqn = models.CharField(max_length=100)
sizeinGB = models.FloatField()
serviceName = models.CharField(max_length=100)
serviceName = models.CharField(max_length=100,validators=[validate_nospecialcharacters])
def __unicode__(self): # __unicode__ on Python 2
return self.clientiqn

Expand Down

0 comments on commit 5b6c9d3

Please sign in to comment.