Example #1
0
 def test_unsubscribe_item_no_item(self):
     self.mox.StubOutWithMock(db, 'subscription_get_all_by_resource_uuid')
     db.subscription_get_all_by_resource_uuid(self.context,
                                              self.resource_uuid).\
             AndReturn([self.subscription])
     self.mox.ReplayAll()
     self.assertRaises(exception.SubscriptionNotFoundByRegionOrItem,
                       api.unsubscribe_item, self.context, self.region_name,
                       'bar', self.resource_uuid)
     self.mox.VerifyAll()
Example #2
0
 def test_unsubscribe_item_no_item(self):
     self.mox.StubOutWithMock(db, 'subscription_get_all_by_resource_uuid')
     db.subscription_get_all_by_resource_uuid(self.context,
                                              self.resource_uuid).\
             AndReturn([self.subscription])
     self.mox.ReplayAll()
     self.assertRaises(exception.SubscriptionNotFoundByRegionOrItem,
                       api.unsubscribe_item, self.context, self.region_name,
                       'bar', self.resource_uuid)
     self.mox.VerifyAll()
Example #3
0
 def test_unsubscribe_item(self):
     self.mox.StubOutWithMock(db, 'subscription_get_all_by_resource_uuid')
     self.mox.StubOutWithMock(db, 'subscription_destroy')
     db.subscription_get_all_by_resource_uuid(self.context,
                                              self.resource_uuid).\
             AndReturn([self.subscription])
     db.subscription_destroy(self.context, self.subscription_id).\
             AndReturn(None)
     self.mox.ReplayAll()
     result = api.unsubscribe_item(self.context, self.region_name,
                                   self.item_name, self.resource_uuid)
     self.mox.VerifyAll()
     self.assertEqual(result, {})
Example #4
0
 def test_unsubscribe_item(self):
     self.mox.StubOutWithMock(db, 'subscription_get_all_by_resource_uuid')
     self.mox.StubOutWithMock(db, 'subscription_destroy')
     db.subscription_get_all_by_resource_uuid(self.context,
                                              self.resource_uuid).\
             AndReturn([self.subscription])
     db.subscription_destroy(self.context, self.subscription_id).\
             AndReturn(None)
     self.mox.ReplayAll()
     result = api.unsubscribe_item(self.context, self.region_name,
                                   self.item_name, self.resource_uuid)
     self.mox.VerifyAll()
     self.assertEqual(result, {})
Example #5
0
def unsubscribe_item(context,
                     region=None,
                     item=None,
                     resource_uuid=None,
                     **kwargs):
    """
    """
    try:
        subscription_id = 0
        subscriptions = db.subscription_get_all_by_resource_uuid(
            context, resource_uuid)
        if not subscriptions:
            raise exception.SubscriptionNotFoundByResourceUUID(
                resource_uuid=resource_uuid)
        for subscription in subscriptions:
            if subscription['product']['region']['name'] != region:
                continue
            elif subscription['product']['item']['name'] != item:
                continue
            subscription_id = subscription['id']
        if not subscription_id:
            raise exception.SubscriptionNotFoundByRegionOrItem(region=region,
                                                               item=item)
        db.subscription_destroy(context, subscription_id)
    except Exception, e:
        # TODO(lzyeval): report
        raise
Example #6
0
 def test_subscription_get_all_by_resource_uuid(self):
     self.truncate_table("regions")
     self.truncate_table("items")
     self.truncate_table("item_types")
     self.truncate_table("payment_types")
     self.truncate_table("products")
     self.truncate_table("subscriptions")
     region_ref = db.region_create(self.context, {'name': 'a_region'})
     item_ref = db.item_create(self.context, {'name': 'an_item'})
     item_type_ref = db.item_type_create(self.context,
                                         {'name': 'an_item_type'})
     payment_type_ref = db.payment_type_create(
         self.context, {
             'name': 'a_payment_type',
             'interval_unit': 'days',
             'interval_size': 12345,
             'is_prepaid': False
         })
     values = {
         'region_id': region_ref.id,
         'item_id': item_ref.id,
         'item_type_id': item_type_ref.id,
         'payment_type_id': payment_type_ref.id,
         'order_unit': 'some_measure',
         'order_size': 1,
         'price': 11.24,
         'currency': 'CNY',
     }
     product_ref = db.product_create(self.context, values)
     values = {
         'project_id': self.context.project_id,
         'product_id': product_ref.id,
         'resource_uuid': self.resource_uuid,
         'resource_name': self.resource_name,
     }
     expect = db.subscription_create(self.context, values)
     actual = db.subscription_get_all_by_resource_uuid(
         self.context, self.resource_uuid)
     self.compare_records(expect, actual[0])
