class Ruboty::Handlers::Niftycloud
Constants
- ACCOUNT
- ADDRESS
- AVAILABILITY_ZONE
- COMPUTING
- DB_INSTANCE
- IMAGE
- INSTANCE
- KEY_PAIR
- LIST
- LOAD_BALANCER
- NIFTYCLOUD
- RDB
- SECURITY_GROUP
- SSL_CERTIFICATE
- VOLUME
Attributes
prev[RW]
Public Class Methods
new(robot)
click to toggle source
Calls superclass method
# File lib/ruboty/handlers/niftycloud.rb, line 7 def initialize(robot) super(robot) @prev = {} end
Public Instance Methods
account_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 175 def account_list(message) Ruboty::Niftycloud::Actions::AccountList.new(message).call end
account_use(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 179 def account_use(message) Ruboty::Niftycloud::Actions::AccountUse.new(message).call end
computing_address_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 215 def computing_address_list(message) Ruboty::Niftycloud::Actions::ComputingAddressList.new(message).call end
computing_availability_zone_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 219 def computing_availability_zone_list(message) Ruboty::Niftycloud::Actions::ComputingAvailabilityZoneList.new(message).call end
computing_image_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 223 def computing_image_list(message) Ruboty::Niftycloud::Actions::ComputingImageList.new(message).call end
computing_image_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 227 def computing_image_show(message) Ruboty::Niftycloud::Actions::ComputingImageShow.new(message).call end
computing_instance_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 183 def computing_instance_list(message) Ruboty::Niftycloud::Actions::ComputingInstanceList.new(message).call end
computing_instance_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 187 def computing_instance_show(message) Ruboty::Niftycloud::Actions::ComputingInstanceShow.new(message).call end
computing_key_pair_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 231 def computing_key_pair_list(message) Ruboty::Niftycloud::Actions::ComputingKeyPairList.new(message).call end
computing_key_pair_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 235 def computing_key_pair_show(message) Ruboty::Niftycloud::Actions::ComputingKeyPairShow.new(message).call end
computing_load_balancer_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 207 def computing_load_balancer_list(message) Ruboty::Niftycloud::Actions::ComputingLoadBalancerList.new(message).call end
computing_load_balancer_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 211 def computing_load_balancer_show(message) Ruboty::Niftycloud::Actions::ComputingLoadBalancerShow.new(message).call end
computing_region_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 255 def computing_region_list(message) Ruboty::Niftycloud::Actions::ComputingRegionList.new(message).call end
computing_region_use(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 259 def computing_region_use(message) Ruboty::Niftycloud::Actions::ComputingRegionUse.new(message).call end
computing_security_group_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 191 def computing_security_group_list(message) Ruboty::Niftycloud::Actions::ComputingSecurityGroupList.new(message).call end
computing_security_group_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 195 def computing_security_group_show(message) Ruboty::Niftycloud::Actions::ComputingSecurityGroupShow.new(message).call end
computing_ssl_certificate_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 239 def computing_ssl_certificate_list(message) Ruboty::Niftycloud::Actions::ComputingSslCertificateList.new(message).call end
computing_ssl_certificate_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 243 def computing_ssl_certificate_show(message) Ruboty::Niftycloud::Actions::ComputingSslCertificateShow.new(message).call end
computing_volume_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 199 def computing_volume_list(message) Ruboty::Niftycloud::Actions::ComputingVolumeList.new(message).call end
computing_volume_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 203 def computing_volume_show(message) Ruboty::Niftycloud::Actions::ComputingVolumeShow.new(message).call end
event_watch(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 263 def event_watch(message) return if @thread message.reply "started to watch events" @thread = Thread.new do base = Ruboty::Niftycloud::Actions::Base.new(message) loop do base.accounts.each do |account| base.current_account(account[:name]) base.computing.regions.each do |region| base.current_region(region['regionName']) resources = { %w(computing volumes) => {id: 'volumeId', label: 'ディスク'}, %w(computing key_pairs) => {id: 'keyName', label: 'SSH キー'}, %w(computing images) => {id: 'imageId', label: 'イメージ'}, %w(computing ssl_certificates) => {id: 'fqdnId', label: 'SSL 証明書'}, %w(computing addresses) => {id: ['publicIp', 'privateIpAddress'], label: '付替 IP アドレス'}, %w(computing uploads) => {id: 'conversionTaskId', label: 'アップロード'}, %w(computing instances) => {id: 'instanceId', label: 'サーバー'}, %w(rdb db_instances) => {id: 'DBInstanceIdentifier', label: 'DB サーバー'}, %w(rdb db_snapshots) => {id: 'instanceId', label: 'DB スナップショット'}, %w(computing security_groups) => {id: 'groupName', ignore: 'ipPermissions', label: 'ファイアウォールグループ'}, %w(rdb db_security_groups) => {id: 'DBSecurityGroupName', ignore: ['EC2SecurityGroups', 'IPRanges'], label: 'DB ファイアウォールグループ'}, %w(rdb db_parameter_groups) => {id: 'DBParameterGroupName', label: 'DB パラメーターグループ'}, } resources.each do |options, d2e| begin service, resource = options key = [account[:name], region['regionName'], resource].join(':') prev = @prev[key] curr = base.send(service).send(resource) if prev events = D2E.new(d2e).d2e(prev, curr) events.each do |event| ja = case event['type'] when 'create'; '作成' when 'delete'; '削除' when 'update'; '更新' end if event['type'] == 'create' || event['type'] == 'delete' table = Table(event['item'].keys) table << event['item'].values message.reply [ "#{account[:name]} (#{account[:description]}) の #{region['regionName']} で下記#{d2e[:label]}が#{ja}されました", table.to_s ] else table = Table(event['diff'].keys) table << event['diff'].values.map {|val| "#{val[0]} -> #{val[1]}" } message.reply [ "#{account[:name]} (#{account[:description]}) の #{region['regionName']} で下記#{d2e[:label]}(#{event['id']})が#{ja}されました", table.to_s ].join("\n") end end end @prev[key] = curr rescue StandardError => e message.reply "Error: #{e}" end end end end sleep 5 end end.run end
rdb_db_instance_list(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 247 def rdb_db_instance_list(message) Ruboty::Niftycloud::Actions::RdbDbInstanceList.new(message).call end
rdb_db_instance_show(message)
click to toggle source
# File lib/ruboty/handlers/niftycloud.rb, line 251 def rdb_db_instance_show(message) Ruboty::Niftycloud::Actions::RdbDbInstanceShow.new(message).call end