Task #7125


Implement "ordering" and "products" with ucloud

Added by Mondi Ravi almost 5 years ago. Updated over 1 year ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
PM Check date:



@Mondi Ravi @Ahmed Bilal ping

@Mondi Ravi I'd like you to implement asap "ordering" and "products" with ucloud

I think this is an important part that will also be used by other people who will be using ucloud in the end

I imagine it as follows:

We introduce a sub command ucloud order <product>

that command talks to the API, the API to etcd

the basic idea is that any product has two financial aspects:

one time cost (can be 0 ... x)

recurring cost (can be 0...x) and duration can be seconds to years - so we will need to store the unit with it

For a lot of products the pricing will actually be 0 / 0 per x, like reverse DNS

however treating everything somebody can book/buy, makes it easier to integrate

@Mondi Ravi I'd like you to implement the flow for buying an IPv6 VPN - adding products can for the moment "manual" or fiddling around directly with etcd

However the logic should work for "any" product / we should be able to easily hook new products into the system

@Mondi Ravi some additional commands that might be helpful: ucloud list-products and ucloud register-payment-method

@Mondi Ravi do you have any questions?
mravi profile image
12:50 PM

hmm, you probably already told this before @Nico Schottelius but would like to have a reconfirmation from you -- "ucloud uses etcd/json for all data" right? So, we don't any other database or am I missing something ?
nico profile image
12:50 PM

@Mondi Ravi I think we can go etcd only, beside you have a good reason against it

@Mondi Ravi Performance wise I don't think etcd will have a problem, but there will be some client logic arranging data, as compared to sql based
mravi profile image
12:55 PM

@Nico Schottelius ack .. I would need some introductory lessons into ucloud -- I've been following your discussions but do not know much about how can I kickstart my work
nico profile image
12:56 PM

@Mondi Ravi I think you can start almost clean plate, assuming you write python + probably flask ; however @Ahmed Bilal knows a lot of details and you can ping him in here

@Mondi Ravi payment has so far not been a topic in ucloud at all - so everything related to this is rather new
mravi profile image
12:57 PM

nico profile image
12:58 PM

@Mondi Ravi it would be cool if you could create a "dirty" prototype, being able to "order" an IPv6 VPN for 120 CHF/y; a plus if it is for free as long as you have booked any VM
mravi profile image
1:00 PM


Hand over criteria

This task is done, if:

  • I can order a VM and it is billed via credit card
  • I can order a VPN and it is ...
    • for free, if I have an active VM
    • terminated, if I don't have an active VM and the VPN is for free
    • paid by credit card if not bound to an active product
Actions #1

Updated by Mondi Ravi almost 5 years ago

  • Status changed from New to In Progress
  • Assignee set to Mondi Ravi
Actions #2

Updated by Mondi Ravi almost 5 years ago

  • Assignee changed from Mondi Ravi to Ahmed Bilal

Made a release 0.5.2 that includes handling one-time payment products.

This makes the scope of this ticket almost done.

Only things that I see that would need to be implemented later:
- Coupon system: eg IPv6 VPN is free for customers who have a VM
- In such case, terminating VM should also terminate VPN access

I think this can be implemented only once we have integrated ucloud-pay and have developed other components further.

I am tossing this to ahmed for review.

Actions #3

Updated by Mondi Ravi almost 5 years ago

  • Status changed from In Progress to Feedback
Actions #4

Updated by Nico Schottelius almost 5 years ago

If terminating X, because Y is terminated, we should add some kind of
flag for having the user verify.

This can be a client or server based check


Actions #5

Updated by Nico Schottelius over 4 years ago

  • Description updated (diff)

Mondi, Ahmed, can you today give me feedback until when we can have the above features implemented and deployed?

Actions #6

Updated by Ahmed Bilal over 4 years ago

  • Assignee changed from Ahmed Bilal to Nico Schottelius

I am stuck at some issues with integration of ucloud-pay with other ucloud projects. See

Actions #7

Updated by Nico Schottelius over 1 year ago

  • Status changed from Feedback to Rejected

Also available in: Atom PDF