summaryrefslogtreecommitdiff
path: root/tools/trove-pylint.config
Commit message (Collapse)AuthorAgeFilesLines
* Set status to ERROR if heartbeat expiresLingxian Kong2020-06-041-0/+12
| | | | Change-Id: Ib8f5062094c0ec7766d4c6c6e7c3c8168e15ebd6
* Datastore containerizationLingxian Kong2020-05-271-0/+6
| | | | | | | | | | | | | Significant changes: * Using docker image to install datastore. * Datastore image is common to different datastores. * Using backup docker image to do backup and restore. * Support MariaDB replication * Set most of the functional jobs as non-voting as nested virtualization is not supported in CI. Change-Id: Ia9c97a63a961eebc336b70d28dc77638144c1834
* Added checks for deleting datastore version13.0.0.0rc113.0.0Lingxian Kong2020-04-231-0/+24
| | | | | | | | | | * Hard delete the datastore_configuration_parameters table record. * Make 'datastore_version_id' nullable for 'instances' table. * Check if the datastore version is still being used before removal. Story: 2007563 Task: 39451 Change-Id: I84e4a31f14f9327cc01ff2d699167d91112e1565
* Use dedicated service credential configLingxian Kong2019-10-101-2/+2
| | | | | | The current admin credential config options are confusing Change-Id: I92c15c065edf364b955f2243b3599e0b8cae8b4f
* update pylint to 1.9.2Doug Hellmann2018-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | The older version of pylint being used does not work correctly under python 3. In order to be able to update the pylint job to run under python 3, we need to update the tool. This patch updates to the latest version at this time. It also updates and pins astroid, which was previously capped. Using a pin instead of a cap should let us avoid issues with new releases while being specific about which version to actually use. Disable not-callable because that appears to be a new rule that is confused by the use of properties to access things that are set to callables. Co-Authored-By: Fan Zhang <zh.f@outlook.com> Co-Authored-By: Marcin Piwowarczyk <m.piwowarczy@samsung.com> Change-Id: I65705804b222dcd30a653fe10be3d823fa6143ff Signed-off-by: Doug Hellmann <doug@doughellmann.com>
* Use RootHistory to check if root is ever enabledZhao Chao2018-02-281-12/+0
| | | | | | | | | | | | | | | | | | | | | | | When disabling root, there is no need to call guestagent to check whether the root user is ever enabled. Root hisotry table should be used for this purpose. As datastore specific root controller of MySQL/Cassandra/PostgreSQL were created only for the '_find_root_user' which were calling guestagent to find root user, these controllers are removed and 'DefaultRootController' is used instead. RedisRootController is also updated as it didn't do this check previously. Unittests directory structure is also slightly changed. It's more clear to use similar directory hierarchies for testing and source code, e.g. trove/extensions/common/service.py trove/tests/unitests/extensions/common/test_service.py Change-Id: I9faac61d9650347b51f23e8fcaf5a92aed5fbf93 Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
* Move Pylint ignoreSamuel Matzek2017-10-131-0/+6
| | | | | | Moev Pylint ignore from code to config. Change-Id: I95ef8d7a320b633fbfd04f407a6143c8fa9c3f92
* Handle readfp deprecationjiansong2017-03-021-1/+7
| | | | | | | | | | | | | | | | In py3.4 notice method readfp will removed in the future,so use method readfile to replace it.This warning is only in py3 and above.Py2,configparse do not have.Actually in py3,This function is finally pointed to the readfile function warnings.warn( "This method will be removed in future versions. " "Use 'parser.read_file()' instead.", DeprecationWarning, stacklevel=2 ) self.read_file(fp, source=filename) Change-Id: I22a2dca71008469a8c8b7afcc0934f3b4adcdae4
* Fix module-instances commandPeter Stachowski2017-02-271-0/+144
| | | | | | | | | | | | | | | | Fixed the module-instances command to return a paginated list of instances. Also added a --count_only flag to the command to return a summary of the applied instances based on the MD5 of the module (this is most useful for live_update modules, to see which ones haven't been updated). Also cleaned up the code a bit, putting some methods into files where they made more sense (and would cause less potential collisions during import). Change-Id: I963e0f03875a1b93e2e1214bcb6580c507fa45fe Closes-Bug: #1554900
* Merge "Add configuration support for clusters"Jenkins2017-02-051-26/+14
|\
| * Add configuration support for clustersPetr Malik2017-01-191-26/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement configuration attach and detach API for clusters. Implement rolling strategy for applying configuration changes (both attach and detach follow the same pattern). 1. Persist the changes on all nodes (leaving nodes in RESTART_REQUIRED state). 2. Update Trove records. 3. Apply changes dynamically via one or all node(s) if possible (and remove RESTART_REQUIRED flag from all nodes). Notes: The single instance implementation has been restructured (similar to above) such that it always leaves the instance in one of the three states: a) Unchanged b) Changes persisted but not applied (Instance has configuration attached but requires restart. It is safe restart manually or detach the group to avoid any changes) c) Changes persisted and applied (if possible) This implemenation should always leave the cluster (and each instance) in a consistent state. Runtime configuration will not be changed until it is first persisted on all nodes. If there is a failure during step 1) the cluster is still running the old configuration. Some instances may have new configuration persisted, but not applied. The cluster will not have configuration attached unless it can be applied to all nodes. The individual nodes will have configuration attached as soon as it is persisted on the guest. It is safe to retry, reapplying the same configuration on a node is noop. It is safe to detach. Removing configuration from nodes without one is a noop. It is safe to detach the configuration from individual nodes via single-instance API. It is safe to attach the configuration to remaining nodes via single-instance API and rerun cluster attach to update Trove records. If 3) fails for whatewer reason the instances are left in RESTART_REQUIRED state. It is safe to retry or detach configuration or restart the instances manually. Also fixed various minor cluster issues. Implements: blueprint cluster-configuration-groups Change-Id: I7c0a22c6a0287128d0c37e100589c78173fd9c1a
* | insulate TroveContext from possible changes in oslo.contextAmrith Kumar2017-02-041-0/+12
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier code introduced in[1] aimed to handle the situation where a context object serialized and sent over a message queue as a dictionary is received by a version of code that doesn't necessarily understand that context object. That code relied on the fact that vars(TroveContext).keys() was a dictionary that matched the full set of parameters that you can send to the initializers for TroveContext() and RequestContext(). Recent changes in oslo.context [2] and [3] broke that assumption. vars() on TroveContext provided a dictionary with the internal representation(s) that are not the same as the kwargs in RequestContext() and the params that TroveContext used to pop. To get around this, new code introduced here uses oslo_utils.reflection to determine all the possible kwargs that can be sent to TroveContext, some of which are consumed by TroveContext and the rest of which are sent along to RequestContext(). The construct in the earlier _remove_incompatible_context_args() also modified kwargs.keys() by pop'ing values from it while iterating over this. Python 3 takes a dim view of this and therefore some changes have been made to accomodate this. A unittest has been added to ensure that the from_dict() method properly dumps stuff it doesn't know about. The test explicitly verifies the warning generated when a bogus argument is eliminated. [1] 24c5e8e244380e3e7e309f0b4aaffde32dbf0789 [2] 2394cff0631944a9259bfe04925e444d9f817758 [3] f25543fcc792ebf155728a91fde06e8dc4e96cea Change-Id: I477dd29e034295e770925091c4ac6268c22ae59b Related-Bug:#1661790
* secure oslo_messaging.rpcAmrith Kumar2017-01-111-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an interim commit of the changes for secure oslo-messaging.rpc. In this commit we introduce the code for serializers that will encrypt all traffic being sent on oslo_messaging.rpc. Each guest communicates with the control plane with traffic encrypted using a per-instance key. This includes both traffic from the taskmanager to the guest as well as the guest and the conductor. Per-instance keys are stored in the infrastructure database. These keys are further encrypted in the database. Tests that got annoyed have been placated. Upgrade related changes have been proposed. If an instance has no key, no encryption is performed. If the guest gets no key, it won't encrypt, just pass through. When an instance is upgraded, keys are added. The output of the trove show command (and the show API) have been augmented to show which instances are using secure RPC communication ** if the requestor is an administrator **. A simple caching mechanism for encryption keys has been proposed; this will avoid the frequent database access to get the encryption keys. For Ocata, to handle the upgrade case, None as an encryption_key is a valid one, and is therefore not cached. This is why we can't use something like lrucache. A brief writeup has been included in dev docs (dev/secure_oslo_messaging.rst) which shows how the feature can be used and would help the documentation team write up the documentation for this capability. Change-Id: Iad03f190c99039fd34cbfb0e6aade23de8654b28 DocImpact: see dev/secure_oslo_messaging.rst Blueprint: secure-oslo-messaging-messages Related: If0146f08b3c5ad49a277963fcc685f5192d92edb Related: I04cb76793cbb8b7e404841e9bb864fda93d06504
* Add support for module ordering on applyPeter Stachowski2016-12-261-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A method for specifying 'priority' modules plus a way to rank the order in which modules are applied has been added. Two new attributes 'priority_apply' and 'apply_order' are available in the payload on create and update. In addition, an is_admin flag was added as an automatic attribute, to be set when someone with admin credentials creates a module or updates an existing module with 'admin-only' options. This allows better control on the driver plugin side with regards to security concerns, etc. The attribute is now passed in to the guest 'apply' interface for use by the driver. All three of these attributes are stored in the Trove database. An admin can create a 'non-admin' module by passing in --full_access on the command line (or python interface). This will cause an error if any admin-only options are selected. Scenario tests have been added to verify that the modules are applied in the correct order. The timestamp for the 'updated' field on the guest was also enhanced to allow for fractional seconds, since most applies take less than a second. The issue where modules were allowed to be applied even if they belonged to a different datastore has been fixed and scenario tests added to check for this case. Change-Id: I7fcd0cf12790564ba62e7d6451fff96f763e539d Implements: blueprint module-management-ordering
* Multi-Region SupportMorgan Jones2016-11-041-0/+24
| | | | | | | | | | This is an initial attempt at supporting multiple regions. It should handle the mechanics of deploying an instance/volume to a remote region. Additional changes may be required to allow the guest agent on the instance to connect back to the originating region. Co-Authored-By: Petr Malik <pmalik@tesora.com> Change-Id: I780de59dae5f90955139ab8393cf7d59ff3a21f6
* Merge "Remove downgrade"Jenkins2016-11-011-181/+1
|\
| * Remove downgradeTrevor McCasland2016-10-061-181/+1
| | | | | | | | | | | | | | | | | | | | | | | | Removed downgrade from all existing migrations. Modified a test that verifies that no migrations have a downgrade. Modified test _walk_versions to only do upgrades. Removed exceptions from pylint.config Related cross-project spec: https://review.openstack.org/152337 Closes-Bug: #1434103 Change-Id: I9a7c87ae3f4e2eff3a4a6df881d086d52062dbba
* | Merge Postgresql service modulesPetr Malik2016-09-281-120/+0
|/ | | | | | | | | | | | | | | | Postgresql has been implemented differently from all other guest agents. This has been causing difficulties with maintenance and future development of Trove design. It has been decided (Newton midcycle) to bring the guest agent in line with others. This patch set merges all Postgres service modules into App/Admin classes. This also resolves 20 pylint issues related to mixin usage. Change-Id: I1b12a5296c59e9d3b08bcf34ac196d16189d525e
* improve pylint; generate errors and config in sorted orderAmrith Kumar2016-09-191-1665/+927
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the config is not in a deterministic order makes it hard to compare two config's and see what changed. Personally, I'm not positive I understand this use-case; i.e. you have an existing config file, you save it, and then rebuild and then diff the two files. I'd have thought you'd just run check and the output of the tool was the diff. I however do see the value in sorting the file so that when someone submits a change that includes a change to the config, reviewers can see more easily what the change is doing. Similarly, the output from pylint (errors) are generated one file at a time and os.walk makes no guarantee of deterministic order. So we should collect all errors (across all files) and then print an ordered list for human consumption. The intent is also to make pylint voting soon (in master). the changes to contributing.rst and tox.ini are to make that easier. The config file has also been sorted in place. This change was motivated by an email exchange with Peter so I am marking him as a co-conspirator. The line numbers were removed from the tools/trove-pylint.config file as these would change whenever the line numbers in the file changed (since they are currently not being used in the comparison; they can be re-added if deemed necessary at the cost of having every 'rebuild' run create a different file). The tools/trove-pylint.config was regenerated as well, since the remaining two errors seem to be innocuous: ERROR: trove/taskmanager/manager.py 392: E1101 no-member, Manager.upgrade: Instance of 'BuiltInstance' has no 'upgrade' member (new method introduced by instance upgrade; other BuiltInstance member errors are already ignored.) and ERROR: trove/guestagent/datastore/experimental/postgresql/service/ access.py 80: E1101 no-member, PgSqlAccess.list_access: Instance ofi 'PgSqlAccess' has no '_find_user' member (this is due to the fact that PostgreSQL is spread over multiple files and pylint should cease to complain once https://review.openstack.org/#/c/346082/ lands.) Change-Id: I910c738d3845b7749e57910f76523150ec5a5bff Closes-Bug: #1625158 Closes-Bug: #1625245 Co-Authored-By: Peter Stachowski <peter@tesora.com>
* initial chkin of pylintAmrith Kumar2016-09-141-0/+2504
this is a pylint wrapper for Trove's tox tests. This commit includes a basic infrastructure for running pylint through tox. It also fixes some very obvious import errors that are flagged by the tool. One is to handle missing imports for _ and _LE. There is one instance where an exception is being raised but trove.common.exception isn't imported, and another where an exception is being incorrectly thrown. A short readme is also provided. Change-Id: I0a38f5efde3cb491f1f6c27f6c6500ab29987968 Partial-Bug: #1621636