Example #7
0
 def test_subscription_get_all_by_resource_uuid(self):
     self.truncate_table("regions")
     self.truncate_table("items")
     self.truncate_table("item_types")
     self.truncate_table("payment_types")
     self.truncate_table("products")
     self.truncate_table("subscriptions")
     region_ref = db.region_create(self.context, {'name': 'a_region'})
     item_ref = db.item_create(self.context, {'name': 'an_item'})
     item_type_ref = db.item_type_create(self.context,
                                         {'name': 'an_item_type'})
     payment_type_ref = db.payment_type_create(self.context,
                                               {'name': 'a_payment_type',
                                                'interval_unit': 'days',
                                                'interval_size': 12345,
                                                'is_prepaid': False})
     values = {
         'region_id': region_ref.id,
         'item_id': item_ref.id,
         'item_type_id': item_type_ref.id,
         'payment_type_id': payment_type_ref.id,
         'order_unit': 'some_measure',
         'order_size': 1,
         'price': 11.24,
         'currency': 'CNY',
         }
     product_ref = db.product_create(self.context, values)
     values = {
         'project_id': self.context.project_id,
         'product_id': product_ref.id,
         'resource_uuid': self.resource_uuid,
         'resource_name': self.resource_name,
         }
     expect = db.subscription_create(self.context, values)
     actual = db.subscription_get_all_by_resource_uuid(self.context,
                                                       self.resource_uuid)
     self.compare_records(expect, actual[0])
Example #8
0
def unsubscribe_item(context, region=None, item=None,
                     resource_uuid=None, **kwargs):
    """
    """
    try:
        app = context.app
        app.info("unsubscribe_item:" + str(region) + "/" + str(item) + "/" + str(resource_uuid))
        subscription_id = 0
        subscriptions = db.subscription_get_all_by_resource_uuid(context,
                                                                 resource_uuid)
        if not subscriptions:
            print "unsubscribe_item.SubscriptionNotFoundByResourceUUID", resource_uuid
            raise exception.SubscriptionNotFoundByResourceUUID(
                    resource_uuid=resource_uuid)
        for subscription in subscriptions:
            product = subscription['product']
            if product['region']['name'] != region:
                continue
            elif product['item']['name'] != item:
                continue
            # TODO: status==verified
            print subscription['status']
            if "floating_ip" == product['item']['name'] and "verified" != subscription['status']:
                continue
            subscription_id = subscription['id']
            break
        if not subscription_id:
            print "subscription_get_by_resource_uuid", resource_uuid, "item=", item, "region=", region
            raise exception.SubscriptionNotFoundByRegionOrItem(region=region,
                                                               item=item)
        app.info("\tsubs_id=" + str(subscription_id))
        db.subscription_destroy(context, subscription_id)
    except Exception, e:
        # TODO(lzyeval): report
        print e
        raise
Example #9
0
def unsubscribe_item(context, region=None, item=None,
                     resource_uuid=None, **kwargs):
    """
    """
    try:
        subscription_id = 0
        subscriptions = db.subscription_get_all_by_resource_uuid(context,
                                                                 resource_uuid)
        if not subscriptions:
            raise exception.SubscriptionNotFoundByResourceUUID(
                    resource_uuid=resource_uuid)
        for subscription in subscriptions:
            if subscription['product']['region']['name'] != region:
                continue
            elif subscription['product']['item']['name'] != item:
                continue
            subscription_id = subscription['id']
        if not subscription_id:
            raise exception.SubscriptionNotFoundByRegionOrItem(region=region,
                                                               item=item)
        db.subscription_destroy(context, subscription_id)
    except Exception, e:
        # TODO(lzyeval): report
        raise
Example #10
0
File: api.py Project: young8/dough
def unsubscribe_item(context, region=None, item=None,
                     resource_uuid=None, **kwargs):
    """
    """
    try:
        app = context.app
        app.info("unsubscribe_item:" + str(region) + "/" + str(item) + "/" + str(resource_uuid))
        subscription_id = 0
        subscriptions = db.subscription_get_all_by_resource_uuid(context,
                                                                 resource_uuid)
        if not subscriptions:
            print "unsubscribe_item.SubscriptionNotFoundByResourceUUID", resource_uuid
            raise exception.SubscriptionNotFoundByResourceUUID(
                    resource_uuid=resource_uuid)
        for subscription in subscriptions:
            product = subscription['product']
            if product['region']['name'] != region:
                continue
            elif product['item']['name'] != item:
                continue
            # TODO: status==verified
            print subscription['status']
            if "floating_ip" == product['item']['name'] and "verified" != subscription['status']:
                continue
            subscription_id = subscription['id']
            break
        if not subscription_id:
            print "subscription_get_by_resource_uuid", resource_uuid, "item=", item, "region=", region
            raise exception.SubscriptionNotFoundByRegionOrItem(region=region,
                                                               item=item)
        app.info("\tsubs_id=" + str(subscription_id))
        db.subscription_destroy(context, subscription_id)
    except Exception, e:
        # TODO(lzyeval): report
        print e
        raise