pyi2ncommon
4 years agoIncrease version to 1.6.2 v1.6.2
Christian Herdtweck [Tue, 5 Nov 2019 10:59:32 +0000]
Increase version to 1.6.2

4 years agoRemove ISDN dialin related cnfvars
Thomas Jarosch [Mon, 4 Nov 2019 16:05:03 +0000]
Remove ISDN dialin related cnfvars

It does not seem to be used in pyi2ncommon or intra2net-qa anyway.

4 years agoMerge branch 'drop-cnfvar-translation'
Christian Herdtweck [Wed, 16 Oct 2019 14:00:45 +0000]
Merge branch 'drop-cnfvar-translation'

4 years agoMerge branch 'mkconfig-generalizations'
Christian Herdtweck [Wed, 16 Oct 2019 14:00:20 +0000]
Merge branch 'mkconfig-generalizations'

4 years agoDrop legacy cnfvar-autotest parameter translation
Plamen Dimitrov [Wed, 16 Oct 2019 08:56:26 +0000]
Drop legacy cnfvar-autotest parameter translation

4 years agoExtend the port forwarding mk_config function to proper port selection
Plamen Dimitrov [Fri, 4 Oct 2019 14:59:21 +0000]
Extend the port forwarding mk_config function to proper port selection

4 years agoUse a better default value for the nic type of newly defined nics
Plamen Dimitrov [Fri, 4 Oct 2019 14:53:16 +0000]
Use a better default value for the nic type of newly defined nics

4 years agoIncrease version to 1.6 v1.6
Christian Herdtweck [Thu, 8 Aug 2019 09:58:11 +0000]
Increase version to 1.6

Also mention "python" in description.

4 years agoMerge branch 'mail-utils-improvement'
Christian Herdtweck [Thu, 8 Aug 2019 09:55:02 +0000]
Merge branch 'mail-utils-improvement'

4 years agoFix timezone in test for parse_mail_date
Christian Herdtweck [Mon, 15 Jul 2019 11:06:36 +0000]
Fix timezone in test for parse_mail_date

4 years agoAdd option to parse newer EmailMessage type from mails
Christian Herdtweck [Mon, 15 Jul 2019 11:06:08 +0000]
Add option to parse newer EmailMessage type from mails

Sofar, parser policy was not specified, so "compat32" was used for compatibility
with python 3.2. Changing to the more modern "default" policy returns a different
type of message (EmailMessage instead of Message) that has quite some differences.
For example, EmailMessage.get(header_name) returns no longer str but a Header object.
This would break lots of code so use the old compat32 as default still.

4 years agoParse email from bytes instead of text
Christian Herdtweck [Mon, 15 Jul 2019 11:04:03 +0000]
Parse email from bytes instead of text

This allows usage of other encodings than the system encoding (e.g. latin1)

4 years agoCreate mail_utils test with latin1 encoded mail
Christian Herdtweck [Mon, 15 Jul 2019 11:02:19 +0000]
Create mail_utils test with latin1 encoded mail

4 years agoMove mail_validator tests into own test file
Christian Herdtweck [Mon, 15 Jul 2019 11:00:53 +0000]
Move mail_validator tests into own test file

4 years agoMinor fixes for mail_utils
Christian Herdtweck [Tue, 25 Jun 2019 11:34:32 +0000]
Minor fixes for mail_utils

- update module description
- add missing docu
- add link to MailValidator and ImapMailbox docu
- correct comment
- fix wrapping of 3 lines
- remove one useless else

4 years agoMove MailValidator into own module
Christian Herdtweck [Tue, 25 Jun 2019 11:05:12 +0000]
Move MailValidator into own module

mail_utils is getting overcrowded and MailValidator is about half of it
and rather independent of the rest.

4 years agoCreate ImapMailbox, a wrapper around python's IMAP4
Christian Herdtweck [Fri, 7 Jun 2019 07:21:15 +0000]
Create ImapMailbox, a wrapper around python's IMAP4

Python's built-in imap class offers little convenience. Add some
of our own with this class.

4 years agoCreate unittest for parse_mail_date
Christian Herdtweck [Tue, 4 Jun 2019 07:58:41 +0000]
Create unittest for parse_mail_date

