train-rest 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3aacbd72d0d4bb229c8db525be41ba6b6c8bb77b64a54856583a1857a52e81f
4
- data.tar.gz: 8264209bde949d82b767a7f51934a48fbee744778a6982f042faf56ace809732
3
+ metadata.gz: 4b0cc26cff4431701e6fba113884d8c06a943c16cb231e8a564c464e7ba01cf2
4
+ data.tar.gz: 78aa236a0c1b8a92480b096e9a40b9c3993be5dbafef907a01144cf630e4267f
5
5
  SHA512:
6
- metadata.gz: 9b69087f1538a58e734943553f5cd4c738f47182fd3388d9855231309ed457db020c7a1f78517ff3a84bd8a6a5747be32b7051deb5a0ac7c30089b5fb403e396
7
- data.tar.gz: 9c21069c170943fb1e93d42713388c1c4b5e04e143269d6dea8f0ce43ed61bd242c427d723a43cd110c79dba3c31ab2e112325b2b11463029caeb1e1d45e4bdd
6
+ metadata.gz: cb7767fe6dbc98466d9f8450a75f6849d21a8876f8672177db891a91edcdf07a075ab6f59ae98ae24759f827b87ce13ecaaa63934d94d44a8e469716c3e04116
7
+ data.tar.gz: 5f76c1a724b6b2c453f30240d71cd5717c818b722c0df527664980f94a32802492cfa267bab70bf105a37370e70dd61f0f28783980a2f584f7e9e9797298dce6
data/README.md CHANGED
@@ -140,3 +140,35 @@ conn = train.connection
140
140
  # Handles logout as well
141
141
  conn.close
142
142
  ```
143
+
144
+ ## Use with Redfish, Your Custom Resources and Chef Target Mode
145
+
146
+ 1. Set up a credentials file under `~/.chef/credentials` or `/etc/chef/credentials`:
147
+
148
+ ```toml
149
+ ['10.0.0.1']
150
+ endpoint = 'https://10.0.0.1/redfish/v1/'
151
+ username = 'user'
152
+ password = 'pass'
153
+ verify_ssl = false
154
+ auth_type = 'redfish'
155
+ ```
156
+
157
+ 1. Configure Chef to use the REST transport in `client.rb`:
158
+
159
+ ```toml
160
+ target_mode.protocol = "rest"
161
+ ```
162
+
163
+ 1. Write your custom resources for REST APIs
164
+ 1. Mark them up using the REST methods for target mode:
165
+
166
+ ```ruby
167
+ provides :rest_resource, target_mode: true, platform: 'rest'
168
+ ```
169
+
170
+ 1. Run against the defiend targets via Chef Target Mode:
171
+
172
+ ```shell
173
+ chef-client --local-mode --target 10.0.0.1 --runlist 'recipe[my-cookbook:setup]'
174
+ ```
@@ -30,8 +30,24 @@ module TrainPlugins
30
30
  components.to_s
31
31
  end
32
32
 
33
+ def inventory
34
+ # Faking it for Chef Target Mode only
35
+ OpenStruct.new({
36
+ name: "rest",
37
+ release: TrainPlugins::Rest::VERSION,
38
+ family_hierarchy: ["", "api"],
39
+ family: "api",
40
+ platform: "rest",
41
+ platform_version: 0,
42
+ })
43
+ end
44
+
45
+ alias os inventory
46
+
33
47
  def platform
34
- force_platform!("rest", { endpoint: uri })
48
+ Train::Platforms.name("rest").in_family("api")
49
+
50
+ force_platform!("rest", { release: TrainPlugins::Rest::VERSION })
35
51
  end
36
52
 
37
53
  # User-faced API
@@ -100,7 +116,7 @@ module TrainPlugins
100
116
  end
101
117
 
102
118
  def auth_type
103
- return options[:auth_type] if options[:auth_type]
119
+ return options[:auth_type].to_sym if options[:auth_type]
104
120
 
105
121
  :basic if options[:username] && options[:password]
106
122
  end
@@ -1,5 +1,5 @@
1
1
  module TrainPlugins
2
2
  module Rest
3
- VERSION = "0.1.0".freeze
3
+ VERSION = "0.2.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: train-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Heinen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-07 00:00:00.000000000 Z
11
+ date: 2020-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train