#
# Aquerre Technologies
# service.py -- manage service data
# Revision: 2018-01-06
#
import json

class service:

    def __init__(self):
        self.SERVICEDATAELEMENTS=['AllocationId','AvailabilityZone','ImageId','InstanceId','InstanceName','KeyName','NetworkInterfaceId','OperationId','PrivateIpAddress','PublicIp','Region','SecurityGroup','SecurityGroupId','SnapshotId','VolumeId']

        self.CRYPTVOLDATAELEMENTS=['AvailabilityZone','KeyId','KeyName','KeyPolicyName','Region','SnapshotId','VolumeId']

        self.USERDATAELEMENTS=['AccessKeyId','AccessKeyIdOld','MfaBase32StringSeed','MfaBase32StringSeedOld','MfaDeviceName','MfaDeviceNameOld','MfaSerialNumber','MfaSerialNumberOld','MfaSerialNumberOld','UserId','UserName','SecretAccessKey','SecretAccessKeyOld']

    def loadServiceData(self,SERVICEDATAFILE):

        print "loadServiceData: Loading service data from %s..." % SERVICEDATAFILE

        RETURNDATA={}
        for KEY in self.SERVICEDATAELEMENTS:
            RETURNDATA[KEY]=''

        f=open(SERVICEDATAFILE, 'r')
        SERVICEDATA=json.load(f)
        f.close()

        for KEY in SERVICEDATA.iterkeys():
            RETURNDATA[KEY]=SERVICEDATA[KEY]
            
        return RETURNDATA
        
    def writeServiceData(self,SERVICEDATAFILE,SERVICEDATA):

        print "writeServiceData: Writing service data to %s..." % SERVICEDATAFILE

        WRITEDATA={}
        for KEY in self.SERVICEDATAELEMENTS:
            WRITEDATA[KEY]=''

        for KEY in SERVICEDATA.iterkeys():
            WRITEDATA[KEY]=SERVICEDATA[KEY]
            
        f=open(SERVICEDATAFILE, 'w')
        f.write(json.dumps(WRITEDATA, indent=4, sort_keys=True))
        f.close()

    def loadCryptVolData(self,CRYPTVOLDATAFILE):

        print "loadCryptVolData: Loading service data from %s..." % CRYPTVOLDATAFILE

        RETURNDATA={}
        for KEY in self.CRYPTVOLDATAELEMENTS:
            RETURNDATA[KEY]=''

        f=open(CRYPTVOLDATAFILE, 'r')
        CRYPTVOLDATA=json.load(f)
        f.close()

        for KEY in CRYPTVOLDATA.iterkeys():
            RETURNDATA[KEY]=CRYPTVOLDATA[KEY]
            
        return RETURNDATA
        
    def writeCryptVolData(self,CRYPTVOLDATAFILE,CRYPTVOLDATA):

        print "writeCryptVolData: Writing service data to %s..." % CRYPTVOLDATAFILE

        WRITEDATA={}
        for KEY in self.CRYPTVOLDATAELEMENTS:
            WRITEDATA[KEY]=''

        for KEY in CRYPTVOLDATA.iterkeys():
            WRITEDATA[KEY]=CRYPTVOLDATA[KEY]
            
        f=open(CRYPTVOLDATAFILE, 'w')
        f.write(json.dumps(WRITEDATA, indent=4, sort_keys=True))
        f.close()

    def loadUserData(self,USERDATAFILE):

        print "loadUserData: Loading service data from %s..." % USERDATAFILE

        RETURNDATA={}
        for KEY in self.USERDATAELEMENTS:
            RETURNDATA[KEY]=''

        f=open(USERDATAFILE, 'r')
        USERDATA=json.load(f)
        f.close()

        for KEY in USERDATA.iterkeys():
            RETURNDATA[KEY]=USERDATA[KEY]
            
        return RETURNDATA
        
    def writeUserData(self,USERDATAFILE,USERDATA):

        print "writeUserData: Writing service data to %s..." % USERDATAFILE

        WRITEDATA={}
        for KEY in self.USERDATAELEMENTS:
            WRITEDATA[KEY]=''

        for KEY in USERDATA.iterkeys():
            WRITEDATA[KEY]=USERDATA[KEY]
            
        f=open(USERDATAFILE, 'w')
        f.write(json.dumps(WRITEDATA, indent=4, sort_keys=True))
        f.close()