4 years agoCreate mail_util parse_mail_date
Christian Herdtweck [Tue, 4 Jun 2019 07:56:14 +0000]
Create mail_util parse_mail_date

This is only a 2-liner now but started off as a more involved function
which was cut down when I realized: it is already implemented in python.

Leave this here, still, so I do not make that mistake again (and for the
small extra convenience).

4 years agoCreate function get_user_mail_files
Christian Herdtweck [Tue, 4 Jun 2019 07:52:54 +0000]
Create function get_user_mail_files

Sometimes do not need to parse the mail, just need to know how many/which
files there are.

4 years agoReturn after giving help in make_dist.py
Christian Herdtweck [Tue, 23 Jul 2019 09:40:37 +0000]
Return after giving help in make_dist.py

4 years agoBring back source check script
Christian Herdtweck [Thu, 8 Aug 2019 09:53:48 +0000]
Bring back source check script

Old script was deleted a few commits ago for version 1.5
(commit 81f7f6c7a16bc5e63228996cedf8ac83f45f3717).
This is a modified version from i2n avocado source.

5 years agoFix a bug in mail_utils.send_email_with_files
Christian Herdtweck [Tue, 16 Apr 2019 09:03:54 +0000]
Fix a bug in mail_utils.send_email_with_files

Implementation had assumed that isinstance(bool, int) is False. But bool
is a subclass of int, therefore logic did not work

5 years agoChange version to 1.5 v1.5
Christian Herdtweck [Mon, 15 Apr 2019 08:09:20 +0000]
Change version to 1.5

5 years agoRemove outdated check script. Will bring back as adapted copy from QA code
Christian Herdtweck [Mon, 15 Apr 2019 08:09:51 +0000]
Remove outdated check script. Will bring back as adapted copy from QA code

5 years agoIncrease version to 1.5 (alpha)
Christian Herdtweck [Tue, 9 Apr 2019 12:20:59 +0000]
Increase version to 1.5 (alpha)

5 years agoMerge branch 'py3.7-ssl-certs'
Christian Herdtweck [Tue, 9 Apr 2019 09:53:34 +0000]
Merge branch 'py3.7-ssl-certs'

5 years agoTake into account that certs are not issued to "localhost"
Christian Herdtweck [Tue, 9 Apr 2019 08:33:23 +0000]
Take into account that certs are not issued to "localhost"

Use FQDN instead

5 years agoMake certificate checks optional, enable per default
Christian Herdtweck [Tue, 9 Apr 2019 08:20:55 +0000]
Make certificate checks optional, enable per default

Also give an option to give an extra certificate to accept as .pem

5 years agoFix error type returned from failed POST
Christian Herdtweck [Tue, 9 Apr 2019 08:19:16 +0000]
Fix error type returned from failed POST

5 years agoAllow HTTPS connections with self-signed certificates
Plamen Dimitrov [Tue, 26 Mar 2019 03:53:52 +0000]
Allow HTTPS connections with self-signed certificates

We use such certificates on the web surface of the Intra2net system.

5 years agoImprove output of unittest
Christian Herdtweck [Tue, 9 Apr 2019 09:52:43 +0000]
Improve output of unittest

5 years agoCreate dist for python3.7 per default (and add help)
Christian Herdtweck [Tue, 9 Apr 2019 09:50:53 +0000]
Create dist for python3.7 per default (and add help)

Both Intra2net systems and avocado are now running on python3.7

5 years agoFix bad end of iterator and unused variable
Christian Herdtweck [Tue, 9 Apr 2019 09:50:11 +0000]
Fix bad end of iterator and unused variable

The StopIteration is a real error in python 3.7

5 years agoMerge branch 'py3.7-subprocess'
Christian Herdtweck [Tue, 9 Apr 2019 09:46:04 +0000]
Merge branch 'py3.7-subprocess'

5 years agoRemove unittests for removed function
Christian Herdtweck [Tue, 9 Apr 2019 09:43:24 +0000]
Remove unittests for removed function

5 years agoRemove obsoleted comment in the arnied wrapper docstring
Plamen Dimitrov [Tue, 26 Mar 2019 07:40:07 +0000]
Remove obsoleted comment in the arnied wrapper docstring

