Ejemplo n.º 1
0
 def CreateVolume(self,ServiceIMC,Size):
     ClodeInfo=Cloude.ClodeInfo(self.client)
     params={"VolumeName":ServiceIMC+'Volume',"availabilityZone":ClodeInfo.getClusterName(),"Size":Size}
     
     result = self.client.invoke("CreateVolume", params)
     CreateResult=xmltodict.parse(result,encoding='utf-8')
     return CreateResult['CreateVolumeResponse']['volumeId']
Ejemplo n.º 2
0
 def DescribeVips(self, VipId):
     params = {"VipId": VipId, "SubnetId": self.SubnetID}
     DescribeResult = self.client.invoke("DescribeVips", params)
     #        print(DescribeResult)
     DescribeResultXmlResult = xmltodict.parse(DescribeResult,
                                               encoding='utf-8')
     return DescribeResultXmlResult["DescribeVipsResponse"][
         "DescribeVipsResult"]["vipSet"]["item"]["privateIpAddress"]
Ejemplo n.º 3
0
    def _update_ignore_items(self, search_id):

        """ 
        Updates all ended items that are placed in user ignore list with relisted item ids.
        Each item on the list is formatted as (search_id, ebay_item_id, ebay_end_time).

        If the ignored item is sold, or has finished and has not been relisted it still stays in the ignore list.
        This is because the seller may decide to relist the item some time in the future and the system should
        attempt to avoid future listings of ignored items as well as the current ones.

        TODO: checking if the item has been relisted should be done while the feed fetch is not in progress (scheduled time on server...)
        """
        t = datetime.datetime.now(pytz.utc)

        ignore_list_prev = self.ignored_items[search_id]
        ignore_list_updated = []

        for id_, end_t in ignore_list_prev:

            #if the item is still active, leave it in the list
            if end_t > t: 
                ignore_list_updated.append( (id_, end_t))
                continue 

            #item has ended, fetch the status from the server
            status = xmltodict.parse(ebay_trade.GetItem(id_))

            #check if it has been relisted first (since it might have been sold and relisted)
            list_details = status['GetItemResponse']['Item']['ListingDetails']

            while 'RelistedItemID' in list_details: 

                #substitute the old item with relisted one
                id_ = str(list_details['RelistedItemID'])

                #repeat the process for the new item (which might have also finished)
                status = xmltodict.parse(ebay_trade.GetItem(id_))
                list_details = status['GetItemResponse']['Item']['ListingDetails']
                end_t = dateutil.parser.parse(list_details['EndTime'].strip())
                
            ignore_list_updated.append((id_, end_t))

        self.ignored_items[search_id] = ignore_list_updated
Ejemplo n.º 4
0
 def AddInstallVip(self, VipId, InstanceId):
     params = {
         "VipId": VipId,
         "SubnetId": self.SubnetID,
         "InstanceId": InstanceId,
         "IsHeader": False
     }
     ADDresult = self.client.invoke("AddInstanceToVip", params)
     CreateResultXmlResult = xmltodict.parse(ADDresult, encoding='utf-8')
     return CreateResultXmlResult["AddInstanceToVipResponse"][
         "AddInstanceToVipResult"]["return"]
Ejemplo n.º 5
0
    def GetRole(self, ServiceId):
        params = {"RoleName": ServiceId}
        RoleResult = self.client.invoke("GetRole", params)

        try:
            XMLRoleresultInfo = xmltodict.parse(RoleResult, encoding='utf-8')
            result = XMLRoleresultInfo["GetRoleResponse"]["GetRoleResult"][
                "Role"]["RoleName"]
            return result
        except Exception as e:
            return "1"
Ejemplo n.º 6
0
 def CreateVip(self):
     # params={"SubnetId":self.SubnetID}
     params = {"SubnetId": self.SubnetID, "VipType": "KeepAlive"}
     CreateResult = self.client.invoke("CreateVip", params)
     #       print(CreateResult)
     try:
         CreateResultXmlResult = xmltodict.parse(CreateResult,
                                                 encoding='utf-8')
         return CreateResultXmlResult["CreateVipResponse"][
             "CreateVipResult"]["vipId"]
     except Exception as e:
         return None
Ejemplo n.º 7
0
    def GetRoleList(self):

        try:
            RoleList = self.client.invoke("ListRoles", {})
            XMLRoleresultInfo = xmltodict.parse(RoleList, encoding='utf-8')

            result = XMLRoleresultInfo["ListRolesResponse"]["ListRolesResult"][
                "Roles"]["member"]
            return result
        except Exception as e:

            return "1"
