in short: whenever the contract_balances "cash_balance" is
about to decrease, it might drop below thresholds defined
by a contract's profile package. in that case, subscribers
are to be locked and/or underrun billing profile sets are
to be applied. this commit also contains some minor fixes:
+when creating/editing profile packages, all billing
profiles of initial, topup, underrun sets must show the
same interval_free_cash and interval_free_time values.
there was also a problem with adding profile sets to
packages that use profile with prepaid = 1 (see ticket
14301)
+when editing packages using the panel UI, the validation
was not properly invoked (!) +the frequency of topups has
to be limited to 1 per second.
+updating the "lock" subscriber prior to editing or viewing
it in the panel UI was added.
+topup cash and topup voucher panel UI added
+when aquiring multiple contract row locks at once, no
joined tables are used any mure. the number of row locks
is therefore minimal now (see ticket 14903)
+rework of updating prepaid subscriber preference
Change-Id: Ideb0fec2404ca10b3ac5d8735f53620d0c3a24ed
MT#14779 Add default value for the q parameter
MT#14891 Consider form validation for the POST request (create location)
MT#14789 Remove user_agent registration parameter
Change-Id: I9f81ec3ec5c308c731b3dfe6aa5f075c7d7b50ab
This provides a setup to run ngcp-panel tests against
selenium-server using docker. It's based on Debian/jessie and
assumes are reachable NGCP system for running the tests against
(e.g. via `vagrant up ce-trunk`). For usage instructions refer
to the Dockerfile.
NOTE: replacing 'jessie' with 'wheezy' in the Dockerfile provides
a setup based on Debian/wheezy.
Change-Id: I79ca4d44c3a7c454f99148889d4b0d075a79e82b
use strict and warnings
therefore forbid unquoted strings
factor out initialisation
screenshot functionality is implemented upstream
Change-Id: I18a0dcc7a6418dc9fd2fa64d367ae226018a7645
+profile package details view to overlook associations
+voucher count is properly checked before deleting a package
+package_id filters for /api/customers and /api/vouchers
+Fake::Time replaced by Time::Warp for balance_interval tests
+cleanup
Change-Id: Idc34220a9d29c115453eeee2907e70a71cf9f0cc
This is a patcht introducing a variable to disable
setting profile_package_id's in in the contracts
table. The code should therefore behave as before,
as long rate-o-mat and libswrate are ready.
Not once set to 1 and contract balances are written
to a database once, disabling this constant will
mess up contract_balances!
Change-Id: I080460395627202f3f5a386022de643577f4f3c2
The prior "topup" start mode for balance intervals
(contract_balances) creates intervals for each
top-up using a voucher, resulting in dynamic length.
This new "topup_interval" start mode will just align
the *first* balance interval upon the topup. Subsequent
intervals use the constant interval unit+count
specified in the profile package.
Melita user story is completely covered now.
Change-Id: I0a8b8d73a7fbf054d0aa8b2b1e73a54609fdeee0
We have to enable test explicitly using config.yml:
> $yaml->[0]->{www_admin}->{api_debug_opts}->{allow_fake_client_time} = 1;
> $yaml->[0]->{www_admin}->{api_debug_opts}->{allow_delay_commit} = 1;
Otherwise the test api-balanceintervals.t will be skipped.
Change-Id: I280e0199fa5957ad01bc3a59b64188f80a37635e
+applying profile package and billing mappings
+testcase in api-balanceintervals.t
+caveats: to meet melita's user story, an additional 'topup_interval' interval start mode will be required. the currently implemented 'topup' start mode restarts intervals upon every topup and therefore does not provide constantinterval lengths.
Change-Id: I0a4898783c023749994e94e6909833a42debe259
+ synchronized contract balance catchup
+ balance interval resizing upon profile package transitions
+ dynamic interval length, interval start, carry-over propagation, ..
+ end-of-month 'preserve' mode correction for strictly aligned month intervals for start_mode=customer "create" timestamp
+ new api/balanceintervals resource to inspect contracts' balance interval histories
+ updated affected panel UI controllers
+ test case with time warps using Time::Fake
caveats:
- creating an invoice for a given 'period' (month) has to be refactored to select a disitnct balance interval. right now it takes the last interval in the month specified.
- generate_invoice.pl is broken and needs a major refactoring
Change-Id: I7bb54a83b76e510b1baa573a986d05400a7fec1e
-properly validate billing mapping intervals
-api/contracts and api/customers complete
+the problem with updating the "prepaid" preference remains at the moment
+billing_mappings field contains future (editable) mappings only, the full schedule is given in a separate field
+hal-links to all occurring billing profiles and networks
-extended tests: api-customer.t and api-contract.t
-api-billingnetworks.t test
-billing networks panel controller
+search by enclosed IP address
-panel UIs for billing networks, customers, contracts
+past billing mapping intervals that cannot be edited are displayed by a seperate hfh "block" part of the billing_profiles repeatable
-profile packages api, UI
+terminating billing profiles (MT#8645) will be broken
+fixed now: profile cannot be terminated unless there are:
-zero non-terminated customers, whose mappings contain the profile with future or open end
-zero profile packages, that link to the profile in either one of their initial-, underrun- or topup profile sets
+panel edit should work, termination wip
+topup_profiles w/o amounts
+contracts/customers API profile_package_id field:
+apply the package's initial profiles
+api/customer and api/contract profile definition modes (id/profiles/package)
+api OK, api-customer.t tests
+customer and contract panel UI with selector to specify actual billing mapping, schedule or profile package (same as api)
+terminate logic harmonized: profiles, networks, packages
+api tests updated
+prepare for merging: cleanup, enable tests
Change-Id: I6c0dec72f490b5731fc673cd393d6aeb08dd8143
+error message in test descriptions texts
+with recent changes to "description" fields to "required", the strict_sql_mode flage in api-journals.t has to be set.
+missing cftimestes and cfdestinationsets DELETE methods are now finally "journalized" and tested OK.
+other tests were disabled:
>test_billingzone -> journal settings not in yaml file yet, test_customerpreferences -> a valid ncos level item has to be referred (since today?) - ncos api crud methods not journalized yet
>test_profilepreferences -> a valid rewrite rule set item has to be referred (since today?) - rewrite rule set api crud methods not journalized yet
>test_autoattendants -> journal settings not in yaml file yet
>test_subscriberpreferences -> a valid ncos level item has to be referred (since today?) - ncos api crud methods not journalized yet
Change-Id: I75b24b3eb0758d6e4e248758c7861f93abc791c0
-enhanced test detail: did not detect missing CRUD operations yet
-query param 'operation' didn't work for 'recent' yournal entry of all API resources so far
-fix of several copy paste errors in existing rest api code
-...
Change-Id: I71b54212d8126b0280fcad2e568fad52a673cbf0
the journal module introduces a change history of
resources modified by api invocations. the history of
the 'customer' resource demo is accessible at
/api/customers/x/journal.
Change-Id: I4d5d11bc3e35160feed587ce4c1db565991866b2
We have disabled (by default) www_csc and split new
selfcare and admin interfaces, selenium tests should be
updated accordingly.
Change-Id: Idef367a8b4bec1624a3d11819f03ef18f1b94a16
if this ajax call is not yet finished it changes the table, which interferes
with the commands which follow
remove it, as there should be only one row anyways
see 5751#c37733
We should now have working baselines for
- collections (SystemContacts)
- items (SystemContactsItem)
with support for
- collections: OPTIONS, HEAD, GET, POST
- items: OPTIONS, HEAD, GET, PUT, PATCH, DELETE
covered by according tests and with a proper API documentation.
Clearly distinguish between systemcontacts (those without reseller) from
customercontacts (those with resellers). Separating them frees us from
having to handle reseller_id magic.
The tests t/controller_NAME.t are automatically generated by the
catalyst.pl script. They were not complete and individually dont have much
function, so lets group them together in one file.
A problem with the selenium installation on our jenkins seems
to be, that sometimes a page is loaded twice, which for example
deletes an item twice, which results in an error message in the
panel. For now, lets mark the tests which fail on that reason optional.
all selenium tests are working locally with selenium 2.31.0 and
phantomjs 1.9.1 and an empty db-schema dump
particular fixes:
- skip some tests, when no domain is yet created
- select_if_unselected to prevent unselecting preselected checkboxes
- increase some waiting times to fix races with ajax calls
Don't use JE for data validation, as it adds lots of processing overhead.
Properly use Formhandler for data validation.
Catch DB errors properly.
Write basic auth test.
The tests t/controller_NAME.t are automatically generated by the
catalyst.pl script. They were not complete and individually dont have much
function, so lets group them together in one file.
A problem with the selenium installation on our jenkins seems
to be, that sometimes a page is loaded twice, which for example
deletes an item twice, which results in an error message in the
panel. For now, lets mark the tests which fail on that reason optional.
all selenium tests are working locally with selenium 2.31.0 and
phantomjs 1.9.1 and an empty db-schema dump
particular fixes:
- skip some tests, when no domain is yet created
- select_if_unselected to prevent unselecting preselected checkboxes
- increase some waiting times to fix races with ajax calls
for NGCP::Schema
we activate this behaviour by setting the environment variable
NGCP_PANEL_CONFIG_LOCAL_SUFFIX to "testing" which is a feature
from Catalyst::Plugin::ConfigLoader