5 years agoDrop emulation of py3.5+ subprocess module for python 3.3
Plamen Dimitrov [Tue, 26 Mar 2019 07:36:13 +0000]
Drop emulation of py3.5+ subprocess module for python 3.3

The Intra2net system now relies on python 3.7 ridding us of all
this extra complexity.

5 years agoDefine new capture output flag for python 3.7 which is false by default
Plamen Dimitrov [Tue, 26 Mar 2019 07:30:50 +0000]
Define new capture output flag for python 3.7 which is false by default

This is a bad indicator of the backwards compatibility of minor versions
since adding the flag with a default like this would probably break a
lot of code down there. Sometimes it seems that python developers are
not really concerned with how many things they break in their minors.

5 years agoRemove the global TODO with outdated information
Plamen Dimitrov [Mon, 18 Feb 2019 12:28:56 +0000]
Remove the global TODO with outdated information

We can use Mantis BT, Trello, or other system for better
tracking of tasks.

5 years agoMake unittest output less distracting
Christian Herdtweck [Tue, 12 Feb 2019 10:30:37 +0000]
Make unittest output less distracting

That blinking really catches my eye every time, quite distracting.
Also limit output to a single line.

5 years agoImprove output of wait_for_email_transfer
Christian Herdtweck [Tue, 12 Feb 2019 10:21:46 +0000]
Improve output of wait_for_email_transfer

Most of all, warn if timeout was reached without finishing email transfer

5 years agoRun unittests in make_dist.py; update doc v1.4
Christian Herdtweck [Tue, 12 Feb 2019 09:20:54 +0000]
Run unittests in make_dist.py; update doc

5 years agoAdd release argument to make_dist.py
Christian Herdtweck [Tue, 12 Feb 2019 08:54:57 +0000]
Add release argument to make_dist.py

This should simplify introducing a proper labeling of development versions
of pyi2ncommon (the -avocado-test-X naming scheme did not prove successful)

5 years agoRe-run with LANG=C in unittest runner
Christian Herdtweck [Mon, 11 Feb 2019 09:27:58 +0000]
Re-run with LANG=C in unittest runner

5 years agoMerge branch 'cnfvar-autodetect-bytes'
Christian Herdtweck [Mon, 11 Feb 2019 12:20:04 +0000]
Merge branch 'cnfvar-autodetect-bytes'

5 years agoCreate unittest for read_cnf_json(non-ascii-str)
Christian Herdtweck [Mon, 11 Feb 2019 10:55:27 +0000]
Create unittest for read_cnf_json(non-ascii-str)

5 years agoFix unittest if run from non-unicode shell
Christian Herdtweck [Mon, 11 Feb 2019 10:54:50 +0000]
Fix unittest if run from non-unicode shell

When opening files (like os.devnull) in text mode, python uses the shell's
default encoding. In case LANG=C or when redirecting (for example), that
is just 'ascii', so writing non-ascii strings to /dev/null fails with
UnicodeError

5 years agoAdd and fix and few CNF_VAR-related doc strings
Christian Herdtweck [Mon, 11 Feb 2019 10:51:54 +0000]
Add and fix and few CNF_VAR-related doc strings

5 years agoAuto-detect str/bytes when dumping cnf vars
Christian Herdtweck [Mon, 11 Feb 2019 09:50:13 +0000]
Auto-detect str/bytes when dumping cnf vars

This is the second attempt to solve the problem when to "print" byte strings
and when to use regular unicode strings.

One problem is that sys.stdout can be a text stream or a byte stream
depending on shell environment.

5 years agoMerge branch 'make-dist-improvements'
Christian Herdtweck [Thu, 7 Feb 2019 15:45:54 +0000]
Merge branch 'make-dist-improvements'

5 years agoAvoid modifying wrong rpm from make_dist
Christian Herdtweck [Mon, 28 Jan 2019 10:26:18 +0000]
Avoid modifying wrong rpm from make_dist

Bughunting before was complicated by usage of wrong rpm files. Make tests
more strict to avoid finding wrong rpm

5 years agoRequire zipfile35 only for rpms for py<3.5
Christian Herdtweck [Mon, 28 Jan 2019 09:56:55 +0000]
Require zipfile35 only for rpms for py<3.5

