fog-proxmox 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +4 -0
  3. data/.codeclimate.yml +14 -0
  4. data/.github/CODE_OF_CONDUCT.md +74 -0
  5. data/.github/CONTRIBUTING.md +20 -0
  6. data/.github/CONTRIBUTORS.md +9 -0
  7. data/.github/FUNDING.yml +12 -0
  8. data/.github/ISSUE_TEMPLATE.md +43 -0
  9. data/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  10. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  11. data/.github/SUPPORT.md +9 -0
  12. data/.github/fogproxmox.png +0 -0
  13. data/.github/workflows/ci.yml +79 -0
  14. data/.gitignore +8 -0
  15. data/.rubocop.yml +13 -0
  16. data/.ruby-gemset +1 -0
  17. data/.solargraph.yml +10 -0
  18. data/.vscode/launch.json +96 -0
  19. data/.vscode/settings.json +45 -0
  20. data/.vscode/tasks.json +27 -0
  21. data/Gemfile +23 -0
  22. data/LICENSE +674 -0
  23. data/README.md +79 -0
  24. data/Rakefile +58 -0
  25. data/docs/compute.md +858 -0
  26. data/docs/connection_parameters.md +45 -0
  27. data/docs/getting_started.md +53 -0
  28. data/docs/identity.md +357 -0
  29. data/examples/compute.rb +276 -0
  30. data/examples/identity.rb +190 -0
  31. data/fog-proxmox.gemspec +63 -0
  32. data/lib/fog/compute/proxmox.rb +126 -0
  33. data/lib/fog/compute/proxmox/models/disk.rb +76 -0
  34. data/lib/fog/compute/proxmox/models/disks.rb +51 -0
  35. data/lib/fog/compute/proxmox/models/interface.rb +52 -0
  36. data/lib/fog/compute/proxmox/models/interfaces.rb +44 -0
  37. data/lib/fog/compute/proxmox/models/node.rb +95 -0
  38. data/lib/fog/compute/proxmox/models/nodes.rb +39 -0
  39. data/lib/fog/compute/proxmox/models/server.rb +254 -0
  40. data/lib/fog/compute/proxmox/models/server_config.rb +148 -0
  41. data/lib/fog/compute/proxmox/models/servers.rb +80 -0
  42. data/lib/fog/compute/proxmox/models/snapshot.rb +83 -0
  43. data/lib/fog/compute/proxmox/models/snapshots.rb +47 -0
  44. data/lib/fog/compute/proxmox/models/storage.rb +64 -0
  45. data/lib/fog/compute/proxmox/models/storages.rb +51 -0
  46. data/lib/fog/compute/proxmox/models/task.rb +79 -0
  47. data/lib/fog/compute/proxmox/models/tasks.rb +64 -0
  48. data/lib/fog/compute/proxmox/models/volume.rb +61 -0
  49. data/lib/fog/compute/proxmox/models/volumes.rb +58 -0
  50. data/lib/fog/compute/proxmox/requests/action_server.rb +45 -0
  51. data/lib/fog/compute/proxmox/requests/clone_server.rb +44 -0
  52. data/lib/fog/compute/proxmox/requests/create_backup.rb +42 -0
  53. data/lib/fog/compute/proxmox/requests/create_server.rb +43 -0
  54. data/lib/fog/compute/proxmox/requests/create_snapshot.rb +46 -0
  55. data/lib/fog/compute/proxmox/requests/create_spice.rb +44 -0
  56. data/lib/fog/compute/proxmox/requests/create_term.rb +44 -0
  57. data/lib/fog/compute/proxmox/requests/create_vnc.rb +44 -0
  58. data/lib/fog/compute/proxmox/requests/delete_server.rb +45 -0
  59. data/lib/fog/compute/proxmox/requests/delete_snapshot.rb +47 -0
  60. data/lib/fog/compute/proxmox/requests/delete_volume.rb +40 -0
  61. data/lib/fog/compute/proxmox/requests/get_node_statistics.rb +44 -0
  62. data/lib/fog/compute/proxmox/requests/get_server_config.rb +60 -0
  63. data/lib/fog/compute/proxmox/requests/get_server_status.rb +63 -0
  64. data/lib/fog/compute/proxmox/requests/get_snapshot_config.rb +44 -0
  65. data/lib/fog/compute/proxmox/requests/get_task.rb +41 -0
  66. data/lib/fog/compute/proxmox/requests/get_vnc.rb +44 -0
  67. data/lib/fog/compute/proxmox/requests/get_volume.rb +42 -0
  68. data/lib/fog/compute/proxmox/requests/list_nodes.rb +48 -0
  69. data/lib/fog/compute/proxmox/requests/list_servers.rb +113 -0
  70. data/lib/fog/compute/proxmox/requests/list_snapshots.rb +66 -0
  71. data/lib/fog/compute/proxmox/requests/list_storages.rb +46 -0
  72. data/lib/fog/compute/proxmox/requests/list_tasks.rb +44 -0
  73. data/lib/fog/compute/proxmox/requests/list_volumes.rb +44 -0
  74. data/lib/fog/compute/proxmox/requests/log_task.rb +44 -0
  75. data/lib/fog/compute/proxmox/requests/migrate_server.rb +44 -0
  76. data/lib/fog/compute/proxmox/requests/move_disk.rb +43 -0
  77. data/lib/fog/compute/proxmox/requests/move_volume.rb +43 -0
  78. data/lib/fog/compute/proxmox/requests/next_vmid.rb +42 -0
  79. data/lib/fog/compute/proxmox/requests/resize_container.rb +43 -0
  80. data/lib/fog/compute/proxmox/requests/resize_server.rb +43 -0
  81. data/lib/fog/compute/proxmox/requests/rollback_snapshot.rb +48 -0
  82. data/lib/fog/compute/proxmox/requests/status_task.rb +41 -0
  83. data/lib/fog/compute/proxmox/requests/stop_task.rb +41 -0
  84. data/lib/fog/compute/proxmox/requests/template_server.rb +44 -0
  85. data/lib/fog/compute/proxmox/requests/update_server.rb +44 -0
  86. data/lib/fog/compute/proxmox/requests/update_snapshot.rb +45 -0
  87. data/lib/fog/identity/proxmox.rb +130 -0
  88. data/lib/fog/identity/proxmox/models/domain.rb +65 -0
  89. data/lib/fog/identity/proxmox/models/domain_type.rb +48 -0
  90. data/lib/fog/identity/proxmox/models/domains.rb +45 -0
  91. data/lib/fog/identity/proxmox/models/group.rb +47 -0
  92. data/lib/fog/identity/proxmox/models/groups.rb +44 -0
  93. data/lib/fog/identity/proxmox/models/permission.rb +65 -0
  94. data/lib/fog/identity/proxmox/models/permissions.rb +44 -0
  95. data/lib/fog/identity/proxmox/models/pool.rb +89 -0
  96. data/lib/fog/identity/proxmox/models/pools.rb +46 -0
  97. data/lib/fog/identity/proxmox/models/principal.rb +42 -0
  98. data/lib/fog/identity/proxmox/models/role.rb +48 -0
  99. data/lib/fog/identity/proxmox/models/roles.rb +44 -0
  100. data/lib/fog/identity/proxmox/models/user.rb +60 -0
  101. data/lib/fog/identity/proxmox/models/users.rb +44 -0
  102. data/lib/fog/identity/proxmox/requests/change_password.rb +41 -0
  103. data/lib/fog/identity/proxmox/requests/check_permissions.rb +41 -0
  104. data/lib/fog/identity/proxmox/requests/create_domain.rb +40 -0
  105. data/lib/fog/identity/proxmox/requests/create_group.rb +40 -0
  106. data/lib/fog/identity/proxmox/requests/create_pool.rb +40 -0
  107. data/lib/fog/identity/proxmox/requests/create_role.rb +40 -0
  108. data/lib/fog/identity/proxmox/requests/create_user.rb +40 -0
  109. data/lib/fog/identity/proxmox/requests/delete_domain.rb +40 -0
  110. data/lib/fog/identity/proxmox/requests/delete_group.rb +40 -0
  111. data/lib/fog/identity/proxmox/requests/delete_pool.rb +39 -0
  112. data/lib/fog/identity/proxmox/requests/delete_role.rb +40 -0
  113. data/lib/fog/identity/proxmox/requests/delete_user.rb +39 -0
  114. data/lib/fog/identity/proxmox/requests/get_domain.rb +41 -0
  115. data/lib/fog/identity/proxmox/requests/get_group.rb +41 -0
  116. data/lib/fog/identity/proxmox/requests/get_pool.rb +41 -0
  117. data/lib/fog/identity/proxmox/requests/get_role.rb +41 -0
  118. data/lib/fog/identity/proxmox/requests/get_user.rb +40 -0
  119. data/lib/fog/identity/proxmox/requests/list_domains.rb +41 -0
  120. data/lib/fog/identity/proxmox/requests/list_groups.rb +41 -0
  121. data/lib/fog/identity/proxmox/requests/list_permissions.rb +41 -0
  122. data/lib/fog/identity/proxmox/requests/list_pools.rb +41 -0
  123. data/lib/fog/identity/proxmox/requests/list_roles.rb +40 -0
  124. data/lib/fog/identity/proxmox/requests/list_users.rb +42 -0
  125. data/lib/fog/identity/proxmox/requests/read_version.rb +39 -0
  126. data/lib/fog/identity/proxmox/requests/update_domain.rb +41 -0
  127. data/lib/fog/identity/proxmox/requests/update_group.rb +40 -0
  128. data/lib/fog/identity/proxmox/requests/update_permissions.rb +41 -0
  129. data/lib/fog/identity/proxmox/requests/update_pool.rb +41 -0
  130. data/lib/fog/identity/proxmox/requests/update_role.rb +41 -0
  131. data/lib/fog/identity/proxmox/requests/update_user.rb +41 -0
  132. data/lib/fog/network/proxmox.rb +83 -0
  133. data/lib/fog/network/proxmox/models/network.rb +76 -0
  134. data/lib/fog/network/proxmox/models/networks.rb +48 -0
  135. data/lib/fog/network/proxmox/models/node.rb +74 -0
  136. data/lib/fog/network/proxmox/models/nodes.rb +39 -0
  137. data/lib/fog/network/proxmox/requests/create_network.rb +41 -0
  138. data/lib/fog/network/proxmox/requests/delete_network.rb +42 -0
  139. data/lib/fog/network/proxmox/requests/get_network.rb +43 -0
  140. data/lib/fog/network/proxmox/requests/get_node.rb +41 -0
  141. data/lib/fog/network/proxmox/requests/list_networks.rb +43 -0
  142. data/lib/fog/network/proxmox/requests/list_nodes.rb +42 -0
  143. data/lib/fog/network/proxmox/requests/power_node.rb +43 -0
  144. data/lib/fog/network/proxmox/requests/update_network.rb +42 -0
  145. data/lib/fog/proxmox.rb +115 -0
  146. data/lib/fog/proxmox/attributes.rb +33 -0
  147. data/lib/fog/proxmox/core.rb +135 -0
  148. data/lib/fog/proxmox/errors.rb +64 -0
  149. data/lib/fog/proxmox/hash.rb +39 -0
  150. data/lib/fog/proxmox/helpers/controller_helper.rb +64 -0
  151. data/lib/fog/proxmox/helpers/cpu_helper.rb +42 -0
  152. data/lib/fog/proxmox/helpers/disk_helper.rb +159 -0
  153. data/lib/fog/proxmox/helpers/ip_helper.rb +100 -0
  154. data/lib/fog/proxmox/helpers/nic_helper.rb +115 -0
  155. data/lib/fog/proxmox/json.rb +32 -0
  156. data/lib/fog/proxmox/string.rb +31 -0
  157. data/lib/fog/proxmox/variables.rb +40 -0
  158. data/lib/fog/proxmox/version.rb +24 -0
  159. data/lib/fog/storage/proxmox.rb +29 -0
  160. data/spec/compute_spec.rb +446 -0
  161. data/spec/fixtures/proxmox/compute/containers.yml +12737 -0
  162. data/spec/fixtures/proxmox/compute/identity_ticket.yml +40 -0
  163. data/spec/fixtures/proxmox/compute/nodes.yml +121 -0
  164. data/spec/fixtures/proxmox/compute/servers.yml +24679 -0
  165. data/spec/fixtures/proxmox/compute/snapshots.yml +3321 -0
  166. data/spec/fixtures/proxmox/compute/storages.yml +159 -0
  167. data/spec/fixtures/proxmox/compute/tasks.yml +685 -0
  168. data/spec/fixtures/proxmox/identity/auth.yml +44 -0
  169. data/spec/fixtures/proxmox/identity/domains.yml +701 -0
  170. data/spec/fixtures/proxmox/identity/groups.yml +363 -0
  171. data/spec/fixtures/proxmox/identity/identity_ticket.yml +40 -0
  172. data/spec/fixtures/proxmox/identity/permissions.yml +803 -0
  173. data/spec/fixtures/proxmox/identity/pools.yml +1191 -0
  174. data/spec/fixtures/proxmox/identity/read_version.yml +42 -0
  175. data/spec/fixtures/proxmox/identity/renew.yml +40 -0
  176. data/spec/fixtures/proxmox/identity/roles.yml +363 -0
  177. data/spec/fixtures/proxmox/identity/users.yml +763 -0
  178. data/spec/fixtures/proxmox/network/identity_ticket.yml +40 -0
  179. data/spec/fixtures/proxmox/network/networks.yml +372 -0
  180. data/spec/fixtures/proxmox/pve.home +34 -0
  181. data/spec/hash_spec.rb +42 -0
  182. data/spec/helpers/controller_helper_spec.rb +145 -0
  183. data/spec/helpers/cpu_helper_spec.rb +70 -0
  184. data/spec/helpers/disk_helper_spec.rb +210 -0
  185. data/spec/helpers/ip_helper_spec.rb +160 -0
  186. data/spec/helpers/nic_helper_spec.rb +136 -0
  187. data/spec/identity_spec.rb +322 -0
  188. data/spec/network_spec.rb +67 -0
  189. data/spec/proxmox_vcr.rb +95 -0
  190. data/spec/spec_helper.rb +40 -0
  191. metadata +547 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6c14d0c2b9706b9ccf13d70fb4b3f06496d74ab2469c93eed134e9ec1beffb37
