Project

General

Profile

Task #7125

Implement "ordering" and "products" with ucloud

Added by Mondi Ravi about 1 month ago. Updated 24 days ago.

Status:
Feedback
Priority:
Normal
Target version:
-
Start date:
09/10/2019
Due date:
% Done:

0%

Estimated time:
PM Check date:

Description

Discussion: https://chat.ungleich.ch/ungleich/pl/o8y3tz8wo7ytje7o8nk9suw4qo

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
(edited)

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

ack
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

ok

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

History

#1

Updated by Mondi Ravi about 1 month ago

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

Updated by Mondi Ravi about 1 month ago

  • Assignee changed from Mondi Ravi to Ahmed Bilal

Made a release 0.5.2 https://code.ungleich.ch/ucloud/ucloud-pay/-/tags/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.

#3

Updated by Mondi Ravi about 1 month ago

  • Status changed from In Progress to Feedback
#4

Updated by Nico Schottelius about 1 month 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

writes:

#5

Updated by Nico Schottelius 29 days ago

  • Description updated (diff)

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

#6

Updated by Ahmed Bilal 24 days 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 https://code.ungleich.ch/ucloud/ucloud-pay/issues/1

Also available in: Atom PDF