5 years agoDocument build machine requirement in README
Christian Herdtweck [Mon, 28 Jan 2019 08:45:49 +0000]
Document build machine requirement in README

5 years agoAllow specify py version for make_dist
Christian Herdtweck [Mon, 28 Jan 2019 08:26:13 +0000]
Allow specify py version for make_dist

make_dist.py had assumed that py3.3 and py3.6 are installed on local machine.
Document that assumption and allow to deviate from it

5 years agoadd a minimal setup guide in order to build the RPMs
Plamen Dimitrov [Fri, 25 Jan 2019 11:37:49 +0000]
add a minimal setup guide in order to build the RPMs

5 years agoMerge branch 'cnfvar-byte-fixes'
Christian Herdtweck [Thu, 7 Feb 2019 15:43:19 +0000]
Merge branch 'cnfvar-byte-fixes'

5 years agoBe more precise about the binary in sysmisc cheat reboot docstring
Plamen Dimitrov [Mon, 21 Jan 2019 12:34:43 +0000]
Be more precise about the binary in sysmisc cheat reboot docstring

5 years agoPass byte stream to the cnfvar from the dynamic cnf setting
Plamen Dimitrov [Fri, 25 Jan 2019 17:32:03 +0000]
Pass byte stream to the cnfvar from the dynamic cnf setting

5 years agoIgnore some PyDev configuration in the git tree
Plamen Dimitrov [Fri, 25 Jan 2019 11:18:33 +0000]
Ignore some PyDev configuration in the git tree

5 years agoDeprecate irrelevant autotest comments in the cnfvar
Plamen Dimitrov [Fri, 25 Jan 2019 17:33:15 +0000]
Deprecate irrelevant autotest comments in the cnfvar

5 years agoMerge branch 'mail_utils-for-avocado-emailfilter'
Christian Herdtweck [Thu, 7 Feb 2019 15:35:33 +0000]
Merge branch 'mail_utils-for-avocado-emailfilter'

5 years agoFix cnfvar case of writing bytes from the io module
Plamen Dimitrov [Fri, 25 Jan 2019 17:31:40 +0000]
Fix cnfvar case of writing bytes from the io module

5 years agoUse a more robust condition in wait_for_email_transfer
Juliana Rodrigueiro [Wed, 6 Feb 2019 10:57:52 +0000]
Use a more robust condition in wait_for_email_transfer

This solution uses 'postqueue -j' command, which will produce an
empty list for stdout only when there are no more emails in the
queue. We become independent of the format of the output (byte,
string, specific characters, etc)

5 years agoCreate unittest for new mail_utils feature
Christian Herdtweck [Thu, 24 Jan 2019 15:50:39 +0000]
Create unittest for new mail_utils feature

5 years agoMerge branch 'arnied-fix-remote-scheduling'
Christian Herdtweck [Thu, 7 Feb 2019 15:22:26 +0000]
Merge branch 'arnied-fix-remote-scheduling'

5 years agoCreate new mail_utils option: get headers+attachments
Christian Herdtweck [Thu, 24 Jan 2019 15:43:08 +0000]
Create new mail_utils option: get headers+attachments

Often I parse and transfer big email message when actually
I only want the headers plus the attachment file names.

Create an option for this in mail_utils.parse_mail_file

5 years agoMerge branch 'call-helper-no-default-split'
Christian Herdtweck [Thu, 7 Feb 2019 15:20:36 +0000]
Merge branch 'call-helper-no-default-split'

5 years agoFix remote scheduling of programs
Samir Aguiar [Fri, 14 Dec 2018 18:28:00 +0000]
Fix remote scheduling of programs

When scheduling a program on a remote VM, the schedule file was
not being sent to the VM. Also, when removing previously schedule
files rm was waiting for confirmation since we didn't pass it
the `-f` option.

5 years agopylint/pydocstyle compliance for mail_utils
Christian Herdtweck [Tue, 4 Dec 2018 12:36:44 +0000]
pylint/pydocstyle compliance for mail_utils

- Wrapped long lines
- Added/Modified doc strings
- Replace single-letter variable names