4
+ data.tar.gz: d7919eb9e2d9dff9a92f4377ef9bb0b101b5994b8e459b36443bb1881b6a3387
5
+ SHA512:
6
+ metadata.gz: d4fe53a4bd62f5a3664287d9b3a7683379537bddf315a907e8ee80ead4f2c00e76168e9da34c9fb4cdd2a1ad3b31aba4adc465622ca691d7f4db870a5c80755b
7
+ data.tar.gz: 77cc6f9f1da87e845ddc442372fe827c58684aab525acf5f4c97fc2793e6f1ae4050cbbbfb3465f7e1e5b615b89c9ad521c1fdc56d143b37fa1a02086d347ef9
@@ -0,0 +1,4 @@
1
+ ---
2
+ BUNDLE_BIN: "bin"
3
+ BUNDLE_PATH: "vendor/bundle"
4
+ BUNDLE_CACHE_ALL: "true"
@@ -0,0 +1,14 @@
1
+ ---
2
+ version: "2"
3
+ plugins:
4
+ rubocop:
5
+ enabled: true
6
+ reek:
7
+ enabled: true
8
+ exclude_patterns:
9
+ - "tests/"
10
+ - "spec/"
11
+ - "vendor/"
12
+ - "bin/"
13
+ - "coverage/"
14
+ - "examples/"
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team leader. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -0,0 +1,20 @@
1
+ # Getting Involved
2
+
3
+ New contributors are always welcome, when it doubt please ask questions. We strive to be an open and welcoming community. Please be nice to one another.
4
+
5
+ Please read the [code of conduct](CODE_OF_CONDUCT.md)
6
+
7
+ ## Coding
8
+
9
+ * Pick a task:
10
+ * Offer feedback on open [pull requests](https://github.com/tristanrobert/fog-proxmox/pulls).
11
+ * Review open [issues](https://github.com/tristanrobert/fog-proxmox/issues) for things to help on.
12
+ * [Create an issue](https://github.com/tristanrobert/fog-proxmox/issues/new) to start a discussion on additions or features.
13
+ * Fork the project, add your changes and tests to cover them in a topic branch.
14
+ * Commit your changes and rebase against `fog/fog-proxmox` to ensure everything is up to date.
15
+ * [Submit a pull request](https://github.com/tristanrobert/fog-proxmox/compare/).
16
+
17
+ ## Non-Coding
18
+
19
+ * Offer feedback on open [issues](https://github.com/tristanrobert/fog-proxmox/issues).
20
+ * [Donate](SUPPORT.md)
@@ -0,0 +1,9 @@
1
+ # Developers
2
+
3
+ * Tristan Robert <tristan.robert.44 at gmail.com>
4
+
5
+ # Donators
6
+
7
+ Thanks to all generous donators that support the developers effort:
8
+
9
+ * [Tobias Köck](https://github.com/tkoeck)
@@ -0,0 +1,12 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [tristanrobert] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ otechie: # Replace with a single Otechie username
12
+ custom: ["https://paypal.me/TristanRobert"]# Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -0,0 +1,43 @@
1
+ # [TITLE ISSUE]
2
+
3
+ ## Prerequisites
4
+
5
+ Please check (put an X between the brackets) the following items before posting any issue:
6
+
7
+ * [] Have you check that no [issue](https://github.com/tristanrobert/fog-proxmox/issues) already exists and could match yours?
8
+
9
+ * [] Have you read the [contributing code](https://github.com/tristanrobert/fog-proxmox/blob/develop/CONTRIBUTING.md)?
10
+
11
+ ## Description
12
+
13
+ [Describe your issue]
14
+
15
+ ## Environment
16
+
17
+ [Describe your environment: OS, ruby -v, ...]
18
+
19
+ ## Version
20
+
21
+ [Give the milestone or the precise version of the gem used]
22
+
23
+ ## Steps to reproduce
24
+
25
+ 1. [First Step]
26
+ 2. [Second Step]
27
+ 3. [and so on...]
28
+
29
+ ### Expected behavior
30
+
31
+ [What you expect to happen]
32
+
33
+ ### Actual behavior
34
+
35
+ [What actually happens]
36
+
37
+ ### Reproduces how often:
38
+
39
+ [What percentage of the time does it reproduce?]
40
+
41
+ ## Additional Information
42
+
43
+ Any additional information, configuration or data that might be necessary to reproduce the issue.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+
5
+ ---
6
+
7
+ **Describe the bug**
8
+ A clear and concise description of what the bug is.
9
+
10
+ **To Reproduce**
11
+ Steps to reproduce the behavior:
12
+ 1. Go to '...'
13
+ 2. Click on '....'
14
+ 3. Scroll down to '....'
15
+ 4. See error
16
+
17
+ **Expected behavior**
18
+ A clear and concise description of what you expected to happen.
19
+
20
+ **Screenshots**
21
+ If applicable, add screenshots to help explain your problem.
22
+
23
+ **Desktop (please complete the following information):**
24
+ - OS: [e.g. iOS]
25
+ - Browser [e.g. chrome, safari]
26
+ - Version [e.g. 22]
27
+
28
+ **Smartphone (please complete the following information):**
29
+ - Device: [e.g. iPhone6]
30
+ - OS: [e.g. iOS8.1]
31
+ - Browser [e.g. stock browser, safari]
32
+ - Version [e.g. 22]
33
+
34
+ **Additional context**
35
+ Add any other context about the problem here.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+
5
+ ---
6
+
7
+ **Is your feature request related to a problem? Please describe.**
8
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9
+
10
+ **Describe the solution you'd like**
11
+ A clear and concise description of what you want to happen.
12
+
13
+ **Describe alternatives you've considered**
14
+ A clear and concise description of any alternative solutions or features you've considered.
15
+
16
+ **Additional context**
17
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,9 @@
1
+ # Sponsor Fog::Proxmox development
2
+
3
+ Fog::Proxmox is an [GPL-3](LICENSE) licensed open source project and completely free to use.
4
+
5
+ However, the amount of effort needed to maintain and develop the project could be support by donations.
6
+
7
+ You can support Fog::Proxmox development via the following methods:
8
+
9
+ * [Donate by PayPal](https://paypal.me/TristanRobert)
Binary file
@@ -0,0 +1,79 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+ release:
9
+ types: [created]
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.6
20
+ - name: Install dependencies
21
+ run: bundle install
22
+ - name: Run tests
23
+ run: bundle exec rake test spec audit
24
+ - name: Upload results for coverage
25
+ uses: actions/upload-artifact@v1
26
+ with:
27
+ name: coverage
28
+ path: coverage/
29
+
30
+ coverage:
31
+ needs: [ test ]
32
+ name: coverage
33
+ runs-on: ubuntu-latest
34
+ steps:
35
+ - uses: actions/checkout@v2
36
+ - name: Download tests result from test
37
+ uses: actions/download-artifact@v1
38
+ with:
39
+ name: coverage
40
+ - name: Install Code Climate test-reporter
41
+ run: |
42
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
43
+ chmod +x ./cc-test-reporter
44
+ - name: Format code coverage
45
+ env:
46
+ GIT_BRANCH: ${{ github.ref }}
47
+ GIT_COMMIT_SHA: ${{ github.sha }}
48
+ run: |
49
+ export GIT_COMMITTED_AT="$(date +%s)"
50
+ ./cc-test-reporter format-coverage -d -t simplecov -o coverage/codeclimate.json coverage/.resultset.json
51
+ - name: Publish code coverage
52
+ env:
53
+ GIT_BRANCH: ${{ github.ref }}
54
+ GIT_COMMIT_SHA: ${{ github.sha }}
55
+ run: |
56
+ export GIT_COMMITTED_AT="$(date +%s)"
57
+ ./cc-test-reporter upload-coverage -d -r ${{secrets.CC_TEST_REPORTER_ID}}
58
+
59
+ publish:
60
+ needs: [ test ]
61
+ name: publish
62
+ runs-on: ubuntu-latest
63
+ if: contains(github.ref, '/tags/v')
64
+ steps:
65
+ - uses: actions/checkout@v2
66
+ - name: Set up Ruby 2.6
67
+ uses: actions/setup-ruby@v1
68
+ with:
69
+ version: 2.6.x
70
+ - name: Publish to RubyGems
71
+ env:
72
+ GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
73
+ run: |
74
+ mkdir -p $HOME/.gem
75
+ touch $HOME/.gem/credentials
76
+ chmod 0600 $HOME/.gem/credentials
77
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
78
+ gem build *.gemspec
79
+ gem push *.gem
@@ -0,0 +1,8 @@
1
+ vendor/
2
+ bin/
3
+ pkg/
4
+ spec/debug/
5
+ coverage/
6
+ TAGS
7
+ Gemfile.lock
8
+ *.gem
@@ -0,0 +1,13 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.4
3
+ Include:
4
+ - '**/Rakefile'
5
+ Exclude:
6
+ - 'bin/**/*'
7
+ - 'vendor/**/*'
8
+ - 'coverage/**/*'
9
+ - '.bundle/**/*'
10
+ - '.vscode/**/*'
11
+ - '**/*.gemspec'
12
+ - 'Gemfile'
13
+ - 'spec/**/*'
@@ -0,0 +1 @@
1
+ fog-proxmox
@@ -0,0 +1,10 @@
1
+ ---
2
+ include:
3
+ - "**/*.rb"
4
+ exclude:
5
+ - spec/**/*
6
+ - test/**/*
7
+ domains: []
8
+ required: []
9
+ plugins:
10
+ -runtime
@@ -0,0 +1,96 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+
5
+ {
6
+ "name": "Debug Local File",
7
+ "type": "Ruby",
8
+ "request": "launch",
9
+ "cwd": "${workspaceRoot}",
10
+ "program": "${workspaceRoot}/main.rb",
11
+ "useBundler": true,
12
+ },
13
+ {
14
+ "name": "Listen for rdebug-ide",
15
+ "type": "Ruby",
16
+ "request": "attach",
17
+ "cwd": "${workspaceRoot}",
18
+ "remoteHost": "127.0.0.1",
19
+ "remotePort": "1234",
20
+ "remoteWorkspaceRoot": "${workspaceRoot}"
21
+ },
22
+ {
23
+ "name": "RSpec - all",
24
+ "type": "Ruby",
25
+ "request": "launch",
26
+ "cwd": "${workspaceRoot}",
27
+ "program": "${workspaceRoot}/bin/rspec",
28
+ "useBundler": true,
29
+ "showDebuggerOutput": true,
30
+ "env": {
31
+ "DISABLE_PROXY": true,
32
+ "SSL_VERIFY_PEER": false,
33
+ "USE_VCR": false,
34
+ "PVE_URL": "https://192.168.56.101:8006/api2/json",
35
+ "PVE_USERNAME": "root@pam",
36
+ "PVE_PASSWORD": ""
37
+ },
38
+ "args": [
39
+ "-I",
40
+ "${workspaceRoot}"
41
+ ]
42
+ },
43
+ {
44
+ "name": "RSpec - active spec file only",
45
+ "type": "Ruby",
46
+ "request": "launch",
47
+ "cwd": "${workspaceRoot}",
48
+ "program": "${workspaceRoot}/bin/rspec",
49
+ "useBundler": true,
50
+ "showDebuggerOutput": true,
51
+ "env": {
52
+ "DISABLE_PROXY": true,
53
+ "SSL_VERIFY_PEER": false,
54
+ "USE_VCR": false,
55
+ "PVE_URL": "https://192.168.56.101:8006/api2/json",
56
+ "PVE_USERNAME": "root@pam",
57
+ "PVE_PASSWORD": ""
58
+ },
59
+ "args": [
60
+ "-I",
61
+ "${workspaceRoot}",
62
+ "${file}"
63
+ ]
64
+ },
65
+ {
66
+ "name": "bundle exec rake spec - all",
67
+ "type": "Ruby",
68
+ "request": "launch",
69
+ "cwd": "${workspaceRoot}",
70
+ "program": "${workspaceRoot}/bin/rake",
71
+ "useBundler": true,
72
+ "showDebuggerOutput": true,
73
+ "env": {
74
+ "DISABLE_PROXY": true,
75
+ "SSL_VERIFY_PEER": false,
76
+ "USE_VCR": false,
77
+ "PVE_URL": "https://192.168.56.101:8006/api2/json",
78
+ "PVE_USERNAME": "root@pam",
79
+ "PVE_PASSWORD": ""
80
+ },
81
+ "args": [
82
+ "spec",
83
+ "-I",
84
+ "${workspaceRoot}",
85
+ "${file}"
86
+ ]
87
+ },
88
+ {
89
+ "name": "Cucumber",
90
+ "type": "Ruby",
91
+ "request": "launch",
92
+ "cwd": "${workspaceRoot}",
93
+ "program": "${workspaceRoot}/bin/cucumber"
94
+ }
95
+ ]
96
+ }