rancher-api-beta 0.8.0.pre.beta → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.gitlab-ci.yml +2 -2
- data/.rubocop.yml +2 -0
- data/.simplecov +1 -0
- data/Gemfile.lock +21 -4
- data/README.md +15 -0
- data/bin/console +3 -3
- data/bin/discover_api +13 -0
- data/lib/rancher/api.rb +1 -0
- data/lib/rancher/api/helpers.rb +6 -0
- data/lib/rancher/api/helpers/instance.rb +66 -0
- data/lib/rancher/api/helpers/machine.rb +42 -0
- data/lib/rancher/api/helpers/project.rb +20 -0
- data/lib/rancher/api/models.rb +158 -6
- data/lib/rancher/api/models/account.rb +57 -0
- data/lib/rancher/api/models/activesetting.rb +13 -0
- data/lib/rancher/api/models/addoutputsinput.rb +12 -0
- data/lib/rancher/api/models/addremoveservicelinkinput.rb +12 -0
- data/lib/rancher/api/models/agent.rb +23 -0
- data/lib/rancher/api/models/amazonec2config.rb +20 -0
- data/lib/rancher/api/models/apikey.rb +20 -0
- data/lib/rancher/api/models/auditlog.rb +21 -0
- data/lib/rancher/api/models/azureadconfig.rb +16 -0
- data/lib/rancher/api/models/azureconfig.rb +19 -0
- data/lib/rancher/api/models/backup.rb +24 -0
- data/lib/rancher/api/models/backuptarget.rb +18 -0
- data/lib/rancher/api/models/basemachineconfig.rb +12 -0
- data/lib/rancher/api/models/binding.rb +12 -0
- data/lib/rancher/api/models/blkiodeviceoption.rb +12 -0
- data/lib/rancher/api/models/catalogtemplate.rb +16 -0
- data/lib/rancher/api/models/certificate.rb +20 -0
- data/lib/rancher/api/models/changesecretinput.rb +12 -0
- data/lib/rancher/api/models/clustermembership.rb +13 -0
- data/lib/rancher/api/models/composeconfig.rb +12 -0
- data/lib/rancher/api/models/composeconfiginput.rb +12 -0
- data/lib/rancher/api/models/composeproject.rb +28 -0
- data/lib/rancher/api/models/composeservice.rb +30 -0
- data/lib/rancher/api/models/configitem.rb +12 -0
- data/lib/rancher/api/models/configitemstatus.rb +18 -0
- data/lib/rancher/api/models/container.rb +65 -0
- data/lib/rancher/api/models/containerevent.rb +20 -0
- data/lib/rancher/api/models/containerexec.rb +12 -0
- data/lib/rancher/api/models/containerlogs.rb +12 -0
- data/lib/rancher/api/models/containerproxy.rb +12 -0
- data/lib/rancher/api/models/credential.rb +20 -0
- data/lib/rancher/api/models/databasechangelog.rb +14 -0
- data/lib/rancher/api/models/databasechangeloglock.rb +12 -0
- data/lib/rancher/api/models/defaultnetwork.rb +21 -0
- data/lib/rancher/api/models/digitaloceanconfig.rb +14 -0
- data/lib/rancher/api/models/dnsservice.rb +30 -0
- data/lib/rancher/api/models/dockerbuild.rb +13 -0
- data/lib/rancher/api/models/extensionimplementation.rb +12 -0
- data/lib/rancher/api/models/extensionpoint.rb +12 -0
- data/lib/rancher/api/models/externaldnsevent.rb +20 -0
- data/lib/rancher/api/models/externalevent.rb +19 -0
- data/lib/rancher/api/models/externalhandler.rb +18 -0
- data/lib/rancher/api/models/externalhandlerexternalhandlerprocessmap.rb +20 -0
- data/lib/rancher/api/models/externalhandlerprocess.rb +17 -0
- data/lib/rancher/api/models/externalhandlerprocessconfig.rb +12 -0
- data/lib/rancher/api/models/externalhostevent.rb +21 -0
- data/lib/rancher/api/models/externalservice.rb +30 -0
- data/lib/rancher/api/models/externalserviceevent.rb +19 -0
- data/lib/rancher/api/models/externalstoragepoolevent.rb +19 -0
- data/lib/rancher/api/models/externalvolumeevent.rb +19 -0
- data/lib/rancher/api/models/fielddocumentation.rb +12 -0
- data/lib/rancher/api/models/genericobject.rb +18 -0
- data/lib/rancher/api/models/haconfig.rb +12 -0
- data/lib/rancher/api/models/haconfiginput.rb +15 -0
- data/lib/rancher/api/models/healthcheckinstancehostmap.rb +22 -0
- data/lib/rancher/api/models/host.rb +29 -1
- data/lib/rancher/api/models/hostaccess.rb +12 -0
- data/lib/rancher/api/models/hostapiproxytoken.rb +12 -0
- data/lib/rancher/api/models/hosttemplate.rb +19 -0
- data/lib/rancher/api/models/identity.rb +15 -0
- data/lib/rancher/api/models/image.rb +20 -0
- data/lib/rancher/api/models/inserviceupgradestrategy.rb +13 -0
- data/lib/rancher/api/models/instance.rb +23 -65
- data/lib/rancher/api/models/instanceconsole.rb +12 -0
- data/lib/rancher/api/models/instanceconsoleinput.rb +12 -0
- data/lib/rancher/api/models/instancehealthcheck.rb +14 -0
- data/lib/rancher/api/models/instancelink.rb +22 -0
- data/lib/rancher/api/models/instancestop.rb +12 -0
- data/lib/rancher/api/models/ipaddress.rb +12 -1
- data/lib/rancher/api/models/kubernetesservice.rb +29 -0
- data/lib/rancher/api/models/kubernetesstack.rb +29 -0
- data/lib/rancher/api/models/kubernetesstackupgrade.rb +12 -0
- data/lib/rancher/api/models/label.rb +20 -0
- data/lib/rancher/api/models/launchconfig.rb +66 -0
- data/lib/rancher/api/models/lbconfig.rb +14 -0
- data/lib/rancher/api/models/lbtargetconfig.rb +12 -0
- data/lib/rancher/api/models/ldapconfig.rb +16 -0
- data/lib/rancher/api/models/loadbalancercookiestickinesspolicy.rb +13 -0
- data/lib/rancher/api/models/loadbalancerservice.rb +31 -0
- data/lib/rancher/api/models/localauthconfig.rb +12 -0
- data/lib/rancher/api/models/logconfig.rb +12 -0
- data/lib/rancher/api/models/machine.rb +11 -34
- data/lib/rancher/api/models/machinedriver.rb +15 -0
- data/lib/rancher/api/models/mount.rb +22 -0
- data/lib/rancher/api/models/mountentry.rb +15 -0
- data/lib/rancher/api/models/network.rb +23 -0
- data/lib/rancher/api/models/networkdriver.rb +21 -0
- data/lib/rancher/api/models/networkdriverservice.rb +32 -0
- data/lib/rancher/api/models/networkpolicyrule.rb +13 -0
- data/lib/rancher/api/models/networkpolicyrulebetween.rb +12 -0
- data/lib/rancher/api/models/networkpolicyrulemember.rb +12 -0
- data/lib/rancher/api/models/networkpolicyrulewithin.rb +12 -0
- data/lib/rancher/api/models/nfsconfig.rb +12 -0
- data/lib/rancher/api/models/openldapconfig.rb +17 -0
- data/lib/rancher/api/models/{environment.rb → packetconfig.rb} +4 -3
- data/lib/rancher/api/models/password.rb +20 -0
- data/lib/rancher/api/models/physicalhost.rb +19 -0
- data/lib/rancher/api/models/port.rb +25 -0
- data/lib/rancher/api/models/portrule.rb +15 -0
- data/lib/rancher/api/models/processdefinition.rb +13 -0
- data/lib/rancher/api/models/processexecution.rb +15 -0
- data/lib/rancher/api/models/processinstance.rb +22 -0
- data/lib/rancher/api/models/processpool.rb +13 -0
- data/lib/rancher/api/models/processsummary.rb +12 -0
- data/lib/rancher/api/models/project.rb +48 -9
- data/lib/rancher/api/models/projectmember.rb +18 -0
- data/lib/rancher/api/models/projecttemplate.rb +19 -0
- data/lib/rancher/api/models/publicendpoint.rb +16 -0
- data/lib/rancher/api/models/publish.rb +16 -0
- data/lib/rancher/api/models/pulltask.rb +18 -0
- data/lib/rancher/api/models/recreateonquorumstrategyconfig.rb +12 -0
- data/lib/rancher/api/models/register.rb +18 -0
- data/lib/rancher/api/models/registrationtoken.rb +20 -0
- data/lib/rancher/api/models/registry.rb +11 -1
- data/lib/rancher/api/models/registrycredential.rb +11 -1
- data/lib/rancher/api/models/resourcedefinition.rb +12 -0
- data/lib/rancher/api/models/restartpolicy.rb +12 -0
- data/lib/rancher/api/models/restorefrombackupinput.rb +14 -0
- data/lib/rancher/api/models/reverttosnapshotinput.rb +14 -0
- data/lib/rancher/api/models/rollingrestartstrategy.rb +12 -0
- data/lib/rancher/api/models/scalepolicy.rb +12 -0
- data/lib/rancher/api/models/scheduledupgrade.rb +19 -0
- data/lib/rancher/api/models/schema.rb +13 -0
- data/lib/rancher/api/models/secondarylaunchconfig.rb +66 -0
- data/lib/rancher/api/models/secret.rb +17 -0
- data/lib/rancher/api/models/secretreference.rb +14 -0
- data/lib/rancher/api/models/service.rb +21 -2
- data/lib/rancher/api/models/servicebinding.rb +12 -0
- data/lib/rancher/api/models/serviceconsumemap.rb +23 -0
- data/lib/rancher/api/models/serviceevent.rb +22 -0
- data/lib/rancher/api/models/serviceexposemap.rb +22 -0
- data/lib/rancher/api/models/servicelink.rb +14 -0
- data/lib/rancher/api/models/servicelog.rb +22 -0
- data/lib/rancher/api/models/serviceproxy.rb +12 -0
- data/lib/rancher/api/models/servicerestart.rb +12 -0
- data/lib/rancher/api/models/servicesportrange.rb +12 -0
- data/lib/rancher/api/models/serviceupgrade.rb +12 -0
- data/lib/rancher/api/models/serviceupgradestrategy.rb +12 -0
- data/lib/rancher/api/models/setprojectmembersinput.rb +12 -0
- data/lib/rancher/api/models/setservicelinksinput.rb +12 -0
- data/lib/rancher/api/models/setting.rb +13 -0
- data/lib/rancher/api/models/snapshot.rb +20 -0
- data/lib/rancher/api/models/snapshotbackupinput.rb +15 -0
- data/lib/rancher/api/models/stack.rb +29 -0
- data/lib/rancher/api/models/stackupgrade.rb +13 -0
- data/lib/rancher/api/models/statetransition.rb +12 -0
- data/lib/rancher/api/models/statsaccess.rb +12 -0
- data/lib/rancher/api/models/storagedriver.rb +22 -0
- data/lib/rancher/api/models/storagedriverservice.rb +32 -0
- data/lib/rancher/api/models/storagepool.rb +25 -0
- data/lib/rancher/api/models/subnet.rb +21 -0
- data/lib/rancher/api/models/targetportrule.rb +12 -0
- data/lib/rancher/api/models/task.rb +14 -0
- data/lib/rancher/api/models/taskinstance.rb +17 -0
- data/lib/rancher/api/models/toserviceupgradestrategy.rb +14 -0
- data/lib/rancher/api/models/typedocumentation.rb +12 -0
- data/lib/rancher/api/models/ulimit.rb +12 -0
- data/lib/rancher/api/models/userpreference.rb +18 -0
- data/lib/rancher/api/models/virtualmachine.rb +60 -0
- data/lib/rancher/api/models/virtualmachinedisk.rb +13 -0
- data/lib/rancher/api/models/volume.rb +36 -0
- data/lib/rancher/api/models/volumeactivateinput.rb +14 -0
- data/lib/rancher/api/models/volumesnapshotinput.rb +12 -0
- data/lib/rancher/api/models/volumetemplate.rb +21 -0
- data/lib/rancher/api/version.rb +1 -1
- data/lib/rancher/api_discovery.rb +98 -0
- data/rancher-api-beta.gemspec +2 -0
- data/scripts/vcr_record.rb +31 -0
- data/templates/model.erb +22 -0
- data/vagrant-rancher/.gitignore +2 -0
- data/vagrant-rancher/README.md +24 -0
- data/vagrant-rancher/Vagrantfile +70 -0
- data/vagrant-rancher/ansible/docker.yml +65 -0
- data/vagrant-rancher/ansible/master.yml +3 -0
- data/vagrant-rancher/ansible/nfs-server.yml +30 -0
- data/vagrant-rancher/ansible/node.yml +2 -0
- metadata +203 -5
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rancher
|
4
|
+
module Api
|
5
|
+
class Taskinstance
|
6
|
+
include Her::Model
|
7
|
+
include Helpers::Model
|
8
|
+
|
9
|
+
belongs_to :server
|
10
|
+
belongs_to :task
|
11
|
+
has_one :task
|
12
|
+
|
13
|
+
attributes :endTime, :exception, :id, :name, :serverId,
|
14
|
+
:startTime, :taskId
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rancher
|
4
|
+
module Api
|
5
|
+
class Toserviceupgradestrategy
|
6
|
+
include Her::Model
|
7
|
+
include Helpers::Model
|
8
|
+
|
9
|
+
belongs_to :toservice
|
10
|
+
|
11
|
+
attributes :batchSize, :finalScale, :intervalMillis, :toServiceId, :updateLinks
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rancher
|
4
|
+
module Api
|
5
|
+
class Userpreference
|
6
|
+
include Her::Model
|
7
|
+
include Helpers::Model
|
8
|
+
|
9
|
+
belongs_to :account
|
10
|
+
has_one :account
|
11
|
+
|
12
|
+
attributes :accountId, :created, :data, :description, :id,
|
13
|
+
:kind, :name, :removeTime, :removed, :state,
|
14
|
+
:uuid, :value, :transitioning, :transitioningMessage, :transitioningProgress,
|
15
|
+
:all
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rancher
|
4
|
+
module Api
|
5
|
+
class Virtualmachine
|
6
|
+
include Her::Model
|
7
|
+
include Helpers::Model
|
8
|
+
|
9
|
+
belongs_to :account
|
10
|
+
belongs_to :agent
|
11
|
+
belongs_to :host
|
12
|
+
belongs_to :primarynetwork
|
13
|
+
belongs_to :registrycredential
|
14
|
+
belongs_to :requestedhost
|
15
|
+
belongs_to :service
|
16
|
+
belongs_to :stack
|
17
|
+
has_one :agent
|
18
|
+
has_one :stack
|
19
|
+
has_one :registrycredential
|
20
|
+
has_one :service
|
21
|
+
has_one :account
|
22
|
+
has_many :credentials
|
23
|
+
has_many :instances
|
24
|
+
has_many :hosts
|
25
|
+
has_many :volumes
|
26
|
+
has_many :mounts
|
27
|
+
has_many :serviceevents
|
28
|
+
has_many :serviceexposemaps
|
29
|
+
has_many :services
|
30
|
+
has_many :ports
|
31
|
+
has_many :instancelinks
|
32
|
+
has_many :healthcheckinstancehostmaps
|
33
|
+
has_many :targetinstancelinks
|
34
|
+
has_many :instancelabels
|
35
|
+
has_many :servicelogs
|
36
|
+
|
37
|
+
attributes :accountId, :agentId, :allocationState, :blkioDeviceOptions, :blkioWeight,
|
38
|
+
:cgroupParent, :command, :count, :cpuCount, :cpuPercent,
|
39
|
+
:cpuPeriod, :cpuQuota, :cpuSet, :cpuSetMems, :cpuShares,
|
40
|
+
:createIndex, :created, :data, :deploymentUnitUuid, :description,
|
41
|
+
:diskQuota, :dns, :dnsOpt, :dnsSearch, :domainName,
|
42
|
+
:expose, :externalId, :extraHosts, :firstRunning, :groupAdd,
|
43
|
+
:healthCheck, :healthCmd, :healthInterval, :healthRetries, :healthState,
|
44
|
+
:healthTimeout, :hostId, :hostname, :id, :imageUuid,
|
45
|
+
:instanceLinks, :instanceTriggeredStop, :ioMaximumBandwidth, :ioMaximumIOps, :ip,
|
46
|
+
:ip6, :ipcMode, :isolation, :kernelMemory, :kind,
|
47
|
+
:labels, :logConfig, :memory, :memoryMb, :memoryReservation,
|
48
|
+
:memorySwap, :memorySwappiness, :milliCpuReservation, :mounts, :name,
|
49
|
+
:nativeContainer, :netAlias, :networkIds, :networkMode, :oomKillDisable,
|
50
|
+
:oomScoreAdj, :pidsLimit, :ports, :primaryIpAddress, :primaryNetworkId,
|
51
|
+
:registryCredentialId, :removeTime, :removed, :requestedHostId, :restartPolicy,
|
52
|
+
:securityOpt, :serviceId, :serviceIds, :shmSize, :stackId,
|
53
|
+
:startCount, :startOnCreate, :state, :stopSignal, :storageOpt,
|
54
|
+
:sysctls, :system, :tmpfs, :token, :transitioning,
|
55
|
+
:transitioningMessage, :transitioningProgress, :ulimits, :userPorts, :userdata,
|
56
|
+
:usernsMode, :uts, :uuid, :version, :volumeDriver,
|
57
|
+
:vcpu, :disks
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rancher
|
4
|
+
module Api
|
5
|
+
class Volume
|
6
|
+
include Her::Model
|
7
|
+
include Helpers::Model
|
8
|
+
|
9
|
+
belongs_to :account
|
10
|
+
belongs_to :host
|
11
|
+
belongs_to :image
|
12
|
+
belongs_to :instance
|
13
|
+
belongs_to :stack
|
14
|
+
belongs_to :storagedriver
|
15
|
+
belongs_to :volumetemplate
|
16
|
+
has_one :image
|
17
|
+
has_one :stack
|
18
|
+
has_one :storagedriver
|
19
|
+
has_one :instance
|
20
|
+
has_one :volumetemplate
|
21
|
+
has_one :host
|
22
|
+
has_one :account
|
23
|
+
has_many :snapshots
|
24
|
+
has_many :storagepools
|
25
|
+
has_many :mounts
|
26
|
+
has_many :backups
|
27
|
+
|
28
|
+
attributes :accessMode, :accountId, :created, :data, :description,
|
29
|
+
:externalId, :hostId, :id, :imageId, :instanceId,
|
30
|
+
:kind, :name, :removeTime, :removed, :sizeMb,
|
31
|
+
:stackId, :state, :storageDriverId, :uri, :uuid,
|
32
|
+
:volumeTemplateId, :transitioning, :transitioningMessage, :transitioningProgress, :isHostPath,
|
33
|
+
:driver, :driverOpts, :mounts
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rancher
|
4
|
+
module Api
|
5
|
+
class Volumetemplate
|
6
|
+
include Her::Model
|
7
|
+
include Helpers::Model
|
8
|
+
|
9
|
+
belongs_to :account
|
10
|
+
belongs_to :stack
|
11
|
+
has_one :stack
|
12
|
+
has_one :account
|
13
|
+
has_many :volumes
|
14
|
+
|
15
|
+
attributes :accountId, :created, :data, :description, :driver,
|
16
|
+
:external, :id, :kind, :name, :perContainer,
|
17
|
+
:removeTime, :removed, :stackId, :state, :uuid,
|
18
|
+
:transitioning, :transitioningMessage, :transitioningProgress, :driverOpts
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/rancher/api/version.rb
CHANGED
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rest-client'
|
4
|
+
require 'active_support'
|
5
|
+
require 'json'
|
6
|
+
require 'erb'
|
7
|
+
|
8
|
+
module Rancher
|
9
|
+
module ApiDiscovery
|
10
|
+
class Crawler
|
11
|
+
def initialize
|
12
|
+
@base_url = ENV['RANCHER_URL']
|
13
|
+
@entities = {}
|
14
|
+
end
|
15
|
+
|
16
|
+
def run
|
17
|
+
schemas = get(@base_url + '/schemas')
|
18
|
+
schemas['data'].each do |entity|
|
19
|
+
@entities[entity['id']] = Entity.new(entity)
|
20
|
+
end
|
21
|
+
@entities.each do |key, entity|
|
22
|
+
puts "Discovered: #{key}"
|
23
|
+
puts "helpers: #{entity.helpers}"
|
24
|
+
puts "has_many: #{entity.has_many}"
|
25
|
+
puts "has_one: #{entity.has_one}"
|
26
|
+
puts "belongs_to: #{entity.belongs_to}"
|
27
|
+
puts "attributes: #{entity.attributes}"
|
28
|
+
puts "Generated code:\n"
|
29
|
+
puts entity.code
|
30
|
+
puts "\n"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def generate_code
|
35
|
+
@entities.each do |key, entity|
|
36
|
+
filename = "./lib/rancher/api/models/#{key.downcase}.rb"
|
37
|
+
File.write(filename, entity.code)
|
38
|
+
end
|
39
|
+
File.open('./lib/rancher/api/models.rb', 'w') do |file|
|
40
|
+
@entities.each do |key, _|
|
41
|
+
require_string = "require 'rancher/api/models/#{key.downcase}'"
|
42
|
+
file.puts(require_string)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def parse_response(json)
|
50
|
+
JSON.parse(json)
|
51
|
+
end
|
52
|
+
|
53
|
+
def get(url)
|
54
|
+
parse_response(RestClient.get(url))
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
class Entity < OpenStruct
|
59
|
+
def has_many
|
60
|
+
includeableLinks.map(&:downcase).reject { |k| singular?(k) }
|
61
|
+
end
|
62
|
+
|
63
|
+
def has_one
|
64
|
+
includeableLinks.map(&:downcase).select { |k| singular?(k) }
|
65
|
+
end
|
66
|
+
|
67
|
+
def belongs_to
|
68
|
+
attributes.select { |k| k.end_with?('Id') }.reject { |k| k.eql?('externalId') }.map do |relation_key|
|
69
|
+
relation_key.gsub('Id', '').downcase
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def attributes
|
74
|
+
resourceFields.keys
|
75
|
+
end
|
76
|
+
|
77
|
+
def code
|
78
|
+
renderer = ERB.new(File.read('./templates/model.erb'), nil, '-')
|
79
|
+
renderer.result(binding)
|
80
|
+
end
|
81
|
+
|
82
|
+
def helpers
|
83
|
+
return [] unless File.exist?(helper_filename)
|
84
|
+
["Rancher::Api::Helpers::#{id.capitalize}"]
|
85
|
+
end
|
86
|
+
|
87
|
+
def helper_filename
|
88
|
+
"./lib/rancher/api/helpers/#{id}.rb"
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def singular?(str)
|
94
|
+
str.singularize == str
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
data/rancher-api-beta.gemspec
CHANGED
@@ -31,6 +31,8 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency 'faye-websocket'
|
32
32
|
spec.add_dependency 'faraday_middleware'
|
33
33
|
|
34
|
+
spec.add_development_dependency 'rest-client'
|
35
|
+
spec.add_development_dependency 'activesupport'
|
34
36
|
spec.add_development_dependency 'bundler', '~> 1.14.5'
|
35
37
|
spec.add_development_dependency 'rake', '~> 12.0'
|
36
38
|
spec.add_development_dependency 'rspec', '~> 3.6.0'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'pry'
|
5
|
+
require 'open-uri'
|
6
|
+
|
7
|
+
def exec_cmd(cmd)
|
8
|
+
puts "[#{Time.now}] now running: #{cmd}"
|
9
|
+
puts `#{cmd}`
|
10
|
+
end
|
11
|
+
|
12
|
+
exec_cmd('rm -rf spec/cassettes/*')
|
13
|
+
exec_cmd('cd vagrant-rancher && vagrant up')
|
14
|
+
|
15
|
+
server_offline = true
|
16
|
+
|
17
|
+
while server_offline
|
18
|
+
begin
|
19
|
+
ok = open('http://192.168.123.11:8080/v2-beta').status.include?('OK')
|
20
|
+
server_offline = !ok
|
21
|
+
rescue
|
22
|
+
puts "[#{Time.now}] ... server still offline, sleeping"
|
23
|
+
ensure
|
24
|
+
sleep(3)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
exec_cmd('SLEEP_TIME=5 bundle exec rspec')
|
29
|
+
|
30
|
+
exec_cmd('cd vagrant-rancher && vagrant halt')
|
31
|
+
exec_cmd('bundle exec rspec')
|
data/templates/model.erb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
module Rancher
|
2
|
+
module Api
|
3
|
+
class <%= id.capitalize %>
|
4
|
+
include Her::Model
|
5
|
+
include Helpers::Model
|
6
|
+
<% helpers.each do |helper| %>
|
7
|
+
include <%= helper -%>
|
8
|
+
<% end -%>
|
9
|
+
<% belongs_to.each do |relation| %>
|
10
|
+
belongs_to :<%= relation -%>
|
11
|
+
<% end -%>
|
12
|
+
<% has_one.each do |relation| %>
|
13
|
+
has_one :<%= relation -%>
|
14
|
+
<% end -%>
|
15
|
+
<% has_many.each do |relation| %>
|
16
|
+
has_many :<%= relation -%>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
attributes <%= attributes.each_slice(5).map {|slice| slice.map { |k| ":#{k}" }.join(', ')}.join(",\n") %>
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|