Class: NIFTY::Cloud::Base
- Defined in:
- lib/NIFTY/Cloud.rb,
lib/NIFTY/Cloud/images.rb,
lib/NIFTY/Cloud/volumes.rb,
lib/NIFTY/Cloud/keypairs.rb,
lib/NIFTY/Cloud/instances.rb,
lib/NIFTY/Cloud/certificates.rb,
lib/NIFTY/Cloud/load_balancers.rb,
lib/NIFTY/Cloud/security_groups.rb,
lib/NIFTY/Cloud/availability_zones.rb
Constant Summary collapse
- IMAGES_MODIFY_ATTRIBUTE =
['description', 'imageName']
- IMAGES_DESCRIBE_OWNER =
['niftycloud', 'self']
- IMAGES_IGNORED_PARAMS =
Regexp.union(/Description/, /NoReboot/, /ExecutableBy\.\d+/, /LaunchPermission\.Add\.\d+\.UserId/, /LaunchPermission\.Add\.\d+\.Group/, /LaunchPermission\.Remove\.\d+\.UserId/, /LaunchPermission\.Remove\.\d+\.Group/, /ProductCode\.\d+/)
- VOLUMES_CREATE_SIZE =
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '15', '20']
- VOLUMES_CREATE_DISK_TYPE =
['1', '2', '3', '4', '5', '6']
- VOLUMES_IGNORED_PARAMS =
Regexp.union(/SnapshotId/, /AvailabilityZone/, /Device/, /Force/)
- ALPHANUMERIC =
/^[a-zA-Z0-9]+$/
- INSTANCE_TYPE =
['mini', 'small', 'small2', 'small4', 'medium', 'medium4', 'medium8', 'large', 'large8', 'large16']
- ACCOUNTING_TYPE =
['1', '2']
- BOOLEAN =
['true', 'false']
- IP_TYPE =
['static', 'dynamic']
- INSTANCES_DESCRIBE_ATTRIBUTE =
[ 'instanceType', 'disableApiTermination', 'blockDeviceMapping', 'accountingType', 'loadbalancing', 'copyInfo', 'autoscaling', 'ipType', 'groupId', 'description']
- INSTANCES_MODIFY_ATTRIBUTE =
['instanceType', 'disableApiTermination', 'instanceName', 'description', 'ipType', 'groupId']
- INSTANCES_IGNORED_PARAMS =
Regexp.union(/MinCount/, /MaxCount/, /AddisionalInfo/, /UserData/, /AddressingType/, /Placement.GroupName/, /KernelId/, /RamdiskId/, /BlockDeviceMapping.*/, /Monitoring\.Enabled/, /SubnetId/, /InstanceInitiatedShutdownBehavior/)
- VALIDITY_TERM =
['6', '12', '24']
- KEY_LENGTH =
['1024', '2048']
- CERTIFICATE_DESCRIBE_ATTRIBUTE =
['count', 'certState', 'period', 'keyLength', 'uploadState', 'description', 'certInfo']
- FILE_TYPE =
['1', '2', '3']
- LOAD_BALANCER_PROTOCOL =
['HTTP', 'HTTPS', 'FTP']
- BALANCING_TYPE =
['1', '2']
- NETWORK_VOLUMES =
['10', '20', '30', '40', '100', '200']
- IP_VERSION =
['v4', 'v6']
- FILTER_TYPE =
['1', '2']
- LOAD_BALANCER_NAME =
/^[a-zA-Z0-9]{1,15}$/
- LOAD_BALANCERS_IGNORED_PARAMS =
Regexp.union(/AvailabilityZones .member.*/, /HealthCheck .Timeout/)
- FILTER_NAME =
['description', 'group-name']
- IP_PROTOCOL =
['TCP', 'UDP', 'ICMP', 'SSH', 'HTTP', 'HTTPS', 'SMTP', 'POP3', 'IMAP']
- IN_OUT =
['IN', 'OUT']
- DATE_FORMAT =
%r!^(\d{8}|\d{4}-\d{2}-\d{2}|\d{4}/\d{2}/\d{2})$!
- GROUP_NAME =
Regexp.union(/^[a-zA-Z0-9]+$/, 'default(Linux)', 'default(Windows)')
- SECURITY_GROUPS_IGNORED_PARAMS =
Regexp.union(/UserId/, /IpPermissions\.\d+\.ToPort/, /IpPermissions\.\d+\.Groups\.\d+\.UserId/)
- ZONES_IGNORED_PARAMS =
Regexp.new(/ZoneName\.\d+/)
- @@ignore_amz_params =
この値が真のときNIFTY Cloud API側で無視されるパラメータは送信されない
false
Constants inherited from Base
Base::DEFAULT_CONNECTION_TIMEOUT, Base::DEFAULT_CONTENT_TYPE, Base::DEFAULT_PORT, Base::DEFAULT_SOCKET_TIMEOUT, Base::PORT_RANGE, Base::PROTOCOL_HTTPS, Base::SIGNATURE_METHOD_SHA1, Base::SIGNATURE_METHOD_SHA256, Base::SIGNATURE_VERSION
Instance Attribute Summary
Attributes inherited from Base
#access_key, #connection_timeout, #max_retry, #path, #port, #proxy_server, #secret_key, #server, #signature_method, #signature_version, #socket_timeout, #use_ssl, #user_agent
Instance Method Summary collapse
-
#attach_volume(options = {}) ⇒ Object
API「AttachVolume」を実行し、指定したディスクをサーバーへ接続します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。接続済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。.
-
#authorize_security_group_ingress(options = {}) ⇒ Object
API「AuthorizeSecurityGroupIngress」を実行し、指定したファイアウォールグループへ許可ルールを追加します。 許可ルールの上限数を超える場合は、エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。.
-
#cancel_copy_instances(options = {}) ⇒ Object
API「CancelCopyInstances」を実行し、指定したサーバーの作成(コピーによる作成)をキャンセルします。 作成待ちのサーバーのみ指定ができます。 サーバーを指定するためには、サーバー名が必要です。作成待ち以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。.
-
#configure_health_check(options = {}) ⇒ Object
API「ConfigureHealthCheck」を実行し、指定したロードバランサーのヘルスチェックの設定を変更します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ヘルスチェックの実行結果は、API「DescribeInstanceHealth」で確認できます。.
-
#copy_instances(options = {}) ⇒ Object
API「CopyInstances」を実行し、指定したサーバーのコピーを作成します。 停止中のサーバーのみ指定ができます。コピー後のサーバー名は、指定したコピー後のサーバー名の後ろに「-連番」が付加され た名称になります。 サーバーを指定するためには、サーバー名が必要です。停止中以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。.
-
#create_image(options = {}) ⇒ Object
API「CreateImage」を実行し、指定したサーバーをイメージ化し、カスタマイズイメージとして保存します。 サーバーをイメージ化するためには、サーバーを停止する必要があります。 カスタマイズイメージの作成には、時間がかかることがあります。このAPI のレスポンス「imageState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeImages」のレスポンス「imageState」でカスタマイズイメージのステータスを確認できます。 処理が失敗した場合、カスタマイズイメージは保存されず、エラーが返されます。.
-
#create_key_pair(options = {}) ⇒ Object
API「CreateKeyPair」を実行し、SSH キーを新規作成します。 SSHキーには、SSHキー名およびパスワードを設定します。SSHキー名には、同じユーザーが作るキーのうち、一意となる文字列を 指定します。設定したパスワードが使用可能文字ルールに適合しない場合は、エラーが返されます。.
-
#create_load_balancer(options = {}) ⇒ Object
API「CreateLoadBalancer」を実行し、ロードバランサーの定義を作成します。 ロードバランサーの定義を作成します。1 回のリクエストで、1 つのポート定義を作成できます。 すでに存在するロードバランサー名を指定した、存在するポート番号を指定した場合は、エラーが返されます。 ロードバランサーの定義の作成に成功した場合は、以下のAPI を実行する必要があります。 ・ API「RegisterInstancesWithLoadBalancer」(サーバー設定) ・ API「ConfigureHealthCheck」(ヘルスチェック設定) フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。 ・ API「SetFilterForLoadBalancer」(フィルター設定).
-
#create_security_group(options = {}) ⇒ Object
API「CreateSecurityGroup」を実行し、ファイアウォールグループを新規作成します。 ファイアウォールの有償版に申し込んでいない場合は、エラーが返されます。 すでに存在するファイアウォールグループ名を指定した、作成可能なファイアウォールグループの上限数を超える場合は、エラーが返されます。 ファイアウォールの有償版を申し込むには、コントロールパネルで設定する必要があります。.
-
#create_ssl_certificate(options = {}) ⇒ Object
API「CreateSslCertificate」を実行し、SSL 証明書の新規作成または更新を行います。 申請法人情報が未登録の場合は、エラーが返されます。 パラメーター「fqdnId」を指定した場合、指定したSSL 証明書を更新します。指定したSSL 証明書の有効期間が更新可能ではない、 アップロードした証明書を指定した、存在しないSSL 証明書を指定した場合など、無効なSSL 証明書を指定した場合は、エラーが返されます。 パラメーター「fqdnId」を指定しない場合、SSL 証明書を新規作成します。作成可能なSSL 証明書の上限数を超える場合は、エラーが返されます。 また申請法人情報を登録するには、API「RegisterCorporateInfoForCertificate」を実行します。.
-
#create_volume(options = {}) ⇒ Object
API「CreateVolume」を実行し、ディスクを新規作成します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定した、停止済み 以外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。同様に、ディスクサイズおよびディスク タイプに規定外の値を指定した、すでに存在するディスク名を指定したなどの場合は、エラーが返されます。.
-
#delete_image(options = {}) ⇒ Object
API「DeleteImage」を実行し、指定したカスタマイズイメージを削除します。 削除中のカスタマイズイメージを指定してサーバー作成を行った場合は、サーバー作成からエラーが返されます。 カスタマイズイメージを選択して作成されたサーバーのOSイメージ名は、カスタマイズイメージの削除が完了すると、イメージ化した サーバーのOS 名が返されます。.
-
#delete_key_pair(options = {}) ⇒ Object
API「DeleteKeyPair」を実行し、SSH キーの情報を削除します。 SSHキーを指定するためには、SSHキー名が必要です。削除済みのSSHキーを指定した、管理外のSSHキーを指定したなど、 無効なSSH キーを指定した場合は、エラーが返されます。.
-
#delete_load_balancer(options = {}) ⇒ Object
API「DeleteLoadBalancer」を実行し、指定したロードバランサーのポート定義を削除します。 関連するフィルター設定・サーバー設定・ヘルスチェック設定もあわせて削除します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。.
-
#delete_security_group(options = {}) ⇒ Object
API「DeleteSecurityGroup」を実行し、指定したファイアウォールグループを削除します。 指定したファイアウォールグループを適用しているサーバーが存在する場合、エラーが返されます。同様に、適用しているオートスケール設定が存在する場合、 エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。 削除済みのファイアウォールグループを指定した、管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、 エラーが返されます。.
-
#delete_ssl_certificate(options = {}) ⇒ Object
API「DeleteSslCertificate」を実行し、指定したSSL 証明書を削除します。 指定したSSL 証明書のステータスが「期限切れ」「失効」「発行エラー」以外の場合は、エラーが返されます。 またアップロードしたSSL証明書は、ステータスに関わらず削除できます。 SSL 証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL 証明書を指定した、 管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。.
-
#delete_volume(options = {}) ⇒ Object
API「DeleteVolume」を実行し、指定したディスクを削除します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 削除には、時間がかかることがあります。 なお、サーバーに接続しているディスクを指定した場合には、エラーが返されます。ディスクの接続ステータスは、API 「DescribeVolumes」のレスポンス「attachmentSet.status」で確認できます。.
-
#deregister_instances_from_load_balancer(options = {}) ⇒ Object
API「DeregisterInstancesFromLoadBalancer」を実行し、指定したロードバランサーから、指定したサーバーを解除します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。該当するロードバランサーに設定されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#deregister_instances_from_security_group(options = {}) ⇒ Object
API「DeregisterInstancesFromSecurityGroup」を実行し、指定したファイアウォールグループから、指定したサーバーをはずします。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。指定したファイアウォールグループに適用されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#describe_availability_zones(options = {}) ⇒ Object
API「DescribeAvailabilityZones」を実行し、利用可能なゾーンの情報を取得します。常に、ゾーン「ap-japan-1a」の情報が返されます。.
-
#describe_images(options = {}) ⇒ Object
API「DescribeImages」を実行し、OS イメージの情報を取得します。 特定のOS イメージを指定するためには、OS イメージID またはOS イメージ名が必要です。OS イメージを指定しない場合は、 取得可能なすべてのOS イメージ情報を取得します。無効なOS イメージを指定した場合は、エラーが返されます。.
-
#describe_instance_attribute(options = {}) ⇒ Object
API「DescribeInstanceAttribute」を実行し、指定したサーバーの詳細情報を取得します。1回のリクエストで、指定したサーバーのどれか1つの詳細情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。.
-
#describe_instance_health(options = {}) ⇒ Object
API「DescribeInstanceHealth」を実行し、指定したロードバランサーに設定されている、サーバーのヘルスチェック結果を取得します。ヘルスチェックは、API 「ConfigureHealthCheck」で設定します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、 無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、指定したロードバランサーに設定されているすべてのサーバーを対象として、 ヘルスチェック結果を取得します。 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#describe_instances(options = {}) ⇒ Object
API「DescribeInstances」を実行し、指定したサーバーの情報を取得します。1 回のリクエストで、複数のサーバー情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、取得可能なすべてのサーバー情報を取 得します。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なID を指定した場合は、エラーが返されます。.
-
#describe_key_pairs(options = {}) ⇒ Object
API「DescribeKeyPairs」を実行し、指定したSSH キーの情報を取得します。 SSHキーを指定するためには、SSHキー名が必要です。SSHキーを指定しない場合は、取得できるすべてのSSHキー情報を取得します。 削除済みのSSH キーを指定した、管理外のSSH キーを指定したなど、無効なSSH キーを指定した場合は、エラーが返されます。.
-
#describe_load_balancers(options = {}) ⇒ Object
API「DescribeLoadBalancers」を実行し、指定したロードバランサーの情報を取得します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。ロードバランサーを指定しない場合は、取得可能なすべての ロードバランサー情報を取得します。 削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。.
-
#describe_security_activities(options = {}) ⇒ Object
API「DescribeSecurityActivities」を実行し、指定したファイアウォールグループのログ情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。.
-
#describe_security_groups(options = {}) ⇒ Object
API「DescribeSecurityGroups」を実行し、指定したファイアウォールグループの設定情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。指定しない場合は、取得可能なすべての ファイアウォールグループの設定情報を取得します。.
-
#describe_ssl_certificate_attribute(options = {}) ⇒ Object
API「DescribeSslCertificateAttribute」を実行し、指定したSSL証明書の詳細情報を取得します。 1回のリクエストで、指定したSSL証明書のどれか1つの詳細情報を取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。.
-
#describe_ssl_certificates(options = {}) ⇒ Object
API「DescribeSslCertificates」を実行し、指定したSSL 証明書の情報を取得します。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)またはFQDN が必要です。 指定しない場合は、取得可能なすべてのSSL証明書の情報を取得します。.
-
#describe_volumes(options = {}) ⇒ Object
API「DescribeVolumes」を実行し、指定したディスクの情報を取得します。 ディスクを指定するためには、ディスク名が必要です。削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 ディスクを指定しない場合、取得できるすべてのディスク情報を取得します。.
-
#detach_volume(options = {}) ⇒ Object
API「DetachVolume」を実行し、指定したディスクとサーバーの接続を解除します。 ディスクを指定するためには、ディスク名が必要です。解除済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。解除済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。サーバー名を指定せずに解除すると、指定したディスクのすべての接続情報を解除します。.
-
#download_ssl_certificate(options = {}) ⇒ Object
API「DownloadSslCertificate」を実行し、指定したSSL証明書をダウンロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書のいずれかを取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL証明書を指定した場合は、エラーが返されます。 またSSL証明書の発行状況により、指定したファイルがダウンロードできない場合があります。.
-
#initialize(options = {}) ⇒ Base
constructor
A new instance of Base.
-
#modify_image_attribute(options = {}) ⇒ Object
API「ModifyImageAttribute」を実行し、指定したカスタマイズイメージの詳細情報を更新します。1 回のリクエストで、1 つのカスタマイズイメージの情報を更新できます。 カスタマイズイメージを指定するためには、イメージID が必要です。削除済みのイメージID を指定した、管理外のイメージID を指定したなど、 無効なイメージID を指定した場合は、エラーが返されます。.
-
#modify_instance_attribute(options = {}) ⇒ Object
API「ModifyInstanceAttribute」を実行し、指定したサーバーの詳細情報を更新します。1 回のリクエストで、1 つのサーバーの情報を更新できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 なお、起動済みのサーバーを指定した場合は、エラーが返されます。サーバーのステータスは、API「DescribeInstances」のレスポン ス値「instanceState」で確認できます。.
-
#modify_ssl_certificate_attribute(options = {}) ⇒ Object
API「ModifySslCertificateAttribute」を実行し、指定したSSL 証明書の詳細情報を更新します。1 回のリクエストで、1 つのSSL 証明書の1 つの詳細情報を更新できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。.
-
#reboot_instances(options = {}) ⇒ Object
API「RebootInstances」を実行し、指定したサーバーを再起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの再起動には、時間がかかることがあります。サーバーのステータスは、API「DescribeInstances」のレスポンス値 「instanceState」で確認できます。.
-
#register_corporate_info_for_certificate(options = {}) ⇒ Object
API「RegisterCorporateInfoForCertificate」を実行し、SSL証明書を管理する申請法人情報を登録または更新します。 利用規約(cp.cloud.nifty.com/ssl/trust.txt)をご確認の上、パラメーター「agreement」を指定します。.
-
#register_instances_with_load_balancer(options = {}) ⇒ Object
API「RegisterInstancesWithLoadBalancer」を実行し、 指定したロードバランサーにサーバーを追加します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。IP アドレスを固定化しているサーバーを指定できます。IP アドレス を固定化していないサーバーを指定した、ほかのロードバランサーに設定されているサーバーを指定した、削除済みのサーバーを指定した、 管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#register_instances_with_security_group(options = {}) ⇒ Object
API「RegisterInstancesWithSecurityGroup」を実行し、指定したファイアウォールグループを、指定したサーバーへ適用します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。すでにファイアウォールグループに適用されているサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#register_port_with_load_balancer(options = {}) ⇒ Object
API「RegisterPortWithLoadBalancer」を実行し、指定したロードバランサーにポートを追加します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ポートの追加に成功した場合は、以下のAPI を実行する必要があります。 ・ API「RegisterInstancesWithLoadBalancer」(サーバー設定) ・ API「ConfigureHealthCheck」(ヘルスチェック設定) フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。 API「SetFilterForLoadBalancer」(フィルター設定).
-
#revoke_security_group_ingress(options = {}) ⇒ Object
API「RevokeSecurityGroupIngress」を実行し、指定したファイアウォールグループから許可ルールを削除します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 また許可ルールを指定するためには、設定されている 許可プロトコル名・許可ポート・許可するファイアウォールグループまたは許可するIPアドレスが必要です。 該当する許可ルールが存在しない場合は、エラーが返されます。.
-
#run_instances(options = {}) ⇒ Object
API「RunInstances」を実行し、サーバーを新規作成します。1 回のリクエストで、1 つのサーバーを作成できます。 サーバーの作成には、時間がかかることがあります。このAPI のレスポンス「instanceState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 処理が失敗した場合、サーバーは作成されず、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。.
-
#set_filter_for_load_balancer(options = {}) ⇒ Object
API「SetFilterForLoadBalancer」を実行し、指定したロードバランサーにアクセスフィルターを設定します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。.
-
#start_instances(options = {}) ⇒ Object
API「StartInstances」を実行し、指定したサーバーを起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの起動には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた場 合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。.
-
#stop_instances(options = {}) ⇒ Object
API「StopInstances」を実行し、指定したサーバーを停止します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの停止には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 なお、強制オプションに「true」を指定して実行した際に、サーバーが停止できない状態などのエラーが返されることがあります。 強制オプションに「true」を指定して実行した場合には、システムチェックや修復を行うことをおすすめします。.
-
#terminate_instances(options = {}) ⇒ Object
API「TerminateInstances」を実行し、指定したサーバーを削除します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの削除には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 また、API「DescribeInstances」のレスポンスに該当情報がない場合は、削除処理は成功しています。.
-
#update_load_balancer(options = {}) ⇒ Object
API「UpdateLoadBalancer」を実行し、指定したロードバランサーの定義を変更します。 ポート定義を更新する場合は、ポート番号もあわせて指定します。 削除済みのロードバランサー名・待ち受けポートを指定した、管理外のロードバランサー名を指定した場合は、エラーが返されます。.
-
#update_security_group(options = {}) ⇒ Object
API「UpdateSecurityGroup」を実行し、ファイアウォールグループの設定情報を更新します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。.
-
#upload_ssl_certificate(options = {}) ⇒ Object
API「UploadSslCertificate」を実行し、指定したSSL証明書をアップロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書の1 セットをアップロードできます。 作成可能なSSL証明書の上限数を超える場合は、エラーが返されます。 またアップロードしたファイルの解析に失敗した場合は、エラーが返されます。.
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/NIFTY/Cloud.rb', line 7 def initialize( ={} ) @default_access_key = ACCESS_KEY @default_secret_key = SECRET_KEY @default_endpoint = ENDPOINT_URL @default_proxy_server = PROXY_SERVER @default_user_agent = USER_AGENT @default_max_retry = MAX_RETRY @default_connection_timeout = CONNECTION_TIMEOUT @default_socket_timeout = SOCKET_TIMEOUT @default_signature_method = SIGNATURE_METHOD @default_signature_version = SIGNATURE_VERSION super() end |
Instance Method Details
#attach_volume(options = {}) ⇒ Object
API「AttachVolume」を実行し、指定したディスクをサーバーへ接続します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。接続済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :volume_id
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 24 def attach_volume( = {} ) raise ArgumentError, "No :volume_id provided." if blank?([:volume_id]) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'AttachVolume' } params.merge!(opts_to_prms(, [:volume_id, :instance_id, :device])) params.reject! {|k, v| VOLUMES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#authorize_security_group_ingress(options = {}) ⇒ Object
API「AuthorizeSecurityGroupIngress」を実行し、指定したファイアウォールグループへ許可ルールを追加します。 許可ルールの上限数を超える場合は、エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。
@option [String] :group_name
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 36 def ( = {} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :ip_permissions provided." if blank?([:ip_permissions]) [[:ip_permissions]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) raise ArgumentError, "Invalid :ip_protocol provided." unless blank?(opt[:ip_protocol]) || IP_PROTOCOL.include?(opt[:ip_protocol].to_s.upcase) raise ArgumentError, "No :from_port provided." if /TCP|UDP/ =~ opt[:ip_protocol] && blank?(opt[:from_port]) raise ArgumentError, "Invalid :from_port provided." unless blank?(opt[:from_port]) || valid_port?(opt[:from_port]) raise ArgumentError, "Invalid :to_port provided." unless blank?(opt[:to_port]) || valid_port?(opt[:to_port]) raise ArgumentError, "Invalid :in_out provided." unless blank?(opt[:in_out]) || IN_OUT.include?(opt[:in_out].to_s.upcase) raise ArgumentError, ":group_name or :cidr_ip must be provided." if blank?(opt[:group_name]) && blank?(opt[:cidr_ip]) raise ArgumentError, "Invalid :group_name provided." unless blank?(opt[:group_name]) || GROUP_NAME =~ opt[:group_name].to_s [opt[:cidr_ip]].flatten.each do |ip| begin IPAddr.new(ip.to_s) rescue raise ArgumentError, "Invalid :cidr_ip provided." end end unless blank?(opt[:cidr_ip]) opt[:user_id] = [opt[:user_id]].flatten unless blank?(opt[:user_id]) opt[:group_name] = [opt[:group_name]].flatten unless blank?(opt[:group_name]) opt[:cidr_ip] = [opt[:cidr_ip]].flatten unless blank?(opt[:cidr_ip]) end unless blank?([:ip_permissions]) params = {'Action' => 'AuthorizeSecurityGroupIngress'} params.merge!(opts_to_prms(, [:user_id, :group_name])) unless blank?([:ip_permissions]) params.merge!(pathhashlist('IpPermissions', [:ip_permissions], { :ip_protocol => 'IpProtocol', :from_port => 'FromPort', :to_port => 'ToPort', :in_out => 'InOut', :user_id => 'Groups', :group_name => 'Groups', :cidr_ip => 'IpRanges'}, { :user_id => 'UserId', :group_name => 'GroupName', :cidr_ip => 'CidrIp'})) end params.reject! {|k, v| SECURITY_GROUPS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#cancel_copy_instances(options = {}) ⇒ Object
API「CancelCopyInstances」を実行し、指定したサーバーの作成(コピーによる作成)をキャンセルします。 作成待ちのサーバーのみ指定ができます。 サーバーを指定するためには、サーバー名が必要です。作成待ち以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :instance_id
360 361 362 363 364 365 366 367 368 369 |
# File 'lib/NIFTY/Cloud/instances.rb', line 360 def cancel_copy_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'CancelCopyInstances', 'InstanceId' => [:instance_id].to_s } return response_generator(params) end |
#configure_health_check(options = {}) ⇒ Object
API「ConfigureHealthCheck」を実行し、指定したロードバランサーのヘルスチェックの設定を変更します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ヘルスチェックの実行結果は、API「DescribeInstanceHealth」で確認できます。
@option [String] :load_balancer_name
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 35 def configure_health_check( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "No :target provided." if blank?([:target]) raise ArgumentError, "Invalid :target provided." unless /^(TCP:(\d{1,5})|ICMP)$/ =~ [:target] raise ArgumentError, "Invalid :target provided." unless [:target].to_s == 'ICMP' || valid_port?($2) raise ArgumentError, "No :interval provided." if blank?([:interval]) raise ArgumentError, "Invalid :interval provided." unless ('10'..'300').to_a.include?([:interval].to_s) raise ArgumentError, "No :unhealthy_threshold provided." if blank?([:unhealthy_threshold]) raise ArgumentError, "Invalid :unhealthy_threshold provided." unless ('1'..'10').to_a.include?([:unhealthy_threshold].to_s) raise ArgumentError, "Invalid :healthy_threshold provided." unless blank?([:healthy_threshold]) || '1' == [:healthy_threshold].to_s params = {'Action' => 'ConfigureHealthCheck'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(opts_to_prms(, [:target, :interval, :timeout, :unhealthy_threshold, :healthy_threshold], 'HealthCheck')) params.reject! {|k, v| LOAD_BALANCERS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#copy_instances(options = {}) ⇒ Object
API「CopyInstances」を実行し、指定したサーバーのコピーを作成します。 停止中のサーバーのみ指定ができます。コピー後のサーバー名は、指定したコピー後のサーバー名の後ろに「-連番」が付加され た名称になります。 サーバーを指定するためには、サーバー名が必要です。停止中以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。
@option [String] :instance_id
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 |
# File 'lib/NIFTY/Cloud/instances.rb', line 309 def copy_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "No :instance_name provided." if blank?([:instance_name]) raise ArgumentError, "Invalid :instance_type provided." unless blank?([:instance_type]) || INSTANCE_TYPE.include?([:instance_type].to_s) raise ArgumentError, "Invalid :accounting_type provided." unless blank?([:accounting_type]) || ACCOUNTING_TYPE.include?([:accounting_type].to_s) raise ArgumentError, "Invalid :ip_type provided." unless blank?([:ip_type]) || IP_TYPE.include?([:ip_type].to_s) unless blank?([:load_balancers]) [[:load_balancers]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) unless blank?(opt[:load_balancer_name]) && blank?(opt[:load_balancer_port]) && blank?(opt[:instance_port]) raise ArgumentError, "No :load_balancer_name provided." if blank?(opt[:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ opt[:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?(opt[:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?(opt[:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?(opt[:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?(opt[:instance_port]) end end end #raise ArgumentError, "No :security_group provided." if blank?(options[:security_group]) raise ArgumentError, "Invalid :security_group provided." unless blank?([:security_group]) || GROUP_NAME =~ [:security_group].to_s raise ArgumentError, "Invalid :copy_count provided." unless blank?([:copy_count]) || [:copy_count].to_s.to_i >= 1 params = { 'Action' => 'CopyInstances', 'CopyInstance.ipType' => [:ip_type].to_s } params.merge!(pathhashlist('CopyInstance.LoadBalancers', [:load_balancers], {:load_balancer_name => 'LoadBalancerName', :load_balancer_port => 'LoadBalancerPort', :instance_port => 'InstancePort'})) unless blank?([:load_balancers]) params.merge!(pathlist('CopyInstance.SecurityGroup', [:security_group])) params.merge!(opts_to_prms(, [:instance_id, :copy_count])) params.merge!(opts_to_prms(, [:instance_name, :instance_type, :accounting_type], 'CopyInstance')) return response_generator(params) end |
#create_image(options = {}) ⇒ Object
API「CreateImage」を実行し、指定したサーバーをイメージ化し、カスタマイズイメージとして保存します。 サーバーをイメージ化するためには、サーバーを停止する必要があります。 カスタマイズイメージの作成には、時間がかかることがあります。このAPI のレスポンス「imageState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeImages」のレスポンス「imageState」でカスタマイズイメージのステータスを確認できます。 処理が失敗した場合、カスタマイズイメージは保存されず、エラーが返されます。
@option [String] :instance_id
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/NIFTY/Cloud/images.rb', line 59 def create_image( = {} ) raise ArgumentError, "No :instance_id provided" if blank?([:instance_id]) raise ArgumentError, "No :name provided" if blank?([:name]) raise ArgumentError, "Invalid :left_instance provided. only 'true' or 'false' allowed." unless blank?([:left_instance]) || BOOLEAN.include?([:left_instance].to_s) params = { 'Action' => 'CreateImage' } params.merge!(opts_to_prms(, [:instance_id, :name, :description, :no_reboot, :left_instance])) params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#create_key_pair(options = {}) ⇒ Object
API「CreateKeyPair」を実行し、SSH キーを新規作成します。 SSHキーには、SSHキー名およびパスワードを設定します。SSHキー名には、同じユーザーが作るキーのうち、一意となる文字列を 指定します。設定したパスワードが使用可能文字ルールに適合しない場合は、エラーが返されます。
@option [String] :key_name SSH
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/NIFTY/Cloud/keypairs.rb', line 18 def create_key_pair( = {} ) = { :key_name => "" }.merge() raise ArgumentError, "No :key_name provided." if blank?([:key_name]) raise ArgumentError, "Invalid :key_name provided." unless ALPHANUMERIC =~ [:key_name].to_s raise ArgumentError, "No :password provided." if blank?([:password]) raise ArgumentError, "Invalid :password provided." unless ALPHANUMERIC =~ [:password].to_s params = {'Action' => 'CreateKeyPair'} params.merge!(opts_to_prms(, [:key_name, :password])) return response_generator(params) end |
#create_load_balancer(options = {}) ⇒ Object
API「CreateLoadBalancer」を実行し、ロードバランサーの定義を作成します。 ロードバランサーの定義を作成します。1 回のリクエストで、1 つのポート定義を作成できます。 すでに存在するロードバランサー名を指定した、存在するポート番号を指定した場合は、エラーが返されます。 ロードバランサーの定義の作成に成功した場合は、以下のAPI を実行する必要があります。
フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 88 def create_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :listeners provided." if blank?([:listeners]) [[:listeners]].flatten.each do |member| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless member.is_a?(Hash) raise ArgumentError, ":protocol or :load_balancer_port must be provided." if blank?(member[:protocol])&& blank?(member[:load_balancer_port]) raise ArgumentError, "Invalid :protocol provided." unless blank?(member[:protocol]) || LOAD_BALANCER_PROTOCOL.include?(member[:protocol].to_s.upcase) raise ArgumentError, "Invalid :load_balancer_port provided." unless blank?(member[:load_balancer_port]) || valid_port?(member[:load_balancer_port]) raise ArgumentError, "Invalid :instance_port provided." unless blank?(member[:instance_port]) || valid_port?(member[:instance_port]) raise ArgumentError, "Invalid :balancing_type provided." unless blank?(member[:balancing_type]) || BALANCING_TYPE.include?(member[:balancing_type].to_s) end raise ArgumentError, "Invalid :network_volume provided." unless blank?([:network_volume]) || NETWORK_VOLUMES.include?([:network_volume].to_s) raise ArgumentError, "Invalid :ip_version provided." unless blank?([:ip_version]) || IP_VERSION.include?([:ip_version].to_s) params = {'Action' => 'CreateLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :network_volume, :ip_version])) params.merge!(pathhashlist('Listeners.member', [:listeners], {:protocol => 'Protocol', :load_balancer_port => 'LoadBalancerPort', :instance_port => 'InstancePort', :balancing_type => 'BalancingType'})) params.merge!(pathlist('AvailabilityZones.member', [:availability_zones])) params.reject! {|k, v| LOAD_BALANCERS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#create_security_group(options = {}) ⇒ Object
API「CreateSecurityGroup」を実行し、ファイアウォールグループを新規作成します。 ファイアウォールの有償版に申し込んでいない場合は、エラーが返されます。 すでに存在するファイアウォールグループ名を指定した、作成可能なファイアウォールグループの上限数を超える場合は、エラーが返されます。 ファイアウォールの有償版を申し込むには、コントロールパネルで設定する必要があります。
@option [String] :group_name
93 94 95 96 97 98 99 100 101 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 93 def create_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless ALPHANUMERIC =~ [:group_name].to_s params = {'Action' => 'CreateSecurityGroup'} params.merge!(opts_to_prms(, [:group_name, :group_description])) return response_generator(params) end |
#create_ssl_certificate(options = {}) ⇒ Object
API「CreateSslCertificate」を実行し、SSL 証明書の新規作成または更新を行います。 申請法人情報が未登録の場合は、エラーが返されます。 パラメーター「fqdnId」を指定した場合、指定したSSL 証明書を更新します。指定したSSL 証明書の有効期間が更新可能ではない、 アップロードした証明書を指定した、存在しないSSL 証明書を指定した場合など、無効なSSL 証明書を指定した場合は、エラーが返されます。 パラメーター「fqdnId」を指定しない場合、SSL 証明書を新規作成します。作成可能なSSL 証明書の上限数を超える場合は、エラーが返されます。 また申請法人情報を登録するには、API「RegisterCorporateInfoForCertificate」を実行します。
@option [String] :fqdn_id SSL
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 34 def create_ssl_certificate( ={} ) raise ArgumentError, ":fqdn_id or :fqdn must be provided." if blank?([:fqdn_id]) && blank?([:fqdn]) unless blank?([:fqdn]) raise ArgumentError, "No :count provided." if blank?([:count]) raise ArgumentError, "No :validity_term provided." if blank?([:validity_term]) raise ArgumentError, "No :key_length provided." if blank?([:key_length]) raise ArgumentError, "No :organization_name provided." if blank?([:organization_name]) raise ArgumentError, "No :organization_unit_name provided." if blank?([:organization_unit_name]) raise ArgumentError, "No :state_name provided." if blank?([:state_name]) raise ArgumentError, "No :location_name provided." if blank?([:location_name]) end raise ArgumentError, "Invalid :count provided." unless blank?([:count]) || ('1'..'30').to_a.include?([:count].to_s) raise ArgumentError, "Invalid :validity_term provided." unless blank?([:validity_term]) || VALIDITY_TERM.include?([:validity_term].to_s) raise ArgumentError, "Invalid :key_length provided." unless blank?([:key_length]) || KEY_LENGTH.include?([:key_length].to_s) params = {'Action' => 'CreateSslCertificate'} params.merge!(opts_to_prms(, [:fqdn_id, :fqdn, :count, :validity_term, :key_length])) params.merge!(opts_to_prms(, [:organization_name, :organization_unit_name, :country_name, :state_name, :location_name, :email_address], 'CertInfo')) return response_generator(params) end |
#create_volume(options = {}) ⇒ Object
API「CreateVolume」を実行し、ディスクを新規作成します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定した、停止済み 以外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。同様に、ディスクサイズおよびディスク タイプに規定外の値を指定した、すでに存在するディスク名を指定したなどの場合は、エラーが返されます。
@option [String] :size
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 54 def create_volume( = {} ) raise ArgumentError, "No :size provided." if blank?([:size]) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :size provided." unless blank?([:size]) || VOLUMES_CREATE_SIZE.include?([:size].to_s) raise ArgumentError, "Invalid :disk_type provided." unless blank?([:disk_type]) || VOLUMES_CREATE_DISK_TYPE.include?([:disk_type].to_s) params = {'Action' => 'CreateVolume'} params.merge!(opts_to_prms(, [:size, :snapshot_id, :availability_zone, :volume_id, :disk_type, :instance_id])) params.reject! {|k, v| VOLUMES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#delete_image(options = {}) ⇒ Object
API「DeleteImage」を実行し、指定したカスタマイズイメージを削除します。 削除中のカスタマイズイメージを指定してサーバー作成を行った場合は、サーバー作成からエラーが返されます。 カスタマイズイメージを選択して作成されたサーバーのOSイメージ名は、カスタマイズイメージの削除が完了すると、イメージ化した サーバーのOS 名が返されます。
@option [String] :image_id
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/NIFTY/Cloud/images.rb', line 86 def delete_image( ={} ) raise ArgumentError, "No :image_id provided." if blank?([:image_id]) raise ArgumentError, "Invalid :image_id provided." unless [:image_id].to_s.to_i >= 10000 params = { 'Action' => 'DeleteImage', 'ImageId' => [:image_id].to_s } return response_generator(params) end |
#delete_key_pair(options = {}) ⇒ Object
API「DeleteKeyPair」を実行し、SSH キーの情報を削除します。 SSHキーを指定するためには、SSHキー名が必要です。削除済みのSSHキーを指定した、管理外のSSHキーを指定したなど、 無効なSSH キーを指定した場合は、エラーが返されます。
@option [String] :key_name
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/NIFTY/Cloud/keypairs.rb', line 41 def delete_key_pair( = {} ) = { :key_name => "" }.merge() raise ArgumentError, "No :key_name provided." if blank?([:key_name]) raise ArgumentError, "Invalid :key_name provided." unless ALPHANUMERIC =~ [:key_name].to_s params = { 'Action' => 'DeleteKeyPair', 'KeyName' => [:key_name].to_s } return response_generator(params) end |
#delete_load_balancer(options = {}) ⇒ Object
API「DeleteLoadBalancer」を実行し、指定したロードバランサーのポート定義を削除します。 関連するフィルター設定・サーバー設定・ヘルスチェック設定もあわせて削除します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。
@option [String] :load_balancer_name
130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 130 def delete_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) params = {'Action' => 'DeleteLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) return response_generator(params) end |
#delete_security_group(options = {}) ⇒ Object
API「DeleteSecurityGroup」を実行し、指定したファイアウォールグループを削除します。 指定したファイアウォールグループを適用しているサーバーが存在する場合、エラーが返されます。同様に、適用しているオートスケール設定が存在する場合、 エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。 削除済みのファイアウォールグループを指定した、管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、 エラーが返されます。
@option [String] :group_name
117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 117 def delete_security_group( ={} ) raise ArgumentError, "No :group_name provided" if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless ALPHANUMERIC =~ [:group_name].to_s params = { 'Action' => 'DeleteSecurityGroup', 'GroupName' => [:group_name].to_s } return response_generator(params) end |
#delete_ssl_certificate(options = {}) ⇒ Object
API「DeleteSslCertificate」を実行し、指定したSSL 証明書を削除します。 指定したSSL 証明書のステータスが「期限切れ」「失効」「発行エラー」以外の場合は、エラーが返されます。 またアップロードしたSSL証明書は、ステータスに関わらず削除できます。 SSL 証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL 証明書を指定した、 管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。
@option [String] :fqdn_id SSL
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 71 def delete_ssl_certificate( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) params = { 'Action' => 'DeleteSslCertificate', 'FqdnId' => [:fqdn_id].to_s } return response_generator(params) end |
#delete_volume(options = {}) ⇒ Object
API「DeleteVolume」を実行し、指定したディスクを削除します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 削除には、時間がかかることがあります。 なお、サーバーに接続しているディスクを指定した場合には、エラーが返されます。ディスクの接続ステータスは、API 「DescribeVolumes」のレスポンス「attachmentSet.status」で確認できます。
@option [String] :volume_id
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 82 def delete_volume( = {} ) raise ArgumentError, "No :volume_id provided." if blank?([:volume_id]) params = { 'Action' => 'DeleteVolume', 'VolumeId' => [:volume_id].to_s } return response_generator(params) end |
#deregister_instances_from_load_balancer(options = {}) ⇒ Object
API「DeregisterInstancesFromLoadBalancer」を実行し、指定したロードバランサーから、指定したサーバーを解除します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。該当するロードバランサーに設定されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :load_balancer_name
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 160 def deregister_instances_from_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided" if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "No :instances provided." if blank?([:instances]) params = {'Action' => 'DeregisterInstancesFromLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(pathhashlist('Instances.member', [[:instances]].flatten.collect{|e| {:instances => e}}, {:instances => 'InstanceId'})) return response_generator(params) end |
#deregister_instances_from_security_group(options = {}) ⇒ Object
API「DeregisterInstancesFromSecurityGroup」を実行し、指定したファイアウォールグループから、指定したサーバーをはずします。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。指定したファイアウォールグループに適用されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :group_name
143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 143 def deregister_instances_from_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'DeregisterInstancesFromSecurityGroup', 'GroupName' => [:group_name].to_s } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#describe_availability_zones(options = {}) ⇒ Object
API「DescribeAvailabilityZones」を実行し、利用可能なゾーンの情報を取得します。常に、ゾーン「ap-japan-1a」の情報が返されます。
@return [Hash]
13 14 15 16 17 18 19 20 |
# File 'lib/NIFTY/Cloud/availability_zones.rb', line 13 def describe_availability_zones( ={} ) params = {'Action' => 'DescribeAvailabilityZones'} params.merge!(pathlist('ZoneName', [:zone_name])) params.reject! {|k, v| ZONES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#describe_images(options = {}) ⇒ Object
API「DescribeImages」を実行し、OS イメージの情報を取得します。 特定のOS イメージを指定するためには、OS イメージID またはOS イメージ名が必要です。OS イメージを指定しない場合は、 取得可能なすべてのOS イメージ情報を取得します。無効なOS イメージを指定した場合は、エラーが返されます。
@option [Array<String>] :image_id OS
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/NIFTY/Cloud/images.rb', line 28 def describe_images( = {} ) [[:owner]].flatten.each{|o| raise ArgumentError, "Invalid :owner provided." unless IMAGES_DESCRIBE_OWNER.include?(o) } unless blank?([:owner]) raise ArgumentError, "Invalid :image_id provided." unless blank?([:image_id]) || [:image_id].to_s.to_i > 0 params = {'Action' => 'DescribeImages'} params.merge!(pathlist("ExecutableBy", [:executable_by])) params.merge!(pathlist("ImageId", [:image_id])) params.merge!(pathlist("ImageName", [:image_name])) params.merge!(pathlist("Owner", [:owner])) params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#describe_instance_attribute(options = {}) ⇒ Object
API「DescribeInstanceAttribute」を実行し、指定したサーバーの詳細情報を取得します。1回のリクエストで、指定したサーバーのどれか1つの詳細情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :instance_id
37 38 39 40 41 42 43 44 45 |
# File 'lib/NIFTY/Cloud/instances.rb', line 37 def describe_instance_attribute( = {} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :attribute provided." unless blank?([:attribute]) || INSTANCES_DESCRIBE_ATTRIBUTE.include?([:attribute].to_s) params = {'Action' => 'DescribeInstanceAttribute'} params.merge!(opts_to_prms(, [:instance_id, :attribute])) return response_generator(params) end |
#describe_instance_health(options = {}) ⇒ Object
API「DescribeInstanceHealth」を実行し、指定したロードバランサーに設定されている、サーバーのヘルスチェック結果を取得します。ヘルスチェックは、API 「ConfigureHealthCheck」で設定します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、 無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、指定したロードバランサーに設定されているすべてのサーバーを対象として、 ヘルスチェック結果を取得します。 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :load_balancer_name
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 194 def describe_instance_health( ={} ) raise ArgumentError, "No :load_balancer_name provided" if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) params = {'Action' => 'DescribeInstanceHealth'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(pathhashlist('Instances.member', [[:instances]].flatten.collect{|e| {:instances => e}}, {:instances => 'InstanceId'})) if .has_key?(:instances) return response_generator(params) end |
#describe_instances(options = {}) ⇒ Object
API「DescribeInstances」を実行し、指定したサーバーの情報を取得します。1 回のリクエストで、複数のサーバー情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、取得可能なすべてのサーバー情報を取 得します。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なID を指定した場合は、エラーが返されます。
@option [Array<String>] :instance_id
58 59 60 61 62 63 |
# File 'lib/NIFTY/Cloud/instances.rb', line 58 def describe_instances( = {} ) params = {'Action' => 'DescribeInstances'} params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#describe_key_pairs(options = {}) ⇒ Object
API「DescribeKeyPairs」を実行し、指定したSSH キーの情報を取得します。 SSHキーを指定するためには、SSHキー名が必要です。SSHキーを指定しない場合は、取得できるすべてのSSHキー情報を取得します。 削除済みのSSH キーを指定した、管理外のSSH キーを指定したなど、無効なSSH キーを指定した場合は、エラーが返されます。
@option [Array<String>] :key_name SSH
65 66 67 68 69 70 71 72 |
# File 'lib/NIFTY/Cloud/keypairs.rb', line 65 def describe_key_pairs( = {} ) raise ArgumentError, "Invalid :key_name provided." unless blank?([:key_name]) || ALPHANUMERIC =~ [:key_name].to_s params = {'Action' => 'DescribeKeyPairs'} params.merge!(pathlist('KeyName', [:key_name])) return response_generator(params) end |
#describe_load_balancers(options = {}) ⇒ Object
API「DescribeLoadBalancers」を実行し、指定したロードバランサーの情報を取得します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。ロードバランサーを指定しない場合は、取得可能なすべての ロードバランサー情報を取得します。 削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。
@option [Array<String>] :load_balancer_name
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 224 def describe_load_balancers( ={} ) [[:load_balancer_name]].flatten.each do |o| raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ o.to_s end unless blank?([:load_balancer_name]) [[:load_balancer_port]].flatten.each do |o| raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?(o) end unless blank?([:load_balancer_port]) [[:instance_port]].flatten.each do |o| raise ArgumentError, "Invalid :instance_port provided." unless valid_port?(o) end unless blank?([:instance_port]) params = {'Action' => 'DescribeLoadBalancers'} params.merge!(pathlist('LoadBalancerNames.member', [:load_balancer_name])) params.merge!(pathlist('LoadBalancerNames.LoadBalancerPort', [:load_balancer_port])) params.merge!(pathlist('LoadBalancerNames.InstancePort', [:instance_port])) return response_generator(params) end |
#describe_security_activities(options = {}) ⇒ Object
API「DescribeSecurityActivities」を実行し、指定したファイアウォールグループのログ情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。
@option [String] :group_name
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 177 def describe_security_activities( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "Invalid :activity_date provided." unless blank?([:activity_date]) || DATE_FORMAT =~ [:activity_date].to_s raise ArgumentError, "Invalid :range_all provided." unless blank?([:range_all]) || BOOLEAN.include?([:range_all].to_s) raise ArgumentError, "Invalid :range_start_number provided." unless blank?([:range_start_number]) || [:range_start_number].to_s.to_i >= 1 raise ArgumentError, "Invalid :range_end_number provided." unless blank?([:range_end_number]) || ([:range_end_number]).to_s.to_i >= 1 raise ArgumentError, "Invalid :range_end_number provided." unless blank?([:range_start_number]) || blank?([:range_end_number]) || [:range_start_number] <= [:range_end_number] params = { 'Action' => 'DescribeSecurityActivities', 'GroupName' => [:group_name].to_s, 'ActivityDate' => [:activity_date].to_s, 'Range.All' => [:range_all].to_s, 'Range.StartNumber' => [:range_start_number].to_s, 'Range.EndNumber' => [:range_end_number].to_s } return response_generator(params) end |
#describe_security_groups(options = {}) ⇒ Object
API「DescribeSecurityGroups」を実行し、指定したファイアウォールグループの設定情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。指定しない場合は、取得可能なすべての ファイアウォールグループの設定情報を取得します。
@option [String] :group_name
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 214 def describe_security_groups( ={} ) [[:group_name]].flatten.each do |e| raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s end unless blank?([:group_name]) params = {'Action' => 'DescribeSecurityGroups'} params.merge!(pathlist("GroupName", [:group_name])) unless blank?([:filter]) [[:filter]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) raise ArgumentError, "Invalid :name provided." unless blank?(opt[:name]) || FILTER_NAME.include?(opt[:name].to_s) opt[:value] = [opt[:value]].flatten unless blank?(opt[:value]) end params.merge!(pathhashlist('Filter', [:filter], {:name => 'Name', :value => 'Value'})) end return response_generator(params) end |
#describe_ssl_certificate_attribute(options = {}) ⇒ Object
API「DescribeSslCertificateAttribute」を実行し、指定したSSL証明書の詳細情報を取得します。 1回のリクエストで、指定したSSL証明書のどれか1つの詳細情報を取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。
@option [String] :fqdn_id SSL
119 120 121 122 123 124 125 126 127 128 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 119 def describe_ssl_certificate_attribute( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) raise ArgumentError, "Invalid :attribute provided." unless blank?([:attribute]) || CERTIFICATE_DESCRIBE_ATTRIBUTE.include?([:attribute].to_s) params = {'Action' => 'DescribeSslCertificateAttribute'} params.merge!(opts_to_prms(, [:fqdn_id, :attribute])) return response_generator(params) end |
#describe_ssl_certificates(options = {}) ⇒ Object
API「DescribeSslCertificates」を実行し、指定したSSL 証明書の情報を取得します。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)またはFQDN が必要です。 指定しない場合は、取得可能なすべてのSSL証明書の情報を取得します。
@option [Array<String>] :fqdn_id SSL
94 95 96 97 98 99 100 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 94 def describe_ssl_certificates( ={} ) params = {'Action' => 'DescribeSslCertificates'} params.merge!(pathlist('Fqdn', [:fqdn])) params.merge!(pathlist('FqdnId', [:fqdn_id])) return response_generator(params) end |
#describe_volumes(options = {}) ⇒ Object
API「DescribeVolumes」を実行し、指定したディスクの情報を取得します。 ディスクを指定するためには、ディスク名が必要です。削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 ディスクを指定しない場合、取得できるすべてのディスク情報を取得します。
@option [Array<String>] :volume_id
105 106 107 108 109 110 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 105 def describe_volumes( = {} ) params = {'Action' => 'DescribeVolumes'} params.merge!(pathlist("VolumeId", [:volume_id])) return response_generator(params) end |
#detach_volume(options = {}) ⇒ Object
API「DetachVolume」を実行し、指定したディスクとサーバーの接続を解除します。 ディスクを指定するためには、ディスク名が必要です。解除済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。解除済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。サーバー名を指定せずに解除すると、指定したディスクのすべての接続情報を解除します。
@option [String] :volume_id
126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 126 def detach_volume( = {} ) raise ArgumentError, "No :volume_id provided." if blank?([:volume_id]) raise ArgumentError, "Invalid :force provided." unless blank?([:force]) || BOOLEAN.include?([:force].to_s) params = { 'Action' => 'DetachVolume' } params.merge!(opts_to_prms(,[:volume_id, :instance_id, :device, :force])) params.reject! {|k, v| VOLUMES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#download_ssl_certificate(options = {}) ⇒ Object
API「DownloadSslCertificate」を実行し、指定したSSL証明書をダウンロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書のいずれかを取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL証明書を指定した場合は、エラーが返されます。 またSSL証明書の発行状況により、指定したファイルがダウンロードできない場合があります。
@option [String] :fqdn_id SSL
145 146 147 148 149 150 151 152 153 154 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 145 def download_ssl_certificate( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) raise ArgumentError, "No :file_type provided." if blank?([:file_type]) raise ArgumentError, "Invalid :file_type provided." unless FILE_TYPE.include?([:file_type].to_s) params = {'Action' => 'DownloadSslCertificate'} params.merge!(opts_to_prms(, [:fqdn_id, :file_type])) return response_generator(params) end |
#modify_image_attribute(options = {}) ⇒ Object
API「ModifyImageAttribute」を実行し、指定したカスタマイズイメージの詳細情報を更新します。1 回のリクエストで、1 つのカスタマイズイメージの情報を更新できます。 カスタマイズイメージを指定するためには、イメージID が必要です。削除済みのイメージID を指定した、管理外のイメージID を指定したなど、 無効なイメージID を指定した場合は、エラーが返されます。
@option [String] :image_id
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/NIFTY/Cloud/images.rb', line 113 def modify_image_attribute( ={} ) raise ArgumentError, "No :image_id provided." if blank?([:image_id]) raise ArgumentError, "Invalid :image_id provided." unless [:image_id].to_s.to_i >= 10000 raise ArgumentError, "No :attribute provided." if blank?([:attribute]) raise ArgumentError, "Invalid :attribute provided." unless blank?([:attribute]) || IMAGES_MODIFY_ATTRIBUTE.include?([:attribute]) params = {'Action' => 'ModifyImageAttribute'} params.merge!(opts_to_prms(, [:image_id, :attribute, :value])) params.merge!(pathhashlist('LaunchPermission.Add', [:launch_permission_add], {:user_id => 'UserId', :group => 'Group'})) unless blank?([:launch_permission_add]) params.merge!(pathhashlist('LaunchPermission.Remove', [:launch_permission_remove], {:user_id => 'UserId', :group => 'Group'})) unless blank?([:launch_permission_remove]) params.merge!(pathlist('ProductCode', [:product_code])) params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#modify_instance_attribute(options = {}) ⇒ Object
API「ModifyInstanceAttribute」を実行し、指定したサーバーの詳細情報を更新します。1 回のリクエストで、1 つのサーバーの情報を更新できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 なお、起動済みのサーバーを指定した場合は、エラーが返されます。サーバーのステータスは、API「DescribeInstances」のレスポン ス値「instanceState」で確認できます。
@option [String] :instance_id
86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/NIFTY/Cloud/instances.rb', line 86 def modify_instance_attribute( = {} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "No :attribute provided." if blank?([:attribute]) raise ArgumentError, "Invalid :attribute provided." unless INSTANCES_MODIFY_ATTRIBUTE.include?([:attribute].to_s) raise ArgumentError, "No :value provided." if blank?([:value]) raise ArgumentError, "Invalid :value provided." if [:attribute] == 'instanceType' && !INSTANCE_TYPE.include?([:value].to_s) raise ArgumentError, "Invalid :value provided." if [:attribute] == 'disableApiTermination' && !BOOLEAN.include?([:value].to_s) raise ArgumentError, "Invalid :value provided." if [:attribute] == 'ipType' && !IP_TYPE.include?([:value].to_s) params = {'Action' => 'ModifyInstanceAttribute'} params.merge!(opts_to_prms(, [:instance_id, :attribute, :value])) return response_generator(params) end |
#modify_ssl_certificate_attribute(options = {}) ⇒ Object
API「ModifySslCertificateAttribute」を実行し、指定したSSL 証明書の詳細情報を更新します。1 回のリクエストで、1 つのSSL 証明書の1 つの詳細情報を更新できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。
@option [String] :fqdn_id SSL
168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 168 def modify_ssl_certificate_attribute( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) params = { 'Action' => 'ModifySslCertificateAttribute', 'FqdnId' => [:fqdn_id].to_s, 'Description.Value' => [:description].to_s } return response_generator(params) end |
#reboot_instances(options = {}) ⇒ Object
API「RebootInstances」を実行し、指定したサーバーを再起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの再起動には、時間がかかることがあります。サーバーのステータスは、API「DescribeInstances」のレスポンス値 「instanceState」で確認できます。
@option [Array<String>] :instance_id
116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/NIFTY/Cloud/instances.rb', line 116 def reboot_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :force provided." unless blank?([:force]) || BOOLEAN.include?([:force].to_s) params = { 'Action' => 'RebootInstances', 'Force' => [:force].to_s } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#register_corporate_info_for_certificate(options = {}) ⇒ Object
API「RegisterCorporateInfoForCertificate」を実行し、SSL証明書を管理する申請法人情報を登録または更新します。 利用規約(cp.cloud.nifty.com/ssl/trust.txt)をご確認の上、パラメーター「agreement」を指定します。
@option [Boolean] :agreement
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 230 def register_corporate_info_for_certificate( ={} ) raise ArgumentError, "No :agreement provided." if blank?([:agreement]) raise ArgumentError, "Invalid :agreement provided." unless blank?([:agreement]) || BOOLEAN.include?([:agreement].to_s) raise ArgumentError, "No :corp_name provided." if blank?([:corp_name]) raise ArgumentError, "No :corp_grade provided." if blank?([:corp_grade]) raise ArgumentError, "No :president_name1 provided." if blank?([:president_name1]) raise ArgumentError, "No :president_name2 provided." if blank?([:president_name2]) raise ArgumentError, "No :zip1 provided." if blank?([:zip1]) raise ArgumentError, "Invalid :zip1 provided." unless /^\d{3}$/ =~ [:zip1].to_s raise ArgumentError, "No :zip2 provided." if blank?([:zip2]) raise ArgumentError, "Invalid :zip2 provided." unless /^\d{4}$/ =~ [:zip2].to_s raise ArgumentError, "No :pref provided." if blank?([:pref]) raise ArgumentError, "No :city provided." if blank?([:city]) raise ArgumentError, "No :name1 provided." if blank?([:name1]) raise ArgumentError, "No :name2 provided." if blank?([:name2]) raise ArgumentError, "No :kana_name1 provided." if blank?([:kana_name1]) raise ArgumentError, "No :kana_name2 provided." if blank?([:kana_name2]) raise ArgumentError, "No :post_name provided." if blank?([:post_name]) raise ArgumentError, "No :division_name provided." if blank?([:division_name]) params = {'Action' => 'RegisterCorporateInfoForCertificate'} params.merge!(opts_to_prms(, [:agreement, :tdb_code, :corp_name, :corp_grade, :president_name1, :president_name2, :zip1, :zip2, :pref, :city, :name1, :name2, :kana_name1, :kana_name2, :post_name, :division_name])) return response_generator(params) end |
#register_instances_with_load_balancer(options = {}) ⇒ Object
API「RegisterInstancesWithLoadBalancer」を実行し、 指定したロードバランサーにサーバーを追加します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。IP アドレスを固定化しているサーバーを指定できます。IP アドレス を固定化していないサーバーを指定した、ほかのロードバランサーに設定されているサーバーを指定した、削除済みのサーバーを指定した、 管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :load_balancer_name
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 261 def register_instances_with_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "No :instances provided." if blank?([:instances]) params = {'Action' => 'RegisterInstancesWithLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(pathhashlist('Instances.member', [[:instances]].flatten.collect{|e| {:instances => e}}, {:instances => 'InstanceId'})) return response_generator(params) end |
#register_instances_with_security_group(options = {}) ⇒ Object
API「RegisterInstancesWithSecurityGroup」を実行し、指定したファイアウォールグループを、指定したサーバーへ適用します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。すでにファイアウォールグループに適用されているサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option [String] :group_name
249 250 251 252 253 254 255 256 257 258 259 260 261 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 249 def register_instances_with_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'RegisterInstancesWithSecurityGroup', 'GroupName' => [:group_name] } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#register_port_with_load_balancer(options = {}) ⇒ Object
API「RegisterPortWithLoadBalancer」を実行し、指定したロードバランサーにポートを追加します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ポートの追加に成功した場合は、以下のAPI を実行する必要があります。
フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。 API「SetFilterForLoadBalancer」(フィルター設定)
@option [String] :load_balancer_name
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 300 def register_port_with_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :listeners provided." if blank?([:listeners]) [[:listeners]].flatten.each do |member| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless member.is_a?(Hash) raise ArgumentError, ":protocol or :load_balancer_port must be provided." if blank?(member[:protocol])&& blank?(member[:load_balancer_port]) raise ArgumentError, "Invalid :protocol provided." unless LOAD_BALANCER_PROTOCOL.include?(member[:protocol].to_s.upcase) || blank?(member[:protocol]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?(member[:load_balancer_port]) || blank?(member[:load_balancer_port]) raise ArgumentError, "Invalid :instance_port provided." unless blank?(member[:instance_port]) || valid_port?(member[:instance_port]) raise ArgumentError, "Invalid :balancing_type provided." unless blank?(member[:balancing_type]) || BALANCING_TYPE.include?(member[:balancing_type].to_s) end params = {'Action' => 'RegisterPortWithLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :network_volume, :ip_version])) params.merge!(pathhashlist('Listeners.member', [:listeners], {:protocol => 'Protocol', :load_balancer_port => 'LoadBalancerPort', :instance_port => 'InstancePort', :balancing_type => 'BalancingType'})) return response_generator(params) end |
#revoke_security_group_ingress(options = {}) ⇒ Object
API「RevokeSecurityGroupIngress」を実行し、指定したファイアウォールグループから許可ルールを削除します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 また許可ルールを指定するためには、設定されている 許可プロトコル名・許可ポート・許可するファイアウォールグループまたは許可するIPアドレスが必要です。 該当する許可ルールが存在しない場合は、エラーが返されます。
@option [String] :group_name
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 288 def revoke_security_group_ingress( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :ip_permissions provided." if blank?([:ip_permissions]) [[:ip_permissions]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) raise ArgumentError, "Invalid :ip_protocol provided." unless blank?(opt[:ip_protocol]) || IP_PROTOCOL.include?(opt[:ip_protocol].to_s.upcase) raise ArgumentError, "No :from_port provided." if /TCP|UDP/ =~ opt[:ip_protocol] && blank?(opt[:from_port]) raise ArgumentError, "Invalid :from_port provided." unless blank?(opt[:from_port]) || valid_port?(opt[:from_port]) raise ArgumentError, "Invalid :to_port provided." unless blank?(opt[:to_port]) || valid_port?(opt[:to_port]) raise ArgumentError, "Invalid :in_out provided." unless blank?(opt[:in_out]) || IN_OUT.include?(opt[:in_out].to_s.upcase) raise ArgumentError, ":group_name or :cidr_ip must be provided." if blank?(opt[:group_name]) && blank?(opt[:cidr_ip]) raise ArgumentError, "Invalid :group_name provided." unless blank?(opt[:group_name]) || GROUP_NAME =~ opt[:group_name].to_s [opt[:cidr_ip]].flatten.each do |ip| begin IPAddr.new(ip.to_s) rescue raise ArgumentError, "Invalid :cidr_ip provided." end end unless blank?(opt[:cidr_ip]) opt[:user_id] = [opt[:user_id]].flatten unless blank?(opt[:user_id]) opt[:group_name] = [opt[:group_name]].flatten unless blank?(opt[:group_name]) opt[:cidr_ip] = [opt[:cidr_ip]].flatten unless blank?(opt[:cidr_ip]) end unless blank?([:ip_permissions]) params = {'Action' => 'RevokeSecurityGroupIngress'} params.merge!(opts_to_prms(, [:user_id, :group_name])) unless blank?([:ip_permissions]) params.merge!(pathhashlist('IpPermissions', [[:ip_permissions]].flatten, { :ip_protocol => 'IpProtocol', :from_port => 'FromPort', :to_port => 'ToPort', :in_out => 'InOut', :user_id => 'Groups', :group_name => 'Groups', :cidr_ip => 'IpRanges'}, { :user_id => 'UserId', :group_name => 'GroupName', :cidr_ip => 'CidrIp'})) end params.reject! {|k, v| SECURITY_GROUPS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#run_instances(options = {}) ⇒ Object
API「RunInstances」を実行し、サーバーを新規作成します。1 回のリクエストで、1 つのサーバーを作成できます。 サーバーの作成には、時間がかかることがあります。このAPI のレスポンス「instanceState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 処理が失敗した場合、サーバーは作成されず、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。
@option [String] :image_id OS
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/NIFTY/Cloud/instances.rb', line 157 def run_instances( ={} ) = {:base64_encoded => false}.merge() raise ArgumentError, "No :image_id provided." if blank?([:image_id]) raise ArgumentError, "Invalid :image_id provided." unless [:image_id].to_s.to_i > 0 raise ArgumentError, "Invalid :key_name provided." unless blank?([:key_name]) || ALPHANUMERIC =~ [:key_name].to_s #raise ArgumentError, "No :security_group provided." if blank?(options[:security_group]) raise ArgumentError, "Invalid :security_group provided." unless blank?([:security_group]) || GROUP_NAME =~ [:security_group].to_s raise ArgumentError, "No :password provided." if [:image_id].to_s.to_i < 10000 && blank?([:password]) raise ArgumentError, "Invalid :password provided." unless blank?([:password]) || ALPHANUMERIC =~ [:password].to_s raise ArgumentError, "Invalid :instance_type provided." unless blank?([:instance_type]) || INSTANCE_TYPE.include?([:instance_type].to_s) raise ArgumentError, "Invalid :disable_api_termination provided." unless blank?([:disable_api_termination]) || BOOLEAN.include?([:disable_api_termination].to_s) raise ArgumentError, "Invalid :accounting_type provided." unless blank?([:accounting_type]) || ACCOUNTING_TYPE.include?([:accounting_type].to_s) raise ArgumentError, "Invalid :ip_type provided." unless blank?([:ip_type]) || IP_TYPE.include?([:ip_type].to_s) raise ArgumentError, ":base64_encoded must be 'true' or 'false'." unless [true, false].include?([:base64_encoded]) user_data = extract_user_data() [:user_data] = user_data params = { 'Action' => 'RunInstances', 'Monitoring.Enabled' => [:monitoring_enabled].to_s } params.merge!(pathlist('SecurityGroup', [:security_group])) params.merge!(pathhashlist('BlockDeviceMapping', [:block_device_mapping], {:device_name => 'DeviceName', :virtual_name => 'VirtualName', :ebs_snapshot_id => 'Ebs.SnapshotId', :ebs_volume_size => 'Ebs.VolumeSize', :ebs_delete_on_termination => 'Ebs.DeleteOnTermination', :ebs_no_device => 'Ebs.NoDevice' })) unless blank?([:block_device_mapping]) params.merge!(opts_to_prms(, [:image_id, :min_count, :max_count, :key_name, :additional_info, :user_data, :addressing_type, :instance_type, :kernel_id, :ramdisk_id, :subnet_id, :disable_api_termination, :instance_initiated_shutdown_behavior, :accounting_type, :instance_id, :admin, :password, :ip_type])) params.merge!(opts_to_prms(, [:availability_zone, :group_name], 'Placement')) params.reject! {|k, v| INSTANCES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#set_filter_for_load_balancer(options = {}) ⇒ Object
API「SetFilterForLoadBalancer」を実行し、指定したロードバランサーにアクセスフィルターを設定します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。
@option [String] :load_balancer_name
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 349 def set_filter_for_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "Invalid :filter_type provided." unless blank?([:filter_type]) || FILTER_TYPE.include?([:filter_type].to_s) params = {'Action' => 'SetFilterForLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port, :filter_type])) unless blank?([:ip_addresses]) [[:ip_addresses]].flatten.each do |member| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless member.is_a?(Hash) begin IPAddr.new(member[:ip_address].to_s) rescue raise ArgumentError, "Invalid :ip_address provided." end unless blank?(member[:ip_address]) raise ArgumentError, "Invalid :add_on_filter provided." unless blank?(member[:add_on_filter]) || BOOLEAN.include?(member[:add_on_filter].to_s) end params.merge!(pathhashlist('IPAddresses.member', [:ip_addresses], { :ip_address => 'IPAddress', :add_on_filter => 'AddOnFilter'})) end return response_generator(params) end |
#start_instances(options = {}) ⇒ Object
API「StartInstances」を実行し、指定したサーバーを起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの起動には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた場 合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。
@option [Array<String>] :instance_id
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/NIFTY/Cloud/instances.rb', line 212 def start_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) [[:instance_type]].flatten.each do |p| raise ArgumentError, "Invalid :instance_type provided." unless INSTANCE_TYPE.include?(p.to_s) end unless blank?([:instance_type]) [[:accounting_type]].flatten.each do |p| raise ArgumentError, "Invalid :accounting_type provided." unless ACCOUNTING_TYPE.include?(p.to_s) end unless blank?([:accounting_type]) params = {'Action' => 'StartInstances'} params.merge!(pathlist('InstanceId', [:instance_id])) params.merge!(pathlist('InstanceType', [:instance_type])) params.merge!(pathlist('AccountingType', [:accounting_type])) return response_generator(params) end |
#stop_instances(options = {}) ⇒ Object
API「StopInstances」を実行し、指定したサーバーを停止します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの停止には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 なお、強制オプションに「true」を指定して実行した際に、サーバーが停止できない状態などのエラーが返されることがあります。 強制オプションに「true」を指定して実行した場合には、システムチェックや修復を行うことをおすすめします。
@option [Array<String>] :instance_id
246 247 248 249 250 251 252 253 254 255 256 257 |
# File 'lib/NIFTY/Cloud/instances.rb', line 246 def stop_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :force provided." unless blank?([:force]) || BOOLEAN.include?([:force].to_s) params = { 'Action' => 'StopInstances', 'Force' => [:force].to_s } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#terminate_instances(options = {}) ⇒ Object
API「TerminateInstances」を実行し、指定したサーバーを削除します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの削除には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 また、API「DescribeInstances」のレスポンスに該当情報がない場合は、削除処理は成功しています。
@option [Array<String>] :instance_id
273 274 275 276 277 278 279 280 |
# File 'lib/NIFTY/Cloud/instances.rb', line 273 def terminate_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = {'Action' => 'TerminateInstances'} params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#update_load_balancer(options = {}) ⇒ Object
API「UpdateLoadBalancer」を実行し、指定したロードバランサーの定義を変更します。 ポート定義を更新する場合は、ポート番号もあわせて指定します。 削除済みのロードバランサー名・待ち受けポートを指定した、管理外のロードバランサー名を指定した場合は、エラーが返されます。
@option [String] :load_balancer_name
395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 395 def update_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) && (!blank?([:listener_load_balancer_port]) || !blank?([:listener_instance_port]) || !blank?([:listener_protocol]) || !blank?([:listener_balancing_type]) || !blank?([:instance_port])) raise ArgumentError, "Invalid :load_balancer_port provided." unless blank?([:load_balancer_port]) || valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) && !blank?([:load_balancer_port]) raise ArgumentError, "Invalid :instance_port provided." unless blank?([:instance_port]) || valid_port?([:instance_port]) raise ArgumentError, "Invalid :listener_protocol provided." unless blank?([:listener_protocol]) || LOAD_BALANCER_PROTOCOL.include?([:listener_protocol].to_s.upcase) raise ArgumentError, "Invalid :listener_load_balancer_port provided." unless blank?([:listener_load_balancer_port]) || valid_port?([:listener_load_balancer_port]) raise ArgumentError, "Invalid :listener_instance_port provided." unless blank?([:listener_instance_port]) || valid_port?([:listener_instance_port]) raise ArgumentError, "Invalid :listener_balancing_type provided." unless blank?([:listener_balancing_type]) || BALANCING_TYPE.include?([:listener_balancing_type].to_s) raise ArgumentError, "Invalid :network_volume_update provided." unless blank?([:network_volume_update]) || NETWORK_VOLUMES.include?([:network_volume_update].to_s) params = { 'Action' => 'UpdateLoadBalancer', 'ListenerUpdate.Listener.Protocol' => [:listener_protocol].to_s, 'ListenerUpdate.Listener.LoadBalancerPort' => [:listener_load_balancer_port].to_s, 'ListenerUpdate.Listener.InstancePort' => [:listener_instance_port].to_s, 'ListenerUpdate.Listener.BalancingType' => [:listener_balancing_type].to_s } params.merge!(opts_to_prms(, [:load_balancer_name, :network_volume_update])) params.merge!(opts_to_prms(, [:load_balancer_port, :instance_port], 'ListenerUpdate')) return response_generator(params) end |
#update_security_group(options = {}) ⇒ Object
API「UpdateSecurityGroup」を実行し、ファイアウォールグループの設定情報を更新します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。
@option [String] :group_name
344 345 346 347 348 349 350 351 352 353 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 344 def update_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "Invalid :group_name_update provided." unless blank?([:group_name_update]) || ALPHANUMERIC =~ [:group_name_update].to_s params = {'Action' => 'UpdateSecurityGroup'} params.merge!(opts_to_prms(, [:group_name, :group_name_update, :group_description_update])) return response_generator(params) end |
#upload_ssl_certificate(options = {}) ⇒ Object
API「UploadSslCertificate」を実行し、指定したSSL証明書をアップロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書の1 セットをアップロードできます。 作成可能なSSL証明書の上限数を超える場合は、エラーが返されます。 またアップロードしたファイルの解析に失敗した場合は、エラーが返されます。
@option [String] :certificate
272 273 274 275 276 277 278 279 280 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 272 def upload_ssl_certificate( ={} ) raise ArgumentError, "No :certificate provided." if blank?([:certificate]) raise ArgumentError, "No :key provided." if blank?([:key]) params = {'Action' => 'UploadSslCertificate'} params.merge!(opts_to_prms(, [:certificate, :key, :ca])) return response_generator(params) end |