Ejemplo n.º 8
0
 def CreateRole(self, ServiceId):
     RoleID = self.GetRole(ServiceId)
     if RoleID is "1":
         params = {
             "roleName": ServiceId,
             'GenerateInstanceProfile': True,
             'Path': '/'
         }
         Roleresult = self.client.invoke("CreateRole", params)
         XMLRoleresultInfo = xmltodict.parse(Roleresult, encoding='utf-8')
         return XMLRoleresultInfo['CreateRoleResponse']['CreateRoleResult'][
             'Role']['RoleName']
     else:
         return RoleID
Ejemplo n.º 9
0
 def REstelIMage(self,
                 image_id,
                 architecture,
                 platform,
                 storageId,
                 shared,
                 imageName,
                 bootloader='mbr'):
     params = {"ImageId": image_id, "Attribute": 'description'}
     importresult = self.client.invoke("ModifyImageAttribute", params)
     #     print(importresult)
     try:
         importresultXML = xmltodict.parse(importresult, encoding='utf-8')
         # return importresultXML["ImportImageResponse"]["imageId"]
     except Exception as e:
         return None
Ejemplo n.º 10
0
    def InstanceXMLIpInfo(self,vpcId,ImageId):
        result=self.DescribeInstances(vpcId,ImageId)
        Instancxml=xmltodict.parse(result,encoding='utf-8')

        # if not Instancxml:
        #     return None
        # try:
        #     v = Instancxml["DescribeInstancesResponse"]["reservationSet"]["item"]
        #     if type(v).__name__ == 'list':
        #         for item in v:
        #             if item["instancesSet"]["item"]["instanceId"] == ImageId and \
        #                             item["instancesSet"]["item"]["vpcId"] == vpcId:
        #                 return item["instancesSet"]["item"]["ipAddress"]
        #         return None
        #     elif type(v).__name__ == 'OrderedDict':
        #         if v["instancesSet"]["item"]["instanceId"] == ImageId and \
        #                         v["instancesSet"]["item"]["vpcId"] == vpcId:
        #             return v["instancesSet"]["item"]["ipAddress"]
        #         return None
        # except Exception as e:
        #     return None

        return Instancxml["DescribeInstancesResponse"]["reservationSet"]["item"]["instancesSet"]["item"]["ipAddress"]
Ejemplo n.º 11
0
 def import_s3_image(self,
                     s3url,
                     architecture,
                     platform,
                     storageId,
                     shared,
                     imageName,
                     bootloader='mbr'):
     params = {
         "Url": s3url,
         "Architecture": architecture,
         "Platform": platform,
         "StorageId": storageId,
         "Shared": shared,
         "Bootloader": bootloader,
         "ImageName": imageName
     }
     importresult = self.client.invoke("ImportImage", params)
     #     print(importresult)
     try:
         importresultXML = xmltodict.parse(importresult, encoding='utf-8')
         return importresultXML["ImportImageResponse"]["imageId"]
     except Exception as e:
         return None
Ejemplo n.º 12
0
 def DelVolume(self,VolumeId):
     params={"IsInstanceVol":False,"VolumeId":VolumeId}
     result = self.client.invoke("DeleteVolume", params)
     DelVolumeResult=xmltodict.parse(result, encoding='utf-8')
     return DelVolumeResult["DeleteVolumeResponse"]["return"]
Ejemplo n.º 13
0
    def getCreateInstanceID(self,imageId, instanceType, vpcId, subnetId, instanceName, volumeSize, role,InitInstanceData):

        Instanceinfo=self.run_instance(imageId, instanceType, vpcId, subnetId, instanceName, volumeSize, role,"")
        XMLInstanceInfo=xmltodict.parse(Instanceinfo,encoding='utf-8')
        return XMLInstanceInfo['RunInstancesResponse']['instancesSet']['item']['instanceId']
Ejemplo n.º 14
0
 def CreateSevurityGroup(self, ServiceName):
     params = {"GroupName": ServiceName}
     CreateResult = self.client.invoke("CreateSecurityGroup", params)
     CreateResultXmlResult = xmltodict.parse(CreateResult, encoding='utf-8')
     return CreateResultXmlResult["CreateSecurityGroupResponse"]["groupId"]
Ejemplo n.º 15
0
 def DudgeImages(self):
     # params = {"Filter.1.Name": "imageId", "Filter.1.Value.1": imageId}
     result = self.client.invoke("DescribeImages", {})
     return xmltodict.parse(result, encoding='utf-8')
Ejemplo n.º 16
0
def xml2dict(xml):
    return xmltodict.parse(xml)['xml']
Ejemplo n.º 17
0
 def InstanceTypeAll(self):
     result = self.client.invoke("DescribeInstanceTypes", {})
     InstanceTypeXmlList = xmltodict.parse(result, encoding='utf-8')
     return InstanceTypeXmlList["DescribeInstanceTypesResponse"][
         "instanceTypeInfo"]["item"]