Commit Graph

164 Commits

Author SHA1 Message Date
nvazquez b73f634ea6
Merge branch '4.19' 2024-08-06 12:39:13 -03:00
nvazquez d541e9014d
Merge branch '4.18' into 4.19 2024-08-06 12:29:18 -03:00
Abhishek Kumar 2e0024e216
server, api: account and api entity access improvements
Fixes domain-admin access check to prevent unauthorized access.
Introduces a new non-dynamic global setting - api.allow.internal.db.ids
to control whether to allow using internal DB IDs as API parameters or
not. Default value for the global setting is false.

Co-authored-by: Fabricio Duarte <fabricio.duarte.jr@gmail.com>
Co-authored-by: nvazquez <nicovazquez90@gmail.com>
Co-authored-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-08-06 12:24:19 -03:00
John Bampton 2919cac643
pre-commit: add `codespell` to check spelling (#8197) 2024-07-12 09:44:14 +02:00
John Bampton 806692bcea
pre-commit: enable Python flake8 rule `E272` (#9361)
There should be only one space before a keyword.
2024-07-10 09:17:25 +02:00
John Bampton c6d3f6e623
pre-commit: enable Python flake8 rule `E271` (#9358) 2024-07-09 10:17:53 +02:00
John Bampton a1d8bab43f
Bump actions/cache to `v4` (#9353)
https://github.com/actions/cache
2024-07-09 13:47:11 +05:30
John Bampton b69cc0272d
pre-commit: enable Python Flake8 rule `E713` (#9016)
Co-authored-by: Vishesh <vishesh92@gmail.com>
2024-07-08 09:00:18 +02:00
Vishesh f6ceeab3b3
server: Enforce strict host tag check (#9017)
Documentation PR: https://github.com/apache/cloudstack-documentation/pull/398

Currently, an administrator can break host tag compatibility for a VM administrator by certain operations:
* deploy/start VM on a specific host
* migrate VM
* restore VM
* scale VM

This PR allows the user to specify tags which must be checked during these operations.

Global Settings
1. `vm.strict.host.tags` - A comma-separated list of tags for strict host check (Default - empty)
2. `vm.strict.resource.limit.host.tag.check` - Determines whether the resource limits tags are considered strict or not (Default - true)

During the above operations, we now check and throw an error if host tags compatibility is being broken for tags specified in `vm.strict.host.tags`. If `vm.strict.resource.limit.host.tag.check` is set to `true`, tags set in `resource.limit.host.tags` are also checked during these operations.
2024-06-25 14:42:17 +05:30
Abhishek Kumar 3e6900ac1a
api,server: purge expunged resources (#8999)
This PR introduces the functionality of purging removed DB entries for CloudStack entities (currently only for VirtualMachine). There would be three mechanisms for purging removed resources:

    Background task - CloudStack will run a background task which runs at a defined interval. Other parameters for this task can be controlled with new global settings.
    API - New admin-only API purgeExpungedResources. It will allow passing the following parameters - resourcetype, batchsize, startdate, enddate. Currently, API is not supported in the UI.
    Config for service offering. Service offerings can be created with purgeresources parameter which would allow purging resources immediately on expunge.

Following new global settings have been added:

    expunged.resources.purge.enabled: Default: false. Whether to run a background task to purge the expunged resources
    expunged.resources.purge.resources: Default: (empty). A comma-separated list of resource types that will be considered by the background task to purge the expunged resources. Currently only VirtualMachine is supported. An empty "value will result in considering all resource types for purging
    expunged.resources.purge.interval: Default: 86400. Interval (in seconds) for the background task to purge the expunged resources
    expunged.resources.purge.delay: Default: 300. Initial delay (in seconds) to start the background task to purge the expunged resources task.
    expunged.resources.purge.batch.size: Default: 50. Batch size to be used during expunged resources purging.
    expunged.resources.purge.start.time: Default: (empty). Start time to be used by the background task to purge the expunged resources. Use format yyyy-MM-dd or yyyy-MM-dd HH:mm:ss.
    expunged.resources.purge.keep.past.days: Default: 30. The number of days in the past from the execution time of the background task to purge the expunged resources for which the expunged resources must not be purged. To enable purging expunged resource till the execution of the background task, set the value to zero.
    expunged.resource.purge.job.delay: Default: 180. Delay (in seconds) to execute the purging of an expunged resource initiated by the configuration in the offering. Minimum value should be 180 seconds and if a lower value is set then the minimum value will be used.

Documentation PR: apache/cloudstack-documentation#397

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Wei Zhou <weizhou@apache.org>
Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
2024-06-20 11:34:44 +05:30
Abhishek Kumar be552fdce9
feature: webhooks (#8674)
* api,server,ui: weebhoks feature

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* changes

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* registry of message busses

* test bus

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* refactor

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* test

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix and refactor

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* changes for webhook dispatch history

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* changes, initial ui

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* improvements

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* changes for account webhook cleanup

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix remaining event bus usage

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* changes for testing webhook dispatch

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* wip

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix test

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* make element

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* missing

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* buid fix

* fix lint

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* changes for project delete check

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add collapse in create

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* ui fix and refactor for eventditributor publish

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* update org.json and add json validation

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* schema fixes

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* wordings

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* ui: improve progress button

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* ui improvements

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* remove unrelated change

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* search and count

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add payloadurl in info

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* positive progress

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix hmac key

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* create webhook form fixes

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* refactor, address feedback

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* indentation

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix filters

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* remove test eventbus

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* default scope be Local

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add lifecycle smoke test

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add test for webhook deliveries

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* refactor

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix lint

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* refactor - losgs and others

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* unit tests

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix lint

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* build fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* smoke test fix, log refactor

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* get bean from all components

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* ui: missing label

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* address review comments

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add some more tests

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* lint

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* rename setting

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* upgrade: move 4.19.0->4.20.0 to 4.19.1->4.20.0

* fix test delivery layout

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix webhook secret display

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add http to payloadurl when no scheme

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* allow removing secretkey for webhook

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix update sslverification

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* disallow same payload url for same account

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix delivery with url w/o scheme

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* api: listApis should return params based on caller

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* wip changes

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* Update engine/schema/src/main/resources/META-INF/db/schema-41900to42000.sql

* remove unique constraint for now

Constraint is present in Java code validations

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fixes

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* ui: add option to delete multiple deliveries

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* add filter for deliveries, delete api start/endtime support

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* do not throw error when no deliveries removed

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* ui: fix deliveries table column sorting, time filter cancel

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* remove isDebugEnabled wrapping

* merge fix

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

---------

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Daan Hoogland <daan@onecht.net>
Co-authored-by: Wei Zhou <weizhou@apache.org>
2024-06-10 10:40:12 +05:30
John Bampton e159a593f1
Add `markdownlint` with `pre-commit` (#9078)
https://github.com/DavidAnson/markdownlint/tree/main?tab=readme-ov-file#rules--aliases

https://github.com/igorshubovych/markdownlint-cli?tab=readme-ov-file#use-with-pre-commit
2024-05-28 07:40:52 +02:00
Daan Hoogland e61f3bae4d Merge branch '4.19' 2024-04-29 11:37:40 +02:00
Vishesh 08132acaa2
Fix restore VM with allocated root disk (#8977)
* Fix restore VM with allocated root disk

* Add e2e test for restore vm

* Add more checks for e2e test
2024-04-29 12:19:05 +05:30
Rohit Yadav 836ef9ec70 Merge remote-tracking branch 'origin/4.19'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

 Conflicts:
	systemvm/debian/opt/cloud/bin/cs/CsHelper.py
2024-04-25 09:55:09 +05:30
Rohit Yadav 4c27574570 .github: fix codecov action configuration
`token` is documented to work with codecov-action@v4

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-04-25 09:46:37 +05:30
Rohit Yadav 5745674da5 Merge remote-tracking branch 'origin/4.18' into 4.19 2024-04-25 09:45:08 +05:30
Rohit Yadav 77df9ad4d7 codecov: fix Github action workflow
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-04-25 09:43:50 +05:30
Daan Hoogland 65eef59e0b Merge release branch 4.19 to main
* 4.19:
  UI: ignore error when list public ips for CKS clusters on Shared network (#8489)
  Infra25725 add codecov token to workflow (#8960)
2024-04-23 15:49:53 +02:00
dahn 0de469ab73
Infra25725 add codecov token to workflow (#8960) 2024-04-23 13:28:09 +02:00
Abhishek Kumar b29ec2bf12 Merge remote-tracking branch 'apache/4.19' 2024-03-01 17:40:58 +05:30
Abhishek Kumar 9fd410be36 Merge remote-tracking branch 'apache/4.18' into 4.19 2024-03-01 17:34:27 +05:30
Vishesh bbe56ae283
Update actions/setup-java from v3 to v4 (#8709) 2024-02-27 11:46:20 +05:30
Abhishek Kumar 592038a304
api,server,ui: granular resource limit management (#8362)
Feature spec: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Granular+Resource+Limit+Management

Introduces the concept of tagged resource limits for granular resource limit management. Limits can be enforced on accounts and domains for the deployment of entities for a tagged resource. Current tagged resource limits can be used for the following resource types,

Host limits
- user_vm
- cpu
- memory

Storage limits
- volume
- primary_storage

Following global settings can used to specify tags for which limit needs to be enforced,

Host: `resource.limit.host.tags`
Storage: `resource.limit.storage.tags`

Option for specifying tagged resource limits and viewing tagged resource usage are made available in the UI.

Enhances the use of templatetag for VM deployment and template creation

Adds option to list service/compute offerings that can be used with a given template. A new parameter named templateid has been added.

Adds option to list disk offering with suitability flag for a virtual machine. A new parameter named virtualmachineid has been added to the listDiskOfferings API which when passed returns suitableforvirtualmachine param in the response.
2024-02-19 14:17:34 +05:30
Rohit Yadav affead1160 Merge remote-tracking branch 'origin/4.19' 2024-02-07 14:19:58 +05:30
Vishesh df412a99d2
test: Add e2e tests for listing resources (#8410)
* Use dualzones for ci github actions

* Update advdualzone.cfg to be similar to advanced.cfg & fixup test_metrics_api.py

* Fixup e2e tests for running with multiple zones

* Add e2e tests for listing of accounts, disk_offerings, domains, hosts, service_offerings, storage_pools, volumes

* Fixup

* another fixup

* Add test for listing volumes with tags filter

* Add check for existing volumes in test_list_volumes

* Wait for volumes to be deleted on cleanup

* Filter out volumes in Destroy state before checking the count of volumes
2024-02-07 08:25:55 +01:00
John Bampton 48410d0d67
Bump `actions/setup-python` to `v5` (#8419) 2024-02-05 14:28:55 +05:30
Abhishek Kumar ab808995ff
Revert "Add e2e tests for listing resources (#8281)" (#8396)
This reverts commit 1411da1a22.
2023-12-21 20:56:40 +05:30
Vishesh 1411da1a22
Add e2e tests for listing resources (#8281)
This PR adds e2e tests for listing resources
2023-12-20 11:54:39 +05:30
kishankavala 5651eab49c
ObjectStore Framework with MinIO and Simulator plugins (#7752)
This PR adds Object Storage feature to CloudStack.

FS: https://cwiki.apache.org/confluence/display/CLOUDSTACK/%5BDRAFT%5D+CloudStack+Object+Store
2023-12-01 17:51:00 +05:30
Bryan Lima cb62ce6767
Global ACL for VPCs (#7150) 2023-11-30 14:51:43 +01:00
StepSecurity Bot f0b757e91e
[StepSecurity] ci: Harden GitHub Actions (#8209)
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
2023-11-27 12:07:19 +05:30
John Bampton a7c6599ae2
Bump the `actions/checkout` action to `v4` (#8133)
https://github.com/actions/checkout
2023-11-03 18:10:49 +05:30
Vishesh ea90848429
Feature: Add support for DRS in a Cluster (#7723)
This pull request (PR) implements a Distributed Resource Scheduler (DRS) for a CloudStack cluster. The primary objective of this feature is to enable automatic resource optimization and workload balancing within the cluster by live migrating the VMs as per configuration.
Administrators can also execute DRS manually for a cluster, using the UI or the API.
Adds support for two algorithms - condensed & balanced. Algorithms are pluggable allowing ACS Administrators to have customized control over scheduling.

Implementation
There are three top level components:

    Scheduler
    A timer task which:

    Generate DRS plan for clusters
    Process DRS plan
    Remove old DRS plan records

    DRS Execution
    We go through each VM in the cluster and use the specified algorithm to check if DRS is required and to calculate cost, benefit & improvement of migrating that VM to another host in the cluster. On the basis of cost, benefit & improvement, the best migration is selected for the current iteration and the VM is migrated. The maximum number of iterations (live migrations) possible on the cluster is defined by drs.iterations which is defined as a percentage (as a value between 0 and 1) of total number of workloads.

    Algorithm
    Every algorithms implements two methods:
        needsDrs - to check if drs is required for cluster
        getMetrics - to calculate cost, benefit & improvement of a migrating a VM to another host.

Algorithms

    Condensed - Packs all the VMs on minimum number of hosts in the cluster.
    Balanced - Distributes the VMs evenly across hosts in the cluster.
    Algorithms use drs.level to decide the amount of imbalance to allow in the cluster.

APIs Added

listClusterDrsPlan

    id - ID of the DRS plan to list
    clusterid - to list plans for a cluster id

generateClusterDrsPlan

    id - cluster id
    iterations - The maximum number of iterations in a DRS job defined as a percentage (as a value between 0 and 1) of total number of workloads. Defaults to value of cluster's drs.iterations setting.

executeClusterDrsPlan

    id - ID of the cluster for which DRS plan is to be executed.
    migrateto - This parameter specifies the mapping between a vm and a host to migrate that VM. Format of this parameter: migrateto[vm-index].vm=<uuid>&migrateto[vm-index].host=<uuid>.

Config Keys Added

    ClusterDrsPlanExpireInterval
    Key drs.plan.expire.interval
    Scope Global
    Default Value 30 days
    Description The interval in days after which old DRS records will be cleaned up.

    ClusterDrsEnabled
    Key drs.automatic.enable
    Scope Cluster
    Default Value false
    Description Enable/disable automatic DRS on a cluster.

    ClusterDrsInterval
    Key drs.automatic.interval
    Scope Cluster
    Default Value 60 minutes
    Description The interval in minutes after which a periodic background thread will schedule DRS for a cluster.

    ClusterDrsIterations
    Key drs.max.migrations
    Scope Cluster
    Default Value 50
    Description Maximum number of live migrations in a DRS execution.

    ClusterDrsAlgorithm
    Key drs.algorithm
    Scope Cluster
    Default Value condensed
    Description DRS algorithm to execute on the cluster. This PR implements two algorithms - balanced & condensed.

    ClusterDrsLevel
    Key drs.imbalance
    Scope Cluster
    Default Value 0.5
    Description Percentage (as a value between 0.0 and 1.0) of imbalance allowed in the cluster. 1.0 means no imbalance
    is allowed and 0.0 means imbalance is allowed.

    ClusterDrsMetric
    Key drs.imbalance.metric
    Scope Cluster
    Default Value memory
    Description The cluster imbalance metric to use when checking the drs.imbalance.threshold. Possible values are memory and cpu.
2023-10-26 11:48:18 +05:30
Abhishek Kumar b4c7705d4b Merge remote-tracking branch 'apache/4.18' into main 2023-10-10 17:30:37 +05:30
Wei Zhou 864a195868
.github: run Sonar Check only on PRs from apache/cloudstack branches (#8058)
This PR fixes #8050
2023-10-10 17:28:58 +05:30
John Bampton e0ab2a4bd4
Enable four more `flake8` rules (#7811) 2023-10-10 08:32:55 +02:00
Vishesh 3ec3007635
Generate coverage for Simulator based integration tests & ui tests in github actions (#7784)
* Generate coverage for Simulator based integration tests

* Add flag for unit tests

* Add coverage for uitests
2023-09-11 14:14:12 +05:30
John Bampton b0ae701ca4
Remove Super-Linter action and move `flake8` to pre-commit (#7861) 2023-08-17 09:37:10 +02:00
Vishesh b5eebc4347
Fix codecov github action (#7747) 2023-07-18 13:27:01 +03:00
Vishesh c956d329f5
Fix test_vm_schedule's intermittent failures (#7726)
* Fix test_vm_schedule's intermittent failures

* Add smoke/test_vm_schedule to CI
2023-07-07 22:51:38 +05:30
dahn ae10263b3b
Possibility to choose the source NAT IP address on a isolated network or VPC (#6442)
Co-authored-by: NuxRo <nux@li.nux.ro>
Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com>
2023-06-09 14:51:53 +02:00
Abhishek Kumar c00a1ba532 Merge remote-tracking branch 'apache/4.18' into main 2023-06-08 15:34:46 +05:30
Vishesh 811b6293af
.github: Use parallel builds for github actions (#7592) 2023-06-07 13:17:29 +02:00
John Bampton 8d6241fb1b
Enable two more `flake8` rules (#7552) 2023-05-31 10:49:53 +02:00
Rohit Yadav 2f309b573b Merge remote-tracking branch 'origin/4.18' 2023-05-12 12:58:49 +05:30
Abhishek Kumar 44024a8a8b
github-actions: fix ui build workflow (#7522)
package-lock.json is not removed.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2023-05-12 12:54:23 +05:30
Rohit Yadav 0af56179a5 Merge remote-tracking branch 'origin/4.18' 2023-05-10 14:08:14 +05:30
Rohit Yadav 0e4a5a1fa4 .github: restrict sonar and CI actions to only apache/cloudstack
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2023-05-10 14:07:29 +05:30
Daan Hoogland 45928d2d9f vim-oops 2023-05-09 20:15:03 +02:00
Daan Hoogland 66cbe0a051 replace pull_request_target with pull_request 2023-05-09 18:40:20 +02:00
Daan Hoogland 216c565308 replace pull_request_target with pull_request 2023-05-09 18:39:10 +02:00
Daan Hoogland 35862d4532 no write for external forks 2023-05-09 17:35:12 +02:00
Alex 80c999cc81
GitHub Workflows security hardening (#6762)
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2023-04-25 16:35:39 +02:00
Daan Hoogland da58a20cc2 repair vi typo 2023-02-27 09:37:32 +01:00
Daan Hoogland 2fc443e909 bash evaluation within quotes 2023-02-26 21:51:56 +01:00
Daan Hoogland 3ee32244d8 bash evaluation as opposed to gha. 2023-02-26 19:32:46 +01:00
Wei Zhou 0457cc559e .github: allow only read permission in sonar-check.yml 2023-02-23 13:47:48 +01:00
Wei Zhou bc5dbe95e9
.github: use tag name as docker image name for new tags (#7233) 2023-02-20 12:42:57 +01:00
Wei Zhou ea18b86684
.github: disable Sonar check on forks as it requires crendential (#7199) 2023-02-13 11:58:05 +01:00
John Bampton dcf01f7bef
.github: Skip Coverage Check when forks are updated (#7177) 2023-02-13 09:48:31 +01:00
Harikrishna a3feccf70c
User two factor authentication (#6924)
Co-authored-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2023-02-13 09:14:17 +01:00
Wei Zhou e32016d4a1
.github: set docker repository to apache (#7176)
Now the images are pushed to
https://hub.docker.com/r/asfjenkins/cloudstack-simulator/tags
2023-02-07 13:46:22 +01:00
Wei Zhou b93608eada
Github Action: Build docker image for cloudstack-simulator (#7122) 2023-02-07 10:37:44 +01:00
dahn 6f6cec5f56
.github: run all gha on ubuntu latest (#7091)
* run all gha on ubuntu latest

* replace latest with 22.04
2023-01-18 10:35:56 +05:30
John Bampton c0a32d00b7
Use Super-Linter Slim Image (#6610)
Co-authored-by: dahn <daan@onecht.net>
2023-01-12 13:41:28 +01:00
John Bampton 00426ede46
Add `pre-commit` workflow with 3 Git hooks (#6273)
Co-authored-by: dahn <daan@onecht.net>
2023-01-11 12:25:31 +01:00
Rohit Yadav c2b75f4c81 README: revert project logo and update README
Happy New Year - this reverts project logo and updates README and the
names of Github Actions badges used on README.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2023-01-05 17:59:08 +05:30
Rohit Yadav 9a18ea28dd .github: use ubuntu:22.04 for Sonar jacoco coverage checks
Apologies to commit this to main directly, this is because the
pull_request_target requires that Github Actions yaml changes are on the
source repo main branch.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-12-30 15:00:17 +05:30
Wei Zhou dc40ea130f
UI: fix ui test errors (#7030) 2022-12-29 09:08:54 +01:00
John Bampton bf5cacb3bb
gha(linters): enable 7 more Python `flake8` checks (#7005) 2022-12-21 16:53:35 +01:00
Rohit Yadav 2dc9f1e32c
.github: Migrate Travis to Github Actions and Simulator based CI (#6956)
Runs on default spec:
2-core CPU (x86_64)
7 GB of RAM
14 GB of SSD space

https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-12-21 16:36:52 +05:30
John Bampton 8e538028b2
Enable Flake8 rule W391 (#6606)
Best practice is to have one blank line at the end of Python files.

Remove unneeded blank lines from the end of files
2022-11-13 11:00:07 +01:00
Step Security Bot de8aae1619
[StepSecurity] ci: Harden GitHub Actions in merge-conflict-checker.yml (#6802) 2022-10-08 11:40:43 +05:30
Rohit Yadav 4d41b6bc44 Merge remote-tracking branch 'origin/4.17' 2022-08-09 12:33:39 +02:00
Rohit Yadav 2d0a2e388d .github: add codecov coverage check
It seems codecov can overcome the pull_request_target limitation/issue
compared to sonarcloud coverage. We've some other Apache projects who
use `codecov` now and this ticket to add support with infra:
https://issues.apache.org/jira/browse/INFRA-23561

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-08-09 12:29:19 +02:00
John Bampton a039250b3b
.github: Lint modified files only with Super-Linter (#6531)
https://github.com/github/super-linter#standard-image
2022-07-07 11:57:29 +05:30
Rohit Yadav 711d4b9f0f Merge remote-tracking branch 'origin/4.17' 2022-07-01 11:26:10 +05:30
Rohit Yadav 85df82c2a9 Revert ".github: try using just sonarcloud job on pull_request target only"
This reverts commit aad73322af.
2022-07-01 11:25:27 +05:30
neilnaveen 15ab481928
chore: Set permissions for GitHub actions (#6467)
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>
2022-07-01 11:24:04 +05:30
Rohit Yadav 5fe095ee0a Merge remote-tracking branch 'origin/4.17' 2022-06-30 15:28:55 +05:30
Rohit Yadav aad73322af .github: try using just sonarcloud job on pull_request target only
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-06-30 15:27:20 +05:30
John Bampton 7ba43e447c
Enable flake8 rule W292 No newline at end of file (#6274)
https://www.flake8rules.com/rules/W292.html
2022-06-30 12:08:27 +05:30
Rohit Yadav 470de7fb54 .github: run coverage for pushes to main branch
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-05-04 02:23:47 +05:30
Rohit Yadav 17afe0510e .github: add support for PR decoration
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-05-04 01:02:38 +05:30
Rohit Yadav 2326b5e22a maven: update sonarcloud project
https://sonarcloud.io/project/configuration?id=apache_cloudstack

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-05-03 18:55:20 +05:30
Rohit Yadav c379430dab .github: sonarcloud integration fixes
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-27 18:15:27 +05:30
Rohit Yadav a2abd7fdc2 .github: fix typo in passing merge branch name
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-26 16:40:09 +05:30
Rohit Yadav 05e4f9515e .github: fix sonarcloud integration
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-26 16:35:07 +05:30
Rohit Yadav 9f27c992da .github: skip coverage data when string is empty
This fixes issue of empty rows in the PR coverage data

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-26 15:06:06 +05:30
Rohit Yadav 7233c38567 .github: enable PR sonar integration
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-26 14:43:23 +05:30
Rohit Yadav 40193a04eb .github: fix coverage issue, don't kick pkging automatically
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-20 16:37:32 +05:30
Rohit Yadav 15928f8cc8 .github: detect and kick packaging jobs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 17:04:44 +05:30
Rohit Yadav cc139464f3 .github: use event specific sha and base_sha for comparing changes
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 15:31:20 +05:30
Rohit Yadav 1b2461b200 .github: debug github event using env variable
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 15:24:48 +05:30
Rohit Yadav b2086595ca .github: debug github event
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 15:19:13 +05:30
Rohit Yadav 976464ccb9 .github: enable fork-point while finding list of changes files
Hit same issue as https://github.com/tj-actions/changed-files/issues/355

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 14:46:32 +05:30
Rohit Yadav 023305e86d .github: fetch all history for comparing PR changes
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 14:37:11 +05:30
Rohit Yadav dcb9143330 .github: use pull_request_target which has access to token
This tries to add support for forked repo pull requests, to be able
to run quality checks on it and send comments on the PR. Hopefully,
this solves the issues faced recently.

Due to the way pull_request_target works, I can't send this as a PR
so committing directly to `main` and then sending a dummy PR from a fork
to test if it works as documented by github and elsewhere.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-18 14:28:05 +05:30
Rohit Yadav 2dcdc56115
.github: run coverage on pull request (#6265)
The pull_request_target doesn't seem to work for PRs from forks,
this reverts to use and kick the workflow for pull_request instead.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2022-04-15 20:35:22 +05:30