Change Customer to Account and add get_system_by_account
This commit is contained in:
parent
a4a44578d2
commit
ec43422775
|
@ -73,31 +73,69 @@ class Connection(base.Connection):
|
||||||
else:
|
else:
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
def _add(self, context, model, values):
|
||||||
|
obj = model()
|
||||||
|
obj.update(values)
|
||||||
|
obj.save(self.session)
|
||||||
|
return obj
|
||||||
|
|
||||||
|
def _update(self, context, model, id, values):
|
||||||
|
obj = self._get_id(context, model, id)
|
||||||
|
obj.update(values)
|
||||||
|
try:
|
||||||
|
obj.save(self.session)
|
||||||
|
except exceptions.Duplicate:
|
||||||
|
raise
|
||||||
|
return dict(obj)
|
||||||
|
|
||||||
|
def _add_or_update(self, context, model, values, id=None):
|
||||||
|
if id is None:
|
||||||
|
return self._add(context, model, values)
|
||||||
|
else:
|
||||||
|
return self._update(context, model, values, id)
|
||||||
|
|
||||||
|
# NOTE: Rates
|
||||||
def add_rate(self, context, values, session=None):
|
def add_rate(self, context, values, session=None):
|
||||||
rate = models.Rate()
|
return self._add(context, models.Rate, values)
|
||||||
rate.update(values)
|
|
||||||
rate.save(self.session)
|
|
||||||
return rate
|
|
||||||
|
|
||||||
def get_rates(self, context, session=None):
|
def get_rates(self, context, session=None):
|
||||||
query = self.session.query(models.Rate)
|
query = self.session.query(models.Rate)
|
||||||
return [row2dict(row) for row in query.all()]
|
return [row2dict(row) for row in query.all()]
|
||||||
|
|
||||||
def update_rate(self, context, rate_id, values):
|
def update_rate(self, context, rate_id, values):
|
||||||
rate = self._get_id(context, models.Rate, rate_id)
|
return self._update(context, models.Rate, rate_id, values)
|
||||||
rate.update(values)
|
|
||||||
try:
|
|
||||||
rate.save(self.session)
|
|
||||||
except exceptions.Duplicate:
|
|
||||||
raise
|
|
||||||
return dict(rate)
|
|
||||||
|
|
||||||
def delete_rate(self, context, rate_id):
|
def delete_rate(self, context, rate_id):
|
||||||
rate = self._get_id(context, models.Rate, rate_id)
|
obj = self._get_id(context, models.Rate, rate_id)
|
||||||
rate.delete(self.session)
|
obj.delete(self.session)
|
||||||
|
|
||||||
def process_record(self, context, values):
|
# NOTE: Systems
|
||||||
print pformat(values)
|
def add_system(self, context, values, session=None):
|
||||||
|
return self._add(context, models.SystemAccount, values)
|
||||||
|
|
||||||
|
def get_systems(self, context, session=None):
|
||||||
|
query = self.session.query(models.SystemAccount)
|
||||||
|
return [row2dict(row) for row in query.all()]
|
||||||
|
|
||||||
|
def update_system(self, context, system_id, values):
|
||||||
|
return self._update(context, models.SystemAccount, system_id, values)
|
||||||
|
|
||||||
|
def delete_system(self, context, system_id):
|
||||||
|
obj = self._get_id(context, models.SystemAccount, system_id)
|
||||||
|
obj.delete(self.session)
|
||||||
|
|
||||||
|
# NOTE: Accounts
|
||||||
|
def get_system_by_account(self, context, system_id, session=None):
|
||||||
|
q = self.session.query(models.SystemAccount)
|
||||||
|
q.filter_by(system_id=system_id)
|
||||||
|
obj = q.first()
|
||||||
|
if not obj:
|
||||||
|
raise exceptions.NotFound(system_id)
|
||||||
|
return obj
|
||||||
|
|
||||||
|
# NOTE: Records
|
||||||
|
def add_record(self, context, values):
|
||||||
|
self._add(context, models.Record, values)
|
||||||
|
|
||||||
|
|
||||||
def row2dict(row):
|
def row2dict(row):
|
||||||
|
|
|
@ -116,29 +116,29 @@ class Base(object):
|
||||||
Base = declarative_base(cls=Base)
|
Base = declarative_base(cls=Base)
|
||||||
|
|
||||||
|
|
||||||
class Customer(Base):
|
class Account(Base):
|
||||||
"""
|
"""
|
||||||
A way to correlate multiple tenants or future Domains in OpenStack into
|
A way to correlate multiple tenants or future Domains in OpenStack into
|
||||||
a single aggregation point
|
a single aggregation point
|
||||||
"""
|
"""
|
||||||
__tablename__ = 'customers'
|
__tablename__ = 'accounts'
|
||||||
name = Column(Unicode(100), nullable=False)
|
name = Column(Unicode(100), nullable=False)
|
||||||
|
|
||||||
|
|
||||||
class CustomerSystem(Base):
|
class SystemAccount(Base):
|
||||||
"""
|
"""
|
||||||
A way of tying a "System's Customer" to a Billistix Customer
|
Bind a System's Account representation to a Account
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
OpenStack Domain or Tenant to a Customer
|
OpenStack Domain or Tenant to a Account
|
||||||
Credit card system ID
|
Credit card Account representation to a Account
|
||||||
"""
|
"""
|
||||||
__tablename__ = "customer_systems"
|
__tablename__ = "system_accounts"
|
||||||
system_id = Column(Unicode(100), index=True)
|
system_id = Column(Unicode(100), index=True)
|
||||||
system_name = Column(Unicode(100))
|
system_name = Column(Unicode(100))
|
||||||
|
|
||||||
customer = relationship("Customer", backref="systems")
|
account = relationship("Account", backref="systems")
|
||||||
customer_id = Column(UUID, ForeignKey('customers.id'))
|
account_id = Column(UUID, ForeignKey('accounts.id'))
|
||||||
|
|
||||||
|
|
||||||
class Record(Base):
|
class Record(Base):
|
||||||
|
@ -151,9 +151,9 @@ class Record(Base):
|
||||||
start_timestamp = Column(DateTime)
|
start_timestamp = Column(DateTime)
|
||||||
end_timestamp = Column(DateTime)
|
end_timestamp = Column(DateTime)
|
||||||
|
|
||||||
customer_system = relationship("CustomerSystem", backref="records")
|
system_account = relationship("SystemAccount", backref="records")
|
||||||
customer_system_id = Column(Unicode(100),
|
system_account_id = Column(Unicode(100),
|
||||||
ForeignKey('customer_systems.system_id'),
|
ForeignKey('system_accounts.account_id'),
|
||||||
nullable=False)
|
nullable=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue