Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autoload files on demand to avoid loading the whole library #1

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions bin/autoload-requires.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/usr/bin/env ruby

require "active_support/core_ext/string/inflections"

inflections = {
"AutoSdeProject" => "AutoSDEProject",
"AutoSdeProjectApi" => "AutoSDEProjectApi",
"AutoSdeRole" => "AutoSDERole",
"AutoSdeRoleApi" => "AutoSDERoleApi",
"StorageHostWwpnCandidates" => "StorageHostWWPNCandidates",
"StorageHostWwpnCandidatesApi" => "StorageHostWWPNCandidatesApi"
}

klasses = []
content = ""

Dir.chdir("./generated") do
File.readlines("lib/autosde_openapi_client.rb").each do |line|
if line.match?(/autosde_openapi_client\/(?:models|api)\//)
model = line.split("'")[1]
klass = File.basename(model).camelize
klass = inflections.key?(klass) ? inflections[klass] : klass
line = "AutosdeOpenapiClient.autoload :#{klass}, '#{model}'\n"
klasses << klass
end
content << line
end

File.write("lib/autosde_openapi_client.rb", content)

$LOAD_PATH << Dir.pwd
require "lib/autosde_openapi_client"

klasses.each do |klass|
fq_klass = "AutosdeOpenapiClient::#{klass}"
begin
fq_klass.constantize
rescue => err
puts "Failed to load #{fq_klass}, check file naming and add to inflections for non-standard names."
end
end
end
230 changes: 115 additions & 115 deletions generated/lib/autosde_openapi_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,123 +17,123 @@
require 'autosde_openapi_client/configuration'

# Models
require 'autosde_openapi_client/models/abstract_capability'
require 'autosde_openapi_client/models/abstract_capability_response'
require 'autosde_openapi_client/models/account'
require 'autosde_openapi_client/models/account_post_request'
require 'autosde_openapi_client/models/account_post_response'
require 'autosde_openapi_client/models/address'
require 'autosde_openapi_client/models/address_create'
require 'autosde_openapi_client/models/async_response'
require 'autosde_openapi_client/models/auth_response'
require 'autosde_openapi_client/models/authentication'
require 'autosde_openapi_client/models/auto_sde_project'
require 'autosde_openapi_client/models/auto_sde_role'
require 'autosde_openapi_client/models/capability_translation'
require 'autosde_openapi_client/models/capability_translation_create'
require 'autosde_openapi_client/models/celery_config'
require 'autosde_openapi_client/models/event'
require 'autosde_openapi_client/models/event_response'
require 'autosde_openapi_client/models/host'
require 'autosde_openapi_client/models/host_cluster'
require 'autosde_openapi_client/models/host_cluster_create'
require 'autosde_openapi_client/models/host_cluster_membership'
require 'autosde_openapi_client/models/host_cluster_response'
require 'autosde_openapi_client/models/host_cluster_update'
require 'autosde_openapi_client/models/host_cluster_volume_mapping'
require 'autosde_openapi_client/models/host_cluster_volume_mapping_create'
require 'autosde_openapi_client/models/host_cluster_volume_mapping_response'
require 'autosde_openapi_client/models/host_create'
require 'autosde_openapi_client/models/host_volume_connection'
require 'autosde_openapi_client/models/host_volume_connection_create'
require 'autosde_openapi_client/models/job'
require 'autosde_openapi_client/models/job_create'
require 'autosde_openapi_client/models/job_response'
require 'autosde_openapi_client/models/native_capability'
require 'autosde_openapi_client/models/profile'
require 'autosde_openapi_client/models/provisioning_strategy'
require 'autosde_openapi_client/models/refresh_system'
require 'autosde_openapi_client/models/service'
require 'autosde_openapi_client/models/service_abstract_capability_value'
require 'autosde_openapi_client/models/service_abstract_capability_value_response'
require 'autosde_openapi_client/models/service_create'
require 'autosde_openapi_client/models/service_resource_attachment'
require 'autosde_openapi_client/models/service_resource_attachment_create'
require 'autosde_openapi_client/models/service_resource_attachment_response'
require 'autosde_openapi_client/models/service_resources_compliance'
require 'autosde_openapi_client/models/service_resources_compliance_response'
require 'autosde_openapi_client/models/service_response'
require 'autosde_openapi_client/models/service_update'
require 'autosde_openapi_client/models/snapshot'
require 'autosde_openapi_client/models/snapshot_create'
require 'autosde_openapi_client/models/snapshot_response'
require 'autosde_openapi_client/models/storage_host'
require 'autosde_openapi_client/models/storage_host_create'
require 'autosde_openapi_client/models/storage_host_response'
require 'autosde_openapi_client/models/storage_host_update'
require 'autosde_openapi_client/models/storage_host_wwpn_candidates'
require 'autosde_openapi_client/models/storage_hosts_mapping'
require 'autosde_openapi_client/models/storage_hosts_mapping_create'
require 'autosde_openapi_client/models/storage_hosts_mapping_response'
require 'autosde_openapi_client/models/storage_resource'
require 'autosde_openapi_client/models/storage_resource_create'
require 'autosde_openapi_client/models/storage_resource_response'
require 'autosde_openapi_client/models/storage_resource_update'
require 'autosde_openapi_client/models/storage_system'
require 'autosde_openapi_client/models/storage_system_create'
require 'autosde_openapi_client/models/storage_system_response'
require 'autosde_openapi_client/models/storage_system_update'
require 'autosde_openapi_client/models/system_type'
require 'autosde_openapi_client/models/system_type_create'
require 'autosde_openapi_client/models/system_type_response'
require 'autosde_openapi_client/models/user'
require 'autosde_openapi_client/models/user_create'
require 'autosde_openapi_client/models/user_update'
require 'autosde_openapi_client/models/validate_system'
require 'autosde_openapi_client/models/validate_system_data'
require 'autosde_openapi_client/models/volume'
require 'autosde_openapi_client/models/volume_clone'
require 'autosde_openapi_client/models/volume_create'
require 'autosde_openapi_client/models/volume_migration'
require 'autosde_openapi_client/models/volume_response'
require 'autosde_openapi_client/models/volume_update'
AutosdeOpenapiClient.autoload :AbstractCapability, 'autosde_openapi_client/models/abstract_capability'
AutosdeOpenapiClient.autoload :AbstractCapabilityResponse, 'autosde_openapi_client/models/abstract_capability_response'
AutosdeOpenapiClient.autoload :Account, 'autosde_openapi_client/models/account'
AutosdeOpenapiClient.autoload :AccountPostRequest, 'autosde_openapi_client/models/account_post_request'
AutosdeOpenapiClient.autoload :AccountPostResponse, 'autosde_openapi_client/models/account_post_response'
AutosdeOpenapiClient.autoload :Address, 'autosde_openapi_client/models/address'
AutosdeOpenapiClient.autoload :AddressCreate, 'autosde_openapi_client/models/address_create'
AutosdeOpenapiClient.autoload :AsyncResponse, 'autosde_openapi_client/models/async_response'
AutosdeOpenapiClient.autoload :AuthResponse, 'autosde_openapi_client/models/auth_response'
AutosdeOpenapiClient.autoload :Authentication, 'autosde_openapi_client/models/authentication'
AutosdeOpenapiClient.autoload :AutoSDEProject, 'autosde_openapi_client/models/auto_sde_project'
AutosdeOpenapiClient.autoload :AutoSDERole, 'autosde_openapi_client/models/auto_sde_role'
AutosdeOpenapiClient.autoload :CapabilityTranslation, 'autosde_openapi_client/models/capability_translation'
AutosdeOpenapiClient.autoload :CapabilityTranslationCreate, 'autosde_openapi_client/models/capability_translation_create'
AutosdeOpenapiClient.autoload :CeleryConfig, 'autosde_openapi_client/models/celery_config'
AutosdeOpenapiClient.autoload :Event, 'autosde_openapi_client/models/event'
AutosdeOpenapiClient.autoload :EventResponse, 'autosde_openapi_client/models/event_response'
AutosdeOpenapiClient.autoload :Host, 'autosde_openapi_client/models/host'
AutosdeOpenapiClient.autoload :HostCluster, 'autosde_openapi_client/models/host_cluster'
AutosdeOpenapiClient.autoload :HostClusterCreate, 'autosde_openapi_client/models/host_cluster_create'
AutosdeOpenapiClient.autoload :HostClusterMembership, 'autosde_openapi_client/models/host_cluster_membership'
AutosdeOpenapiClient.autoload :HostClusterResponse, 'autosde_openapi_client/models/host_cluster_response'
AutosdeOpenapiClient.autoload :HostClusterUpdate, 'autosde_openapi_client/models/host_cluster_update'
AutosdeOpenapiClient.autoload :HostClusterVolumeMapping, 'autosde_openapi_client/models/host_cluster_volume_mapping'
AutosdeOpenapiClient.autoload :HostClusterVolumeMappingCreate, 'autosde_openapi_client/models/host_cluster_volume_mapping_create'
AutosdeOpenapiClient.autoload :HostClusterVolumeMappingResponse, 'autosde_openapi_client/models/host_cluster_volume_mapping_response'
AutosdeOpenapiClient.autoload :HostCreate, 'autosde_openapi_client/models/host_create'
AutosdeOpenapiClient.autoload :HostVolumeConnection, 'autosde_openapi_client/models/host_volume_connection'
AutosdeOpenapiClient.autoload :HostVolumeConnectionCreate, 'autosde_openapi_client/models/host_volume_connection_create'
AutosdeOpenapiClient.autoload :Job, 'autosde_openapi_client/models/job'
AutosdeOpenapiClient.autoload :JobCreate, 'autosde_openapi_client/models/job_create'
AutosdeOpenapiClient.autoload :JobResponse, 'autosde_openapi_client/models/job_response'
AutosdeOpenapiClient.autoload :NativeCapability, 'autosde_openapi_client/models/native_capability'
AutosdeOpenapiClient.autoload :Profile, 'autosde_openapi_client/models/profile'
AutosdeOpenapiClient.autoload :ProvisioningStrategy, 'autosde_openapi_client/models/provisioning_strategy'
AutosdeOpenapiClient.autoload :RefreshSystem, 'autosde_openapi_client/models/refresh_system'
AutosdeOpenapiClient.autoload :Service, 'autosde_openapi_client/models/service'
AutosdeOpenapiClient.autoload :ServiceAbstractCapabilityValue, 'autosde_openapi_client/models/service_abstract_capability_value'
AutosdeOpenapiClient.autoload :ServiceAbstractCapabilityValueResponse, 'autosde_openapi_client/models/service_abstract_capability_value_response'
AutosdeOpenapiClient.autoload :ServiceCreate, 'autosde_openapi_client/models/service_create'
AutosdeOpenapiClient.autoload :ServiceResourceAttachment, 'autosde_openapi_client/models/service_resource_attachment'
AutosdeOpenapiClient.autoload :ServiceResourceAttachmentCreate, 'autosde_openapi_client/models/service_resource_attachment_create'
AutosdeOpenapiClient.autoload :ServiceResourceAttachmentResponse, 'autosde_openapi_client/models/service_resource_attachment_response'
AutosdeOpenapiClient.autoload :ServiceResourcesCompliance, 'autosde_openapi_client/models/service_resources_compliance'
AutosdeOpenapiClient.autoload :ServiceResourcesComplianceResponse, 'autosde_openapi_client/models/service_resources_compliance_response'
AutosdeOpenapiClient.autoload :ServiceResponse, 'autosde_openapi_client/models/service_response'
AutosdeOpenapiClient.autoload :ServiceUpdate, 'autosde_openapi_client/models/service_update'
AutosdeOpenapiClient.autoload :Snapshot, 'autosde_openapi_client/models/snapshot'
AutosdeOpenapiClient.autoload :SnapshotCreate, 'autosde_openapi_client/models/snapshot_create'
AutosdeOpenapiClient.autoload :SnapshotResponse, 'autosde_openapi_client/models/snapshot_response'
AutosdeOpenapiClient.autoload :StorageHost, 'autosde_openapi_client/models/storage_host'
AutosdeOpenapiClient.autoload :StorageHostCreate, 'autosde_openapi_client/models/storage_host_create'
AutosdeOpenapiClient.autoload :StorageHostResponse, 'autosde_openapi_client/models/storage_host_response'
AutosdeOpenapiClient.autoload :StorageHostUpdate, 'autosde_openapi_client/models/storage_host_update'
AutosdeOpenapiClient.autoload :StorageHostWWPNCandidates, 'autosde_openapi_client/models/storage_host_wwpn_candidates'
AutosdeOpenapiClient.autoload :StorageHostsMapping, 'autosde_openapi_client/models/storage_hosts_mapping'
AutosdeOpenapiClient.autoload :StorageHostsMappingCreate, 'autosde_openapi_client/models/storage_hosts_mapping_create'
AutosdeOpenapiClient.autoload :StorageHostsMappingResponse, 'autosde_openapi_client/models/storage_hosts_mapping_response'
AutosdeOpenapiClient.autoload :StorageResource, 'autosde_openapi_client/models/storage_resource'
AutosdeOpenapiClient.autoload :StorageResourceCreate, 'autosde_openapi_client/models/storage_resource_create'
AutosdeOpenapiClient.autoload :StorageResourceResponse, 'autosde_openapi_client/models/storage_resource_response'
AutosdeOpenapiClient.autoload :StorageResourceUpdate, 'autosde_openapi_client/models/storage_resource_update'
AutosdeOpenapiClient.autoload :StorageSystem, 'autosde_openapi_client/models/storage_system'
AutosdeOpenapiClient.autoload :StorageSystemCreate, 'autosde_openapi_client/models/storage_system_create'
AutosdeOpenapiClient.autoload :StorageSystemResponse, 'autosde_openapi_client/models/storage_system_response'
AutosdeOpenapiClient.autoload :StorageSystemUpdate, 'autosde_openapi_client/models/storage_system_update'
AutosdeOpenapiClient.autoload :SystemType, 'autosde_openapi_client/models/system_type'
AutosdeOpenapiClient.autoload :SystemTypeCreate, 'autosde_openapi_client/models/system_type_create'
AutosdeOpenapiClient.autoload :SystemTypeResponse, 'autosde_openapi_client/models/system_type_response'
AutosdeOpenapiClient.autoload :User, 'autosde_openapi_client/models/user'
AutosdeOpenapiClient.autoload :UserCreate, 'autosde_openapi_client/models/user_create'
AutosdeOpenapiClient.autoload :UserUpdate, 'autosde_openapi_client/models/user_update'
AutosdeOpenapiClient.autoload :ValidateSystem, 'autosde_openapi_client/models/validate_system'
AutosdeOpenapiClient.autoload :ValidateSystemData, 'autosde_openapi_client/models/validate_system_data'
AutosdeOpenapiClient.autoload :Volume, 'autosde_openapi_client/models/volume'
AutosdeOpenapiClient.autoload :VolumeClone, 'autosde_openapi_client/models/volume_clone'
AutosdeOpenapiClient.autoload :VolumeCreate, 'autosde_openapi_client/models/volume_create'
AutosdeOpenapiClient.autoload :VolumeMigration, 'autosde_openapi_client/models/volume_migration'
AutosdeOpenapiClient.autoload :VolumeResponse, 'autosde_openapi_client/models/volume_response'
AutosdeOpenapiClient.autoload :VolumeUpdate, 'autosde_openapi_client/models/volume_update'

# APIs
require 'autosde_openapi_client/api/abstract_capability_api'
require 'autosde_openapi_client/api/account_api'
require 'autosde_openapi_client/api/address_api'
require 'autosde_openapi_client/api/authentication_api'
require 'autosde_openapi_client/api/auto_sde_project_api'
require 'autosde_openapi_client/api/auto_sde_role_api'
require 'autosde_openapi_client/api/capability_translation_api'
require 'autosde_openapi_client/api/celery_config_api'
require 'autosde_openapi_client/api/event_api'
require 'autosde_openapi_client/api/host_api'
require 'autosde_openapi_client/api/host_cluster_api'
require 'autosde_openapi_client/api/host_cluster_membership_api'
require 'autosde_openapi_client/api/host_cluster_volume_mapping_api'
require 'autosde_openapi_client/api/host_volume_connection_api'
require 'autosde_openapi_client/api/job_api'
require 'autosde_openapi_client/api/native_capability_api'
require 'autosde_openapi_client/api/profile_api'
require 'autosde_openapi_client/api/provisioning_strategy_api'
require 'autosde_openapi_client/api/refresh_system_api'
require 'autosde_openapi_client/api/service_api'
require 'autosde_openapi_client/api/service_abstract_capability_value_api'
require 'autosde_openapi_client/api/service_resource_attachment_api'
require 'autosde_openapi_client/api/service_resources_compliance_api'
require 'autosde_openapi_client/api/snapshot_api'
require 'autosde_openapi_client/api/storage_host_api'
require 'autosde_openapi_client/api/storage_host_wwpn_candidates_api'
require 'autosde_openapi_client/api/storage_hosts_mapping_api'
require 'autosde_openapi_client/api/storage_resource_api'
require 'autosde_openapi_client/api/storage_system_api'
require 'autosde_openapi_client/api/system_type_api'
require 'autosde_openapi_client/api/user_api'
require 'autosde_openapi_client/api/validate_system_api'
require 'autosde_openapi_client/api/volume_api'
require 'autosde_openapi_client/api/volume_clone_api'
require 'autosde_openapi_client/api/volume_migration_api'
AutosdeOpenapiClient.autoload :AbstractCapabilityApi, 'autosde_openapi_client/api/abstract_capability_api'
AutosdeOpenapiClient.autoload :AccountApi, 'autosde_openapi_client/api/account_api'
AutosdeOpenapiClient.autoload :AddressApi, 'autosde_openapi_client/api/address_api'
AutosdeOpenapiClient.autoload :AuthenticationApi, 'autosde_openapi_client/api/authentication_api'
AutosdeOpenapiClient.autoload :AutoSDEProjectApi, 'autosde_openapi_client/api/auto_sde_project_api'
AutosdeOpenapiClient.autoload :AutoSDERoleApi, 'autosde_openapi_client/api/auto_sde_role_api'
AutosdeOpenapiClient.autoload :CapabilityTranslationApi, 'autosde_openapi_client/api/capability_translation_api'
AutosdeOpenapiClient.autoload :CeleryConfigApi, 'autosde_openapi_client/api/celery_config_api'
AutosdeOpenapiClient.autoload :EventApi, 'autosde_openapi_client/api/event_api'
AutosdeOpenapiClient.autoload :HostApi, 'autosde_openapi_client/api/host_api'
AutosdeOpenapiClient.autoload :HostClusterApi, 'autosde_openapi_client/api/host_cluster_api'
AutosdeOpenapiClient.autoload :HostClusterMembershipApi, 'autosde_openapi_client/api/host_cluster_membership_api'
AutosdeOpenapiClient.autoload :HostClusterVolumeMappingApi, 'autosde_openapi_client/api/host_cluster_volume_mapping_api'
AutosdeOpenapiClient.autoload :HostVolumeConnectionApi, 'autosde_openapi_client/api/host_volume_connection_api'
AutosdeOpenapiClient.autoload :JobApi, 'autosde_openapi_client/api/job_api'
AutosdeOpenapiClient.autoload :NativeCapabilityApi, 'autosde_openapi_client/api/native_capability_api'
AutosdeOpenapiClient.autoload :ProfileApi, 'autosde_openapi_client/api/profile_api'
AutosdeOpenapiClient.autoload :ProvisioningStrategyApi, 'autosde_openapi_client/api/provisioning_strategy_api'
AutosdeOpenapiClient.autoload :RefreshSystemApi, 'autosde_openapi_client/api/refresh_system_api'
AutosdeOpenapiClient.autoload :ServiceApi, 'autosde_openapi_client/api/service_api'
AutosdeOpenapiClient.autoload :ServiceAbstractCapabilityValueApi, 'autosde_openapi_client/api/service_abstract_capability_value_api'
AutosdeOpenapiClient.autoload :ServiceResourceAttachmentApi, 'autosde_openapi_client/api/service_resource_attachment_api'
AutosdeOpenapiClient.autoload :ServiceResourcesComplianceApi, 'autosde_openapi_client/api/service_resources_compliance_api'
AutosdeOpenapiClient.autoload :SnapshotApi, 'autosde_openapi_client/api/snapshot_api'
AutosdeOpenapiClient.autoload :StorageHostApi, 'autosde_openapi_client/api/storage_host_api'
AutosdeOpenapiClient.autoload :StorageHostWWPNCandidatesApi, 'autosde_openapi_client/api/storage_host_wwpn_candidates_api'
AutosdeOpenapiClient.autoload :StorageHostsMappingApi, 'autosde_openapi_client/api/storage_hosts_mapping_api'
AutosdeOpenapiClient.autoload :StorageResourceApi, 'autosde_openapi_client/api/storage_resource_api'
AutosdeOpenapiClient.autoload :StorageSystemApi, 'autosde_openapi_client/api/storage_system_api'
AutosdeOpenapiClient.autoload :SystemTypeApi, 'autosde_openapi_client/api/system_type_api'
AutosdeOpenapiClient.autoload :UserApi, 'autosde_openapi_client/api/user_api'
AutosdeOpenapiClient.autoload :ValidateSystemApi, 'autosde_openapi_client/api/validate_system_api'
AutosdeOpenapiClient.autoload :VolumeApi, 'autosde_openapi_client/api/volume_api'
AutosdeOpenapiClient.autoload :VolumeCloneApi, 'autosde_openapi_client/api/volume_clone_api'
AutosdeOpenapiClient.autoload :VolumeMigrationApi, 'autosde_openapi_client/api/volume_migration_api'

module AutosdeOpenapiClient
class << self
Expand Down