5 years agoMerge branch 'cnfvar-fixes'
Christian Herdtweck [Thu, 7 Feb 2019 15:15:45 +0000]
Merge branch 'cnfvar-fixes'

5 years agotest_call_helpers: create unittests for subprocess_run
Christian Herdtweck [Fri, 21 Dec 2018 15:25:17 +0000]
test_call_helpers: create unittests for subprocess_run

Check that subprocess_run is compatible with python3.5 subprocess.run

5 years agoOverwrite run_cmd timeout in wait_for_run
Samir Aguiar [Fri, 14 Dec 2018 18:27:06 +0000]
Overwrite run_cmd timeout in wait_for_run

The default timeout of 60 seconds might not be enough

5 years agoCreate new mail util function to get body text(s)
Christian Herdtweck [Tue, 2 Oct 2018 11:02:07 +0000]
Create new mail util function to get body text(s)

5 years agotidy up cnfvar.py unit tests
Philipp Gesang [Thu, 7 Feb 2019 14:42:21 +0000]
tidy up cnfvar.py unit tests

This batch of unit tests was disabled since the switch to Python3
on account of minor encoding troubles. Reactivate it and ensure
encoding and escaping are handled properly.

5 years agotest_call_helpers: fix Comments
Christian Herdtweck [Fri, 21 Dec 2018 15:24:33 +0000]
test_call_helpers: fix Comments

5 years agoAdd timeout support to run_cmd
Samir Aguiar [Fri, 14 Dec 2018 18:24:16 +0000]
Add timeout support to run_cmd

When calling shell commands on a VM we have a default timeout
of 60 seconds (in the session functions designed to run remote
commands). However, some arnied_wrapper functions such as
`wait_for_run` (which calls `arnied_helper
--wait-for-program-timeout`) require a larger timeout, so we
need to be able to overwrite the default.

5 years agoAdd function to decode non-ascii attachment names from mails
Christian Herdtweck [Fri, 15 Dec 2017 15:17:27 +0000]
Add function to decode non-ascii attachment names from mails

5 years agocall_helpers: Make default behaviour of subprocess_run compatible
Christian Herdtweck [Fri, 21 Dec 2018 15:22:32 +0000]
call_helpers: Make default behaviour of subprocess_run compatible

subprocess_run just calls call_and_capture which has different default
settings (return text instead of bytes, split lines).
However, subprocess_run should be a drop-in replacement of the python3.5
subprocess.run function, so should behave the same way.

This little trick fixed e.g. calls to "get_cnf -j" called from cnfvar.py
on python 3.3 (current intra2net system version)

5 years agoaccept both bytes and str for cnfvar readers
Philipp Gesang [Thu, 7 Feb 2019 14:25:04 +0000]
accept both bytes and str for cnfvar readers

Make both the CNF format and the JSON readers handle bytes and
str transparently.

(Note there is still a deplorable asymmetry in the routines such
that the JSON path will convert to *str* whereas the CNF part,
assuming single-byte encoded data, will convert to *bytes*. This
is necessary for compatibility reasons until the Intranator gets
a more recent Python interpreter.)

5 years agoallow selecting individual tests in unittest wrapper
Philipp Gesang [Thu, 7 Feb 2019 14:15:10 +0000]
allow selecting individual tests in unittest wrapper

Extend run_unittests.sh so it doesn't necessarily always run
everything:

    $ ./run_unittests.sh                  # -> as before
    $ ./run_unittests.sh test.test_cnfvar # run test/test_cnfvar.py
    $ ./run_unittests.sh test_cnfvar      # run test/test_cnfvar.py

5 years agohandle data escaping properly in cnf vars
Philipp Gesang [Thu, 7 Feb 2019 13:45:40 +0000]
handle data escaping properly in cnf vars

libcnffile has an additional step that strips escaping from
var data so this:

    42 MY_VAR,0: "foo\"bar\"baz"

is actually a valid CNF_VAR with a data member equals ``foo"bar"baz''.
Till now, cnfvar.py would reject such a line because of the
stricter matching. Since escaped strings are ubiquitous in JSON
encoded data, this must be handled properly. (Ironically this is
not an issue with the JSON interface due to the builtin string
escaping rules of the format.)

