示例#1
0
    def create_application_version(self, application, version_label, 
                                   s3bucket = None, s3key = None, 
                                   auto_create_app = 'false', description = None):
        if (s3bucket is None and s3key is not None) \
            or (s3bucket is not None and s3key is None):
            raise AttributeError('Must specify both s3 bucket and key')
        
        request = Request()
        request.set_operation('CreateApplicationVersion')
        request.set_app_name(application)
        request.set_version_label(version_label)
        if s3bucket is not None:
            request.set_s3bucket(s3bucket) 
            request.set_s3key(s3key) 
        request.set_auto_create_app(auto_create_app)
        if description is not None: 
            request.set_description(description)
            
        try:    
            response = self.call(request)
        except AwsServiceException as ex:
            if ex.code.lower() == AwsErrorCode.InvalidParameterValue.lower()\
                and _re.search(Strings.VER_EXIST_RE, ex.message):
                raise AlreadyExistException(ex)
            raise    
        # TODO: take care of too many application and/or version exception

        result = response['CreateApplicationVersionResponse']\
            ['CreateApplicationVersionResult']['ApplicationVersion']
        request_id = response['CreateApplicationVersionResponse']\
            ['ResponseMetadata']['RequestId']
                
        return Response(request_id, ApplicationVersionDescription.from_json(result))
示例#2
0
    def create_application_version(self, application, version_label, 
                                   s3bucket = None, s3key = None, 
                                   auto_create_app = u'false', description = None):
        if (s3bucket is None and s3key is not None) \
            or (s3bucket is not None and s3key is None):
            raise AttributeError(u'Must specify both s3 bucket and key')
        
        request = Request()
        request.set_operation(u'CreateApplicationVersion')
        request.set_app_name(application)
        request.set_version_label(version_label)
        if s3bucket is not None:
            request.set_s3bucket(s3bucket) 
            request.set_s3key(s3key) 
        request.set_auto_create_app(auto_create_app)
        if description is not None: 
            request.set_description(description)
            
        try:    
            response = self.call(request)
        except AwsServiceException as ex:
            if ex.code.lower() == AwsErrorCode.InvalidParameterValue.lower()\
                and _re.search(Strings.VER_EXIST_RE, ex.message):
                raise AlreadyExistException(ex)
            raise    
        # TODO: take care of too many application and/or version exception

        result = response[u'CreateApplicationVersionResponse']\
            [u'CreateApplicationVersionResult'][u'ApplicationVersion']
        request_id = response[u'CreateApplicationVersionResponse']\
            [u'ResponseMetadata'][u'RequestId']
                
        return Response(request_id, ApplicationVersionDescription.from_json(result))