目次
こんな経験ありませんか?
enebularブログを読んでいる方の中には、追加したNode-REDのノードがアンインストールできなくなって困った経験がある人がたくさんいるのではないでしょうか? たとえば、こんな感じです。
- Node-REDノードをパレットからインストールする
- インストールしたノードをフローに追加して試してみる
- 追加したノードが目的に合わないことが判明
- ノードをフローから削除
- パレットからアンインストールできない!!
フロー内に未使用のconfigノードが残っている場合、ノードがアンインストールできません。この記事では、フロー内に残った未使用のconfigノードを削除する手順を紹介します。
まずは、ノードがアンインストールできなくなってしまうケースの実例を見てみます(すぐに未使用のconfigノードを削除する方法を知りたい方は、configノードの削除方法に飛んでください)。この例では、node-red-contrib-re-postgresノード(Postgresノード)をインストールしてみたところ、利用目的に合わなかったためアンインストールするという状況を考えてみます。
実際に手を動かして体験できるように、手順を記載しました。やってみたい方は、enebularにサインイン(Sign In)して実験用のフローを作成した後に、フローエディタを起動してください。
Postgresノードをインストールする
画面右上のメニューからManage Paletteを選択します。
Installタブを選択して、node-red-contrib-re-postgresノードを検索します。
見つかったノードをインストールします。
Postgresノードをフローに追加する
インストールされたノードをフローに追加します。
試しに設定をしてみます。postgresノードをダブルクリックすると編集画面が表示されます。
今回はpostgresノードに「test-postgres」という名前をつけてみました。さらに設定を続けます。Serverの鉛筆アイコン(Add new postgresdb…の右側です)をクリックするとpostgresdbノードの編集画面が表示されます。
postgresdbノードには、「test-postgres-config」と名前をつけてみました。この実験では実際にPostgreSQLに接続しませんので、他のパラメータは適当で構いません。上の図では、Usernameに「test-user」、Passwordに「test-password」と設定しています。
設定が終わったらAddボタンを押してください。postgresdbノードの編集画面が閉じられて、postgresノードの編集画面に戻ります。Doneボタンを押して編集を完了します。
ノードの設定が完了したら、画面右上のDeployボタンを押してフローを保存します。
Postgresノードをフローから削除する
今回の実験では、node-red-contrib-re-postgresノードは目的に合致しなかったという設定です。せっかくインストールしましたが、フローからnode-red-contrib-re-postgresノードを削除します。
上図のように、フローを空っぽにしたらフローを保存します。画面右上のDeployボタンを押してフローを保存します。
Postgresノードをアンインストールする
フローからnode-red-contrib-re-postgresノードがなくなりました。
では、node-red-contrib-re-postgresノードをアンインストールしましょう。
再び画面右上のメニューからManage Paletteを選択します。
Nodesタブを選択して、node-red-contrib-re-postgresノードを検索します。
すると、フローにはノードが1つもないはずなのに、node-red-contrib-re-postgresノードがin useの状態になっています。この状態では、node-red-contrib-re-postgresノードのアンインストールができません。
configノードの削除方法
node-red-contrib-re-postgresノードをアンインストールできなかったのは、内部で使用されているpostgresdbというconfigノードがフローの中に削除されずに残っているためです。つまり、このconfigノードを削除できれば、node-red-contrib-re-postgresノードをアンインストールできます。
以降では、configノードの削除方法を見て行きます。
configノードを削除する
画面右上のメニューから、Configration nodesを選択します。
configタブが表示されます。unusedを選択して、On all flowsから残っているconfigノードを表示します。
下図のようにtest-postgres-configノードが残っていることがわかります。このノードが残っているためにnode-red-contrib-re-postgresノードがアンインストールできません。
configノード(test-postgres-configノード)をダブルクリックすると、postgresdbノードの編集画面が表示されます。Deleteボタンを押して、configノードを削除します。さらに、画面右上のDeployボタンを押してフローを保存します。
Postgresノードをアンインストールする
これで、node-red-contrib-re-postgresノードはアンインストールできる状態になっているはずです。画面右上のメニューからManage Paletteを選択して表示します。
今度は下図のように、removeボタンが押せるようになっています。removeボタンを押して、node-red-contrib-re-postgresノードをアンインストールしてください。
フローエディタからもpostgresノードが削除されます。
まとめ
ちょっとしたTIPSですが、知らないとびっくりしますよね。私も最初は困った記憶がありますが、これでフローがきれいになりました。