Imitate the behavior of libcnffile so properly escaped double
quotes don't terminate the string matching. Lucky for us we can
get away with extending the line regex with an alternating
pattern in a non-matching group ``(?:...''.

5 years agoCreate unittests for case changes of cnfvar varnames
Christian Herdtweck [Thu, 7 Feb 2019 11:59:17 +0000]
Create unittests for case changes of cnfvar varnames

5 years agonormalize cnfvars for JSON output too
Philipp Gesang [Thu, 7 Feb 2019 13:16:44 +0000]
normalize cnfvars for JSON output too

Reported by Christian: The normalization pass that ensures
varnames are uppercase was missing from the JSON based routines
which caused them to be rejected by set_cnf(). Implement it by
passing a normalized copy of the CNF tree to the json writer.

5 years agoFix debug output line in dial.py
Christian Herdtweck [Thu, 31 Jan 2019 15:06:49 +0000]
Fix debug output line in dial.py

5 years agoConvert cnfvar names to lowercase on json import
Christian Herdtweck [Thu, 31 Jan 2019 13:10:20 +0000]
Convert cnfvar names to lowercase on json import

read_cnf already converts all variable names to lower case. Do the same for
read_cnf_json to get consistent behaviour. SimpleCnf already relies on this.

5 years agoRemove unnecessary creation of reference
Christian Herdtweck [Thu, 31 Jan 2019 13:08:58 +0000]
Remove unnecessary creation of reference

5 years agoCorrect doc in simple_cnf
Christian Herdtweck [Thu, 31 Jan 2019 13:08:22 +0000]
Correct doc in simple_cnf

5 years agoMerge branch 'less-unittest-clutter'
Christian Herdtweck [Tue, 22 Jan 2019 09:59:45 +0000]
Merge branch 'less-unittest-clutter'

5 years agoDisable debug output in log_read
Christian Herdtweck [Wed, 14 Nov 2018 10:34:41 +0000]
Disable debug output in log_read

Fixed based on Plamen's review.

5 years agoCreate 2 pyi2ncommon rpms: for py3.3 and py3.6
Christian Herdtweck [Wed, 5 Dec 2018 15:27:18 +0000]
Create 2 pyi2ncommon rpms: for py3.3 and py3.6

The python version, for which pyi2ncommon is installed on target machine,
is fixed in the rpm. It defaults to same version as build host. Managed
to change that by creating setup.cfg file dynamically while running
setup.py . With help of that script, can now create one version for
autotest (py3.6) and one for I2n systems (py3.3)

5 years agoDo not require fixed python3 version for pyi2ncommon
Christian Herdtweck [Wed, 5 Dec 2018 15:22:41 +0000]
Do not require fixed python3 version for pyi2ncommon

5 years agoReduce output from simple_cnf test to warnings
Christian Herdtweck [Wed, 14 Nov 2018 10:33:26 +0000]
Reduce output from simple_cnf test to warnings

5 years agoReplace deprecated logging function with equivalent
Christian Herdtweck [Wed, 14 Nov 2018 09:53:10 +0000]
Replace deprecated logging function with equivalent

5 years agoReplace deprecated unittest function with equivalent
Christian Herdtweck [Wed, 14 Nov 2018 09:53:02 +0000]
Replace deprecated unittest function with equivalent

5 years agoEnsure all opened files/sockets are closed in mail_utils
Christian Herdtweck [Wed, 14 Nov 2018 08:53:08 +0000]
Ensure all opened files/sockets are closed in mail_utils

5 years agobump minor version to keep track of changes
Philipp Gesang [Thu, 25 Oct 2018 08:47:42 +0000]
bump minor version to keep track of changes

5 years agoMerge branch 'util-resurrection'
Christian Herdtweck [Mon, 5 Nov 2018 11:22:07 +0000]
Merge branch 'util-resurrection'

5 years agoFix doc strings for text_helpers (except color stuff)
Christian Herdtweck [Mon, 5 Nov 2018 10:30:40 +0000]
Fix doc strings for text_helpers (except color stuff)

Thanks to Plamen for hint in review

5 years agoFix doc string for sysmisc.cd()
Christian Herdtweck [Mon, 5 Nov 2018 10:23:34 +0000]
Fix doc string for sysmisc.cd()

Thanks to Plamen for hint