... to synchronized singleton
+ disable the 5 parallel checks in balanceintervals.t
-> it passes sometimes, sometimes not
.. too timing/load dependent.
Change-Id: I9255452f01465a0673182cf4e0a9b3f560660b73
"dpkg-query -s" doesn't give the desired answer, it includes packages
known to dpkg for different reasons, but does not exactly reply
whether they are installed or not, which is the intention of the code.
Change-Id: I84b4a6c4c7c84997c31b2bdb3f10e0fe9ab0b721
the reload of fakedata seems to require a path in the updated format.
Otherwise the command "do $filename" seems to not find the file.
Change-Id: I7751be6eaec2862a1547ee4ab70fb2b86a902f19
This reverts commit ca76144c4a.
The tests are fixed now, re-enable them on Jenkins using 'stable' set.
Change-Id: I7913a6feef183a14a404981ec10a457eb31d870b
This reverts commit 5988b51589.
The tests are fixed now, re-enable them on Jenkins using 'stable' set.
Change-Id: Ide5735bf42090c8176a4e20ecf538fcf2a698b60
Used to fetch whether pbx, faxserver, rtcengine etc is enabled.
* Fix rtcengine reseller creation:
- Refuse to create reseller if rtcengine part fails
- Use proper auto-generated rtcengine values (pass, domain)
to not fail on reseller names which are not forming valid
hostnames.
* Implement /api/admins/id to support testing
- add test
- fix creating admins with overly long login
- fix various ACL bugs handling /api/admins/
- fix creating /api/admincerts/ as r/o user
* Fix test framework
- use proper client cert when switching API user
Change-Id: I602fdd8181c0b3f23e76e3eab0df90a1ff9e986f
(cherry picked from commit 0d376bd8b59db65296090d26f2c84d704129beef)
* Fix syntax errors and internal errors
* Pass set ids back in mappings
* Allow updates of mappings both via name and ids
Change-Id: I26fdfe96d67563c11040a6c1e87f13a835bb793f
New Perl in stretch doesn't provide the method/hack to access variable,
we were using. Ira is searching for the fix here, so far temporary disabling the tests,
as the fix is not approaching this week. The commit must be reverted soonish.
Change-Id: Ib0fd290c6749df361638405589e9e5df6248394a
Recent switch to stretch in trunk makes it impossible to rebuild the image.
Also improve error handling here in case of removed ngcp-panel-tests-rest-api-build-deps
(docker will report an error in this case, previously it silently ignored that).
Change-Id: I51868265d0ff8fd646071ccff4fd380f2495d4d7
* Implement r/o access to /api/customers for subadmin
* Implement r/o access to /api/subscribers for subs
* Implement create access to /api/subscribers for subadmins
* Implement /api/numbers to re-assign a number
* Implement CF endpoints access for subs
* Implement new test framework to simplify testing
* Fix updating number by using Utils to make sure allowed_clis etc
are handled correctly
* Install missing docker dependencies for new test framework
* Add edr handling on /api/numbers/xx update
Change-Id: I678da16cfb1361b2809780cba8c204ac90bb1736
+ added conversations to api_root.t
+ disabled xmpp conversations source, since "soap"
MySQL user is not yet granted to prosody.* tables
Change-Id: I3d6a9418e7c2b77503f8472fe639e971ad7be3fa
Otherwise:
not ok 188 - check for valid link syntax
Use of uninitialized value $relname in exists at t/api-rest/api-root.t line 152.
Use of uninitialized value $relname in concatenation (.) or string at t/api-rest/api-root.t line 152.
not ok 189 - check for '' collection in Link
Use of uninitialized value $relname in delete at t/api-rest/api-root.t line 153.
Change-Id: Ib78e735e365b34404a06037b06dd7becdcf9917b
Which confuses developers which are debugging failed tests,
as details like below are not a part of XML Jenkins displays on a WEB:
> # Failed test 'create test customer w/o profile package'
> # at t/api-rest/api-balanceintervals.t line 1578.
> # got: '500'
> # expected: '201'
> Use of uninitialized value in concatenation (.) or string at t/api-rest/api-balanceintervals.t line 1580.
> Thread 4 terminated abnormally: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML>\n<!-...") at /usr/share/perl5/JSON.pm line 171.
'man prove' says:
> -m, --merge Merge test scripts' STDERR with their STDOUT.
Change-Id: I945d4d8867fc9c061f96d067be14125af7cc5a46
checks comparing "now" timestamps generated by the .t and by api code
(eg. lnp number termination) fail randomly. it seems the
clocks of docker and the api node differ sometimes. this commit
tries to compensate by sending the .t time with requests.
Change-Id: Iaded3735e746dab166364a34ea8a5cda8c8e40ab
It's fine to remove read-only fields only if $run==1, but in any
case remove unknown fields.
Also the force-array change broke additional tests, fixed them.
Change-Id: I48ffcf201bd1eedb8fb317f1ca248af9e4a01e60
If no locally cached API cert is available, download one and use it
throughout all of the tests. Speed-up factor is ~3x.
Change-Id: I083985f4e4ec7d8f7f4e0beec3a604be80a4bb59
-introduce deferred event record insertion, to span across
update_subscriber_number and update_subadmin_sub_aliases
calls by handing over a snapshot of aliases before number
edit operations
-the snapshot is used to persist first_non_primary_alias_before
event values
-it also is the preparation to derive number change events
apart from that, the following was noticed:
-fix: start_huntgroup was generated twice
-fix: when terminating a subs, the order of end events was
not the reverse order of start_events
-POST /api/subscribers does not consider pbx alais selection
of pilot pool aliases, while terminating the susbcriber does
move back alaises to the pilot pool.
Change-Id: I092f4a21bed25503f48c47c253f1cae0729f43da
+preference-style 1:1 association api resource will
list all existing customer contracts
+avoiding get_customer_rs for performance reasons
+PUT/PATCH only, no POST/DELETE
Change-Id: If3b00c6cde07bf030e8bfc308e5e29d3251bdedd
Take [1] of the created members and groups, to avoid special pilot behavior.
Pilot don't keep pbx group members
Change-Id: Ib8fd599ffc53c9743d2c160d324f2110548bcea9
+ api/events resource
+ removing an autoattendant via /api/callforwards: events OK
+ removing an autoattendant via /api/cfdestiantions: OK
+ removing an autoattendant via /api/cfmappings: OK
Change-Id: I4c309753b9338582479dba9951f757bb2ecaad7e
+1. terminate if terminated contracts or subscribers exists
+2. if active contracts or subscribers -> error
+3. delete otherwise
+customer contact api DELETE
+customer contact testcases
+customer api POST
+customer api PUT/PATCH
+system contact api DELETE
+system contact testcases
+contract api POST
+contract api PUT/PATCH
+panel UI contact delete
+panel UI contract create
no change panel UI contract update
+panel UI customer create
no change panel UI customer update
note contact links like customers.omm_contact or customers.tech_contact
are not considered.
Change-Id: I19ea6e2245282485cc30d3e92d17a2eb603e0c2d
* I had to fix api-bannedusers.t otherwise it failed:
> ok 19 - bannedusers: check if all created test items have been foundin the list
> is_empty:1;ok 20 - fetch uri: https://10.15.20.74:1443/api/bannedusers/?page=1&rows=1 (OK: )
> $VAR1 = undef;
> ok 21 - Check that all added banned users were deleted 1..21 Failed 1/21 subtests
Change-Id: Ic9578c9f1ab20b2abeaa51656ed5556804228981
-undo unique lnp_numbers: undo misleading unique keys
-retain lnp_provider delete cascade restriction
-api: wire lnp_numbers_actual
-lnpnumbers collection pagination request takes several
seconds (up to tens of for 200k lnp numbers), too slow
especially for GET /api/lnpnumbers/?number=.. lookups
-query param is properly injected into the virtual view
sql query, so the lookup is fast now.
-panel UI custom datatable filter to switch between
complete history (all records) and actual portings
-"terminate" lnp number: DELETE /api/lnpnumbers/?number=x
+special use-case for melita's crm
+all empty or future "end" timestamps of records
are set to now(), so a subsequent listing shows no
records any more.
-number parameter is forced, other collection query params
are currently not supported for DELETE
Change-Id: I7b69d16a2d4f38ea84fc1cc0b407fa67e0f5ef8b
If set and a call is done within a pbx customer, the call is blocked
in blacklist, and is allowed in whitelist.
Change-Id: Ib43e5a45525a69e2b9dd9537dabddf10dfc006d1
File /.dockerinit no longer exists. With Docker versions 1.11 and
1.12 there's /.dockerenv available, though it's not yet sure
whether this will be present in the future too, so check for either
/.dockerenv or a proper cgroup setup inside the docker container.
File /proc/1/cgroup with Docker version 1.12.1 on Debian/jessie
looks like:
| root@4c3a1c6d773c:/# cat /proc/1/cgroup
| 8:freezer:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 7:perf_event:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 6:net_cls,net_prio:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 5:cpuset:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 4:blkio:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 3:cpu,cpuacct:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 2:devices:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
| 1:name=systemd:/docker/4c3a1c6d773c1a5675f24ff58540ff1a290489e7325e1e66ec2c3392aa3a1145
See https://github.com/docker/docker/issues/18355 and
https://github.com/docker/docker/pull/19490 for details.
Change-Id: I79fff0eead1a11f80b461791b2285a65d706262a
Also call agent request in the update_item method, to make it more safe.
And added lost transaction commit
Fix 500 response for the incorret x3_port input
Change-Id: Ic538ffdd4d7fff833ba5395934a1b2bc6cf71664
The codebase does not use autodie directly, it does indirectly via
Sipwise::Base, and the autodie module is part of the standard perl
distribution anyway. TryCatch is imported via Sipwise::Base, and
that depends on it. The rest are not used anymore in the codebase.
Change-Id: Ic08e246cc60d7d151381dff39e0eba517a492e06
+prohibit deletion of lnp providers if numbers are
still linked to it
+number+provider must be unique
+fixed other panel lnp page validation checks
+db constraints to stand concurrent inserts/updates
+fixup all txn_do die() calls in panel to properly
display the error
+bulk upload checks by db constraints
+lnp api testcase
Change-Id: I872b19f50d96e6c39c7fd5728b2a16555a397236
- the connector name is properly set when creating a reseller
- the network tag defaults to just (sip,xmpp,webrtc,...)
- rtcsessions doesn't accept network tag anymore
- an rtc-account is created for every network of the rtc-user
- the identifier in the rtc-account is set according to the specific connector
- api-rtc-full.t has been simplified for the user (no more need for domain_id)
- update available networks (in reseller api)
Change-Id: I2700c646726a06569cc5a70a5a30d4cb67eb1c80
+creation of profile packages with hour and minute
intervals was disabled in api-balanceintervals.t
Change-Id: Idd18ced9704522bf5d919155d866c91b81526b92
If no subscriber existed, first is a pilot, and doesn't consider groupmembers.
Also fix getting created hal, which was unconditionally overwritten by loaded
Change-Id: Ie2cf76624f125dbc9aaffc1ffab19319028c2c6f
by choosing "stable" (about 1m30s) or "fast" (about 30s) as second
argument of testrunner, only tests are run, which are currently
succeeding on a plain trunk vm using docker. (times are on my machine)
I hope we can in this way re-enable them on nightlies (or even in gerrit)
so that devs have some better feedback on the impact of our changes.
Current status of tests (in trunk):
| Problems:
| api-callforwards.t
| api-balanceintervals.t
| api-faxes.t
| api-journals.t
|
| Fixed:
| api-all-links.t
| api-contracts.t
| api-customercontacts.t
| api-customers.t
| api-rewriterulesets.t
| api-root.t
|
| Working:
| api-billingfees.t
| api-billingnetworks.t
| api-billingprofiles.t
| api-billingzones.t
| api-calllists.t
| api-calls.t
| api-cert-auth.t
| api-cfdestinationsets.t
| api-ncoslevels.t
| api-pbxdevicemodels.t
| api-pbxdevices.t
| api-peeringgroups.t
| api-peeringrules.t
| api-peeringservers.t
| api-preferences.t
| api-profilepackages.t
| api-resellers.t
| api-rewriterules.t
| api-soundsets.t
| api-subscriberregistrations.t
| api-subscribers.t
| api-systemcontacts.t
| api-threads.t
| api-topuplogs.t
| api-trustedsources.t
| api-valid-patch.t
| api-vouchers.t
Change-Id: I74e672d9dc6bcccfd3ace2fe233dbcf325c6fc4d
+input validation for verlapping time ranges
for both weekdays and special. can be disabled.
+root entiy locking
+peektime special is growing and not paginated,
so PUT/PATCH will get slower if special peektimes
are added on a regular basis. they can be removed
using the UI however
+testcase to check overlap detection
Change-Id: I935d943078ab5c81263da88ecd04e004deb26c8b
Otherwise we are failing with error:
> t/api-rest/api-faxes.t ..
> ok 1 - check faxserver feature state: disabled
> ok 2 - check error message in body: Faxserver feature is not active
> # Tests were run but no plan was declared and done_testing() was not seen.
> Dubious, test returned 254 (wstat 65024, 0xfe00)
> All 2 subtests passed
>
> Test Summary Report
> -------------------
> t/api-rest/api-faxes.t (Wstat: 65024 Tests: 2 Failed: 0)
> Non-zero exit status: 254
> Parse errors: No plan found in TAP output
Change-Id: Iff32b25ced931931af8cbaedc7fb054e48773667
Otherwise we are getting error:
> not ok 10 - Check existence of rating_status field
>
> # Failed test 'Check existence of rating_status field'
> # at t/api-rest/api-calllists.t line 50.
> # Total number of calls: 0
Change-Id: I257e198b740363d5d25d6d35a29a482f966377fb
+subscriber instead of source_subscriber typo fixed
+rudimentary test case to see if the filter works
+fixed in/out direction filter testcase: sum of in and
out calls should be >= total count of calls
Change-Id: Ibe4b8153f023c53bb463626ad9e6613992fc101d
+basically, the fix means to set
billing.contract_balances.start
billing.contract_balances.end
billing.contracts.create_timestamp
billing.contracts.modify_timestamp
to the 'local' timezone.
+test cases added
Change-Id: I203f8fc93df2b53c1cfe89bb1a90cdf6388e20b3
Fix faxserversettings PUT/PATCH processing found after faxes tests run
MT#15441 Tests for subscriber number changes
MT#12347 Test framework small fixes and additions
Some format changes and unused library removals
Add put_and_get method as common
Replace request_get & check 200 with check_item_get
Changes for API that doesn't return created object json after POST
Complete base_uri using replacement with normalize_uri
Change-Id: Ia31a97eb9511f1ca1de63c72bcbe380b89dfed34
any *attempt* of a top-up request should be
logged.
+create top-up log records for api
in order to record failed top-up requests as well,
the somewhat tricky thing is to have two
separate transactions here
+propery casting of topup request json field
values to numbers etc., so the transaction for
creating the log entry cannot fail and e.g.
requests with subscriber_id='blah' are recorded
correctly
+new "request_token" parameter for /api/topupvoucher
and /api/topupcash, to identify and filter for
particular requests.
+topup log api resource
+topup log api tests
+fix to correctly reject used vouchers
+topup log panel UI
+fix for balanceintervals.t threaded tests
Change-Id: I86eb845f6173803705b12cc7e5cdbac9a3153a0a
+refactoring recent failing api-balanceintervals.t test to
need only two concurrent transactions (instead of three,
see https://bugtracker.sipwise.com/view.php?id=15277
Change-Id: I4902e616c3adfae81676194fa5e2b99e4b516ed1
For usage instructions please look at the bottom of the Dockerfile,
usage similar to what we already have for the docker selenium tests.
Known problems:
1) In t/api-rest/api-journals.t there's a failure, though all the tests
actually seem to run fine then:
| encountered object 'true', but neither allow_blessed nor convert_blessed settings are enabled at /usr/share/perl5/JSON.pm line 154.
| # Tests were run but no plan was declared and done_testing() was not seen.
| # Looks like your test exited with 255 just after 1130.
| [...]
| t/api-rest/api-journals.t (Wstat: 65280 Tests: 1130 Failed: 0)
| Non-zero exit status: 255
| Parse errors: No plan found in TAP output
| Files=25, Tests=8363, 347 wallclock secs ( 1.14 usr 0.11 sys + 32.59 cusr 2.23 csys = 36.07 CPU)
2) Failures in t/api-rest/api-balanceintervals.t, might be caused by
timing issues/rerunning them, needs investigation though:
| t/api-rest/api-balanceintervals.t (Wstat: 65024 Tests: 1875 Failed: 318)
| Failed tests: 51, 56-59, 62, 67, 70, 75-80, 83, 88, 108-109
| [...]
Change-Id: I5d697cab4a1a4c6697857fc63c03b8d3fd8965d2
making tests finally compatible with jessie.
there is one test left using certificate auth now,
the others use password auth. this enables us to move
the certificate logic out of Module::Build.
also, sipwise::base has been mostly removed from the
modified files.
Change-Id: Id0d9172c2f3f7ca2b69eaa9f16eeb99dc1d6ea11
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